CAdESSigner ConfigurationThe class accepts one or more of the following configuration settings. Configuration settings are similar in functionality to properties, but they are rarely used. In order to avoid "polluting" the property namespace of the class, access to these internal properties is provided through the Config method.
CAdESSigner Configuration Settings
|AddReferencesToAllUsedCertsAndRevInfo: Whether to include all certificates and revocation references in CompleteCertificateRefs attribute.If this property is set, all certificates and revocation references collected during validation will be added to the CompleteCertificateRefs attribute of the signature. This feature is not required by the CAdES specification, however, some processors may expect such behavior.|
|AddReferencesToIrrevocableCerts: Whether references to irrevocable certificates should be included in CompleteCertificateRefs attribute.Set this property to True to include references to irrevocable certificates in CompleteCertificateRefs attribute|
|AddReferenceToSigningCert: Whether a reference to the signing certificate should be included in CompleteCertificateRefs attribute.Set this property to True to include a reference to the signing certificate in CompleteCertificateRefs attribute|
|AllowPartialValidationInfo: Whether to allow for missing validation info.If this property is set to True, signature validation will not fail if validation information for a certificate is absent.|
|CmsOptAnnexKArchiveTimestampV2Mode: Toggles use of Annex K method of calculating validation timestamp hashes.This CMS message option toggles the use of Annex K method of calculating validation timestamp hashes. Switch this option off to stick to RFC5126 p6.3.5 method.|
|CmsOptCheckATSHashIndexElements: Enables extra checks when processing ATSHashIndex attribute.This CMS message option enables an extra check to make sure every hash in ATSHashIndex has an associated CMS element.|
|CmsOptCompareRDNAsStrings: Enforces comparison of RDN elements as text strings, rather than their byte encodings.This CMS message option enforces comparison of string RDN elements as text strings rather than their original byte encodings.|
|CmsOptDigitPADSSCompatibility: Enables Digit PADSS compatibility mode.This CMS message option enables compatibility mode with Digit PADSS software.|
|CmsOptForceSigningCertificateV2Usage: Enforces use of signing-certificate-v2 attribute.This CMS message option enforces the use of signing-certificate-v2 attribute in favour of older signing-certificate-v1. Current regulations require that signing-certificate-v2 is used at all times.|
|CmsOptIgnoreDERReqInArchiveTimestamps: Switches off DER encoding requirement for archival timestamps.This CMS message option switches off DER encoding requirement for archival timestamps (normally meaning no attribute reordering). This setting is a workaround for certain buggy CAdES products.|
|CmsOptImzagerMIMCompatibility: Enables Imzager MIM compatibility mode.This CMS message option enables compatibility mode with Imzager MIM software.|
|CmsOptIncludeCertToAttributes: Regulates whether to include the signing certificate to the signature as the signing-certificate attribute.This CMS message option controls inclusion of the signing certificate as the signing-certificate attribute. Current regulations require that this attribute is present.|
|CmsOptIncludeCertToMessage: Regulates whether to include the signing certificate and its chain to the CMS.This CMS message option controls inclusion of the signing certificate to the CMS structure. It is recommended that the certificate is included. Note that this option has no effect if the signature level used (e.g. XL) enforces inclusion of the certificate to the message.|
|CmsOptInsertContentType: Regulates whether the content-type time attribute should be included in the signature structure.This CMS message option specifies whether the content-type attribute should be included in the signature structure.|
|CmsOptInsertMessageDigests: Regulates whether the message-digest signed attribute should be included in the signature structure.This CMS message option controls inclusion of the message-digest attribute in the signature structure. Current regulations require that this attribute is present at all times.|
|CmsOptInsertSigningTime: Regulates whether the signing-time attribute should be included in the signature structure.This CMS message option specifies whether the signing-time attribute should be included in the signature structure. Switch it off to suppress inclusion of the signing-time attribute.|
|CmsOptSkipEnvContentInfoOnSigArchival: Excludes hashing of enveloped content when calculating an archival timestamp.This CMS message option excludes hashing of enveloped content when calculating an archival timestamp. This setting is a workaround for certain buggy CAdES products.|
|CmsOptUseATSHashIndexV1: Enables use of ATSHashIndexV1 attribute.This CMS message option enables use of deprecated ATSHashIndexV1 attribute when calculating archival timestamp V3 hashes.|
|CmsOptUseGeneralizedTimeFormat: Enables or disables encoding of the signing-time attribute using ASN.1 GENERALIZEDTIME type.This CMS message option controls whether the signing-time attribute should be encoded as GENERALIZEDTIME or UTCTIME. Current regulations require that the GENERALIZEDTIME type is used at all times.|
|CmsOptUseGenericSigAlgorithmOIDs: Enables use of generic signature algorithm OIDs in the signature.This CMS message option enforces the use of generic public key algorithm OIDs (e.g. rsaEncryption) instead of hash algorithm-specific variants (e.g. sha256withRsaEncryption). This setting is a workaround for certain buggy CAdES products.|
|CmsOptUsePlainContentForTimestampHashes: Makes CAdESSigner ignore ASN.1 content formatting when calculating timestamp hashes.This CMS message option causes CAdESSigner to ignore ASN.1 formatting when feeding content to timestamp hashes (might make a difference with split OCTETSTRINGs for extra long contents). This option is only applicable to content timestamps and ArchivalTimestampV1's. This setting is a workaround for certain buggy CAdES products.|
|ContentType: The content type of the CMS message. Specifies the content type of the CMS message.|
|DeepCountersignatureValidation: Whether to validate countersignatures.When this property is set, deep validation of countersignatures is performed.|
|DeepTimestampValidation: Whether to perform deep validation of all timestamps. When this property is set, deep validation of all signature's timestamps is performed.|
|ForceCompleteChainValidation: Whether to check the CA certificates when the signing certificate is invalid. Set this property to True to check issuer (CA) certificates when the signing certificate is invalid.|
|ForceCompleteChainValidationForTrusted: Whether to continue with the full validation up to the root CA certificate for mid-level trust anchors. Set this property to True to enable full chain validation for explicitly trusted intermediary or end-entity certificates. This may be useful when creating signatures to enforce completeness of the collected revocation information. It often makes sense to set this property to false when validating signatures to reduce validation time and avoid issues with badly configured environments.|
|GracePeriod: Specifies a grace period to apply during revocation information checks.Use this property to specify a grace period (in seconds). Grace period applies to certain subprotocols, such as OCSP, and caters to the inaccuracy and/or missynchronization of clocks on different participating systems. Any time deviations within the grace period will be tolerated.|
|IgnoreChainValidationErrors: Don't stop on chain validation errors. Set this property to True to make the component ignore any chain validation issues. This may be useful if the signature is created in an environment with a different trust settings to the validation environment.|
|IgnoreOCSPNoCheckExtension: Whether OCSP NoCheck extension should be ignored.Set this property to false to make the validation engine ignore the OCSP no-check extension. You would normally need to set this property when validating severely non-compliant chains that misuse the extension, causing chain loops or other validation issues.|
Whether trusted Windows Certificate Stores should be treated as trusted.Specifies whether, during chain validation, the component should respect
the trust to CA certificates as configured in the operating system.
In Windows this effectively defines whether the component should trust the
certificates residing in the Trusted Root Certification Authorities store.
If IgnoreSystemTrust is True, certificates residing in the trusted root store are treated as if they are known, rather than trusted. Only certificates provided via other means (such as TrustedCertificates property) are considered trusted.
|ImplicitlyTrustSelfSignedCertificates: Whether to trust self-signed certificates. Set this property to True to implicitly trust all self-signed certificates. Use it with care as trusting just about every self-signed certificate is unwise. One exceptional reason where this property may be handy is where a chain is validated in an environment that is not supposed to trust it (for example, a signing, rather than verifying environment, or a QA server). Trusting all self-signing certificates (which are normally trusted) allows to emulate the verifying environment without actually changing its security settings.|
|PolicyExplicitText: The explicit text of the user notice. Use this property to specify the explicit text of the user notice to be displayed when the signature is verified.|
|PolicyUNNumbers: The noticeNumbers part of the NoticeReference CAdES attribute. Defines the "noticeNumbers" part of the NoticeReference signature policy qualifier for CAdES-EPES.|
|PolicyUNOrganization: The organization part of the NoticeReference qualifier. Defines the "organization" part of the NoticeReference signature policy qualifier for CAdES-EPES.|
|PromoteLongOCSPResponses: Whether long OCSP responses are requested. Set this property to True to force the class to publish 'long' form of OCSP responses. Otherwise, only BasicOCSPResponse blobs are promoted.|
|ReportInvalidTimestamps: Whether to raise errors for invalid timestamps.When this property is set, an invalid timestamp will be considered a critical issue.|
The algorithm scheme parameters to employ.Use this property to specify the parameters of the algorithm scheme if needed.
|SkipValidationTimestampedSignatures: Whether to validate signatures with validation timestamps.Set this property to False to enforce validation of the signatures containing validation timestamps.|
|SuppressValuesInC: Makes CAdESSigner not add certificate and revocation values to its C-level signatures.In default configuration CAdESSigner includes both references and values to its C-level signatures. Switch this setting on to make it exclude the values from such signatures (only leaving the references).|
|TempPath: Path for storing temporary files.This setting specifies an absolute path to the location on disk where temporary files are stored.|
|TLSChainValidationDetails: Contains the advanced details of the TLS server certificate validation.Check this property in TLSCertValidate event handler to access the TLS certificate validation details.|
|TLSChainValidationResult: Contains the result of the TLS server certificate validation.Check this property in TLSCertValidate event handler to obtain the TLS certificate validation result.|
|TLSClientAuthRequested: Indicates whether the TLS server requests client authentication.Check this property in TLSCertValidate event handler to find out whether the TLS server requests the client to provide the authentication certificate. If this property is set to true, provide your certificate via TLSClientChain property. Note that the component may fire this event more than once during each operation, as more than one TLS-enabled server may need to be contacted.|
|TLSValidationLog: Contains the log of the TLS server certificate validation.Check this property in TLSCertValidate event handler to retrieve the validation log of the TLS server.|
|TolerateMinorChainIssues: Whether to tolerate minor chain issues.TBD|
|TspHashAlgorithm: Sets a specific hash algorithm for use with the timestamping service.In default configuration CAdESSigner uses the same hash algorithm (taken from the HashAlgorithm property) for the main signature and any associated timestamps. Use this property to specify a different hash algorithm for the timestamp.|
|TspReqPolicy: Sets a request policy ID to include in the timestamping request.Use this property to provide a specific request policy OID to include in the timestamping request. Use the standard human-readable OID notation (188.8.131.52.5).|
|UseArchivalTimestampV3: Whether to stick to archival timestamp V3 in the new signatures.Set this property to True to use CAdES-X-L with Time Type 3.|
|UseMicrosoftCTL: Enables or disables automatic use of Microsoft online certificate trust list.Enable this property to make the chain validation module automatically look up missing CA certificates in the public Windows Update repository.|
|UsePSS: Whether to use RSASSA-PSS algorithm.Although the RSASSA-PSS algorithm provides better security than a classic RSA scheme (PKCS#1-1.5), please take into account that RSASSA-PSS is a relatively new algorithm which may not be understood by older implementations.|
|UseSystemCertificates: Enables or disables the use of the system certificates.Use this property to tell chain validation module automatically look up missing CA certificates in the system certificates. In many cases it is beneficial to switch this property on, as the operating system certificate configuration provides a representative trust framework.|
|UseUndefSize: Toggles the use of indefinite/definite ASN.1 tag length encoding.Switch this property off to make CAdESSigner use definite ASN.1 tag length encoding (explicit lengths) for signed data. The default setting is true, which makes the resulting ASN.1 structure use indefinite length encoding (30 80 ..data.. 00 00).|
|UseValidationCache: Enables or disable the use of the product-wide certificate chain validation cache.Use this property to enable or disable the use of the global chain validation cache. If enabled, the component will consult the product-wide validation cache when validating the signing chains. Also, the outcomes of any new chain validations performed by the component, both interim and final, will be saved in the cache and available for re-use by any future validations. Disable this property to ignore the cache and always perform the validation from the fresh start.|
Base Configuration Settings
Enables or disable private key integrity check before use.This global property enables or disables private key material check before each signing operation. This slows down performance a bit,
but prevents a selection of attacks on RSA keys where keys with unknown origins are used.
You can switch this property off to improve performance if your project only uses known, good private keys.
Specifies whether a cookie cache should be used for HTTP(S) transports.Set this property to enable or disable cookies caching for the class.
Supported values are:
|Cookies: Gets or sets local cookies for the class (supported for HTTPClient, RESTClient and SOAPClient only).Use this property to get cookies from the internal cookie storage of the class and/or restore them back between application sessions.|
|DefDeriveKeyIterations: Specifies the default key derivation algorithm iteration count.This global property sets the default number of iterations for all supported key derivation algorithms. Note that you can provide the required number of iterations by using properties of the relevant key generation component; this global setting is used in scenarios where specific iteration count is not or cannot be provided.|
Enables or disables finite field DHE key exchange support in TLS clients.This global property enables or disables support for finite field DHE key exchange methods in TLS clients. FF DHE is a slower
algorithm if compared to EC DHE; enabling it may result in slower connections.
This setting only applies to sessions negotiated with TLS version 1.3.
|GlobalCookies: Gets or sets global cookies for all the HTTP transports.Use this property to get cookies from the GLOBAL cookie storage or restore them back between application sessions. These cookies will be used by all the classes that have its CookieCaching property set to "global".|
|HttpUserAgent: Specifies the user agent name to be used by all HTTP clients.This global setting defines the User-Agent field of the HTTP request provides information about the software that initiates the request. This value will be used by all the HTTP clients including the ones used internally in other classes.|
Specifies the debug log destination.Contains a comma-separated list of values that specifies where debug log should be dumped.
Supported values are:
Specifies the debug log details to dump.Contains a comma-separated list of values that specifies which debug log details to dump.
Supported values are:
|LogFile: Specifies the debug log filename.Use this property to provide a path to the log file.|
Specifies the debug log filters.Contains a comma-separated list of value pairs ("name:value") that describe filters.
Supported filter names are:
Specifies the log flush mode.Use this property to set the log flush mode. The following values are defined:
Specifies the debug log level.Use this property to provide the desired debug log level.
Supported values are:
Specifies the maximum number of events to cache before further action is taken.Use this property to specify the log event number threshold. This threshold may have different effects,
depending on the rotation setting and/or the flush mode.
The default value of this setting is 100.
Specifies the log rotation mode.Use this property to set the log rotation mode. The following values are defined:
|MaxASN1BufferLength: Specifies the maximal allowed length for ASN.1 primitive tag data.This global property limits the maximal allowed length for ASN.1 tag data for non-content-carrying structures, such as certificates, CRLs, or timestamps. It does not affect structures that can carry content, such as CMS/CAdES messages. This is a security property aiming at preventing DoS attacks.|
|MaxASN1TreeDepth: Specifies the maximal depth for processed ASN.1 trees.This global property limits the maximal depth of ASN.1 trees that the component can handle without throwing an error. This is a security property aiming at preventing DoS attacks.|
|OCSPHashAlgorithm: Specifies the hash algorithm to be used to identify certificates in OCSP requests.This global setting defines the hash algorithm to use in OCSP requests during chain validation. Some OCSP responders can only use older algorithms, in which case setting this property to SHA1 may be helpful.|
|UseOwnDNSResolver: Specifies whether the client components should use own DNS resolver.Set this global property to false to force all the client components to use the DNS resolver provided by the target OS instead of using own one.|
|UseSharedSystemStorages: Specifies whether the validation engine should use a global per-process copy of the system certificate stores.Set this global property to false to make each validation run use its own copy of system certificate stores.|
Enforces or disables the use of system-driven RSA OAEP and PSS computations.This global setting defines who is responsible for performing RSA-OAEP and RSA-PSS computations where the private key is stored in a Windows system store and is exportable.
If set to true, SBB will delegate the computations to Windows via a CryptoAPI call. Otherwise, it will export the key material and perform the computations
using its own OAEP/PSS implementation.
This setting only applies to certificates originating from a Windows system store.
|UseSystemRandom: Enables or disables the use of the OS PRNG.Use this global property to enable or disable the use of operating system-driven pseudorandom number generation.|