ASiCSigner 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.
ASiCSigner Configuration Settings
Specifies the ASiC options.Contains a comma-separated list of values that specifies ASiC options.
Supported values are:
|AsyncDocumentID: Specifies the document ID for SignAsyncEnd() call.Use this property when working with multi-signature DCAuth requests and responses to uniquely identify documents signed within a larger batch. This value helps ASiCSigner identify the correct signature in the returned batch of responses. If using batched requests, make sure to set this property to the same value on both pre-signing (SignAsyncBegin) and completion (SignAsyncEnd) stages.|
|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: Specifies the content-type of the container.This property represents the "/mimetype" service entry of the container. For ASiC-S the "application/vnd.etsi.asic-s+zip" content-type or the original content-type of the archived document are allowed. For ASiC-E, only the "application/vnd.etsi.asic-e+zip" is allowed.|
|ForceCompleteChainValidation: Whether to check the CA certificates when the signing certificate is invalid.Set this property to True to check issuer (CA) certificates if the signing or an intermediate chain 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.|
Specifies whether the directory META-INF entry should be generated.Set this property to False to suppress generation of the directory META-INF entry in the container/archive.
Note: ETSI ASiC Conformance Checker dislikes archives with the directory META-INF entry.
|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: Whether to ignore any certificate chain validation issues.Enable this property to ignore any chain validation errors when creating a signature. This may be useful if the signature is created in an environment which uses 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 or XAdES attribute.Defines the "noticeNumbers" part of the NoticeReference signature policy qualifier for CAdES-EPES, in the form of comma-separated notice numbers.|
|PolicyUNOrganization: The organization part of the NoticeReference qualifier.Defines the "organization" part of the NoticeReference signature policy qualifier for CAdES-EPES.|
|ProductionPlace: The value to store in the ProductionPlace XAdES attribute.Sets the value of the ProductionPlace XAdES attribute.|
|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.|
Specifies the hash algorithm for references.Use this property to specify the reference's hash algorithm.
The default value is empty string, in this case, the hash algorithm specified in HashAlgorithm property is used.
Specifies the MIME type to apply to the processed file.Assign this property with the MIME type to apply to the processed file reference,
for example application/vnd.openxmlformats-officedocument.wordprocessingml.document.
To set different mime types for more than one file, subscribe to Notification event and handle the AddReference event, where you can provide a separate MIME type for every reference.
|TempPath: Path for storing temporary files.This setting specifies an absolute path to the location on disk where temporary files are stored.|
|TimestampResponse: A base16-encoded timestamp response received from a TSA.When using virtual:// timestamp endpoints, assign this property in your Notification event handler with the TSP response that you receive from the TSA. Remember to encode the response in hex (base16).|
|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|
|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.|
|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.|
|UseUTF8Filenames: Specifies whether to use UTF-8 filenames.Set this property to False to use system encoding for filenames inside container.|
|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.|