Provided by: openssl-pkcs11-sign-provider_1.0.1-0ubuntu3_amd64 

NAME
pkcs11sign.cnf - Configuration for OpenSSL PKCS#11 sign provider module
DESCRIPTION
The pkcs11-sign-provider implements the OpenSSL 3.0 provider interface and provides cryptographic
operation on asymmetric key material, available in PKCS#11 infrastructure (e.g. opencryptoki). For more
information see pkcs11sign(7).
CONFIGURATION
OpenSSL Configuration
The pkcs11-sign-provider can be configured application-specific or system-wide. In both cases, the
configuration file need to define and reference a section for the pkcs11-sign-provider, following the
OpenSSL configuration syntax (config(5)).
The pkcs11-sign-provider section specifies the shared library of the provider itself (mandatory), the
shared library of the Cryptoki implementation (mandatory) and initialization parameters for the Cryptoki
implementation (optional). It is also possible to specify a forward provider. If no forward provider is
specified, the OpenSSL built-in default-provider is selected.
The pkcs11-sign-provider must also be preferred in the algorithm-properties, so that all requests are
directed to the pkcs11-sign-provider. This can either be done in the application or in the configuration
file (recommended).
Provider Section
A provider section in the OpenSSL configuration define generic parameters, as well as provider-specific
parameters. Each provider section can be references in a providers sections. The pkcs11-sign-provider
requires at least the generic provider section parameters module, identity, and activate. For more
details about the generic provider parameters, see config(5).
module (mandatory)
This parameter takes a path to the provider shared object file. For the pkcs11-sign-provider, use
the path to the installation location of pkcs11sign.so (provider shared object).
identity (optional)
This parameter specifies an alias name for the provider and overrides the provider name in the
providers section. It is recommended to use the same name as in the providers.
activate (optional)
If present, this parameter activates the provider section.
The pkcs11-sign-provider defines the provider specific parameters pkcs11sign-module-path, pkcs11sign-
module-init-args, and pkcs11sign-forward.
pkcs11sign-module-path (mandatory)
This parameter takes the path to the shared object file of a PKCS#11 Cryptoki module
implementation. The provider can be used with PKCS#11 Cryptoki modules, implementing the PKCS#11
standard version 3.0 (or compatible).
pkcs11sign-forward (optional)
The pkcs11sign-forward parameter takes the name of a provider, to which all operations are
forwarded, which are not handled by the pkcs11-sign-provider itself, e.g. key derivation for
ECDHE. If this parameter is not specified in the provider section, the pkcs11-sign-provider will
use the built-in OpenSSL default provider as forward.
The syntax for this parameter is "provider=<name_of_forward_provider>". See the configuration
example for more details.
pkcs11sign-module-init-args (optional, not PKCS#11-3.0 conform)
The pkcs11sign-module-init-args takes a parameter string whose reference is passed to the Cryptoki
module as pReserved in CK_C_INITIALIZE_ARGS during initialization.
Note: The PKCS#11 standard v3.0 specifies that the initialization of a Cryptoki module fails if
pReserved is not a NULL_PTR. This parameter will only work with Cryptoki modules (e.g. libnss)
which do not implement this strict behavior. A Cryptoki module, which strictly implements the
PKCS#11 standard v3.0 will fail on C_Initialize() with CKR_ARGUMENTS_BAD if this parameter is set.
EVP Configuration (alg_section)
This section configures the algorithm-properties for the EVP API. The pkcs11-sign-provider should be set
as the preferred provider for all EVP algorithms by adding the expression "?provider=pkcs11sign" to the
default_properties.
Configuration example
This example shows a pkcs11-sign-provider configuration for opencryptoki.
openssl_conf = openssl_init
[openssl_init]
providers = provider_sect
alg_section = evp_properties
[provider_sect]
default = default_sect
base = base_sect
pkcs11sign = pkcs11sign_sect
[evp_properties]
default_properties = ?provider=pkcs11sign
[pkcs11sign_sect]
module = /path/to/pkcs11sign.so
identity = pkcs11sign
pkcs11sign-module-path = /path/to/libopencryptoki.so.0
pkcs11sign-forward = provider=default
activate = 1
ENVIRONMENT
The pkcs11-sign-provider allows to generate a detailed log-file. The log-file generation can be enabled
by setting the environment variable PKCS11SIGN_DEBUG and PKCS11SIGN_DEBUG_LEVEL. The internal logging is
disabled, until the environment variables are set.
PKCS11SIGN_DEBUG
This variable specifies the path to the log-file. If specified, it will enable the logging. The
pkcs11-sign-provider will override an existing file in this location.
PKCS11SIGN_DEBUG_LEVEL
This variable specifies the debugging level. Supported values are error (0), warning (1), info
(2), and debug (3).
SEE ALSO
config(5), pkcs11sign(7)
Copyright
Copyright © International Business Machines Corp. 2022, 2023
pkcs11sign.cnf 2023-05-17 PKCS11SIGN.CNF(5)