Plain Signer
The Plain signer has the fully qualified class name: org.signserver.module.cmssigner.PlainSigner
Overview
The Plain signer can sign arbitrary data and simply produces a signature in the format determined by the configured signature algorithm.
Available Properties
Property | Description |
|---|---|
ACCEPTED_HASH_DIGEST_ALGORITHMS | Comma-separated list of accepted hash digest algorithms. When a request is consisting of a pre-computed hash, the requested digest algorithm must be among the values specified in this property. The property does not have a default value and must be specified if client-side hashing is set as the default, or if overriding via the request is allowed. |
ALLOW_CLIENTSIDEHASHING_OVERRIDE | Property specifying if the request is allowed to override the behavior defined via With this option set to true, it is possible for the client to include the request parameters |
CLIENTSIDEHASHING | Property specifying if the request data should be considered to be a pre-computed (by the requesting client) hash. If this is set to true, With this option set to true, the input to the signer should be the hash value and the request parameter |
DO_LOGREQUEST_DIGEST | Property specifying if the message digest of the requested document should be put in the log. Default: True. |
LOGREQUEST_DIGESTALGORITHM | Property specifying the algorithm used to create the message digest (hash) of the request document to put in the log. Default: SHA256. |
NOCERTIFICATES | Set to true in order to not require a signer certificate to be installed for this signer to become ACTIVE and able to create signatures. Default: False. Supported since 7.4.0. See also general information about this property under Other Properties. As the signer certificate (if any) will not be provided in the status output or status properties but instead the PEM encoded public key is available in the status output under the "Public key" section. The status output is formatted so it may be required to trim white spaces from within the PEM block before some tools will be able to parse it. |
SIGNATUREALGORITHM | Property specifying the algorithm used to sign the data. Default value depends on the signing key:
The default value can also depend on if Client-Side Hashing is used. If a signing key is used together with client-side hashing with no set signature algorithm, RSA and ECDSA keys will be defaulted to NONEwithRSA and NONEwithECDSA respectively. Client-Side Hashing: For Client-Side Hashing, use one of the NONEwith... signature algorithm values and either use For NONEwithRSA (RSASSA-PKCS1-v1.5) specifically, ensure that the required properties are set. If these properties are not configured, the input should adhere to a DER encoded DigestInfo structure as outlined in RFC#3447, page 42, which provides examples. Alternatively, if the DigestInfo/ASN.1 structure is not desired, it can be omitted when invoking the signer. Note that this is the legacy way of configuring client-side hashing with the plain signer. As of SignServer 5.9, it is recommended to instead use one of the The other NONEwith... signature algorithms are all supported by this signer provided that:
In this case, the input data should be the hash value without any special encoding. Currently, the PKCS11CryptoToken relying on Java support for PKCS#11 does not support NONEwithRSAandMGF1 (RSASSA-PSS) while the P11NGCryptoToken supports this algorithm. For more information, see Algorithm Support and Algorithm Support |
Request Parameters
The following meta data parameters can be specified in a request
Property | Description |
|---|---|
CLIENTSIDE_HASHDIGESTALGORITHM | The hash digest algorithm of the pre-computed hash. |
USING_CLIENTSUPPLIED_HASH | If this property is set and defined as true, treat the request data as a pre-computed hash. This requires the |
Worker Log Fields
Field | Description |
|---|---|
REQUEST_DIGEST | A message digest (hash) for the request document in hex encoding. |
REQUEST_DIGEST_ALGORITHM | The name of the message digest (hash) algorithm used for the request digest in the log. |
RESPONSE_ENCODED | The response document (plain signature) in base64 encoding. |