XAdESSigner Module
Properties Methods Events Config Settings Errors
The XAdESSigner module creates XAdES-compliant signature files.
Syntax
SecureBlackbox.Xadessigner
Remarks
XAdESSigner can sign XML documents in accordance with XAdES standard. Originally developed and adopted in the European Union, XAdES has quickly become a recognized international standard for signing XML documents. XAdES provides a convenient framework for creating short-lived and long-term signatures over any kind of XML documents, and is now used by governments, healthcare providers, banks, and independent service providers all across the globe.
Standards and technologies supported
XAdESSigner offers the following signing capabilities:
- Create and upgrade XAdES signatures in accordance with the most recent XAdES specification (ETSI EN 319 132). Earlier versions are also supported.
- All profiles are supported (BES, EPES, T, C, X, XL, A, including the Extended variants).
- Timestamping using external TSAs.
- All industry-standard cryptographic algorithms (RSA, ECDSA, SHA256-512, and many others).
Configuring the signature parameters
Configuring XAdESSigner to make it produce a signature of the right type is the main task you would need to perform in your code. Normally the service or software you will be communicating your XML documents to will provide you with the list of requirements that your signatures should match.
Typically, those will dictate the following key aspects of the signatures:
- The signature Form, sometimes referred to as Level (such BES, T, XL, A, or Extended-XLong). This can be adjusted with the XAdESForm property.
- Whether the signature should be detached, enveloped, or enveloping: adjust via SignatureType property.
- When creating a timestamped signature (such as T or A), provide the address of your online TSA service via TimestampServer property.
- When creating long-term signatures that include the signing chain and validation material, tune up validation parameters via RevocationCheck, OfflineMode, and IgnoreChainValidationErrors properties.
In some circumstances you will also need to adjust the following lower-level settings:
- Choose a specific XAdES version between 1.4.1, 1.3.2, 1.2.2, and 1.1.1, and assign it to XAdESVersion property.
- Specify the needed canonicalization method using the CanonicalizationMethod property.
- Provide the hash algorithm via the HashAlgorithm property.
Signing certificates
XAdESSigner can use certificates residing on different media. Besides generic certificates stored in PFX or PEM files (A1), it can operate with non-exportable certificates residing on hardware media (A3) or in the cloud.
Non-exportable certificates can be accessed transparently via a Windows CSP or a PKCS#11 driver, if supplied by the certificate issuer. Proprietary interfaces can be plugged in with the external signing feature (see below).
You can use CertificateManager and CertificateStorage components to access the signing certificate. Assign the certificate to SigningCertificate property, and optionally provide the remainder of its chain via SigningChain property.
Note: If signing with a non-exportable key (such as residing on a hardware device or in the cloud), please make sure you keep the original CertificateStorage object open until the signing is completed. This is because the storage component provides a 'bridge' to the private key. If the storage is closed prematurely, this bridge is destroyed, and the private key can't be used.
You don't need to provide a signing certificate or chain when timestamping and upgrading signatures, since this type of operation does not involve the signing private key.
Signing the document
Now that you have set up all signature properties and attached the signing certificate, it is time to proceed to signing. You can provide the input document in one of the following forms: as a file (assign the path to InputFile property), as a stream (assign to InputStream property), or as a byte array (assign to InputBytes). Similarly, the output can be collected in one of the same forms, either by passing the destination path or stream via OutputFile and OutputStream respectively, or by reading the resulting document bytes from the OutputBytes property after the signing completes.
Having set up the input and output (unless using OutputBytes, which should be read later), call the component's Sign method. This will initiate the signing process. Depending on the settings, the signing may be as straightforward as calculating the document hash and signing it with the private key (e.g. in XAdES-BES variant), or it may involve advanced chain validation routines (XAdES-XL or -A). During the latter the component may contact a number of external revocation information sources (CRL and OCSP servers) to establish the validity of the signing certificate.
If a TSA server was provided via the TimestampServer property, the component will contact it too to timestamp the new signature.
During the signing XAdESSigner may fire events to let your code know of certain conditions. It may fire TLSCertValidate if one of the HTTP endpoints involved in the operation (which may be a CRL, OCSP, or TSA service) works over TLS and needs its certificate to be validated. It may also fire FormatElement and FormatText to let your code apply custom formatting to XML document elements. If XAdESSigner fails to resolve one of the references in the signature, it will fire ResolveReference to let your code help with resolving it.
When the signing operation completes, the output file, stream, or byte array will contain the signature of the requested kind. Note that while nveloped and enveloping signatures contain the signed content within them, detached signatures assume that you supply the original content separately.
Apart from signing, XAdESSigner can perform operations on signatures of other kinds. Use Upgrade method to upgrade an existing XAdES signature to a higher level (e.g. BES to XL). Use Timestamp to add a generic or validation timestamp to an existing signature.
External signing and DCAuth
XAdESSigner, like many other components offered by the product, supports two methods of signing with external keys. These methods are fully independent of each other: you can choose the one that suits your usage scenario best.
Synchronous method: ExternalSign
This is a simpler method that basically lets you infiltrate into the heart of the signing routine by taking care of the hash signing operation. The component does the rest of the job (hash calculation, preparation of signature objects, CRL/OCSP retrieval).
To initiate this method, call SignExternal instead of Sign. When the hash is ready, it will be passed back to your code with ExternalSign event. Your event handler needs to sign the hash with the private key and return the created signature back to the component - which will embed it into the document.
You don't need your signing certificate to contain an associated private key when using this method. The certificate itself (its public copy) may be needed though, as it is often included in the hash calculation.
This method is synchronous, meaning SignExternal provides you the results immediately upon its completion.
Asynchronous method: DCAuth
DCAuth is a SecureBlackbox-own know-how technology. This protocol was designed to allow sharing of private keys across environments, allowing the signer and the private key to reside on different systems. It works in the following way:
- The signing party - such as XAdESSigner - initiates the operation using SignAsyncBegin call. This produces two outcomes: a pre-signed document (a document with a blank signature placeholder), and a request state (an object containing a hash that needs to be signed). At this point the XAdESSigner instance can be released, and the process itself terminated (which may be useful when run as part of a web page).
- The request state is passed to the private key holder party. The private key holder passes the request state to a DCAuth object, which parses the request state, extracts the hash, and signs it. The output of DCAuth processing is another object, response state, which contains the signature. The private key holder then sends the response state back to the signing party.
- The signing party re-creates the controls, and passes the response state, together with the pre-signed version of the document, to the signer's SignAsyncEnd method. SignAsyncEnd extracts the signature from the response state and incorporates it into the pre-signed document.
This method is asynchronous in that sense that, from the signing party's viewpoint, it splits the signing operation into the pre-signing and completion stages which can be performed independently from each other and in different execution contexts. This makes this method particularly helpful for use in web pages and other scenarios where the signing key is not available in real time.
Fine-grained chain validation setup
Chain validation is a sophisticated, multi-faceted procedure that involves a lot of variables. Depending on the configuration of your operating environment, the specifics of the PKI framework being used, and the validation policy you need to follow, you may want to tune up your chain validation parameters so they fit them best. A summary of such parameters is given below.
- RevocationCheck lets you choose between and/or prioritize revocation origins. OCSP sources are often preferred to CRL because of their real-time capability and the smaller size of validation tokens they produce.
- OfflineMode is a master switch that stops the class from looking for any validation tokens online. If this property is switched on, the class will only use the KnownCertificates, TrustedCertificates, KnownCRLs, and KnownOCSPs collections to look for the missing validation material.
- IgnoreChainValidationErrors makes the class ignore any major validation issues it encounters (such us an untrusted chain or missing CRL). This option is handy for debugging and for creating signatures in the environments where the signing certificate is not trusted.
- KnownCertificates, KnownCRLs, and KnownOCSPs let you provide your own validation material. This may be useful when working in OfflineMode, where the signer has no access to the validation sources, or where the validation material has already been collected.
- TrustedCertificates lets you provide a list of trust anchors, either as a complement to the system's or as an alternative to it.
- BlockedCertificates lets you provide a list of blocked/distrusted certificates. Any CA certificate contained in it will be deemed untrusted/invalid.
The following parameters are not directly related to chain validation, but may have an implicit effect on it.
- Proxy, SocketSettings, and TLSSettings let you tune up the connectivity and TLS options in accordance with local preferences.
- TLSClientChain lets you provide the client certificate and its chain for TLS client authentication.
- Subscribe to TLSCertValidate to validate any TLS certificates of the services involved in chain validation.
The results of the chain validation procedure, upon its completion, are published in the following properties:
- ChainValidationResult contains the primary result of the chain validation routine: valid, valid but untrusted, invalid, or undefined.
- ChainValidationDetails provides the details of the factors that contributed to the chain validation result, such as an outdated certificate, a missing CRL, or a missing CA certificate.
- ValidationLog contains the detailed chain validation log. The log can often be very helpful in nailing down various validation issues.
Property List
The following is the full list of the properties of the module with short descriptions. Click on the links for further details.
AutoValidateSignatures | Specifies whether module should validate any present signatures when the document is opened. |
BlockedCertificates | The certificates that must be rejected as trust anchors. |
CRLs | A collection of certificate revocation lists embedded into the signature by the signer. |
DataBytes | Use this property to pass the external data to module in the byte array form. |
DataFile | A file containing the external data covered by a detached signature. |
DataType | Specifies the external data type. |
DataURI | Specifies a detached data resource URI. |
Encoding | Specifies XML encoding. |
ExternalCrypto | Provides access to external signing and DC parameters. |
FIPSMode | Reserved. |
IgnoreChainValidationErrors | Makes the module tolerant to chain validation errors. |
InputBytes | Use this property to pass the input to module in byte array form. |
InputFile | The XML document to sign. |
KnownCertificates | Additional certificates for chain validation. |
KnownCRLs | Additional CRLs for chain validation. |
KnownOCSPs | Additional OCSP responses for chain validation. |
NewSignature | Provides access to new signature properties. |
OCSPs | A collection of OCSP responses embedded into the signature. |
OfflineMode | Switches the module to offline mode. |
OutputBytes | Use this property to read the output the module object has produced. |
OutputFile | Specifies the file where the signed document will be saved. |
Profile | Specifies a pre-defined profile to apply when creating the signature. |
Proxy | The proxy server settings. |
References | A list of references to the data to be signed. |
RevocationCheck | Specifies the kind(s) of revocation check to perform for all chain certificates. |
Signatures | Provides details of all signatures found in the XML document. |
SigningCertificate | The certificate to be used for signing. |
SigningChain | The signing certificate chain. |
SocketSettings | Manages network connection settings. |
Timestamps | Contains a collection of timestamps for the processed document. |
TimestampServer | The address of the timestamping server. |
TLSClientChain | The TLS client certificate chain. |
TLSServerChain | The TLS server's certificate chain. |
TLSSettings | Manages TLS layer settings. |
TrustedCertificates | A list of trusted certificates for chain validation. |
ValidationMoment | The time point at which signature validity is to be established. |
XPathNamespaces | Specifies namespaces for the XPath expression. |
Method List
The following is the full list of the methods of the module with short descriptions. Click on the links for further details.
AddDataReference | Creates a new XML reference to the specified data. |
AddReference | Creates a new XML reference to the specified XML element. |
AddTimestampValidationData | Use this method to add timestamp validation data to the signature. |
AddValidationDataRefs | Use this method to add signature validation references to the signature. |
AddValidationDataValues | Use this method to add signature validation values to the signature. |
Close | Closes an opened document. |
Config | Sets or retrieves a configuration setting. |
DoAction | Performs an additional action. |
ExtractAsyncData | Extracts user data from the DC signing service response. |
GetInnerXML | Get the inner XML content of the selected XML element. |
GetOuterXML | Get the outer XML content of the selected XML element. |
GetTextContent | Get the text content of the selected XML element. |
Open | Opens a document for signing or updating. |
Revalidate | Revalidates a signature in accordance with current settings. |
SetInnerXML | Set the inner XML content of the selected XML element. |
SetTextContent | Set the text content of the selected XML element. |
Sign | Signs an XML document. |
SignAsyncBegin | Initiates the asynchronous signing operation. |
SignAsyncEnd | Completes the asynchronous signing operation. |
SignExternal | Signs the document using an external signing facility. |
Timestamp | Use this method to add an timestamp. |
Upgrade | Upgrades existing XAdES signature to a new form. |
Event List
The following is the full list of the events fired by the module with short descriptions. Click on the links for further details.
ChainElementDownload | Fires when there is a need to download a chain element from an online source. |
ChainElementNeeded | Fires when an element required to validate the chain was not located. |
ChainElementStore | This event is fired when a chain element (certificate, CRL, or OCSP response) should be stored along with a signature. |
ChainValidated | Reports the completion of a certificate chain validation. |
ChainValidationProgress | This event is fired multiple times during chain validation to report various stages of the validation procedure. |
DocumentLoaded | This event is fired when the document has been loaded into memory. |
Error | Information about errors during signing. |
ExternalSign | Handles remote or external signing initiated by the SignExternal method or other source. |
FormatElement | Reports the XML element that is currently being processed. |
FormatText | Reports XML text that is currently being processed. |
Notification | This event notifies the application about an underlying control flow event. |
ReferenceValidated | Marks the end of a reference validation. |
ResolveReference | Asks the application to resolve a reference. |
SignatureFound | Signifies the start of signature validation. |
SignatureValidated | Marks the completion of the signature validation routine. |
TimestampFound | Signifies the start of a timestamp validation routine. |
TimestampRequest | Fires when the module is ready to request a timestamp from an external TSA. |
TimestampValidated | Reports the completion of the timestamp validation routine. |
TLSCertNeeded | Fires when a remote TLS party requests a client certificate. |
TLSCertValidate | This event is fired upon receipt of the TLS server's certificate, allowing the user to control its acceptance. |
TLSEstablished | Fires when a TLS handshake with Host successfully completes. |
TLSHandshake | Fires when a new TLS handshake is initiated, before the handshake commences. |
TLSShutdown | Reports the graceful closure of a TLS connection. |
Config Settings
The following is a list of config settings for the module with short descriptions. Click on the links for further details.
AddAllDataObjectsTimestamp | Whether to add all data objects timestamp during signing. |
ClaimedRoleText | The text of the claimed role. |
ClaimedRoleXML | The XML content of the claimed roles. |
CommitmentTypeIndicationAllSignedDataObjects[Index] | Specifies the CommitmentTypeIndication's AllSignedDataObjects. |
CommitmentTypeIndicationCount | The number of the CommitmentTypeIndication elements. |
CommitmentTypeIndicationIdentifier[Index] | Specifies the CommitmentTypeIndication's CommitmentTypeId's Identifier. |
CommitmentTypeIndicationIdentifierDescription[Index] | Specifies the CommitmentTypeIndication's CommitmentTypeId's Description. |
CommitmentTypeIndicationIdentifierDocumentationReferences[Index] | Specifies the CommitmentTypeIndication's CommitmentTypeId's DocumentationReferences. |
CommitmentTypeIndicationIdentifierQualifier[Index] | Specifies the CommitmentTypeIndication's CommitmentTypeId's IdentifierQualifier. |
CommitmentTypeIndicationObjectReference[Index] | Specifies the CommitmentTypeIndication's ObjectReference. |
CommitmentTypeIndicationQualifiersXML[Index] | The XML content of the CommitmentTypeIndication's Qualifiers. |
DataObjectFormatCount | The number of the DataObjectFormat elements. |
DataObjectFormatDescription[Index] | Specifies the DataObjectFormat's Description. |
DataObjectFormatEncoding[Index] | Specifies the DataObjectFormat's Encoding. |
DataObjectFormatMimeType[Index] | Specifies the DataObjectFormat's MimeType. |
DataObjectFormatObjectIdentifier[Index] | Specifies the DataObjectFormat's ObjectIdentifier's Identifier. |
DataObjectFormatObjectIdentifierDescription[Index] | Specifies the DataObjectFormat's ObjectIdentifier's Description. |
DataObjectFormatObjectIdentifierDocumentationReferences[Index] | Specifies the DataObjectFormat's ObjectIdentifier's DocumentationReferences. |
DataObjectFormatObjectIdentifierQualifier[Index] | Specifies the DataObjectFormat's ObjectIdentifier's IdentifierQualifier. |
DataObjectFormatObjectReference[Index] | Specifies the DataObjectFormat's ObjectReference. |
DetachedResourceURI | Specifies a detached resource URI. |
DislikeOpenEndedOCSPs | Tells the module to discourage OCSP responses without an explicit NextUpdate parameter. |
EnvelopingObjectEncoding | Specifies the enveloping object encoding. |
EnvelopingObjectID | Specifies the enveloping object identifier. |
EnvelopingObjectMimeType | Specifies the enveloping object MIME type. |
ExclusiveCanonicalizationPrefix | Specifies the exclusive canonicalization prefix. |
ForceCompleteChainValidation | Whether to check the 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. |
GracePeriod | Specifies a grace period to apply during revocation information checks. |
HMACKey | The key value for HMAC. |
HMACOutputLength | Sets the length of the HMAC output. |
IDAttributeName | Specifies the custom name of ID attribute. |
IDAttributeNamespaceURI | Specifies the custom namespace URI of ID attribute. |
IgnoreChainLoops | Whether chain loops should be ignored. |
IgnoreOCSPNoCheckExtension | Whether the OCSP NoCheck extension should be ignored. |
IgnoreSystemTrust | Whether trusted Windows Certificate Stores should be treated as trusted. |
IgnoreTimestampFailure | Whether to ignore time-stamping failure during signing. |
ImplicitlyTrustSelfSignedCertificates | Whether to trust self-signed certificates. |
IncludeKey | Specifies whether to include the signing key to the signature. |
IncludeKeyValue | Specifies whether the key value must be included to the signature. |
IncludeKnownRevocationInfoToSignature | Whether to include custom revocation info to the signature. |
InclusiveNamespacesPrefixList | Specifies the InclusiveNamespaces PrefixList. |
InputType | Specifies the Input type. |
InsertBeforeXMLElement | Defines the reference XML element for signature insertion. |
KeyInfoCustomXML | The custom XML content for KeyInfo element. |
KeyInfoDetails | Specifies the signing key info details to include to the signature. |
KeyInfoID | Specifies the ID for KeyInfo element. |
KeyName | Contains information about the key used for signing. |
ManifestCount | The number of the manifest elements. |
ManifestID[Index] | The ID of the manifest element. |
ManifestObjectIndex[Index] | The object element index to which the manifest element belongs. |
ManifestXML[Index] | The XML content of the manifest element. |
ObjectCount | The number of the object elements. |
ObjectEncoding[Index] | The Encoding of the object element. |
ObjectID[Index] | The ID of the object element. |
ObjectMimeType[Index] | The MIME type of the object element. |
ObjectSignaturePropertiesCount | The number of the signature properties elements. |
ObjectSignaturePropertiesID[Index] | The ID of the signature properties element. |
ObjectSignaturePropertiesObjectIndex[Index] | The object element index to which the signature properties element belongs. |
ObjectSignaturePropertiesXML[Index] | The XML content of the signature properties element. |
ObjectSignaturePropertyCount | The number of the signature property elements. |
ObjectSignaturePropertyID[Index] | The ID of the signature properties element. |
ObjectSignaturePropertyPropertiesIndex[Index] | The signature properties element index to which the signature property element belongs. |
ObjectSignaturePropertyTarget[Index] | The Target of the signature properties element. |
ObjectSignaturePropertyXML[Index] | The XML content of the signature property element. |
ObjectXML[Index] | The XML content of the object element. |
ProductionPlace | Identifies the place of the signature production. |
PromoteLongOCSPResponses | Whether long OCSP responses are requested. |
QualifyingPropertiesID | Specifies the ID for QualifyingProperties element. |
QualifyingPropertiesObjectID | Specifies the ID for object with QualifyingProperties element. |
QualifyingPropertiesReferenceCount | The number of the QualifyingPropertiesReference elements. |
QualifyingPropertiesReferenceID[Index] | Specifies the QualifyingPropertiesReference's ID. |
QualifyingPropertiesReferenceURI[Index] | Specifies the QualifyingPropertiesReference's URI. |
RefsTimestampType | Specifies references timestamp type to include to the signature. |
SignatureCompliance | Specifies the signature compliance mode. |
SignatureID | Specifies the ID for Signature element. |
SignaturePrefix | Specifies the signature prefix. |
SignatureValue | Contains the SignatureValue. |
SignatureValueID | Specifies the ID for SignatureValue element. |
SignedInfoID | Specifies the ID for SignedInfo element. |
SignedPropertiesID | Specifies the ID for SignedProperties element. |
SignedPropertiesReferenceCanonicalizationMethod | Specifies the canonicalization method used in SignedProperties reference. |
SignedPropertiesReferenceHashAlgorithm | Specifies the hash algorithm used in SignedProperties reference. |
SignedPropertiesReferenceID | Specifies the ID for Reference element that points to SignedProperties element. |
SignedPropertiesReferenceInclusiveNamespacesPrefixList | Specifies the InclusiveNamespaces PrefixList used in SignedProperties reference. |
SignedPropertiesReferenceIndex | Specifies the index of SignedProperties reference. |
SignedSignaturePropertiesID | Specifies the ID for SignedSignatureProperties element. |
SigningCertificatesHashAlgorithm | Specifies the hash algorithm used for SigningCertificates. |
SigPolicyDescription | signature policy description. |
SigPolicyExplicitText | The explicit text of the user notice. |
SigPolicyHash | The hash value of the signature policy. |
SigPolicyHashAlgorithm | Specifies the hash algorithm used to compute the signature policy hash. |
SigPolicyID | Identifies the signature policy. |
SigPolicyNoticeNumbers | Contains user notice numbers. |
SigPolicyNoticeOrganization | The organization part of the NoticeReference qualifier. |
SigPolicyURI | Signature policy URI. |
TempPath | Location where the temporary files are stored. |
TimestampCanonicalizationMethod | Specifies canonicalization method used in timestamp. |
TimestampValidationDataDetails | Specifies timestamp validation data details to include to the signature. |
TLSChainValidationDetails | Contains the advanced details of the TLS server certificate validation. |
TLSChainValidationResult | Contains the result of the TLS server certificate validation. |
TLSClientAuthRequested | Indicates whether the TLS server requests client authentication. |
TLSValidationLog | Contains the log of the TLS server certificate validation. |
TolerateMinorChainIssues | Whether to tolerate minor chain issues. |
TspAttemptCount | Specifies the number of timestamping request attempts. |
TspHashAlgorithm | Sets a specific hash algorithm for use with the timestamping service. |
TspReqPolicy | Sets a request policy ID to include in the timestamping request. |
UseHMACSigning | Whether to use HMAC signing. |
UseMicrosoftCTL | Enables or disables the automatic use of the Microsoft online certificate trust list. |
UsePSS | Whether to use RSASSA-PSS algorithm. |
UseSystemCertificates | Enables or disables the use of the system certificates. |
UseValidationCache | Enables or disable the use of the product-wide certificate chain validation cache. |
ValidationDataRefsDetails | Specifies validation data references details to include to the signature. |
ValidationDataRefsHashAlgorithm | Specifies the hash algorithm used in validation data references. |
ValidationDataValuesDetails | Specifies validation data values details to include to the signature. |
WriteBOM | Specifies whether byte-order mark should be written when saving the document. |
XAdESPrefix | Specifies the XAdES prefix. |
XAdESv141Prefix | Specifies the XAdES v1.4.1 prefix. |
XMLFormatting | Specifies the signature XML formatting. |
CheckKeyIntegrityBeforeUse | Enables or disable private key integrity check before use. |
CookieCaching | Specifies whether a cookie cache should be used for HTTP(S) transports. |
Cookies | Gets or sets local cookies for the module. |
DefDeriveKeyIterations | Specifies the default key derivation algorithm iteration count. |
EnableClientSideSSLFFDHE | Enables or disables finite field DHE key exchange support in TLS clients. |
GlobalCookies | Gets or sets global cookies for all the HTTP transports. |
HttpUserAgent | Specifies the user agent name to be used by all HTTP clients. |
LogDestination | Specifies the debug log destination. |
LogDetails | Specifies the debug log details to dump. |
LogFile | Specifies the debug log filename. |
LogFilters | Specifies the debug log filters. |
LogFlushMode | Specifies the log flush mode. |
LogLevel | Specifies the debug log level. |
LogMaxEventCount | Specifies the maximum number of events to cache before further action is taken. |
LogRotationMode | Specifies the log rotation mode. |
MaxASN1BufferLength | Specifies the maximal allowed length for ASN.1 primitive tag data. |
MaxASN1TreeDepth | Specifies the maximal depth for processed ASN.1 trees. |
OCSPHashAlgorithm | Specifies the hash algorithm to be used to identify certificates in OCSP requests. |
StaticDNS | Specifies whether static DNS rules should be used. |
StaticIPAddress[domain] | Gets or sets an IP address for the specified domain name. |
StaticIPAddresses | Gets or sets all the static DNS rules. |
Tag | Allows to store any custom data. |
TLSSessionGroup | Specifies the group name of TLS sessions to be used for session resumption. |
TLSSessionLifetime | Specifies lifetime in seconds of the cached TLS session. |
TLSSessionPurgeInterval | Specifies how often the session cache should remove the expired TLS sessions. |
UseOwnDNSResolver | Specifies whether the client modules should use own DNS resolver. |
UseSharedSystemStorages | Specifies whether the validation engine should use a global per-process copy of the system certificate stores. |
UseSystemOAEPAndPSS | Enforces or disables the use of system-driven RSA OAEP and PSS computations. |
UseSystemRandom | Enables or disables the use of the OS PRNG. |
AutoValidateSignatures Property (XAdESSigner Module)
Specifies whether module should validate any present signatures when the document is opened.
Syntax
public var autoValidateSignatures: Bool { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=autoValidateSignatures,setter=setAutoValidateSignatures:) BOOL autoValidateSignatures; - (BOOL)autoValidateSignatures; - (void)setAutoValidateSignatures :(BOOL)newAutoValidateSignatures;
Default Value
False
Remarks
This setting is switched off by default to speed up document processing. Even if the document is loaded with this property set to false, you can validate the signatures manually on a later stage using the Revalidate method.
BlockedCertificates Property (XAdESSigner Module)
The certificates that must be rejected as trust anchors.
Syntax
public var blockedCertificates: Array<Certificate> { get {...} }
@property (nonatomic,readwrite,assign,getter=blockedCertCount,setter=setBlockedCertCount:) int blockedCertCount; - (int)blockedCertCount; - (void)setBlockedCertCount :(int)newBlockedCertCount; - (NSData*)blockedCertBytes:(int)blockedCertIndex; - (long long)blockedCertHandle:(int)blockedCertIndex; - (void)setBlockedCertHandle:(int)blockedCertIndex :(long long)newBlockedCertHandle;
Default Value
""
Remarks
Use this property to provide a list of compromised or blocked certificates. Any chain containing a blocked certificate will fail validation.
CRLs Property (XAdESSigner Module)
A collection of certificate revocation lists embedded into the signature by the signer.
Syntax
public var crLs: Array<CRL> { get {...} }
@property (nonatomic,readonly,assign,getter=CRLCount) int CRLCount; - (int)CRLCount; - (NSData*)CRLBytes:(int)cRLIndex; - (long long)CRLHandle:(int)cRLIndex; - (NSString*)CRLIssuer:(int)cRLIndex; - (NSString*)CRLIssuerRDN:(int)cRLIndex; - (NSString*)CRLLocation:(int)cRLIndex; - (NSString*)CRLNextUpdate:(int)cRLIndex; - (NSString*)CRLThisUpdate:(int)cRLIndex;
Default Value
""
Remarks
Use this property to access the CRLs embedded into the signature by the signer.
DataBytes Property (XAdESSigner Module)
Use this property to pass the external data to module in the byte array form.
Syntax
public var dataBytes: Data { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=dataBytes,setter=setDataBytes:) NSData* dataBytes; - (NSData*)dataBytes; - (void)setDataBytes :(NSData*)newDataBytes;
Remarks
Assign a byte array containing the external data to be processed to this property.
DataFile Property (XAdESSigner Module)
A file containing the external data covered by a detached signature.
Syntax
public var dataFile: String { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=dataFile,setter=setDataFile:) NSString* dataFile; - (NSString*)dataFile; - (void)setDataFile :(NSString*)newDataFile;
Default Value
""
Remarks
In the case of a detached signature, use this property to provide the external data to the class from a file. Alternatively, provide the data via DataStream.
DataType Property (XAdESSigner Module)
Specifies the external data type.
Syntax
public var dataType: XadessignerDataTypes { get {...} set {...} }
public enum XadessignerDataTypes: Int32 { case cxdtXML = 0 case cxdtBinary = 1 case cxdtBase64 = 2 }
@property (nonatomic,readwrite,assign,getter=dataType,setter=setDataType:) int dataType; - (int)dataType; - (void)setDataType :(int)newDataType;
Default Value
0
Remarks
Use this property to specify the type of the external data (either DataFile, DataStream or DataBytes properties) for class.
DataURI Property (XAdESSigner Module)
Specifies a detached data resource URI.
Syntax
public var dataURI: String { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=dataURI,setter=setDataURI:) NSString* dataURI; - (NSString*)dataURI; - (void)setDataURI :(NSString*)newDataURI;
Default Value
""
Remarks
Specifies a URI used for data being signed, usually the data filename if stored along with a detached signature.
Encoding Property (XAdESSigner Module)
Specifies XML encoding.
Syntax
public var encoding: String { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=encoding,setter=setEncoding:) NSString* encoding; - (NSString*)encoding; - (void)setEncoding :(NSString*)newEncoding;
Default Value
""
Remarks
Use this property to specify the encoding to apply to the XML documents.
ExternalCrypto Property (XAdESSigner Module)
Provides access to external signing and DC parameters.
Syntax
public var externalCrypto: ExternalCrypto { get {...} }
@property (nonatomic,readwrite,assign,getter=externalCryptoAsyncDocumentID,setter=setExternalCryptoAsyncDocumentID:) NSString* externalCryptoAsyncDocumentID; - (NSString*)externalCryptoAsyncDocumentID; - (void)setExternalCryptoAsyncDocumentID :(NSString*)newExternalCryptoAsyncDocumentID; @property (nonatomic,readwrite,assign,getter=externalCryptoCustomParams,setter=setExternalCryptoCustomParams:) NSString* externalCryptoCustomParams; - (NSString*)externalCryptoCustomParams; - (void)setExternalCryptoCustomParams :(NSString*)newExternalCryptoCustomParams; @property (nonatomic,readwrite,assign,getter=externalCryptoData,setter=setExternalCryptoData:) NSString* externalCryptoData; - (NSString*)externalCryptoData; - (void)setExternalCryptoData :(NSString*)newExternalCryptoData; @property (nonatomic,readwrite,assign,getter=externalCryptoExternalHashCalculation,setter=setExternalCryptoExternalHashCalculation:) BOOL externalCryptoExternalHashCalculation; - (BOOL)externalCryptoExternalHashCalculation; - (void)setExternalCryptoExternalHashCalculation :(BOOL)newExternalCryptoExternalHashCalculation; @property (nonatomic,readwrite,assign,getter=externalCryptoHashAlgorithm,setter=setExternalCryptoHashAlgorithm:) NSString* externalCryptoHashAlgorithm; - (NSString*)externalCryptoHashAlgorithm; - (void)setExternalCryptoHashAlgorithm :(NSString*)newExternalCryptoHashAlgorithm; @property (nonatomic,readwrite,assign,getter=externalCryptoKeyID,setter=setExternalCryptoKeyID:) NSString* externalCryptoKeyID; - (NSString*)externalCryptoKeyID; - (void)setExternalCryptoKeyID :(NSString*)newExternalCryptoKeyID; @property (nonatomic,readwrite,assign,getter=externalCryptoKeySecret,setter=setExternalCryptoKeySecret:) NSString* externalCryptoKeySecret; - (NSString*)externalCryptoKeySecret; - (void)setExternalCryptoKeySecret :(NSString*)newExternalCryptoKeySecret; @property (nonatomic,readwrite,assign,getter=externalCryptoMethod,setter=setExternalCryptoMethod:) int externalCryptoMethod; - (int)externalCryptoMethod; - (void)setExternalCryptoMethod :(int)newExternalCryptoMethod; @property (nonatomic,readwrite,assign,getter=externalCryptoMode,setter=setExternalCryptoMode:) int externalCryptoMode; - (int)externalCryptoMode; - (void)setExternalCryptoMode :(int)newExternalCryptoMode; @property (nonatomic,readwrite,assign,getter=externalCryptoPublicKeyAlgorithm,setter=setExternalCryptoPublicKeyAlgorithm:) NSString* externalCryptoPublicKeyAlgorithm; - (NSString*)externalCryptoPublicKeyAlgorithm; - (void)setExternalCryptoPublicKeyAlgorithm :(NSString*)newExternalCryptoPublicKeyAlgorithm;
Default Value
""
Remarks
Use this property to tune-up remote cryptography settings. SecureBlackbox supports two independent types of external cryptography: synchronous (based on the ExternalSign event) and asynchronous (based on the DC protocol and the DCAuth signing component).
FIPSMode Property (XAdESSigner Module)
Reserved.
Syntax
public var fipsMode: Bool { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=FIPSMode,setter=setFIPSMode:) BOOL FIPSMode; - (BOOL)FIPSMode; - (void)setFIPSMode :(BOOL)newFIPSMode;
Default Value
False
Remarks
This property is reserved for future use.
IgnoreChainValidationErrors Property (XAdESSigner Module)
Makes the module tolerant to chain validation errors.
Syntax
public var ignoreChainValidationErrors: Bool { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=ignoreChainValidationErrors,setter=setIgnoreChainValidationErrors:) BOOL ignoreChainValidationErrors; - (BOOL)ignoreChainValidationErrors; - (void)setIgnoreChainValidationErrors :(BOOL)newIgnoreChainValidationErrors;
Default Value
False
Remarks
If this property is set to True, any errors emerging during certificate chain validation will be ignored. This setting may be handy if the purpose of validation is the creation of an LTV signature, and the validation is performed in an environment that doesn't trust the signer's certificate chain.
InputBytes Property (XAdESSigner Module)
Use this property to pass the input to module in byte array form.
Syntax
public var inputBytes: Data { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=inputBytes,setter=setInputBytes:) NSData* inputBytes; - (NSData*)inputBytes; - (void)setInputBytes :(NSData*)newInputBytes;
Remarks
Assign a byte array containing the data to be processed to this property.
InputFile Property (XAdESSigner Module)
The XML document to sign.
Syntax
public var inputFile: String { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=inputFile,setter=setInputFile:) NSString* inputFile; - (NSString*)inputFile; - (void)setInputFile :(NSString*)newInputFile;
Default Value
""
Remarks
Provide a path to the XML file to sign.
KnownCertificates Property (XAdESSigner Module)
Additional certificates for chain validation.
Syntax
public var knownCertificates: Array<Certificate> { get {...} }
@property (nonatomic,readwrite,assign,getter=knownCertCount,setter=setKnownCertCount:) int knownCertCount; - (int)knownCertCount; - (void)setKnownCertCount :(int)newKnownCertCount; - (NSData*)knownCertBytes:(int)knownCertIndex; - (long long)knownCertHandle:(int)knownCertIndex; - (void)setKnownCertHandle:(int)knownCertIndex :(long long)newKnownCertHandle;
Default Value
""
Remarks
Use this property to supply a list of additional certificates that might be needed for chain validation. An example of a scenario where you might want to do that is when intermediary CA certificates are absent from the standard system locations (or when there are no standard system locations), and therefore should be supplied to the class manually.
The purpose of the certificates to be added to this collection is roughly equivalent to that of the Intermediate Certification Authorities system store in Windows.
Do not add trust anchors or root certificates to this collection: add them to TrustedCertificates instead.
KnownCRLs Property (XAdESSigner Module)
Additional CRLs for chain validation.
Syntax
public var knownCRLs: Array<CRL> { get {...} }
@property (nonatomic,readwrite,assign,getter=knownCRLCount,setter=setKnownCRLCount:) int knownCRLCount; - (int)knownCRLCount; - (void)setKnownCRLCount :(int)newKnownCRLCount; - (NSData*)knownCRLBytes:(int)knownCRLIndex; - (long long)knownCRLHandle:(int)knownCRLIndex; - (void)setKnownCRLHandle:(int)knownCRLIndex :(long long)newKnownCRLHandle;
Default Value
""
Remarks
Use this property to supply additional CRLs that might be needed for chain validation. This property may be helpful when a chain is validated in offline mode, and the associated CRLs are stored separately from the signed message or document.
KnownOCSPs Property (XAdESSigner Module)
Additional OCSP responses for chain validation.
Syntax
public var knownOCSPs: Array<OCSPResponse> { get {...} }
@property (nonatomic,readwrite,assign,getter=knownOCSPCount,setter=setKnownOCSPCount:) int knownOCSPCount; - (int)knownOCSPCount; - (void)setKnownOCSPCount :(int)newKnownOCSPCount; - (NSData*)knownOCSPBytes:(int)knownOCSPIndex; - (long long)knownOCSPHandle:(int)knownOCSPIndex; - (void)setKnownOCSPHandle:(int)knownOCSPIndex :(long long)newKnownOCSPHandle;
Default Value
""
Remarks
Use this property to supply additional OCSP responses that might be needed for chain validation. This property may be helpful when a chain is validated in offline mode, and the associated OCSP responses are stored separately from the signed message or document.
NewSignature Property (XAdESSigner Module)
Provides access to new signature properties.
Syntax
public var newSignature: XAdESSignature { get {...} }
@property (nonatomic,readwrite,assign,getter=newSigCanonicalizationMethod,setter=setNewSigCanonicalizationMethod:) int newSigCanonicalizationMethod; - (int)newSigCanonicalizationMethod; - (void)setNewSigCanonicalizationMethod :(int)newNewSigCanonicalizationMethod; @property (nonatomic,readonly,assign,getter=newSigCertificateIndex) int newSigCertificateIndex; - (int)newSigCertificateIndex; @property (nonatomic,readonly,assign,getter=newSigChainValidationDetails) int newSigChainValidationDetails; - (int)newSigChainValidationDetails; @property (nonatomic,readonly,assign,getter=newSigChainValidationResult) int newSigChainValidationResult; - (int)newSigChainValidationResult; @property (nonatomic,readwrite,assign,getter=newSigClaimedSigningTime,setter=setNewSigClaimedSigningTime:) NSString* newSigClaimedSigningTime; - (NSString*)newSigClaimedSigningTime; - (void)setNewSigClaimedSigningTime :(NSString*)newNewSigClaimedSigningTime; @property (nonatomic,readwrite,assign,getter=newSigHandle,setter=setNewSigHandle:) long long newSigHandle; - (long long)newSigHandle; - (void)setNewSigHandle :(long long)newNewSigHandle; @property (nonatomic,readwrite,assign,getter=newSigHashAlgorithm,setter=setNewSigHashAlgorithm:) NSString* newSigHashAlgorithm; - (NSString*)newSigHashAlgorithm; - (void)setNewSigHashAlgorithm :(NSString*)newNewSigHashAlgorithm; @property (nonatomic,readonly,assign,getter=newSigIssuerRDN) NSString* newSigIssuerRDN; - (NSString*)newSigIssuerRDN; @property (nonatomic,readonly,assign,getter=newSigLastArchivalTime) NSString* newSigLastArchivalTime; - (NSString*)newSigLastArchivalTime; @property (nonatomic,readwrite,assign,getter=newSigPolicyHash,setter=setNewSigPolicyHash:) NSString* newSigPolicyHash; - (NSString*)newSigPolicyHash; - (void)setNewSigPolicyHash :(NSString*)newNewSigPolicyHash; @property (nonatomic,readwrite,assign,getter=newSigPolicyHashAlgorithm,setter=setNewSigPolicyHashAlgorithm:) NSString* newSigPolicyHashAlgorithm; - (NSString*)newSigPolicyHashAlgorithm; - (void)setNewSigPolicyHashAlgorithm :(NSString*)newNewSigPolicyHashAlgorithm; @property (nonatomic,readwrite,assign,getter=newSigPolicyID,setter=setNewSigPolicyID:) NSString* newSigPolicyID; - (NSString*)newSigPolicyID; - (void)setNewSigPolicyID :(NSString*)newNewSigPolicyID; @property (nonatomic,readwrite,assign,getter=newSigPolicyURI,setter=setNewSigPolicyURI:) NSString* newSigPolicyURI; - (NSString*)newSigPolicyURI; - (void)setNewSigPolicyURI :(NSString*)newNewSigPolicyURI; @property (nonatomic,readonly,assign,getter=newSigSerialNumber) NSData* newSigSerialNumber; - (NSData*)newSigSerialNumber; @property (nonatomic,readonly,assign,getter=newSigSignatureBytes) NSData* newSigSignatureBytes; - (NSData*)newSigSignatureBytes; @property (nonatomic,readwrite,assign,getter=newSigSignatureType,setter=setNewSigSignatureType:) int newSigSignatureType; - (int)newSigSignatureType; - (void)setNewSigSignatureType :(int)newNewSigSignatureType; @property (nonatomic,readonly,assign,getter=newSigSignatureValidationResult) int newSigSignatureValidationResult; - (int)newSigSignatureValidationResult; @property (nonatomic,readonly,assign,getter=newSigSubjectKeyID) NSData* newSigSubjectKeyID; - (NSData*)newSigSubjectKeyID; @property (nonatomic,readonly,assign,getter=newSigSubjectRDN) NSString* newSigSubjectRDN; - (NSString*)newSigSubjectRDN; @property (nonatomic,readonly,assign,getter=newSigTimestamped) BOOL newSigTimestamped; - (BOOL)newSigTimestamped; @property (nonatomic,readonly,assign,getter=newSigValidatedSigningTime) NSString* newSigValidatedSigningTime; - (NSString*)newSigValidatedSigningTime; @property (nonatomic,readonly,assign,getter=newSigValidationLog) NSString* newSigValidationLog; - (NSString*)newSigValidationLog; @property (nonatomic,readwrite,assign,getter=newSigXAdES,setter=setNewSigXAdES:) BOOL newSigXAdES; - (BOOL)newSigXAdES; - (void)setNewSigXAdES :(BOOL)newNewSigXAdES; @property (nonatomic,readwrite,assign,getter=newSigXAdESForm,setter=setNewSigXAdESForm:) int newSigXAdESForm; - (int)newSigXAdESForm; - (void)setNewSigXAdESForm :(int)newNewSigXAdESForm; @property (nonatomic,readwrite,assign,getter=newSigXAdESVersion,setter=setNewSigXAdESVersion:) int newSigXAdESVersion; - (int)newSigXAdESVersion; - (void)setNewSigXAdESVersion :(int)newNewSigXAdESVersion; @property (nonatomic,readwrite,assign,getter=newSigXMLElement,setter=setNewSigXMLElement:) NSString* newSigXMLElement; - (NSString*)newSigXMLElement; - (void)setNewSigXMLElement :(NSString*)newNewSigXMLElement;
Default Value
""
Remarks
Use this property to tune-up signature properties.
OCSPs Property (XAdESSigner Module)
A collection of OCSP responses embedded into the signature.
Syntax
public var ocsPs: Array<OCSPResponse> { get {...} }
@property (nonatomic,readonly,assign,getter=OCSPCount) int OCSPCount; - (int)OCSPCount; - (NSData*)OCSPBytes:(int)oCSPIndex; - (long long)OCSPHandle:(int)oCSPIndex; - (NSString*)OCSPIssuer:(int)oCSPIndex; - (NSString*)OCSPIssuerRDN:(int)oCSPIndex; - (NSString*)OCSPLocation:(int)oCSPIndex; - (NSString*)OCSPProducedAt:(int)oCSPIndex;
Default Value
""
Remarks
Use this property to access the OCSP responses embedded into the signature by its creator.
OfflineMode Property (XAdESSigner Module)
Switches the module to offline mode.
Syntax
public var offlineMode: Bool { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=offlineMode,setter=setOfflineMode:) BOOL offlineMode; - (BOOL)offlineMode; - (void)setOfflineMode :(BOOL)newOfflineMode;
Default Value
False
Remarks
When working in offline mode, the class restricts itself from using any online revocation information sources, such as CRL or OCSP responders.
Offline mode may be useful if there is a need to verify the completeness of the validation information included within the signature or provided via KnownCertificates, KnownCRLs, and other related properties.
OutputBytes Property (XAdESSigner Module)
Use this property to read the output the module object has produced.
Syntax
public var outputBytes: Data { get {...} }
@property (nonatomic,readonly,assign,getter=outputBytes) NSData* outputBytes; - (NSData*)outputBytes;
Remarks
Read the contents of this property after the operation has completed to read the produced output. This property will only be set if the OutputFile and OutputStream properties had not been assigned.
This property is read-only.
OutputFile Property (XAdESSigner Module)
Specifies the file where the signed document will be saved.
Syntax
public var outputFile: String { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=outputFile,setter=setOutputFile:) NSString* outputFile; - (NSString*)outputFile; - (void)setOutputFile :(NSString*)newOutputFile;
Default Value
""
Remarks
Provide the full path to the file where the signed document should be saved.
Profile Property (XAdESSigner Module)
Specifies a pre-defined profile to apply when creating the signature.
Syntax
public var profile: String { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=profile,setter=setProfile:) NSString* profile; - (NSString*)profile; - (void)setProfile :(NSString*)newProfile;
Default Value
""
Remarks
Advanced signatures come in many variants, which are often defined by parties that needs to process them or by local standards. SecureBlackbox profiles are sets of pre-defined configurations which correspond to particular signature variants. By specifying a profile, you are pre-configuring the component to make it produce the signature that matches the configuration corresponding to that profile.
Supported profiles:
"ES.Factura" | Spanish Factura Electronica | |
"BR.AD_RB_v2_3" | Brazilian signature with Basic Reference (AD-RB) version 2.3 | |
"BR.AD_RB_v2_4" | Brazilian signature with Basic Reference (AD-RB) version 2.4 | |
"BR.AD_RT_v2_3" | Brazilian signature with Time Reference (AD-RT) version 2.3 | |
"BR.AD_RT_v2_4" | Brazilian signature with Time Reference (AD-RT) version 2.4 | |
"BR.AD_RV_v2_3" | Brazilian signature with References for Validation (AD-RV) version 2.3 | |
"BR.AD_RV_v2_4" | Brazilian signature with References for Validation (AD-RV) version 2.4 | |
"BR.AD_RC_v2_3" | Brazilian signature with Complete References (AD-RC) version 2.3 | |
"BR.AD_RC_v2_4" | Brazilian signature with Complete References (AD-RC) version 2.4 | |
"BR.AD_RA_v2_3" | Brazilian signature with References for Archiving (AD-RA) version 2.3 | |
"BR.AD_RA_v2_4" | Brazilian signature with References for Archiving (AD-RA) version 2.4 | |
"XAdES.BASELINE-B" | XAdES B-B level (ETSI TS 103 171 v2.1.1 Baseline Profile) | |
"XAdES.BASELINE-T" | XAdES B-T level | |
"XAdES.BASELINE-LT" | XAdES B-LT level | |
"XAdES.BASELINE-LTA" | XAdES B-LTA level | |
"XAdES.BASELINE-E-B" | Extended XAdES B-B level (ETSI EN 319 132-1 v1.1.1 Building Blocks and Baseline, ETSI EN 319 132-2 v1.1.1 extended XAdES) | |
"XAdES.BASELINE-E-T" | Extended XAdES B-T level | |
"XAdES.BASELINE-E-LT" | Extended XAdES B-LT level | |
"XAdES.BASELINE-E-LTA" | Extended XAdES B-LTA level | |
"XAdES.CounterSignature" | Adds XAdES countersignature (supported in XML and XAdES signer control) |
"ES.Factura" profile equivalent to the following settings:
using (XMLReference Ref = new XMLReference())
{
Ref.ID = "Reference-1";
Ref.TargetXMLElement = "";
Ref.UseEnvelopedSignatureTransform = true;
XAdESSigner.References.Add(Ref);
}
using (XMLReference Ref = new XMLReference())
{
Ref.URI = "#KeyInfo-1";
XAdESSigner.References.Add(Ref);
}
XAdESSigner.NewSignature.XAdESVersion = XAdESVersions.xav132;
XAdESSigner.NewSignature.XAdESForm = XAdESForms.xafEPES;
XAdESSigner.Config("KeyInfoDetails=certificate");
XAdESSigner.Config("KeyInfoID=KeyInfo-1");
XAdESSigner.Config("ClaimedRoleText=emisor");
XAdESSigner.Config("SigPolicyId=http://www.facturae.es/politica_de_firma_formato_facturae/politica_de_firma_formato_facturae_v3_1.pdf");
XAdESSigner.Config("SigPolicyDescription=Pol" + "\u00ED" + "tica de Firma FacturaE v3.1");
XAdESSigner.Config("SigPolicyHash=3a18b197aba90fa6aff0dee912f0c006110bea13");
XAdESSigner.Config("SigPolicyHashAlgorithm=SHA1");
XAdESSigner.Config("DataObjectFormatObjectReference=#Reference-1");
XAdESSigner.Config("DataObjectFormatMimeType=text/xml");
XAdESSigner.Config("DataObjectFormatDescription=Factura electr" + "\u00F3" + "nica");
"XAdES.BASELINE-B" profile equivalent to the following settings:
using (XMLReference Ref = new XMLReference())
{
Ref.ID = "Reference-1";
Ref.TargetXMLElement = "";
Ref.UseEnvelopedSignatureTransform = true;
XAdESSigner.References.Add(Ref);
}
XAdESSigner.NewSignature.XAdESVersion = XAdESVersions.xav141;
XAdESSigner.NewSignature.XAdESForm = XAdESForms.xafBES;
XAdESSigner.Config("DataObjectFormatObjectReference=#Reference-1");
XAdESSigner.Config("DataObjectFormatMimeType=text/xml");
"XAdES.BASELINE-T" profile extends "XAdES.BASELINE-B" profile with the following settings:
XAdESSigner.NewSignature.XAdESForm = XAdESForms.xafT;
XAdESSigner.TimestampServer = "https://freetsa.org/tsr";
"XAdES.BASELINE-LT" profile extends "XAdES.BASELINE-T" profile with the following settings:
XAdESSigner.NewSignature.XAdESForm = XAdESForms.xafXL;
XAdESSigner.Config("RefsTimestampType=none");
XAdESSigner.Config("ValidationDataRefsDetails=none");
"XAdES.BASELINE-LTA" profile extends "XAdES.BASELINE-LT" profile with the following settings:
XAdESSigner.XAdESForm = XadessignerXAdESForms.xafA;
"XAdES.BASELINE-E-B" profile equivalent to the following settings:
using (XMLReference Ref = new XMLReference())
{
Ref.ID = "Reference-1";
Ref.TargetXMLElement = "";
Ref.UseEnvelopedSignatureTransform = true;
XAdESSigner.References.Add(Ref);
}
XAdESSigner.NewSignature.XAdESVersion = XAdESVersions.xav141;
XAdESSigner.NewSignature.XAdESForm = XAdESForms.xafExtendedBES;
XAdESSigner.Config("DataObjectFormatObjectReference=#Reference-1");
XAdESSigner.Config("DataObjectFormatMimeType=text/xml");
"XAdES.BASELINE-E-T" profile extends "XAdES.BASELINE-E-B" profile with the following settings:
XAdESSigner.NewSignature.XAdESForm = XAdESForms.xafExtendedT;
XAdESSigner.TimestampServer = "https://freetsa.org/tsr";
"XAdES.BASELINE-E-LT" profile extends "XAdES.BASELINE-E-T" profile with the following settings:
XAdESSigner.NewSignature.XAdESForm = XAdESForms.xafExtendedXL;
XAdESSigner.Config("RefsTimestampType=none");
XAdESSigner.Config("ValidationDataRefsDetails=none");
"XAdES.BASELINE-E-LTA" profile extends "XAdES.BASELINE-E-LT" profile with the following settings:
XAdESSigner.NewSignature.XAdESForm = XAdESForms.xafExtendedA;
"XAdES.CounterSignature" profile allows to add XAdES countersignature to the existent XAdES-BES or EPES signature. Use XMLElement property to specify existent XAdES signature. Sample code:
XAdESSigner.Profile = "XAdES.CounterSignature";
XAdESSigner.NewSignature.XAdES = false;
Proxy Property (XAdESSigner Module)
The proxy server settings.
Syntax
public var proxy: ProxySettings { get {...} }
@property (nonatomic,readwrite,assign,getter=proxyAddress,setter=setProxyAddress:) NSString* proxyAddress; - (NSString*)proxyAddress; - (void)setProxyAddress :(NSString*)newProxyAddress; @property (nonatomic,readwrite,assign,getter=proxyAuthentication,setter=setProxyAuthentication:) int proxyAuthentication; - (int)proxyAuthentication; - (void)setProxyAuthentication :(int)newProxyAuthentication; @property (nonatomic,readwrite,assign,getter=proxyPassword,setter=setProxyPassword:) NSString* proxyPassword; - (NSString*)proxyPassword; - (void)setProxyPassword :(NSString*)newProxyPassword; @property (nonatomic,readwrite,assign,getter=proxyPort,setter=setProxyPort:) int proxyPort; - (int)proxyPort; - (void)setProxyPort :(int)newProxyPort; @property (nonatomic,readwrite,assign,getter=proxyProxyType,setter=setProxyProxyType:) int proxyProxyType; - (int)proxyProxyType; - (void)setProxyProxyType :(int)newProxyProxyType; @property (nonatomic,readwrite,assign,getter=proxyRequestHeaders,setter=setProxyRequestHeaders:) NSString* proxyRequestHeaders; - (NSString*)proxyRequestHeaders; - (void)setProxyRequestHeaders :(NSString*)newProxyRequestHeaders; @property (nonatomic,readwrite,assign,getter=proxyResponseBody,setter=setProxyResponseBody:) NSString* proxyResponseBody; - (NSString*)proxyResponseBody; - (void)setProxyResponseBody :(NSString*)newProxyResponseBody; @property (nonatomic,readwrite,assign,getter=proxyResponseHeaders,setter=setProxyResponseHeaders:) NSString* proxyResponseHeaders; - (NSString*)proxyResponseHeaders; - (void)setProxyResponseHeaders :(NSString*)newProxyResponseHeaders; @property (nonatomic,readwrite,assign,getter=proxyUseIPv6,setter=setProxyUseIPv6:) BOOL proxyUseIPv6; - (BOOL)proxyUseIPv6; - (void)setProxyUseIPv6 :(BOOL)newProxyUseIPv6; @property (nonatomic,readwrite,assign,getter=proxyUseProxy,setter=setProxyUseProxy:) BOOL proxyUseProxy; - (BOOL)proxyUseProxy; - (void)setProxyUseProxy :(BOOL)newProxyUseProxy; @property (nonatomic,readwrite,assign,getter=proxyUsername,setter=setProxyUsername:) NSString* proxyUsername; - (NSString*)proxyUsername; - (void)setProxyUsername :(NSString*)newProxyUsername;
Default Value
""
Remarks
Use this property to tune up the proxy server settings.
References Property (XAdESSigner Module)
A list of references to the data to be signed.
Syntax
public var references: Array<XMLReference> { get {...} }
@property (nonatomic,readwrite,assign,getter=referenceCount,setter=setReferenceCount:) int referenceCount; - (int)referenceCount; - (void)setReferenceCount :(int)newReferenceCount; - (BOOL)referenceAutoGenerateElementId:(int)referenceIndex; - (void)setReferenceAutoGenerateElementId:(int)referenceIndex :(BOOL)newReferenceAutoGenerateElementId; - (int)referenceCanonicalizationMethod:(int)referenceIndex; - (void)setReferenceCanonicalizationMethod:(int)referenceIndex :(int)newReferenceCanonicalizationMethod; - (NSString*)referenceCustomElementId:(int)referenceIndex; - (void)setReferenceCustomElementId:(int)referenceIndex :(NSString*)newReferenceCustomElementId; - (NSData*)referenceDigestValue:(int)referenceIndex; - (void)setReferenceDigestValue:(int)referenceIndex :(NSData*)newReferenceDigestValue; - (long long)referenceHandle:(int)referenceIndex; - (void)setReferenceHandle:(int)referenceIndex :(long long)newReferenceHandle; - (NSString*)referenceHashAlgorithm:(int)referenceIndex; - (void)setReferenceHashAlgorithm:(int)referenceIndex :(NSString*)newReferenceHashAlgorithm; - (BOOL)referenceHasURI:(int)referenceIndex; - (void)setReferenceHasURI:(int)referenceIndex :(BOOL)newReferenceHasURI; - (NSString*)referenceID:(int)referenceIndex; - (void)setReferenceID:(int)referenceIndex :(NSString*)newReferenceID; - (NSString*)referenceInclusiveNamespacesPrefixList:(int)referenceIndex; - (void)setReferenceInclusiveNamespacesPrefixList:(int)referenceIndex :(NSString*)newReferenceInclusiveNamespacesPrefixList; - (NSString*)referenceReferenceType:(int)referenceIndex; - (void)setReferenceReferenceType:(int)referenceIndex :(NSString*)newReferenceReferenceType; - (int)referenceSignatureIndex:(int)referenceIndex; - (NSData*)referenceTargetData:(int)referenceIndex; - (void)setReferenceTargetData:(int)referenceIndex :(NSData*)newReferenceTargetData; - (int)referenceTargetType:(int)referenceIndex; - (void)setReferenceTargetType:(int)referenceIndex :(int)newReferenceTargetType; - (NSString*)referenceTargetXMLElement:(int)referenceIndex; - (void)setReferenceTargetXMLElement:(int)referenceIndex :(NSString*)newReferenceTargetXMLElement; - (NSString*)referenceURI:(int)referenceIndex; - (void)setReferenceURI:(int)referenceIndex :(NSString*)newReferenceURI; - (BOOL)referenceUseBase64Transform:(int)referenceIndex; - (void)setReferenceUseBase64Transform:(int)referenceIndex :(BOOL)newReferenceUseBase64Transform; - (BOOL)referenceUseEnvelopedSignatureTransform:(int)referenceIndex; - (void)setReferenceUseEnvelopedSignatureTransform:(int)referenceIndex :(BOOL)newReferenceUseEnvelopedSignatureTransform; - (BOOL)referenceUseXPathFilter2Transform:(int)referenceIndex; - (void)setReferenceUseXPathFilter2Transform:(int)referenceIndex :(BOOL)newReferenceUseXPathFilter2Transform; - (BOOL)referenceUseXPathTransform:(int)referenceIndex; - (void)setReferenceUseXPathTransform:(int)referenceIndex :(BOOL)newReferenceUseXPathTransform; - (NSString*)referenceXPathExpression:(int)referenceIndex; - (void)setReferenceXPathExpression:(int)referenceIndex :(NSString*)newReferenceXPathExpression; - (NSString*)referenceXPathFilter2Expressions:(int)referenceIndex; - (void)setReferenceXPathFilter2Expressions:(int)referenceIndex :(NSString*)newReferenceXPathFilter2Expressions; - (NSString*)referenceXPathFilter2Filters:(int)referenceIndex; - (void)setReferenceXPathFilter2Filters:(int)referenceIndex :(NSString*)newReferenceXPathFilter2Filters; - (NSString*)referenceXPathFilter2PrefixList:(int)referenceIndex; - (void)setReferenceXPathFilter2PrefixList:(int)referenceIndex :(NSString*)newReferenceXPathFilter2PrefixList; - (NSString*)referenceXPathPrefixList:(int)referenceIndex; - (void)setReferenceXPathPrefixList:(int)referenceIndex :(NSString*)newReferenceXPathPrefixList;
Default Value
""
Remarks
Electronic signature is computed over a set of data pieces. Each piece of data to be signed is specified by a reference.
RevocationCheck Property (XAdESSigner Module)
Specifies the kind(s) of revocation check to perform for all chain certificates.
Syntax
public var revocationCheck: XadessignerRevocationChecks { get {...} set {...} }
public enum XadessignerRevocationChecks: Int32 { case crcNone = 0 case crcAuto = 1 case crcAllCRL = 2 case crcAllOCSP = 3 case crcAllCRLAndOCSP = 4 case crcAnyCRL = 5 case crcAnyOCSP = 6 case crcAnyCRLOrOCSP = 7 case crcAnyOCSPOrCRL = 8 }
@property (nonatomic,readwrite,assign,getter=revocationCheck,setter=setRevocationCheck:) int revocationCheck; - (int)revocationCheck; - (void)setRevocationCheck :(int)newRevocationCheck;
Default Value
1
Remarks
Revocation checking is necessary to ensure the integrity of the chain and obtain up-to-date certificate validity and trustworthiness information.
Certificate Revocation Lists (CRLs) and Online Certificate Status Protocol (OCSP) responses serve the same purpose of ensuring that the certificate had not been revoked by the Certificate Authority (CA) at the time of use. Depending on your circumstances and security policy requirements, you may want to use either one or both of the revocation information source types.
crcNone | 0 | No revocation checking. |
crcAuto | 1 | Automatic mode selection. Currently this maps to crcAnyOCSPOrCRL, but it may change in the future. |
crcAllCRL | 2 | All provided CRL endpoints will be checked, and all checks must succeed. |
crcAllOCSP | 3 | All provided OCSP endpoints will be checked, and all checks must succeed. |
crcAllCRLAndOCSP | 4 | All provided CRL and OCSP endpoints will be checked, and all checks must succeed. |
crcAnyCRL | 5 | All provided CRL endpoints will be checked, and at least one check must succeed. |
crcAnyOCSP | 6 | All provided OCSP endpoints will be checked, and at least one check must succeed. |
crcAnyCRLOrOCSP | 7 | All provided CRL and OCSP endpoints will be checked, and at least one check must succeed. CRL endpoints are checked first. |
crcAnyOCSPOrCRL | 8 | All provided CRL and OCSP endpoints will be checked, and at least one check must succeed. OCSP endpoints are checked first. |
This setting controls the way the revocation checks are performed for every certificate in the chain. Typically certificates come with two types of revocation information sources: CRL (certificate revocation lists) and OCSP responders. CRLs are static objects periodically published by the CA at some online location. OCSP responders are active online services maintained by the CA that can provide up-to-date information on certificate statuses in near real time.
There are some conceptual differences between the two. CRLs are normally larger in size. Their use involves some latency because there is normally some delay between the time when a certificate was revoked and the time the subsequent CRL mentioning that is published. The benefits of CRL is that the same object can provide statuses for all certificates issued by a particular CA, and that the whole technology is much simpler than OCSP (and thus is supported by more CAs).
This setting lets you adjust the validation course by including or excluding certain types of revocation sources from the validation process. The crcAnyOCSPOrCRL setting (give preference to the faster OCSP route and only demand one source to succeed) is a good choice for most typical validation environments. The "crcAll*" modes are much stricter, and may be used in scenarios where bulletproof validity information is essential.
Note: If no CRL or OCSP endpoints are provided by the CA, the revocation check will be considered successful. This is because the CA chose not to supply revocation information for its certificates, meaning they are considered irrevocable.
Note: Within each of the above settings, if any retrieved CRL or OCSP response indicates that the certificate has been revoked, the revocation check fails.
Signatures Property (XAdESSigner Module)
Provides details of all signatures found in the XML document.
Syntax
public var signatures: Array<XAdESSignature> { get {...} }
@property (nonatomic,readonly,assign,getter=signatureCount) int signatureCount; - (int)signatureCount; - (int)signatureCanonicalizationMethod:(int)signatureIndex; - (int)signatureCertificateIndex:(int)signatureIndex; - (int)signatureChainValidationDetails:(int)signatureIndex; - (int)signatureChainValidationResult:(int)signatureIndex; - (NSString*)signatureClaimedSigningTime:(int)signatureIndex; - (long long)signatureHandle:(int)signatureIndex; - (NSString*)signatureHashAlgorithm:(int)signatureIndex; - (NSString*)signatureIssuerRDN:(int)signatureIndex; - (NSString*)signatureLastArchivalTime:(int)signatureIndex; - (NSString*)signaturePolicyHash:(int)signatureIndex; - (NSString*)signaturePolicyHashAlgorithm:(int)signatureIndex; - (NSString*)signaturePolicyID:(int)signatureIndex; - (NSString*)signaturePolicyURI:(int)signatureIndex; - (NSData*)signatureSerialNumber:(int)signatureIndex; - (NSData*)signatureSignatureBytes:(int)signatureIndex; - (int)signatureSignatureType:(int)signatureIndex; - (int)signatureSignatureValidationResult:(int)signatureIndex; - (NSData*)signatureSubjectKeyID:(int)signatureIndex; - (NSString*)signatureSubjectRDN:(int)signatureIndex; - (BOOL)signatureTimestamped:(int)signatureIndex; - (NSString*)signatureValidatedSigningTime:(int)signatureIndex; - (NSString*)signatureValidationLog:(int)signatureIndex; - (BOOL)signatureXAdES:(int)signatureIndex; - (int)signatureXAdESForm:(int)signatureIndex; - (int)signatureXAdESVersion:(int)signatureIndex; - (NSString*)signatureXMLElement:(int)signatureIndex;
Default Value
""
Remarks
Use this property to get the details of all the signatures identified in the XML document.
SigningCertificate Property (XAdESSigner Module)
The certificate to be used for signing.
Syntax
public var signingCertificate: Certificate { get {...} set {...} }
@property (nonatomic,readonly,assign,getter=signingCertBytes) NSData* signingCertBytes; - (NSData*)signingCertBytes; @property (nonatomic,readwrite,assign,getter=signingCertHandle,setter=setSigningCertHandle:) long long signingCertHandle; - (long long)signingCertHandle; - (void)setSigningCertHandle :(long long)newSigningCertHandle;
Default Value
""
Remarks
Use this property to specify the certificate that shall be used for signing the data. Note that this certificate should have a private key associated with it. Use SigningChain to supply the rest of the certificate chain for inclusion into the signature.
SigningChain Property (XAdESSigner Module)
The signing certificate chain.
Syntax
public var signingChain: Array<Certificate> { get {...} }
@property (nonatomic,readwrite,assign,getter=signingChainCount,setter=setSigningChainCount:) int signingChainCount; - (int)signingChainCount; - (void)setSigningChainCount :(int)newSigningChainCount; - (NSData*)signingChainBytes:(int)signingChainIndex; - (long long)signingChainHandle:(int)signingChainIndex; - (void)setSigningChainHandle:(int)signingChainIndex :(long long)newSigningChainHandle;
Default Value
""
Remarks
Use this property to provide the chain for the signing certificate. Use the SigningCertificate property, if it is available, to provide the signing certificate itself.
SocketSettings Property (XAdESSigner Module)
Manages network connection settings.
Syntax
public var socketSettings: SocketSettings { get {...} }
@property (nonatomic,readwrite,assign,getter=socketDNSMode,setter=setSocketDNSMode:) int socketDNSMode; - (int)socketDNSMode; - (void)setSocketDNSMode :(int)newSocketDNSMode; @property (nonatomic,readwrite,assign,getter=socketDNSPort,setter=setSocketDNSPort:) int socketDNSPort; - (int)socketDNSPort; - (void)setSocketDNSPort :(int)newSocketDNSPort; @property (nonatomic,readwrite,assign,getter=socketDNSQueryTimeout,setter=setSocketDNSQueryTimeout:) int socketDNSQueryTimeout; - (int)socketDNSQueryTimeout; - (void)setSocketDNSQueryTimeout :(int)newSocketDNSQueryTimeout; @property (nonatomic,readwrite,assign,getter=socketDNSServers,setter=setSocketDNSServers:) NSString* socketDNSServers; - (NSString*)socketDNSServers; - (void)setSocketDNSServers :(NSString*)newSocketDNSServers; @property (nonatomic,readwrite,assign,getter=socketDNSTotalTimeout,setter=setSocketDNSTotalTimeout:) int socketDNSTotalTimeout; - (int)socketDNSTotalTimeout; - (void)setSocketDNSTotalTimeout :(int)newSocketDNSTotalTimeout; @property (nonatomic,readwrite,assign,getter=socketIncomingSpeedLimit,setter=setSocketIncomingSpeedLimit:) int socketIncomingSpeedLimit; - (int)socketIncomingSpeedLimit; - (void)setSocketIncomingSpeedLimit :(int)newSocketIncomingSpeedLimit; @property (nonatomic,readwrite,assign,getter=socketLocalAddress,setter=setSocketLocalAddress:) NSString* socketLocalAddress; - (NSString*)socketLocalAddress; - (void)setSocketLocalAddress :(NSString*)newSocketLocalAddress; @property (nonatomic,readwrite,assign,getter=socketLocalPort,setter=setSocketLocalPort:) int socketLocalPort; - (int)socketLocalPort; - (void)setSocketLocalPort :(int)newSocketLocalPort; @property (nonatomic,readwrite,assign,getter=socketOutgoingSpeedLimit,setter=setSocketOutgoingSpeedLimit:) int socketOutgoingSpeedLimit; - (int)socketOutgoingSpeedLimit; - (void)setSocketOutgoingSpeedLimit :(int)newSocketOutgoingSpeedLimit; @property (nonatomic,readwrite,assign,getter=socketTimeout,setter=setSocketTimeout:) int socketTimeout; - (int)socketTimeout; - (void)setSocketTimeout :(int)newSocketTimeout; @property (nonatomic,readwrite,assign,getter=socketUseIPv6,setter=setSocketUseIPv6:) BOOL socketUseIPv6; - (BOOL)socketUseIPv6; - (void)setSocketUseIPv6 :(BOOL)newSocketUseIPv6;
Default Value
""
Remarks
Use this property to tune up network connection parameters.
Timestamps Property (XAdESSigner Module)
Contains a collection of timestamps for the processed document.
Syntax
public var timestamps: Array<TimestampInfo> { get {...} }
@property (nonatomic,readonly,assign,getter=timestampCount) int timestampCount; - (int)timestampCount; - (long long)timestampAccuracy:(int)timestampIndex; - (NSData*)timestampBytes:(int)timestampIndex; - (int)timestampCertificateIndex:(int)timestampIndex; - (int)timestampChainValidationDetails:(int)timestampIndex; - (int)timestampChainValidationResult:(int)timestampIndex; - (NSString*)timestampHashAlgorithm:(int)timestampIndex; - (NSData*)timestampSerialNumber:(int)timestampIndex; - (int)timestampSignatureIndex:(int)timestampIndex; - (NSString*)timestampTime:(int)timestampIndex; - (int)timestampTimestampType:(int)timestampIndex; - (NSString*)timestampTSAName:(int)timestampIndex; - (NSString*)timestampValidationLog:(int)timestampIndex; - (int)timestampValidationResult:(int)timestampIndex;
Default Value
""
Remarks
Use this property to access the timestamps included in the processed document.
TimestampServer Property (XAdESSigner Module)
The address of the timestamping server.
Syntax
public var timestampServer: String { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=timestampServer,setter=setTimestampServer:) NSString* timestampServer; - (NSString*)timestampServer; - (void)setTimestampServer :(NSString*)newTimestampServer;
Default Value
""
Remarks
Use this property to set the address of the TSA (Time Stamping Authority) server which should be used for timestamping the signature.
TLSClientChain Property (XAdESSigner Module)
The TLS client certificate chain.
Syntax
public var tlsClientChain: Array<Certificate> { get {...} }
@property (nonatomic,readwrite,assign,getter=TLSClientCertCount,setter=setTLSClientCertCount:) int TLSClientCertCount; - (int)TLSClientCertCount; - (void)setTLSClientCertCount :(int)newTLSClientCertCount; - (NSData*)TLSClientCertBytes:(int)tLSClientCertIndex; - (long long)TLSClientCertHandle:(int)tLSClientCertIndex; - (void)setTLSClientCertHandle:(int)tLSClientCertIndex :(long long)newTLSClientCertHandle;
Default Value
""
Remarks
Assign a certificate chain to this property to enable TLS client authentication in the class. Note that the client's end-entity certificate should have a private key associated with it.
Use the CertificateStorage or CertificateManager components to import the certificate from a file, system store, or PKCS11 device.
TLSServerChain Property (XAdESSigner Module)
The TLS server's certificate chain.
Syntax
public var tlsServerChain: Array<Certificate> { get {...} }
@property (nonatomic,readonly,assign,getter=TLSServerCertCount) int TLSServerCertCount; - (int)TLSServerCertCount; - (NSData*)TLSServerCertBytes:(int)tLSServerCertIndex; - (long long)TLSServerCertHandle:(int)tLSServerCertIndex;
Default Value
""
Remarks
Use this property to access the certificate chain sent by the TLS server. This property is ready to read when the TLSCertValidate event is fired by the client component.
TLSSettings Property (XAdESSigner Module)
Manages TLS layer settings.
Syntax
public var tlsSettings: TLSSettings { get {...} }
@property (nonatomic,readwrite,assign,getter=TLSAutoValidateCertificates,setter=setTLSAutoValidateCertificates:) BOOL TLSAutoValidateCertificates; - (BOOL)TLSAutoValidateCertificates; - (void)setTLSAutoValidateCertificates :(BOOL)newTLSAutoValidateCertificates; @property (nonatomic,readwrite,assign,getter=TLSBaseConfiguration,setter=setTLSBaseConfiguration:) int TLSBaseConfiguration; - (int)TLSBaseConfiguration; - (void)setTLSBaseConfiguration :(int)newTLSBaseConfiguration; @property (nonatomic,readwrite,assign,getter=TLSCiphersuites,setter=setTLSCiphersuites:) NSString* TLSCiphersuites; - (NSString*)TLSCiphersuites; - (void)setTLSCiphersuites :(NSString*)newTLSCiphersuites; @property (nonatomic,readwrite,assign,getter=TLSECCurves,setter=setTLSECCurves:) NSString* TLSECCurves; - (NSString*)TLSECCurves; - (void)setTLSECCurves :(NSString*)newTLSECCurves; @property (nonatomic,readwrite,assign,getter=TLSExtensions,setter=setTLSExtensions:) NSString* TLSExtensions; - (NSString*)TLSExtensions; - (void)setTLSExtensions :(NSString*)newTLSExtensions; @property (nonatomic,readwrite,assign,getter=TLSForceResumeIfDestinationChanges,setter=setTLSForceResumeIfDestinationChanges:) BOOL TLSForceResumeIfDestinationChanges; - (BOOL)TLSForceResumeIfDestinationChanges; - (void)setTLSForceResumeIfDestinationChanges :(BOOL)newTLSForceResumeIfDestinationChanges; @property (nonatomic,readwrite,assign,getter=TLSPreSharedIdentity,setter=setTLSPreSharedIdentity:) NSString* TLSPreSharedIdentity; - (NSString*)TLSPreSharedIdentity; - (void)setTLSPreSharedIdentity :(NSString*)newTLSPreSharedIdentity; @property (nonatomic,readwrite,assign,getter=TLSPreSharedKey,setter=setTLSPreSharedKey:) NSString* TLSPreSharedKey; - (NSString*)TLSPreSharedKey; - (void)setTLSPreSharedKey :(NSString*)newTLSPreSharedKey; @property (nonatomic,readwrite,assign,getter=TLSPreSharedKeyCiphersuite,setter=setTLSPreSharedKeyCiphersuite:) NSString* TLSPreSharedKeyCiphersuite; - (NSString*)TLSPreSharedKeyCiphersuite; - (void)setTLSPreSharedKeyCiphersuite :(NSString*)newTLSPreSharedKeyCiphersuite; @property (nonatomic,readwrite,assign,getter=TLSRenegotiationAttackPreventionMode,setter=setTLSRenegotiationAttackPreventionMode:) int TLSRenegotiationAttackPreventionMode; - (int)TLSRenegotiationAttackPreventionMode; - (void)setTLSRenegotiationAttackPreventionMode :(int)newTLSRenegotiationAttackPreventionMode; @property (nonatomic,readwrite,assign,getter=TLSRevocationCheck,setter=setTLSRevocationCheck:) int TLSRevocationCheck; - (int)TLSRevocationCheck; - (void)setTLSRevocationCheck :(int)newTLSRevocationCheck; @property (nonatomic,readwrite,assign,getter=TLSSSLOptions,setter=setTLSSSLOptions:) int TLSSSLOptions; - (int)TLSSSLOptions; - (void)setTLSSSLOptions :(int)newTLSSSLOptions; @property (nonatomic,readwrite,assign,getter=TLSTLSMode,setter=setTLSTLSMode:) int TLSTLSMode; - (int)TLSTLSMode; - (void)setTLSTLSMode :(int)newTLSTLSMode; @property (nonatomic,readwrite,assign,getter=TLSUseExtendedMasterSecret,setter=setTLSUseExtendedMasterSecret:) BOOL TLSUseExtendedMasterSecret; - (BOOL)TLSUseExtendedMasterSecret; - (void)setTLSUseExtendedMasterSecret :(BOOL)newTLSUseExtendedMasterSecret; @property (nonatomic,readwrite,assign,getter=TLSUseSessionResumption,setter=setTLSUseSessionResumption:) BOOL TLSUseSessionResumption; - (BOOL)TLSUseSessionResumption; - (void)setTLSUseSessionResumption :(BOOL)newTLSUseSessionResumption; @property (nonatomic,readwrite,assign,getter=TLSVersions,setter=setTLSVersions:) int TLSVersions; - (int)TLSVersions; - (void)setTLSVersions :(int)newTLSVersions;
Default Value
""
Remarks
Use this property to tune up the TLS layer parameters.
TrustedCertificates Property (XAdESSigner Module)
A list of trusted certificates for chain validation.
Syntax
public var trustedCertificates: Array<Certificate> { get {...} }
@property (nonatomic,readwrite,assign,getter=trustedCertCount,setter=setTrustedCertCount:) int trustedCertCount; - (int)trustedCertCount; - (void)setTrustedCertCount :(int)newTrustedCertCount; - (NSData*)trustedCertBytes:(int)trustedCertIndex; - (long long)trustedCertHandle:(int)trustedCertIndex; - (void)setTrustedCertHandle:(int)trustedCertIndex :(long long)newTrustedCertHandle;
Default Value
""
Remarks
Use this property to supply a list of trusted certificates that might be needed for chain validation. An example of a scenario where you might want to do that is when root CA certificates are absent from the standard system locations (or when there are no standard system locations), and therefore should be supplied to the component manually.
The purpose of this certificate collection is largely the same as that of the Windows Trusted Root Certification Authorities system store.
Use this property with extreme care as it directly affects chain verifiability; a wrong certificate added to the trusted list may result in bad chains being accepted, and forfeited signatures being recognized as genuine. Only add certificates that originate from the parties that you know and trust.
ValidationMoment Property (XAdESSigner Module)
The time point at which signature validity is to be established.
Syntax
public var validationMoment: String { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=validationMoment,setter=setValidationMoment:) NSString* validationMoment; - (NSString*)validationMoment; - (void)setValidationMoment :(NSString*)newValidationMoment;
Default Value
""
Remarks
Use this property to specify the moment in time at which signature validity should be established. The time is in UTC. Leave the setting empty to stick to the default moment (either the signature creation time or the current time).
The validity of the same signature may differ depending on the time point chosen due to temporal changes in chain validities, revocation statuses, and timestamp times.
XPathNamespaces Property (XAdESSigner Module)
Specifies namespaces for the XPath expression.
Syntax
public var xPathNamespaces: Array<XMLNamespace> { get {...} }
@property (nonatomic,readwrite,assign,getter=namespaceCount,setter=setNamespaceCount:) int namespaceCount; - (int)namespaceCount; - (void)setNamespaceCount :(int)newNamespaceCount; - (NSString*)namespacePrefix:(int)namespaceIndex; - (void)setNamespacePrefix:(int)namespaceIndex :(NSString*)newNamespacePrefix; - (NSString*)namespaceURI:(int)namespaceIndex; - (void)setNamespaceURI:(int)namespaceIndex :(NSString*)newNamespaceURI;
Default Value
""
Remarks
This property contains a list of prefixes and namespaceURIs that are used in XPath expression with XMLElement property, and with TargetXMLElement and XPathPrefixList properties of the references.
AddDataReference Method (XAdESSigner Module)
Creates a new XML reference to the specified data.
Syntax
- (int)addDataReference:(NSString*)dataURI :(NSData*)data;
Remarks
Use this method to add a reference to the custom data. Pass the reference's URI via DataURI parameter.
This method uses HashAlgorithm property to specify the hash algorithm of the reference.
The method returns the index of the new reference entry in the References collection.
AddReference Method (XAdESSigner Module)
Creates a new XML reference to the specified XML element.
Syntax
public func addReference(targetXmlElement: String, customId: String, autoGenerateId: Bool) throws -> Int32
- (int)addReference:(NSString*)targetXmlElement :(NSString*)customId :(BOOL)autoGenerateId;
Remarks
Use this method to add a reference to a particular XML element.
The reference's URI is set basing on the ID of the XML element. If the XML element doesn't have an ID then a CustomId value will be used. If CustomId is empty and AutoGenerateId is set, the ID will be generated automatically. An exception will be thrown otherwise.
This method uses CanonicalizationMethod and HashAlgorithm properties to specify the canonicalization method and hash algorithm of the reference.
The method returns the index of the new reference entry in the References collection.
AddTimestampValidationData Method (XAdESSigner Module)
Use this method to add timestamp validation data to the signature.
Syntax
- (void)addTimestampValidationData:(int)sigIndex;
Remarks
Call this method to add certificates and revocation information used to validate timestamp's signer certificates at a particular time. This method could be called separately or in SignatureValidated event handler after successful signature validation.
AddValidationDataRefs Method (XAdESSigner Module)
Use this method to add signature validation references to the signature.
Syntax
- (void)addValidationDataRefs:(int)sigIndex;
Remarks
Call this method to add references to certificates and revocation information used to validate a signature at a particular time. This method could be called separately or in SignatureValidated event handler after successful signature validation.
AddValidationDataValues Method (XAdESSigner Module)
Use this method to add signature validation values to the signature.
Syntax
- (void)addValidationDataValues:(int)sigIndex;
Remarks
Call this method to add certificates and revocation information used to validate a signature at a particular time. This method could be called separately or in SignatureValidated event handler after successful signature validation.
Close Method (XAdESSigner Module)
Closes an opened document.
Syntax
Remarks
Use this method to close a previously opened document. Set SaveChanges to true to apply any changes made.
Config Method (XAdESSigner Module)
Sets or retrieves a configuration setting.
Syntax
- (NSString*)config:(NSString*)configurationString;
Remarks
Config is a generic method available in every class. It is used to set and retrieve configuration settings for the class.
These 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.
To set a configuration setting named PROPERTY, you must call Config("PROPERTY=VALUE"), where VALUE is the value of the setting expressed as a string. For boolean values, use the strings "True", "False", "0", "1", "Yes", or "No" (case does not matter).
To read (query) the value of a configuration setting, you must call Config("PROPERTY"). The value will be returned as a string.
DoAction Method (XAdESSigner Module)
Performs an additional action.
Syntax
- (NSString*)doAction:(NSString*)actionID :(NSString*)actionParams;
Remarks
DoAction is a generic method available in every class. It is used to perform an additional action introduced after the product major release. The list of actions is not fixed, and may be flexibly extended over time.
The unique identifier (case insensitive) of the action is provided in the ActionID parameter.
ActionParams contains the value of a single parameter, or a list of multiple parameters for the action in the form of PARAM1=VALUE1;PARAM2=VALUE2;....
ExtractAsyncData Method (XAdESSigner Module)
Extracts user data from the DC signing service response.
Syntax
- (NSString*)extractAsyncData:(NSString*)asyncReply;
Remarks
Call this method before finalizing the asynchronous signing process to extract the data passed to the ExternalCrypto.Data property on the pre-signing stage.
The Data parameter can be used to pass some state or document identifier along with the signing request from the pre-signing to the completion async stage.
GetInnerXML Method (XAdESSigner Module)
Get the inner XML content of the selected XML element.
Syntax
Remarks
Call this method to get the inner XML content of the selected XML element.
GetOuterXML Method (XAdESSigner Module)
Get the outer XML content of the selected XML element.
Syntax
Remarks
Call this method to get the outer XML content of the selected XML element.
GetTextContent Method (XAdESSigner Module)
Get the text content of the selected XML element.
Syntax
- (NSString*)getTextContent:(NSString*)XPath;
Remarks
Call this method to get the text content of the selected XML element.
Open Method (XAdESSigner Module)
Opens a document for signing or updating.
Syntax
public func open() throws -> Void
- (void)open;
Remarks
Use this method to open a document for signing or updating. When finished, call Close to complete or discard the operation.
Revalidate Method (XAdESSigner Module)
Revalidates a signature in accordance with current settings.
Syntax
- (void)revalidate:(int)index :(BOOL)detached;
Remarks
Use this method to re-validate a signature in the opened XML document.
SetInnerXML Method (XAdESSigner Module)
Set the inner XML content of the selected XML element.
Syntax
- (void)setInnerXML:(NSString*)XPath :(NSString*)value;
Remarks
Call this method to set the inner XML content of the selected XML element.
SetTextContent Method (XAdESSigner Module)
Set the text content of the selected XML element.
Syntax
- (void)setTextContent:(NSString*)XPath :(NSString*)value;
Remarks
Call this method to set the text content of the selected XML element.
Sign Method (XAdESSigner Module)
Signs an XML document.
Syntax
public func sign() throws -> Void
- (void)sign;
Remarks
Call this method to generate a signature over an XML document.
SignAsyncBegin Method (XAdESSigner Module)
Initiates the asynchronous signing operation.
Syntax
public func signAsyncBegin() throws -> String
- (NSString*)signAsyncBegin;
Remarks
When using the DC framework, call this method to initiate the asynchronous signing process. Upon completion, a pre-signed copy of the document will be saved in OutputFile (or OutputStream). Keep the pre-signed copy somewhere local, and pass the returned string ('the request state') to the DC processor for handling.
Upon receiving the response state from the DC processor, assign the path to the pre-signed copy to InputFile (or InputStream), and call SignAsyncEnd to finalize the signing.
Note that depending on the signing method and DC configuration used, you may still need to provide the public part of the signing certificate via the SigningCertificate property.
Use the ExternalCrypto.AsyncDocumentID property to supply a unique document ID to include in the request. This is helpful when creating batches of multiple async requests, as it allows you to pass the whole response batch to SignAsyncEnd and expect it to recover the correct response from the batch automatically.
AsyncState is a message of the distributed cryptography (DC) protocol. The DC protocol is based on the exchange of async states between a DC client (an application that wants to sign a PDF, XML, or Office document) and a DC server (an application that controls access to the private key). An async state can carry one or more signing requests, comprised of document hashes, or one or more signatures produced over those hashes.
In a typical scenario you get a client-side async state from the SignAsyncBegin method. This state contains document hashes to be signed on the DC server side. You then send the async state to the DC server (often represented by the DCAuth class), which processes it and produces a matching signature state. The async state produced by the server is then passed to the SignAsyncEnd method.
SignAsyncEnd Method (XAdESSigner Module)
Completes the asynchronous signing operation.
Syntax
- (void)signAsyncEnd:(NSString*)asyncReply;
Remarks
When using the DC framework, call this method upon receiving the response state from the DC processor to complete the asynchronous signing process.
Before calling this method, assign the path to the pre-signed copy of the document obtained from the prior SignAsyncBegin call to InputFile (or InputStream). The method will embed the signature into the pre-signed document, and save the complete signed document to OutputFile (or OutputStream).
Note that depending on the signing method and DC configuration used, you may still need to provide the public part of the signing certificate via the SigningCertificate property.
Use the ExternalCrypto.AsyncDocumentID parameter to pass a specific document ID if using batched AsyncReply. If used, it should match the value provided on the pre-signing (SignAsyncBegin) stage.
AsyncState is a message of the distributed cryptography (DC) protocol. The DC protocol is based on the exchange of async states between a DC client (an application that wants to sign a PDF, XML, or Office document) and a DC server (an application that controls access to the private key). An async state can carry one or more signing requests, comprised of document hashes, or one or more signatures produced over those hashes.
In a typical scenario you get a client-side async state from the SignAsyncBegin method. This state contains document hashes to be signed on the DC server side. You then send the async state to the DC server (often represented by the DCAuth class), which processes it and produces a matching signature state. The async state produced by the server is then passed to the SignAsyncEnd method.
SignExternal Method (XAdESSigner Module)
Signs the document using an external signing facility.
Syntax
public func signExternal() throws -> Void
- (void)signExternal;
Remarks
Call this method to delegate the low-level signing operation to an external, remote, or custom signing engine. This method is useful if the signature has to be made by a device accessible through a custom or non-standard signing interface.
When all preparations are done and hash is computed, the class fires ExternalSign event which allows to pass the hash value for signing.
Timestamp Method (XAdESSigner Module)
Use this method to add an timestamp.
Syntax
- (void)timestamp:(int)sigIndex :(int)timestampType;
Remarks
Call this method to timestamp the signature. Use the TimestampServer property to provide the address of the TSA (Time Stamping Authority) server which should be used for timestamping. This method could be called separately or in SignatureValidated event handler after successful signature validation. Use the TimestampType parameter to specify the type of timestamp to create
Supported timestamp types:
tstSignature | 12 | Signature timestamp |
tstRefsOnly | 13 | RefsOnly timestamp |
tstSigAndRefs | 14 | SigAndRefs timestamp |
tstArchive | 7 | Archive timestamp |
Upgrade Method (XAdESSigner Module)
Upgrades existing XAdES signature to a new form.
Syntax
- (void)upgrade:(int)sigIndex :(int)toForm;
Remarks
XAdES standard defines a number of different 'forms' of signatures which can be used for different purposes. Use this method to upgrade XAdES signature to a new form specified by ToForm. Signatures can normally be upgraded from less sophisticated levels (BES, EPES) to more sophisticated (T, C, X, X-L, A).
The supported forms are:
xafNone | 0 | None |
xafBasic | 1 | XAdES form, supported by XAdES v1.1.1 |
xafBES | 2 | XAdES-BES form, supported starting from XAdES v1.2.2 |
xafEPES | 3 | XAdES-EPES form, supported starting from XAdES v1.2.2 |
xafT | 4 | XAdES-T form |
xafC | 5 | XAdES-C form |
xafX | 6 | XAdES-X form |
xafXL | 7 | XAdES-X-L form |
xafA | 8 | XAdES-A form |
xafExtendedBES | 9 | XAdES-E-BES form |
xafExtendedEPES | 10 | XAdES-E-EPES form |
xafExtendedT | 11 | XAdES-E-T form |
xafExtendedC | 12 | XAdES-E-C form |
xafExtendedX | 13 | XAdES-E-X form |
xafExtendedXLong | 14 | XAdES-E-X-Long form (type 1) |
xafExtendedXL | 15 | XAdES-E-X-L form (type 2) |
xafExtendedA | 16 | XAdES-E-A form |
ChainElementDownload Event (XAdESSigner Module)
Fires when there is a need to download a chain element from an online source.
Syntax
func onChainElementDownload(kind: Int32, certRDN: String, caCertRDN: String, location: String, action: inout Int32)
- (void)onChainElementDownload:(int)kind :(NSString*)certRDN :(NSString*)CACertRDN :(NSString*)location :(int*)action;
Remarks
Subscribe to this event to be notified about validation element retrievals. Use the Action parameter to suppress the download if required.
veaAuto | 0 | Handle the action automatically (the default behaviour) |
veaContinue | 1 | Accept the request implied by the event (accept the certificate, allow the object retrieval) |
veaReject | 2 | Reject the request implied by the event (reject the certificate, disallow the object retrieval) |
veaAcceptNow | 3 | Accept the validated certificate immediately |
veaAbortNow | 4 | Abort the validation, reject the certificate |
ChainElementNeeded Event (XAdESSigner Module)
Fires when an element required to validate the chain was not located.
Syntax
- (void)onChainElementNeeded:(int)kind :(NSString*)certRDN :(NSString*)CACertRDN;
Remarks
Subscribe to this event to be notified about missing validation elements. Use the KnownCRLs, KnownCertificates, and KnownOCSPs properties in the event handler to provide the missing piece.
ChainElementStore Event (XAdESSigner Module)
This event is fired when a chain element (certificate, CRL, or OCSP response) should be stored along with a signature.
Syntax
func onChainElementStore(kind: Int32, body: Data, uri: inout String)
- (void)onChainElementStore:(int)kind :(NSData*)body :(NSString**)URI;
Remarks
This event could occur if you are verifying XAdES-C form or higher. The Body parameter contains the element in binary form that should be stored along with a signature. Use the URI parameter to provide an URI of the stored element.
ChainValidated Event (XAdESSigner Module)
Reports the completion of a certificate chain validation.
Syntax
func onChainValidated(index: Int32, subjectRDN: String, validationResult: Int32, validationDetails: Int32)
- (void)onChainValidated:(int)index :(NSString*)subjectRDN :(int)validationResult :(int)validationDetails;
Remarks
This event is fired when a certificate chain validation routine completes. SubjectRDN identifies the owner of the validated certificate.
ValidationResult set to 0 (zero) indicates successful chain validation.
cvtValid | 0 | The chain is valid |
cvtValidButUntrusted | 1 | The chain is valid, but the root certificate is not trusted |
cvtInvalid | 2 | The chain is not valid (some of certificates are revoked, expired, or contain an invalid signature) |
cvtCantBeEstablished | 3 | The validity of the chain cannot be established because of missing or unavailable validation information (certificates, CRLs, or OCSP responses) |
cvrBadData | 0x0001 | One or more certificates in the validation path are malformed |
cvrRevoked | 0x0002 | One or more certificates are revoked |
cvrNotYetValid | 0x0004 | One or more certificates are not yet valid |
cvrExpired | 0x0008 | One or more certificates are expired |
cvrInvalidSignature | 0x0010 | A certificate contains a non-valid digital signature |
cvrUnknownCA | 0x0020 | A CA certificate for one or more certificates has not been found (chain incomplete) |
cvrCAUnauthorized | 0x0040 | One of the CA certificates are not authorized to act as CA |
cvrCRLNotVerified | 0x0080 | One or more CRLs could not be verified |
cvrOCSPNotVerified | 0x0100 | One or more OCSP responses could not be verified |
cvrIdentityMismatch | 0x0200 | The identity protected by the certificate (a TLS endpoint or an e-mail addressee) does not match what is recorded in the certificate |
cvrNoKeyUsage | 0x0400 | A mandatory key usage is not enabled in one of the chain certificates |
cvrBlocked | 0x0800 | One or more certificates are blocked |
cvrFailure | 0x1000 | General validation failure |
cvrChainLoop | 0x2000 | Chain loop: one of the CA certificates recursively signs itself |
cvrWeakAlgorithm | 0x4000 | A weak algorithm is used in one of certificates or revocation elements |
cvrUserEnforced | 0x8000 | The chain was considered invalid following intervention from a user code |
ChainValidationProgress Event (XAdESSigner Module)
This event is fired multiple times during chain validation to report various stages of the validation procedure.
Syntax
func onChainValidationProgress(eventKind: String, certRDN: String, caCertRDN: String, action: inout Int32)
- (void)onChainValidationProgress:(NSString*)eventKind :(NSString*)certRDN :(NSString*)CACertRDN :(int*)action;
Remarks
Subscribe to this event to be notified about chain validation progress. Use the Action parameter to alter the validation flow.
The EventKind parameter reports the nature of the event being reported. The CertRDN and CACertRDN parameters report the distinguished names of the certificates that are relevant for the event invocation (one or both can be empty, depending on EventKind). Use the Action parameter to adjust the validation flow.
veaAuto | 0 | Handle the action automatically (the default behaviour) |
veaContinue | 1 | Accept the request implied by the event (accept the certificate, allow the object retrieval) |
veaReject | 2 | Reject the request implied by the event (reject the certificate, disallow the object retrieval) |
veaAcceptNow | 3 | Accept the validated certificate immediately |
veaAbortNow | 4 | Abort the validation, reject the certificate |
DocumentLoaded Event (XAdESSigner Module)
This event is fired when the document has been loaded into memory.
Syntax
func onDocumentLoaded(cancel: inout Bool)
- (void)onDocumentLoaded:(int*)cancel;
Remarks
The handler for this event is a good place to check document properties, which may be useful when preparing the signature, for example, the document format.
Set Cancel to true to terminate document processing on this stage.
Error Event (XAdESSigner Module)
Information about errors during signing.
Syntax
- (void)onError:(int)errorCode :(NSString*)description;
Remarks
The event is fired in case of exceptional conditions during signing.
ErrorCode contains an error code and Description contains a textual description of the error. For a list of valid error codes and their descriptions, please refer to XML.
ExternalSign Event (XAdESSigner Module)
Handles remote or external signing initiated by the SignExternal method or other source.
Syntax
func onExternalSign(operationId: String, hashAlgorithm: String, pars: String, data: String, signedData: inout String)
- (void)onExternalSign:(NSString*)operationId :(NSString*)hashAlgorithm :(NSString*)pars :(NSString*)data :(NSString**)signedData;
Remarks
Assign a handler to this event if you need to delegate a low-level signing operation to an external, remote, or custom signing engine. Depending on the settings, the handler will receive a hashed or unhashed value to be signed.
The event handler must pass the value of Data to the signer, obtain the signature, and pass it back to the class via the SignedData parameter.
OperationId provides a comment about the operation and its origin. It depends on the exact class being used, and may be empty. HashAlgorithm specifies the hash algorithm being used for the operation, and Pars contains algorithm-dependent parameters.
The class uses base16 (hex) encoding for the Data, SignedData, and Pars parameters. If your signing engine uses a different input and output encoding, you may need to decode and/or encode the data before and/or after the signing.
A sample MD5 hash encoded in base16: a0dee2a0382afbb09120ffa7ccd8a152 - lower case base16 A0DEE2A0382AFBB09120FFA7CCD8A152 - upper case base16
A sample event handler that uses the .NET RSACryptoServiceProvider class may look like the following:
signer.OnExternalSign += (s, e) =>
{
var cert = new X509Certificate2("cert.pfx", "", X509KeyStorageFlags.Exportable);
var key = (RSACryptoServiceProvider)cert.PrivateKey;
var dataToSign = e.Data.FromBase16String();
var signedData = key.SignHash(dataToSign, "2.16.840.1.101.3.4.2.1");
e.SignedData = signedData.ToBase16String();
};
FormatElement Event (XAdESSigner Module)
Reports the XML element that is currently being processed.
Syntax
func onFormatElement(startTagWhitespace: inout String, endTagWhitespace: inout String, level: Int32, path: String, hasChildElements: Bool)
- (void)onFormatElement:(NSString**)startTagWhitespace :(NSString**)endTagWhitespace :(int)level :(NSString*)path :(BOOL)hasChildElements;
Remarks
Path and Level specify the path to the XML element being processed and its nesting level, respectively.
HasChildElements specify if processed XML element has child elements.
Among other purposes, this event may be used to add whitespace formatting before or after a particular element in the signature.
FormatText Event (XAdESSigner Module)
Reports XML text that is currently being processed.
Syntax
func onFormatText(text: inout String, textType: Int32, level: Int32, path: String)
- (void)onFormatText:(NSString**)text :(int)textType :(int)level :(NSString*)path;
Remarks
TextType parameter specifies the type of the XML text (normal or Base64-encoded) that is stored in the element; Path and Level specify the path to the XML element and its nesting level.
Among other purposes, this event may be used to add whitespace formatting before or after a particular element in the signature.
Notification Event (XAdESSigner Module)
This event notifies the application about an underlying control flow event.
Syntax
- (void)onNotification:(NSString*)eventID :(NSString*)eventParam;
Remarks
The class fires this event to let the application know about some event, occurrence, or milestone in the class. For example, it may fire to report completion of the document processing. The list of events being reported is not fixed, and may be flexibly extended over time.
The unique identifier of the event is provided in the EventID parameter. EventParam contains any parameters accompanying the occurrence. Depending on the type of the class, the exact action it is performing, or the document being processed, one or both may be omitted.
This class can fire this event with the following EventID values:
BeforeTimestamp | This event is fired before a timestamp is requested from the timestamping authority. Use the event handler to modify TSA and HTTP settings. |
TimestampError | This event is only fired if the class failed to obtain a timestamp from the timestamping authority. The EventParam parameter contains extended error info. |
TimestampRequest | A timestamp is requested from the custom timestamping
authority. This event is only fired if TimestampServer was set to a
virtual:// URI. The EventParam parameter contains the
TSP request (or the plain hash, depending on the value provided to
TimestampServer), in base16, that needs to be sent to the TSA.
Use the event handler to send the request to the TSA. Upon receiving the response, assign it, in base16, to the TimestampResponse configuration property. |
ReferenceValidated Event (XAdESSigner Module)
Marks the end of a reference validation.
Syntax
func onReferenceValidated(referenceIndex: Int32, id: String, uri: String, refType: String, digestValid: Bool)
- (void)onReferenceValidated:(int)referenceIndex :(NSString*)ID :(NSString*)URI :(NSString*)refType :(BOOL)digestValid;
Remarks
The class fires this event to report completion of a reference validation. A reference is a building block of a signature as it binds signature coverage to a particular piece of the document.
ResolveReference Event (XAdESSigner Module)
Asks the application to resolve a reference.
Syntax
- (void)onResolveReference:(int)referenceIndex :(NSString*)URI;
Remarks
This event is fired when the control could not automatically resolve a reference and requires custom treatment.
URI contains a reference to the data.
ReferenceIndex specifies the index of the reference to process.
Based on the reference's URI the event handler should set either TargetXMLElement or TargetData property of the reference.
SignatureFound Event (XAdESSigner Module)
Signifies the start of signature validation.
Syntax
func onSignatureFound(index: Int32, issuerRDN: String, serialNumber: Data, subjectKeyID: Data, certFound: Bool, validateSignature: inout Bool, validateChain: inout Bool)
- (void)onSignatureFound:(int)index :(NSString*)issuerRDN :(NSData*)serialNumber :(NSData*)subjectKeyID :(BOOL)certFound :(int*)validateSignature :(int*)validateChain;
Remarks
This event tells the application that signature validation is about to start, and provides the details about the signer's certificate via its IssuerRDN, SerialNumber, and SubjectKeyID parameters. It fires for every signature located in the verified document or message.
The CertFound parameter is set to True if the class has found the needed certificate in one of the known locations, and to False otherwise, in which case you must provide it manually via the KnownCertificates property.
Signature validation consists of two independent stages: cryptographic signature validation and chain validation. Separate validation results are reported for each, with the and properties respectively.
Use the ValidateSignature and ValidateChain parameters to tell the verifier which stages to include in the validation.
SignatureValidated Event (XAdESSigner Module)
Marks the completion of the signature validation routine.
Syntax
func onSignatureValidated(index: Int32, issuerRDN: String, serialNumber: Data, subjectKeyID: Data, validationResult: Int32)
- (void)onSignatureValidated:(int)index :(NSString*)issuerRDN :(NSData*)serialNumber :(NSData*)subjectKeyID :(int)validationResult;
Remarks
This event is fired upon the completion of the signature validation routine, and reports the respective validation result.
Use the IssuerRDN, SerialNumber, and/or SubjectKeyID parameters to identify the signing certificate.
ValidationResult is set to 0 if the validation has been successful, or to a non-zero value in case of a validation failure.
svtValid | 0 | The signature is valid |
svtUnknown | 1 | Signature validity is unknown |
svtCorrupted | 2 | The signature is corrupted |
svtSignerNotFound | 3 | Failed to acquire the signing certificate. The signature cannot be validated. |
svtFailure | 4 | General failure |
TimestampFound Event (XAdESSigner Module)
Signifies the start of a timestamp validation routine.
Syntax
func onTimestampFound(index: Int32, issuerRDN: String, serialNumber: Data, subjectKeyID: Data, certFound: Bool, validateTimestamp: inout Bool, validateChain: inout Bool)
- (void)onTimestampFound:(int)index :(NSString*)issuerRDN :(NSData*)serialNumber :(NSData*)subjectKeyID :(BOOL)certFound :(int*)validateTimestamp :(int*)validateChain;
Remarks
This event fires for every timestamp identified during signature processing, and reports the details about the signer's certificate via its IssuerRDN, SerialNumber, and SubjectKeyID parameters.
The CertFound parameter is set to True if the class has found the needed certificate in one of the known locations, and to False otherwise, in which case you must provide it manually via the KnownCertificates property.
Just like with signature validation, timestamp validation consists of two independent stages: cryptographic signature validation and chain validation. Separate validation results are reported for each, with the and properties respectively.
Use the ValidateSignature and ValidateChain parameters to tell the verifier which stages to include in the validation.
TimestampRequest Event (XAdESSigner Module)
Fires when the component is ready to request a timestamp from an external TSA.
Syntax
func onTimestampRequest(tsa: String, timestampRequest: String, timestampResponse: inout String, suppressDefault: inout Bool)
- (void)onTimestampRequest:(NSString*)TSA :(NSString*)timestampRequest :(NSString**)timestampResponse :(int*)suppressDefault;
Remarks
Subscribe to this event to intercept timestamp requests. You can use it to override timestamping requests and perform them in your code.
The TSA parameter indicates the timestamping service being used. It matches the value passed to the TimestampServer property. Set the SuppressDefault parameter to false if you would like to stop the built-in TSA request from going ahead. The built-in TSA request is also not performed if the returned TimestampResponse parameter is not empty.
TimestampValidated Event (XAdESSigner Module)
Reports the completion of the timestamp validation routine.
Syntax
func onTimestampValidated(index: Int32, issuerRDN: String, serialNumber: Data, subjectKeyID: Data, time: String, validationResult: Int32, chainValidationResult: Int32, chainValidationDetails: Int32)
- (void)onTimestampValidated:(int)index :(NSString*)issuerRDN :(NSData*)serialNumber :(NSData*)subjectKeyID :(NSString*)time :(int)validationResult :(int)chainValidationResult :(int)chainValidationDetails;
Remarks
This event is fired upon the completion of the timestamp validation routine, and reports the respective validation result.
ValidationResult is set to 0 if the validation has been successful, or to a non-zero value in case of a failure.
svtValid | 0 | The signature is valid |
svtUnknown | 1 | Signature validity is unknown |
svtCorrupted | 2 | The signature is corrupted |
svtSignerNotFound | 3 | Failed to acquire the signing certificate. The signature cannot be validated. |
svtFailure | 4 | General failure |
TLSCertNeeded Event (XAdESSigner Module)
Fires when a remote TLS party requests a client certificate.
Syntax
- (void)onTLSCertNeeded:(NSString*)host :(NSString*)CANames;
Remarks
This event fires to notify the implementation that a remote TLS server has requested a client certificate. The Host parameter identifies the host that makes a request, and the CANames parameter (optional, according to the TLS spec) advises on the accepted issuing CAs.
Use the TLSClientChain property in response to this event to provide the requested certificate. Please make sure the client certificate includes the associated private key. Note that you may set the certificates before the connection without waiting for this event to fire.
This event is preceded by the TLSHandshake event for the given host and, if the certificate was accepted, succeeded by the TLSEstablished event.
TLSCertValidate Event (XAdESSigner Module)
This event is fired upon receipt of the TLS server's certificate, allowing the user to control its acceptance.
Syntax
func onTLSCertValidate(serverHost: String, serverIP: String, accept: inout Bool)
- (void)onTLSCertValidate:(NSString*)serverHost :(NSString*)serverIP :(int*)accept;
Remarks
This event is fired during a TLS handshake. Use the TLSServerChain property to access the certificate chain. In general, classes may contact a number of TLS endpoints during their work, depending on their configuration.
Accept is assigned in accordance with the outcome of the internal validation check performed by the class, and can be adjusted if needed.
TLSEstablished Event (XAdESSigner Module)
Fires when a TLS handshake with Host successfully completes.
Syntax
func onTLSEstablished(host: String, version: String, ciphersuite: String, connectionId: Data, abort: inout Bool)
- (void)onTLSEstablished:(NSString*)host :(NSString*)version :(NSString*)ciphersuite :(NSData*)connectionId :(int*)abort;
Remarks
The class uses this event to notify the application about a successful completion of a TLS handshake.
The Version, Ciphersuite, and ConnectionId parameters indicate the security parameters of the new connection. Use the Abort parameter if you need to terminate the connection at this stage.
TLSHandshake Event (XAdESSigner Module)
Fires when a new TLS handshake is initiated, before the handshake commences.
Syntax
func onTLSHandshake(host: String, abort: inout Bool)
- (void)onTLSHandshake:(NSString*)host :(int*)abort;
Remarks
The class uses this event to notify the application about the start of a new TLS handshake to Host. If the handshake is successful, this event will be followed by the TLSEstablished event. If the server chooses to request a client certificate, the TLSCertNeeded event will also be fired.
TLSShutdown Event (XAdESSigner Module)
Reports the graceful closure of a TLS connection.
Syntax
func onTLSShutdown(host: String)
- (void)onTLSShutdown:(NSString*)host;
Remarks
This event notifies the application about the closure of an earlier established TLS connection. Note that only graceful connection closures are reported.
Certificate Type
Provides details of an individual X.509 certificate.
Remarks
This type provides access to X.509 certificate details.
Fields
bytes
Data (read-only)
Default Value: ""
Returns the raw certificate data in DER format.
ca
Bool
Default Value: False
Indicates whether the certificate has a CA capability (a setting in the BasicConstraints extension).
caKeyID
Data (read-only)
Default Value: ""
A unique identifier (fingerprint) of the CA certificate's private key.
Authority Key Identifier is a (non-critical) X.509 certificate extension which allows the identification of certificates produced by the same issuer, but with different public keys.
crlDistributionPoints
String
Default Value: ""
Locations of the CRL (Certificate Revocation List) distribution points used to check this certificate's validity.
curve
String
Default Value: ""
Specifies the elliptic curve of the EC public key.
SB_EC_SECP112R1 | SECP112R1 | |
SB_EC_SECP112R2 | SECP112R2 | |
SB_EC_SECP128R1 | SECP128R1 | |
SB_EC_SECP128R2 | SECP128R2 | |
SB_EC_SECP160K1 | SECP160K1 | |
SB_EC_SECP160R1 | SECP160R1 | |
SB_EC_SECP160R2 | SECP160R2 | |
SB_EC_SECP192K1 | SECP192K1 | |
SB_EC_SECP192R1 | SECP192R1 | |
SB_EC_SECP224K1 | SECP224K1 | |
SB_EC_SECP224R1 | SECP224R1 | |
SB_EC_SECP256K1 | SECP256K1 | |
SB_EC_SECP256R1 | SECP256R1 | |
SB_EC_SECP384R1 | SECP384R1 | |
SB_EC_SECP521R1 | SECP521R1 | |
SB_EC_SECT113R1 | SECT113R1 | |
SB_EC_SECT113R2 | SECT113R2 | |
SB_EC_SECT131R1 | SECT131R1 | |
SB_EC_SECT131R2 | SECT131R2 | |
SB_EC_SECT163K1 | SECT163K1 | |
SB_EC_SECT163R1 | SECT163R1 | |
SB_EC_SECT163R2 | SECT163R2 | |
SB_EC_SECT193R1 | SECT193R1 | |
SB_EC_SECT193R2 | SECT193R2 | |
SB_EC_SECT233K1 | SECT233K1 | |
SB_EC_SECT233R1 | SECT233R1 | |
SB_EC_SECT239K1 | SECT239K1 | |
SB_EC_SECT283K1 | SECT283K1 | |
SB_EC_SECT283R1 | SECT283R1 | |
SB_EC_SECT409K1 | SECT409K1 | |
SB_EC_SECT409R1 | SECT409R1 | |
SB_EC_SECT571K1 | SECT571K1 | |
SB_EC_SECT571R1 | SECT571R1 | |
SB_EC_PRIME192V1 | PRIME192V1 | |
SB_EC_PRIME192V2 | PRIME192V2 | |
SB_EC_PRIME192V3 | PRIME192V3 | |
SB_EC_PRIME239V1 | PRIME239V1 | |
SB_EC_PRIME239V2 | PRIME239V2 | |
SB_EC_PRIME239V3 | PRIME239V3 | |
SB_EC_PRIME256V1 | PRIME256V1 | |
SB_EC_C2PNB163V1 | C2PNB163V1 | |
SB_EC_C2PNB163V2 | C2PNB163V2 | |
SB_EC_C2PNB163V3 | C2PNB163V3 | |
SB_EC_C2PNB176W1 | C2PNB176W1 | |
SB_EC_C2TNB191V1 | C2TNB191V1 | |
SB_EC_C2TNB191V2 | C2TNB191V2 | |
SB_EC_C2TNB191V3 | C2TNB191V3 | |
SB_EC_C2ONB191V4 | C2ONB191V4 | |
SB_EC_C2ONB191V5 | C2ONB191V5 | |
SB_EC_C2PNB208W1 | C2PNB208W1 | |
SB_EC_C2TNB239V1 | C2TNB239V1 | |
SB_EC_C2TNB239V2 | C2TNB239V2 | |
SB_EC_C2TNB239V3 | C2TNB239V3 | |
SB_EC_C2ONB239V4 | C2ONB239V4 | |
SB_EC_C2ONB239V5 | C2ONB239V5 | |
SB_EC_C2PNB272W1 | C2PNB272W1 | |
SB_EC_C2PNB304W1 | C2PNB304W1 | |
SB_EC_C2TNB359V1 | C2TNB359V1 | |
SB_EC_C2PNB368W1 | C2PNB368W1 | |
SB_EC_C2TNB431R1 | C2TNB431R1 | |
SB_EC_NISTP192 | NISTP192 | |
SB_EC_NISTP224 | NISTP224 | |
SB_EC_NISTP256 | NISTP256 | |
SB_EC_NISTP384 | NISTP384 | |
SB_EC_NISTP521 | NISTP521 | |
SB_EC_NISTB163 | NISTB163 | |
SB_EC_NISTB233 | NISTB233 | |
SB_EC_NISTB283 | NISTB283 | |
SB_EC_NISTB409 | NISTB409 | |
SB_EC_NISTB571 | NISTB571 | |
SB_EC_NISTK163 | NISTK163 | |
SB_EC_NISTK233 | NISTK233 | |
SB_EC_NISTK283 | NISTK283 | |
SB_EC_NISTK409 | NISTK409 | |
SB_EC_NISTK571 | NISTK571 | |
SB_EC_GOSTCPTEST | GOSTCPTEST | |
SB_EC_GOSTCPA | GOSTCPA | |
SB_EC_GOSTCPB | GOSTCPB | |
SB_EC_GOSTCPC | GOSTCPC | |
SB_EC_GOSTCPXCHA | GOSTCPXCHA | |
SB_EC_GOSTCPXCHB | GOSTCPXCHB | |
SB_EC_BRAINPOOLP160R1 | BRAINPOOLP160R1 | |
SB_EC_BRAINPOOLP160T1 | BRAINPOOLP160T1 | |
SB_EC_BRAINPOOLP192R1 | BRAINPOOLP192R1 | |
SB_EC_BRAINPOOLP192T1 | BRAINPOOLP192T1 | |
SB_EC_BRAINPOOLP224R1 | BRAINPOOLP224R1 | |
SB_EC_BRAINPOOLP224T1 | BRAINPOOLP224T1 | |
SB_EC_BRAINPOOLP256R1 | BRAINPOOLP256R1 | |
SB_EC_BRAINPOOLP256T1 | BRAINPOOLP256T1 | |
SB_EC_BRAINPOOLP320R1 | BRAINPOOLP320R1 | |
SB_EC_BRAINPOOLP320T1 | BRAINPOOLP320T1 | |
SB_EC_BRAINPOOLP384R1 | BRAINPOOLP384R1 | |
SB_EC_BRAINPOOLP384T1 | BRAINPOOLP384T1 | |
SB_EC_BRAINPOOLP512R1 | BRAINPOOLP512R1 | |
SB_EC_BRAINPOOLP512T1 | BRAINPOOLP512T1 | |
SB_EC_CURVE25519 | CURVE25519 | |
SB_EC_CURVE448 | CURVE448 |
fingerprint
Data (read-only)
Default Value: ""
Contains the fingerprint (a hash imprint) of this certificate.
friendlyName
String (read-only)
Default Value: ""
Contains an associated alias (friendly name) of the certificate.
handle
Int64
Default Value: 0
Allows to get or set a 'handle', a unique identifier of the underlying property object. Use this property to assign objects of the same type in a quicker manner, without copying them fieldwise.
When you pass a handle of one object to another, the source object is copied to the destination rather than assigned. It is safe to get rid of the original object
after such operation.
pdfSigner.setSigningCertHandle(certMgr.getCertHandle());
hashAlgorithm
String
Default Value: ""
Specifies the hash algorithm to be used in the operations on the certificate (such as key signing)
SB_HASH_ALGORITHM_SHA1 | SHA1 | |
SB_HASH_ALGORITHM_SHA224 | SHA224 | |
SB_HASH_ALGORITHM_SHA256 | SHA256 | |
SB_HASH_ALGORITHM_SHA384 | SHA384 | |
SB_HASH_ALGORITHM_SHA512 | SHA512 | |
SB_HASH_ALGORITHM_MD2 | MD2 | |
SB_HASH_ALGORITHM_MD4 | MD4 | |
SB_HASH_ALGORITHM_MD5 | MD5 | |
SB_HASH_ALGORITHM_RIPEMD160 | RIPEMD160 | |
SB_HASH_ALGORITHM_CRC32 | CRC32 | |
SB_HASH_ALGORITHM_SSL3 | SSL3 | |
SB_HASH_ALGORITHM_GOST_R3411_1994 | GOST1994 | |
SB_HASH_ALGORITHM_WHIRLPOOL | WHIRLPOOL | |
SB_HASH_ALGORITHM_POLY1305 | POLY1305 | |
SB_HASH_ALGORITHM_SHA3_224 | SHA3_224 | |
SB_HASH_ALGORITHM_SHA3_256 | SHA3_256 | |
SB_HASH_ALGORITHM_SHA3_384 | SHA3_384 | |
SB_HASH_ALGORITHM_SHA3_512 | SHA3_512 | |
SB_HASH_ALGORITHM_BLAKE2S_128 | BLAKE2S_128 | |
SB_HASH_ALGORITHM_BLAKE2S_160 | BLAKE2S_160 | |
SB_HASH_ALGORITHM_BLAKE2S_224 | BLAKE2S_224 | |
SB_HASH_ALGORITHM_BLAKE2S_256 | BLAKE2S_256 | |
SB_HASH_ALGORITHM_BLAKE2B_160 | BLAKE2B_160 | |
SB_HASH_ALGORITHM_BLAKE2B_256 | BLAKE2B_256 | |
SB_HASH_ALGORITHM_BLAKE2B_384 | BLAKE2B_384 | |
SB_HASH_ALGORITHM_BLAKE2B_512 | BLAKE2B_512 | |
SB_HASH_ALGORITHM_SHAKE_128 | SHAKE_128 | |
SB_HASH_ALGORITHM_SHAKE_256 | SHAKE_256 | |
SB_HASH_ALGORITHM_SHAKE_128_LEN | SHAKE_128_LEN | |
SB_HASH_ALGORITHM_SHAKE_256_LEN | SHAKE_256_LEN |
issuer
String (read-only)
Default Value: ""
The common name of the certificate issuer (CA), typically a company name.
issuerRDN
String
Default Value: ""
A collection of information, in the form of [OID, Value] pairs, uniquely identifying the certificate issuer.
keyAlgorithm
String
Default Value: "0"
Specifies the public key algorithm of this certificate.
SB_CERT_ALGORITHM_ID_RSA_ENCRYPTION | rsaEncryption | |
SB_CERT_ALGORITHM_MD2_RSA_ENCRYPTION | md2withRSAEncryption | |
SB_CERT_ALGORITHM_MD5_RSA_ENCRYPTION | md5withRSAEncryption | |
SB_CERT_ALGORITHM_SHA1_RSA_ENCRYPTION | sha1withRSAEncryption | |
SB_CERT_ALGORITHM_ID_DSA | id-dsa | |
SB_CERT_ALGORITHM_ID_DSA_SHA1 | id-dsa-with-sha1 | |
SB_CERT_ALGORITHM_DH_PUBLIC | dhpublicnumber | |
SB_CERT_ALGORITHM_SHA224_RSA_ENCRYPTION | sha224WithRSAEncryption | |
SB_CERT_ALGORITHM_SHA256_RSA_ENCRYPTION | sha256WithRSAEncryption | |
SB_CERT_ALGORITHM_SHA384_RSA_ENCRYPTION | sha384WithRSAEncryption | |
SB_CERT_ALGORITHM_SHA512_RSA_ENCRYPTION | sha512WithRSAEncryption | |
SB_CERT_ALGORITHM_ID_RSAPSS | id-RSASSA-PSS | |
SB_CERT_ALGORITHM_ID_RSAOAEP | id-RSAES-OAEP | |
SB_CERT_ALGORITHM_RSASIGNATURE_RIPEMD160 | ripemd160withRSA | |
SB_CERT_ALGORITHM_ID_ELGAMAL | elGamal | |
SB_CERT_ALGORITHM_SHA1_ECDSA | ecdsa-with-SHA1 | |
SB_CERT_ALGORITHM_RECOMMENDED_ECDSA | ecdsa-recommended | |
SB_CERT_ALGORITHM_SHA224_ECDSA | ecdsa-with-SHA224 | |
SB_CERT_ALGORITHM_SHA256_ECDSA | ecdsa-with-SHA256 | |
SB_CERT_ALGORITHM_SHA384_ECDSA | ecdsa-with-SHA384 | |
SB_CERT_ALGORITHM_SHA512_ECDSA | ecdsa-with-SHA512 | |
SB_CERT_ALGORITHM_EC | id-ecPublicKey | |
SB_CERT_ALGORITHM_SPECIFIED_ECDSA | ecdsa-specified | |
SB_CERT_ALGORITHM_GOST_R3410_1994 | id-GostR3410-94 | |
SB_CERT_ALGORITHM_GOST_R3410_2001 | id-GostR3410-2001 | |
SB_CERT_ALGORITHM_GOST_R3411_WITH_R3410_1994 | id-GostR3411-94-with-GostR3410-94 | |
SB_CERT_ALGORITHM_GOST_R3411_WITH_R3410_2001 | id-GostR3411-94-with-GostR3410-2001 | |
SB_CERT_ALGORITHM_SHA1_ECDSA_PLAIN | ecdsa-plain-SHA1 | |
SB_CERT_ALGORITHM_SHA224_ECDSA_PLAIN | ecdsa-plain-SHA224 | |
SB_CERT_ALGORITHM_SHA256_ECDSA_PLAIN | ecdsa-plain-SHA256 | |
SB_CERT_ALGORITHM_SHA384_ECDSA_PLAIN | ecdsa-plain-SHA384 | |
SB_CERT_ALGORITHM_SHA512_ECDSA_PLAIN | ecdsa-plain-SHA512 | |
SB_CERT_ALGORITHM_RIPEMD160_ECDSA_PLAIN | ecdsa-plain-RIPEMD160 | |
SB_CERT_ALGORITHM_WHIRLPOOL_RSA_ENCRYPTION | whirlpoolWithRSAEncryption | |
SB_CERT_ALGORITHM_ID_DSA_SHA224 | id-dsa-with-sha224 | |
SB_CERT_ALGORITHM_ID_DSA_SHA256 | id-dsa-with-sha256 | |
SB_CERT_ALGORITHM_SHA3_224_RSA_ENCRYPTION | id-rsassa-pkcs1-v1_5-with-sha3-224 | |
SB_CERT_ALGORITHM_SHA3_256_RSA_ENCRYPTION | id-rsassa-pkcs1-v1_5-with-sha3-256 | |
SB_CERT_ALGORITHM_SHA3_384_RSA_ENCRYPTION | id-rsassa-pkcs1-v1_5-with-sha3-384 | |
SB_CERT_ALGORITHM_SHA3_512_RSA_ENCRYPTION | id-rsassa-pkcs1-v1_5-with-sha3-512 | |
SB_CERT_ALGORITHM_SHA3_224_ECDSA | id-ecdsa-with-sha3-224 | |
SB_CERT_ALGORITHM_SHA3_256_ECDSA | id-ecdsa-with-sha3-256 | |
SB_CERT_ALGORITHM_SHA3_384_ECDSA | id-ecdsa-with-sha3-384 | |
SB_CERT_ALGORITHM_SHA3_512_ECDSA | id-ecdsa-with-sha3-512 | |
SB_CERT_ALGORITHM_SHA3_224_ECDSA_PLAIN | id-ecdsa-plain-with-sha3-224 | |
SB_CERT_ALGORITHM_SHA3_256_ECDSA_PLAIN | id-ecdsa-plain-with-sha3-256 | |
SB_CERT_ALGORITHM_SHA3_384_ECDSA_PLAIN | id-ecdsa-plain-with-sha3-384 | |
SB_CERT_ALGORITHM_SHA3_512_ECDSA_PLAIN | id-ecdsa-plain-with-sha3-512 | |
SB_CERT_ALGORITHM_ID_DSA_SHA3_224 | id-dsa-with-sha3-224 | |
SB_CERT_ALGORITHM_ID_DSA_SHA3_256 | id-dsa-with-sha3-256 | |
SB_CERT_ALGORITHM_BLAKE2S_128_RSA_ENCRYPTION | id-rsassa-pkcs1-v1_5-with-blake2s128 | |
SB_CERT_ALGORITHM_BLAKE2S_160_RSA_ENCRYPTION | id-rsassa-pkcs1-v1_5-with-blake2s160 | |
SB_CERT_ALGORITHM_BLAKE2S_224_RSA_ENCRYPTION | id-rsassa-pkcs1-v1_5-with-blake2s224 | |
SB_CERT_ALGORITHM_BLAKE2S_256_RSA_ENCRYPTION | id-rsassa-pkcs1-v1_5-with-blake2s256 | |
SB_CERT_ALGORITHM_BLAKE2B_160_RSA_ENCRYPTION | id-rsassa-pkcs1-v1_5-with-blake2b160 | |
SB_CERT_ALGORITHM_BLAKE2B_256_RSA_ENCRYPTION | id-rsassa-pkcs1-v1_5-with-blake2b256 | |
SB_CERT_ALGORITHM_BLAKE2B_384_RSA_ENCRYPTION | id-rsassa-pkcs1-v1_5-with-blake2b384 | |
SB_CERT_ALGORITHM_BLAKE2B_512_RSA_ENCRYPTION | id-rsassa-pkcs1-v1_5-with-blake2b512 | |
SB_CERT_ALGORITHM_BLAKE2S_128_ECDSA | id-ecdsa-with-blake2s128 | |
SB_CERT_ALGORITHM_BLAKE2S_160_ECDSA | id-ecdsa-with-blake2s160 | |
SB_CERT_ALGORITHM_BLAKE2S_224_ECDSA | id-ecdsa-with-blake2s224 | |
SB_CERT_ALGORITHM_BLAKE2S_256_ECDSA | id-ecdsa-with-blake2s256 | |
SB_CERT_ALGORITHM_BLAKE2B_160_ECDSA | id-ecdsa-with-blake2b160 | |
SB_CERT_ALGORITHM_BLAKE2B_256_ECDSA | id-ecdsa-with-blake2b256 | |
SB_CERT_ALGORITHM_BLAKE2B_384_ECDSA | id-ecdsa-with-blake2b384 | |
SB_CERT_ALGORITHM_BLAKE2B_512_ECDSA | id-ecdsa-with-blake2b512 | |
SB_CERT_ALGORITHM_BLAKE2S_128_ECDSA_PLAIN | id-ecdsa-plain-with-blake2s128 | |
SB_CERT_ALGORITHM_BLAKE2S_160_ECDSA_PLAIN | id-ecdsa-plain-with-blake2s160 | |
SB_CERT_ALGORITHM_BLAKE2S_224_ECDSA_PLAIN | id-ecdsa-plain-with-blake2s224 | |
SB_CERT_ALGORITHM_BLAKE2S_256_ECDSA_PLAIN | id-ecdsa-plain-with-blake2s256 | |
SB_CERT_ALGORITHM_BLAKE2B_160_ECDSA_PLAIN | id-ecdsa-plain-with-blake2b160 | |
SB_CERT_ALGORITHM_BLAKE2B_256_ECDSA_PLAIN | id-ecdsa-plain-with-blake2b256 | |
SB_CERT_ALGORITHM_BLAKE2B_384_ECDSA_PLAIN | id-ecdsa-plain-with-blake2b384 | |
SB_CERT_ALGORITHM_BLAKE2B_512_ECDSA_PLAIN | id-ecdsa-plain-with-blake2b512 | |
SB_CERT_ALGORITHM_ID_DSA_BLAKE2S_224 | id-dsa-with-blake2s224 | |
SB_CERT_ALGORITHM_ID_DSA_BLAKE2S_256 | id-dsa-with-blake2s256 | |
SB_CERT_ALGORITHM_EDDSA_ED25519 | id-Ed25519 | |
SB_CERT_ALGORITHM_EDDSA_ED448 | id-Ed448 | |
SB_CERT_ALGORITHM_EDDSA_ED25519_PH | id-Ed25519ph | |
SB_CERT_ALGORITHM_EDDSA_ED448_PH | id-Ed448ph | |
SB_CERT_ALGORITHM_EDDSA | id-EdDSA | |
SB_CERT_ALGORITHM_EDDSA_SIGNATURE | id-EdDSA-sig |
keyBits
Int32 (read-only)
Default Value: 0
Returns the length of the public key.
keyFingerprint
Data (read-only)
Default Value: ""
Returns a fingerprint of the public key contained in the certificate.
keyUsage
Int32
Default Value: 0
Indicates the purposes of the key contained in the certificate, in the form of an OR'ed flag set.
This value is a bit mask of the following values:
ckuUnknown | 0x00000 | Unknown key usage |
ckuDigitalSignature | 0x00001 | Digital signature |
ckuNonRepudiation | 0x00002 | Non-repudiation |
ckuKeyEncipherment | 0x00004 | Key encipherment |
ckuDataEncipherment | 0x00008 | Data encipherment |
ckuKeyAgreement | 0x00010 | Key agreement |
ckuKeyCertSign | 0x00020 | Certificate signing |
ckuCRLSign | 0x00040 | Revocation signing |
ckuEncipherOnly | 0x00080 | Encipher only |
ckuDecipherOnly | 0x00100 | Decipher only |
ckuServerAuthentication | 0x00200 | Server authentication |
ckuClientAuthentication | 0x00400 | Client authentication |
ckuCodeSigning | 0x00800 | Code signing |
ckuEmailProtection | 0x01000 | Email protection |
ckuTimeStamping | 0x02000 | Timestamping |
ckuOCSPSigning | 0x04000 | OCSP signing |
ckuSmartCardLogon | 0x08000 | Smartcard logon |
ckuKeyPurposeClientAuth | 0x10000 | Kerberos - client authentication |
ckuKeyPurposeKDC | 0x20000 | Kerberos - KDC |
keyValid
Bool (read-only)
Default Value: False
Returns True if the certificate's key is cryptographically valid, and False otherwise.
ocspLocations
String
Default Value: ""
Locations of OCSP (Online Certificate Status Protocol) services that can be used to check this certificate's validity, as recorded by the CA.
ocspNoCheck
Bool
Default Value: False
Accessor to the value of the certificate's ocsp-no-check extension.
origin
Int32 (read-only)
Default Value: 0
Returns the origin of this certificate.
policyIDs
String
Default Value: ""
Contains identifiers (OIDs) of the applicable certificate policies.
The Certificate Policies extension identifies a sequence of policies under which the certificate has been issued, and which regulate its usage.
privateKeyBytes
Data (read-only)
Default Value: ""
Contains the certificate's private key. It is normal for this property to be empty if the private key is non-exportable.
privateKeyExists
Bool (read-only)
Default Value: False
Indicates whether the certificate has an associated private key.
privateKeyExtractable
Bool (read-only)
Default Value: False
Indicates whether the private key is extractable.
publicKeyBytes
Data (read-only)
Default Value: ""
Contains the certificate's public key in DER format.
qualifiedStatements
QualifiedStatementsTypes
Default Value: 0
Returns the qualified status of the certificate.
selfSigned
Bool (read-only)
Default Value: False
Indicates whether the certificate is self-signed (root) or signed by an external CA.
serialNumber
Data
Default Value: ""
Returns the certificate's serial number.
sigAlgorithm
String (read-only)
Default Value: ""
Indicates the algorithm that was used by the CA to sign this certificate.
subject
String (read-only)
Default Value: ""
The common name of the certificate holder, typically an individual's name, a URL, an e-mail address, or a company name.
subjectAlternativeName
String
Default Value: ""
Returns or sets the value of the Subject Alternative Name extension of the certificate.
subjectKeyID
Data
Default Value: ""
Contains a unique identifier (fingerprint) of the certificate's private key.
Subject Key Identifier is a (non-critical) X.509 certificate extension which allows the identification of certificates containing a particular public key. In SecureBlackbox, the unique identifier is represented with a SHA1 hash of the bit string of the subject public key.
subjectRDN
String
Default Value: ""
A collection of information, in the form of [OID, Value] pairs, uniquely identifying the certificate holder (subject).
validFrom
String
Default Value: ""
The time point at which the certificate becomes valid, in UTC.
validTo
String
Default Value: ""
The time point at which the certificate expires, in UTC.
Constructors
public init(stream: )
Loads the X.509 certificate from a stream. Stream is a stream containing the certificate data.
public init()
Creates a new object with default field values.
CRL Type
Represents a Certificate Revocation List.
Remarks
CRLs store information about revoked certificates, i.e., certificates that have been identified as invalid by their issuing certificate authority (CA) for any number of reasons.
Each CRL object lists certificates from a single CA and identifies them by their serial numbers. A CA may or may not publish a CRL, may publish several CRLs, or may publish the same CRL in multiple locations.
Unlike OCSP responses, CRLs only list certificates that have been revoked. They do not list certificates that are still valid.
Fields
bytes
Data (read-only)
Default Value: ""
Returns the raw CRL data in DER format.
caKeyID
Data
Default Value: ""
A unique identifier (fingerprint) of the CA certificate's private key, if present in the CRL.
entryCount
Int32 (read-only)
Default Value: 0
Returns the number of certificate status entries in the CRL.
handle
Int64
Default Value: 0
Allows to get or set a 'handle', a unique identifier of the underlying property object. Use this property to assign objects of the same type in a quicker manner, without copying them fieldwise.
When you pass a handle of one object to another, the source object is copied to the destination rather than assigned. It is safe to get rid of the original object
after such operation.
pdfSigner.setSigningCertHandle(certMgr.getCertHandle());
issuer
String (read-only)
Default Value: ""
The common name of the CRL issuer (CA), typically a company name.
issuerRDN
String (read-only)
Default Value: ""
A collection of information, in the form of [OID, Value] pairs, uniquely identifying the CRL issuer.
location
String (read-only)
Default Value: ""
The URL that the CRL was downloaded from.
nextUpdate
String (read-only)
Default Value: ""
The planned time and date of the next version of this CRL to be published.
sigAlgorithm
String (read-only)
Default Value: "0"
The public key algorithm that was used by the CA to sign this CRL.
tbs
Data (read-only)
Default Value: ""
The to-be-signed part of the CRL (the CRL without the signature part).
thisUpdate
String (read-only)
Default Value: ""
The date and time at which this version of the CRL was published.
Constructors
public init()
Creates an empty CRL object.
ExternalCrypto Type
Specifies the parameters of external cryptographic calls.
Remarks
External cryptocalls are used in a Distributed Cryptography (DC) subsystem, which allows the delegation of security operations to the remote agent. For instance, it can be used to compute the signature value on the server, while retaining the client's private key locally.
Fields
asyncDocumentID
String
Default Value: ""
Specifies an optional document ID for SignAsyncBegin() and SignAsyncEnd() calls.
Use this property when working with multi-signature DCAuth requests and responses to uniquely identify documents signed within a larger batch. On the completion stage, this value helps the signing component 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 the pre-signing (SignAsyncBegin) and completion (SignAsyncEnd) stages.
customParams
String
Default Value: ""
Custom parameters to be passed to the signing service (uninterpreted).
data
String
Default Value: ""
Additional data to be included in the async state and mirrored back by the requestor.
externalHashCalculation
Bool
Default Value: False
Specifies whether the message hash is to be calculated at the external endpoint. Please note that this mode is not supported by the DCAuth class.
If set to true, the class will pass a few kilobytes of to-be-signed data from the document to the OnExternalSign event. This only applies when SignExternal() is called.
hashAlgorithm
String
Default Value: "SHA256"
Specifies the request's signature hash algorithm.
SB_HASH_ALGORITHM_SHA1 | SHA1 | |
SB_HASH_ALGORITHM_SHA224 | SHA224 | |
SB_HASH_ALGORITHM_SHA256 | SHA256 | |
SB_HASH_ALGORITHM_SHA384 | SHA384 | |
SB_HASH_ALGORITHM_SHA512 | SHA512 | |
SB_HASH_ALGORITHM_MD2 | MD2 | |
SB_HASH_ALGORITHM_MD4 | MD4 | |
SB_HASH_ALGORITHM_MD5 | MD5 | |
SB_HASH_ALGORITHM_RIPEMD160 | RIPEMD160 | |
SB_HASH_ALGORITHM_CRC32 | CRC32 | |
SB_HASH_ALGORITHM_SSL3 | SSL3 | |
SB_HASH_ALGORITHM_GOST_R3411_1994 | GOST1994 | |
SB_HASH_ALGORITHM_WHIRLPOOL | WHIRLPOOL | |
SB_HASH_ALGORITHM_POLY1305 | POLY1305 | |
SB_HASH_ALGORITHM_SHA3_224 | SHA3_224 | |
SB_HASH_ALGORITHM_SHA3_256 | SHA3_256 | |
SB_HASH_ALGORITHM_SHA3_384 | SHA3_384 | |
SB_HASH_ALGORITHM_SHA3_512 | SHA3_512 | |
SB_HASH_ALGORITHM_BLAKE2S_128 | BLAKE2S_128 | |
SB_HASH_ALGORITHM_BLAKE2S_160 | BLAKE2S_160 | |
SB_HASH_ALGORITHM_BLAKE2S_224 | BLAKE2S_224 | |
SB_HASH_ALGORITHM_BLAKE2S_256 | BLAKE2S_256 | |
SB_HASH_ALGORITHM_BLAKE2B_160 | BLAKE2B_160 | |
SB_HASH_ALGORITHM_BLAKE2B_256 | BLAKE2B_256 | |
SB_HASH_ALGORITHM_BLAKE2B_384 | BLAKE2B_384 | |
SB_HASH_ALGORITHM_BLAKE2B_512 | BLAKE2B_512 | |
SB_HASH_ALGORITHM_SHAKE_128 | SHAKE_128 | |
SB_HASH_ALGORITHM_SHAKE_256 | SHAKE_256 | |
SB_HASH_ALGORITHM_SHAKE_128_LEN | SHAKE_128_LEN | |
SB_HASH_ALGORITHM_SHAKE_256_LEN | SHAKE_256_LEN |
keyID
String
Default Value: ""
The ID of the pre-shared key used for DC request authentication.
Asynchronous DCAuth-driven communication requires that parties authenticate each other with a secret pre-shared cryptographic key. This provides an extra protection layer for the protocol and diminishes the risk of the private key becoming abused by foreign parties. Use this property to provide the pre-shared key identifier, and use to pass the key itself.
The same KeyID/KeySecret pair should be used on the DCAuth side for the signing requests to be accepted.
Note: The KeyID/KeySecret scheme is very similar to the AuthKey scheme used in various Cloud service providers to authenticate users.
Example:
signer.ExternalCrypto.KeyID = "MainSigningKey";
signer.ExternalCrypto.KeySecret = "abcdef0123456789";
keySecret
String
Default Value: ""
The pre-shared key used for DC request authentication. This key must be set and match the key used by the DCAuth counterpart for the scheme to work.
method
AsyncSignMethods
Default Value: 0
Specifies the asynchronous signing method. This is typically defined by the DC server capabilities and setup.
Available options:
asmdPKCS1 | 0 |
asmdPKCS7 | 1 |
mode
ExternalCryptoModes
Default Value: 0
Specifies the external cryptography mode.
Available options:
ecmDefault | The default value (0) |
ecmDisabled | Do not use DC or external signing (1) |
ecmGeneric | Generic external signing with the OnExternalSign event (2) |
ecmDCAuth | DCAuth signing (3) |
ecmDCAuthJSON | DCAuth signing in JSON format (4) |
publicKeyAlgorithm
String
Default Value: ""
Provide the public key algorithm here if the certificate is not available on the pre-signing stage.
SB_CERT_ALGORITHM_ID_RSA_ENCRYPTION | rsaEncryption | |
SB_CERT_ALGORITHM_MD2_RSA_ENCRYPTION | md2withRSAEncryption | |
SB_CERT_ALGORITHM_MD5_RSA_ENCRYPTION | md5withRSAEncryption | |
SB_CERT_ALGORITHM_SHA1_RSA_ENCRYPTION | sha1withRSAEncryption | |
SB_CERT_ALGORITHM_ID_DSA | id-dsa | |
SB_CERT_ALGORITHM_ID_DSA_SHA1 | id-dsa-with-sha1 | |
SB_CERT_ALGORITHM_DH_PUBLIC | dhpublicnumber | |
SB_CERT_ALGORITHM_SHA224_RSA_ENCRYPTION | sha224WithRSAEncryption | |
SB_CERT_ALGORITHM_SHA256_RSA_ENCRYPTION | sha256WithRSAEncryption | |
SB_CERT_ALGORITHM_SHA384_RSA_ENCRYPTION | sha384WithRSAEncryption | |
SB_CERT_ALGORITHM_SHA512_RSA_ENCRYPTION | sha512WithRSAEncryption | |
SB_CERT_ALGORITHM_ID_RSAPSS | id-RSASSA-PSS | |
SB_CERT_ALGORITHM_ID_RSAOAEP | id-RSAES-OAEP | |
SB_CERT_ALGORITHM_RSASIGNATURE_RIPEMD160 | ripemd160withRSA | |
SB_CERT_ALGORITHM_ID_ELGAMAL | elGamal | |
SB_CERT_ALGORITHM_SHA1_ECDSA | ecdsa-with-SHA1 | |
SB_CERT_ALGORITHM_RECOMMENDED_ECDSA | ecdsa-recommended | |
SB_CERT_ALGORITHM_SHA224_ECDSA | ecdsa-with-SHA224 | |
SB_CERT_ALGORITHM_SHA256_ECDSA | ecdsa-with-SHA256 | |
SB_CERT_ALGORITHM_SHA384_ECDSA | ecdsa-with-SHA384 | |
SB_CERT_ALGORITHM_SHA512_ECDSA | ecdsa-with-SHA512 | |
SB_CERT_ALGORITHM_EC | id-ecPublicKey | |
SB_CERT_ALGORITHM_SPECIFIED_ECDSA | ecdsa-specified | |
SB_CERT_ALGORITHM_GOST_R3410_1994 | id-GostR3410-94 | |
SB_CERT_ALGORITHM_GOST_R3410_2001 | id-GostR3410-2001 | |
SB_CERT_ALGORITHM_GOST_R3411_WITH_R3410_1994 | id-GostR3411-94-with-GostR3410-94 | |
SB_CERT_ALGORITHM_GOST_R3411_WITH_R3410_2001 | id-GostR3411-94-with-GostR3410-2001 | |
SB_CERT_ALGORITHM_SHA1_ECDSA_PLAIN | ecdsa-plain-SHA1 | |
SB_CERT_ALGORITHM_SHA224_ECDSA_PLAIN | ecdsa-plain-SHA224 | |
SB_CERT_ALGORITHM_SHA256_ECDSA_PLAIN | ecdsa-plain-SHA256 | |
SB_CERT_ALGORITHM_SHA384_ECDSA_PLAIN | ecdsa-plain-SHA384 | |
SB_CERT_ALGORITHM_SHA512_ECDSA_PLAIN | ecdsa-plain-SHA512 | |
SB_CERT_ALGORITHM_RIPEMD160_ECDSA_PLAIN | ecdsa-plain-RIPEMD160 | |
SB_CERT_ALGORITHM_WHIRLPOOL_RSA_ENCRYPTION | whirlpoolWithRSAEncryption | |
SB_CERT_ALGORITHM_ID_DSA_SHA224 | id-dsa-with-sha224 | |
SB_CERT_ALGORITHM_ID_DSA_SHA256 | id-dsa-with-sha256 | |
SB_CERT_ALGORITHM_SHA3_224_RSA_ENCRYPTION | id-rsassa-pkcs1-v1_5-with-sha3-224 | |
SB_CERT_ALGORITHM_SHA3_256_RSA_ENCRYPTION | id-rsassa-pkcs1-v1_5-with-sha3-256 | |
SB_CERT_ALGORITHM_SHA3_384_RSA_ENCRYPTION | id-rsassa-pkcs1-v1_5-with-sha3-384 | |
SB_CERT_ALGORITHM_SHA3_512_RSA_ENCRYPTION | id-rsassa-pkcs1-v1_5-with-sha3-512 | |
SB_CERT_ALGORITHM_SHA3_224_ECDSA | id-ecdsa-with-sha3-224 | |
SB_CERT_ALGORITHM_SHA3_256_ECDSA | id-ecdsa-with-sha3-256 | |
SB_CERT_ALGORITHM_SHA3_384_ECDSA | id-ecdsa-with-sha3-384 | |
SB_CERT_ALGORITHM_SHA3_512_ECDSA | id-ecdsa-with-sha3-512 | |
SB_CERT_ALGORITHM_SHA3_224_ECDSA_PLAIN | id-ecdsa-plain-with-sha3-224 | |
SB_CERT_ALGORITHM_SHA3_256_ECDSA_PLAIN | id-ecdsa-plain-with-sha3-256 | |
SB_CERT_ALGORITHM_SHA3_384_ECDSA_PLAIN | id-ecdsa-plain-with-sha3-384 | |
SB_CERT_ALGORITHM_SHA3_512_ECDSA_PLAIN | id-ecdsa-plain-with-sha3-512 | |
SB_CERT_ALGORITHM_ID_DSA_SHA3_224 | id-dsa-with-sha3-224 | |
SB_CERT_ALGORITHM_ID_DSA_SHA3_256 | id-dsa-with-sha3-256 | |
SB_CERT_ALGORITHM_BLAKE2S_128_RSA_ENCRYPTION | id-rsassa-pkcs1-v1_5-with-blake2s128 | |
SB_CERT_ALGORITHM_BLAKE2S_160_RSA_ENCRYPTION | id-rsassa-pkcs1-v1_5-with-blake2s160 | |
SB_CERT_ALGORITHM_BLAKE2S_224_RSA_ENCRYPTION | id-rsassa-pkcs1-v1_5-with-blake2s224 | |
SB_CERT_ALGORITHM_BLAKE2S_256_RSA_ENCRYPTION | id-rsassa-pkcs1-v1_5-with-blake2s256 | |
SB_CERT_ALGORITHM_BLAKE2B_160_RSA_ENCRYPTION | id-rsassa-pkcs1-v1_5-with-blake2b160 | |
SB_CERT_ALGORITHM_BLAKE2B_256_RSA_ENCRYPTION | id-rsassa-pkcs1-v1_5-with-blake2b256 | |
SB_CERT_ALGORITHM_BLAKE2B_384_RSA_ENCRYPTION | id-rsassa-pkcs1-v1_5-with-blake2b384 | |
SB_CERT_ALGORITHM_BLAKE2B_512_RSA_ENCRYPTION | id-rsassa-pkcs1-v1_5-with-blake2b512 | |
SB_CERT_ALGORITHM_BLAKE2S_128_ECDSA | id-ecdsa-with-blake2s128 | |
SB_CERT_ALGORITHM_BLAKE2S_160_ECDSA | id-ecdsa-with-blake2s160 | |
SB_CERT_ALGORITHM_BLAKE2S_224_ECDSA | id-ecdsa-with-blake2s224 | |
SB_CERT_ALGORITHM_BLAKE2S_256_ECDSA | id-ecdsa-with-blake2s256 | |
SB_CERT_ALGORITHM_BLAKE2B_160_ECDSA | id-ecdsa-with-blake2b160 | |
SB_CERT_ALGORITHM_BLAKE2B_256_ECDSA | id-ecdsa-with-blake2b256 | |
SB_CERT_ALGORITHM_BLAKE2B_384_ECDSA | id-ecdsa-with-blake2b384 | |
SB_CERT_ALGORITHM_BLAKE2B_512_ECDSA | id-ecdsa-with-blake2b512 | |
SB_CERT_ALGORITHM_BLAKE2S_128_ECDSA_PLAIN | id-ecdsa-plain-with-blake2s128 | |
SB_CERT_ALGORITHM_BLAKE2S_160_ECDSA_PLAIN | id-ecdsa-plain-with-blake2s160 | |
SB_CERT_ALGORITHM_BLAKE2S_224_ECDSA_PLAIN | id-ecdsa-plain-with-blake2s224 | |
SB_CERT_ALGORITHM_BLAKE2S_256_ECDSA_PLAIN | id-ecdsa-plain-with-blake2s256 | |
SB_CERT_ALGORITHM_BLAKE2B_160_ECDSA_PLAIN | id-ecdsa-plain-with-blake2b160 | |
SB_CERT_ALGORITHM_BLAKE2B_256_ECDSA_PLAIN | id-ecdsa-plain-with-blake2b256 | |
SB_CERT_ALGORITHM_BLAKE2B_384_ECDSA_PLAIN | id-ecdsa-plain-with-blake2b384 | |
SB_CERT_ALGORITHM_BLAKE2B_512_ECDSA_PLAIN | id-ecdsa-plain-with-blake2b512 | |
SB_CERT_ALGORITHM_ID_DSA_BLAKE2S_224 | id-dsa-with-blake2s224 | |
SB_CERT_ALGORITHM_ID_DSA_BLAKE2S_256 | id-dsa-with-blake2s256 | |
SB_CERT_ALGORITHM_EDDSA_ED25519 | id-Ed25519 | |
SB_CERT_ALGORITHM_EDDSA_ED448 | id-Ed448 | |
SB_CERT_ALGORITHM_EDDSA_ED25519_PH | id-Ed25519ph | |
SB_CERT_ALGORITHM_EDDSA_ED448_PH | id-Ed448ph | |
SB_CERT_ALGORITHM_EDDSA | id-EdDSA | |
SB_CERT_ALGORITHM_EDDSA_SIGNATURE | id-EdDSA-sig |
Constructors
public init()
Creates a new ExternalCrypto object with default field values.
OCSPResponse Type
Represents a single OCSP response originating from an OCSP responder.
Remarks
OCSP is a protocol that allows verification of certificate status in real-time, and is an alternative to Certificate Revocation Lists (CRLs).
An OCSP response is a snapshot of the certificate status at a given time.
Fields
bytes
Data (read-only)
Default Value: ""
A buffer containing the raw OCSP response data.
entryCount
Int32 (read-only)
Default Value: 0
The number of SingleResponse elements contained in this OCSP response. Each SingleResponse element corresponds to a certificate status.
handle
Int64
Default Value: 0
Allows to get or set a 'handle', a unique identifier of the underlying property object. Use this property to assign objects of the same type in a quicker manner, without copying them fieldwise.
When you pass a handle of one object to another, the source object is copied to the destination rather than assigned. It is safe to get rid of the original object
after such operation.
pdfSigner.setSigningCertHandle(certMgr.getCertHandle());
issuer
String (read-only)
Default Value: ""
Indicates the issuer of this response (a CA or its authorized representative).
issuerRDN
String (read-only)
Default Value: ""
Indicates the RDN of the issuer of this response (a CA or its authorized representative).
location
String (read-only)
Default Value: ""
The location of the OCSP responder.
producedAt
String (read-only)
Default Value: ""
Specifies the time when the response was produced, in UTC.
Constructors
public init()
Creates an empty OCSP response object.
ProxySettings Type
A container for proxy server settings.
Remarks
This type exposes a collection of properties for tuning up the proxy server configuration.
Fields
address
String
Default Value: ""
The IP address of the proxy server.
authentication
ProxyAuthTypes
Default Value: 0
The authentication type used by the proxy server.
patNoAuthentication | 0 |
patBasic | 1 |
patDigest | 2 |
patNTLM | 3 |
password
String
Default Value: ""
The password to authenticate to the proxy server.
port
Int32
Default Value: 0
The port on the proxy server to connect to.
proxyType
ProxyTypes
Default Value: 0
The type of the proxy server.
The WebTunnel proxy is also known as HTTPS proxy. Unlike HTTP proxy, HTTPS proxy (WebTunnel) provides end-to-end security.
cptNone | 0 |
cptSocks4 | 1 |
cptSocks5 | 2 |
cptWebTunnel | 3 |
cptHTTP | 4 |
requestHeaders
String
Default Value: ""
Contains HTTP request headers for WebTunnel and HTTP proxy.
responseBody
String
Default Value: ""
Contains the HTTP or HTTPS (WebTunnel) proxy response body.
responseHeaders
String
Default Value: ""
Contains response headers received from an HTTP or HTTPS (WebTunnel) proxy server.
useIPv6
Bool
Default Value: False
Specifies whether IPv6 should be used when connecting through the proxy.
useProxy
Bool
Default Value: False
Enables or disables proxy-driven connection.
username
String
Default Value: ""
Specifies the username credential for proxy authentication.
Constructors
public init()
Creates a new ProxySettings object.
SocketSettings Type
A container for the socket settings.
Remarks
This type is a container for socket-layer parameters.
Fields
dnsMode
DNSResolveModes
Default Value: 0
Selects the DNS resolver to use: the component's (secure) built-in one, or the one provided by the system.
dmAuto | 0 |
dmPlatform | 1 |
dmOwn | 2 |
dmOwnSecure | 3 |
dnsPort
Int32
Default Value: 0
Specifies the port number to be used for sending queries to the DNS server.
dnsQueryTimeout
Int32
Default Value: 0
The timeout (in milliseconds) for each DNS query. The value of 0 indicates an infinite timeout.
dnsServers
String
Default Value: ""
The addresses of DNS servers to use for address resolution, separated by commas or semicolons.
dnsTotalTimeout
Int32
Default Value: 0
The timeout (in milliseconds) for the whole resolution process. The value of 0 indicates an infinite timeout.
incomingSpeedLimit
Int32
Default Value: 0
The maximum number of bytes to read from the socket, per second.
localAddress
String
Default Value: ""
The local network interface to bind the socket to.
localPort
Int32
Default Value: 0
The local port number to bind the socket to.
outgoingSpeedLimit
Int32
Default Value: 0
The maximum number of bytes to write to the socket, per second.
timeout
Int32
Default Value: 60000
The maximum period of waiting, in milliseconds, after which the socket operation is considered unsuccessful.
If Timeout is set to 0, a socket operation will expire after the system-default timeout (2 hrs 8 min for TCP stack).
useIPv6
Bool
Default Value: False
Enables or disables IP protocol version 6.
Constructors
public init()
Creates a new SocketSettings object.
TimestampInfo Type
A container for timestamp information.
Remarks
The TimestampInfo object contains details of a third-party timestamp and the outcome of its validation.
Fields
accuracy
Int64 (read-only)
Default Value: 0
This field indicates the accuracy of the included time mark, in microseconds.
bytes
Data (read-only)
Default Value: ""
Returns the raw timestamp data in DER format.
certificateIndex
Int32 (read-only)
Default Value: -1
Returns the index of the TSA certificate in the Certificates collection.
Use this property to look up the TSA certificate in the Certificates collection.
chainValidationDetails
Int32 (read-only)
Default Value: 0
The details of a certificate chain validation outcome. They may often suggest the reasons that contributed to the overall validation result.
Returns a bit mask of the following options:
cvrBadData | 0x0001 | One or more certificates in the validation path are malformed |
cvrRevoked | 0x0002 | One or more certificates are revoked |
cvrNotYetValid | 0x0004 | One or more certificates are not yet valid |
cvrExpired | 0x0008 | One or more certificates are expired |
cvrInvalidSignature | 0x0010 | A certificate contains a non-valid digital signature |
cvrUnknownCA | 0x0020 | A CA certificate for one or more certificates has not been found (chain incomplete) |
cvrCAUnauthorized | 0x0040 | One of the CA certificates are not authorized to act as CA |
cvrCRLNotVerified | 0x0080 | One or more CRLs could not be verified |
cvrOCSPNotVerified | 0x0100 | One or more OCSP responses could not be verified |
cvrIdentityMismatch | 0x0200 | The identity protected by the certificate (a TLS endpoint or an e-mail addressee) does not match what is recorded in the certificate |
cvrNoKeyUsage | 0x0400 | A mandatory key usage is not enabled in one of the chain certificates |
cvrBlocked | 0x0800 | One or more certificates are blocked |
cvrFailure | 0x1000 | General validation failure |
cvrChainLoop | 0x2000 | Chain loop: one of the CA certificates recursively signs itself |
cvrWeakAlgorithm | 0x4000 | A weak algorithm is used in one of certificates or revocation elements |
cvrUserEnforced | 0x8000 | The chain was considered invalid following intervention from a user code |
chainValidationResult
ChainValidities (read-only)
Default Value: 0
The outcome of a certificate chain validation routine.
Available options:
cvtValid | 0 | The chain is valid |
cvtValidButUntrusted | 1 | The chain is valid, but the root certificate is not trusted |
cvtInvalid | 2 | The chain is not valid (some of certificates are revoked, expired, or contain an invalid signature) |
cvtCantBeEstablished | 3 | The validity of the chain cannot be established because of missing or unavailable validation information (certificates, CRLs, or OCSP responses) |
Use the ValidationLog property to access the detailed validation log.
hashAlgorithm
String (read-only)
Default Value: ""
Returns the timestamp's hash algorithm.
SB_HASH_ALGORITHM_SHA1 | SHA1 | |
SB_HASH_ALGORITHM_SHA224 | SHA224 | |
SB_HASH_ALGORITHM_SHA256 | SHA256 | |
SB_HASH_ALGORITHM_SHA384 | SHA384 | |
SB_HASH_ALGORITHM_SHA512 | SHA512 | |
SB_HASH_ALGORITHM_MD2 | MD2 | |
SB_HASH_ALGORITHM_MD4 | MD4 | |
SB_HASH_ALGORITHM_MD5 | MD5 | |
SB_HASH_ALGORITHM_RIPEMD160 | RIPEMD160 | |
SB_HASH_ALGORITHM_CRC32 | CRC32 | |
SB_HASH_ALGORITHM_SSL3 | SSL3 | |
SB_HASH_ALGORITHM_GOST_R3411_1994 | GOST1994 | |
SB_HASH_ALGORITHM_WHIRLPOOL | WHIRLPOOL | |
SB_HASH_ALGORITHM_POLY1305 | POLY1305 | |
SB_HASH_ALGORITHM_SHA3_224 | SHA3_224 | |
SB_HASH_ALGORITHM_SHA3_256 | SHA3_256 | |
SB_HASH_ALGORITHM_SHA3_384 | SHA3_384 | |
SB_HASH_ALGORITHM_SHA3_512 | SHA3_512 | |
SB_HASH_ALGORITHM_BLAKE2S_128 | BLAKE2S_128 | |
SB_HASH_ALGORITHM_BLAKE2S_160 | BLAKE2S_160 | |
SB_HASH_ALGORITHM_BLAKE2S_224 | BLAKE2S_224 | |
SB_HASH_ALGORITHM_BLAKE2S_256 | BLAKE2S_256 | |
SB_HASH_ALGORITHM_BLAKE2B_160 | BLAKE2B_160 | |
SB_HASH_ALGORITHM_BLAKE2B_256 | BLAKE2B_256 | |
SB_HASH_ALGORITHM_BLAKE2B_384 | BLAKE2B_384 | |
SB_HASH_ALGORITHM_BLAKE2B_512 | BLAKE2B_512 | |
SB_HASH_ALGORITHM_SHAKE_128 | SHAKE_128 | |
SB_HASH_ALGORITHM_SHAKE_256 | SHAKE_256 | |
SB_HASH_ALGORITHM_SHAKE_128_LEN | SHAKE_128_LEN | |
SB_HASH_ALGORITHM_SHAKE_256_LEN | SHAKE_256_LEN |
serialNumber
Data (read-only)
Default Value: ""
Returns the timestamp's serial number.
signatureIndex
Int32 (read-only)
Default Value: -1
Returns the index of the owner signature, if applicable.
Use this property to establish the index of the associated signature object in the signature collection.
time
String (read-only)
Default Value: ""
The time point incorporated into the timestamp.
timestampType
Int32 (read-only)
Default Value: 0
Returns the type of the timestamp.
Available options:
tstUnknown | 0 | |
tstLegacy | 1 | Supported by: Authenticode components |
tstTrusted | 2 | Supported by: Authenticode components |
tstGeneric | 3 | Supported by: CAdES components |
tstESC | 4 | Supported by: CAdES components |
tstContent | 5 | Supported by: CAdES components |
tstCertsAndCRLs | 6 | Supported by: CAdES components |
tstArchive | 7 | Archive timestamp. Supported by: ASiC, CAdES, JAdES, Office, SOAP, XAdES components |
tstArchive2 | 8 | Archive v2 timestamp. Supported by: ASiC, CAdES components |
tstArchive3 | 9 | Archive v3 timestamp. Supported by: ASiC, CAdES components |
tstIndividualDataObjects | 10 | Individual data objects timetamp. Supported by: ASiC, Office, SOAP, XAdES components |
tstAllDataObjects | 11 | All data objects timestamp. Supported by: ASiC, Office, SOAP, XAdES components |
tstSignature | 12 | Signature timestamp. Supported by: ASiC, JAdES, Office, SOAP, XAdES components |
tstRefsOnly | 13 | RefsOnly timestamp. Supported by: ASiC, JAdES, Office, SOAP, XAdES components |
tstSigAndRefs | 14 | SigAndRefs timestamp. Supported by: ASiC, JAdES, Office, SOAP, XAdES components |
tstSignedData | 15 | SignedData timestamp. Supported by: JAdES components |
tstArchive141 | 16 | Archive timestamp v1.4.1. Supported by: ASiC, Office, SOAP, XAdES components |
Not all of the above timestamp types can be supported by a specific signature technology used (CAdES, PDF, XAdES).
tsaName
String (read-only)
Default Value: ""
This value uniquely identifies the Timestamp Authority (TSA).
This property provides information about the entity that manages the TSA.
validationLog
String (read-only)
Default Value: ""
Contains the TSA certificate chain validation log. This information is extremely useful if the timestamp validation fails.
validationResult
SignatureValidities (read-only)
Default Value: 0
Contains the timestamp validation outcome.
Use this property to check the result of the most recent timestamp validation.
svtValid | 0 | The signature is valid |
svtUnknown | 1 | Signature validity is unknown |
svtCorrupted | 2 | The signature is corrupted |
svtSignerNotFound | 3 | Failed to acquire the signing certificate. The signature cannot be validated. |
svtFailure | 4 | General failure |
Constructors
public init()
Creates a new TimestampInfo object with default field values.
TLSSettings Type
A container for TLS connection settings.
Remarks
The TLS (Transport Layer Security) protocol provides security for information exchanged over insecure connections such as TCP/IP.
Fields
autoValidateCertificates
Bool
Default Value: True
Specifies whether server-side TLS certificates should be validated automatically using internal validation rules.
baseConfiguration
SecureTransportPredefinedConfigurations
Default Value: 0
Selects the base configuration for the TLS settings. Several profiles are offered and tuned up for different purposes, such as high security or higher compatibility.
stpcDefault | 0 | |
stpcCompatible | 1 | |
stpcComprehensiveInsecure | 2 | |
stpcHighlySecure | 3 |
ciphersuites
String
Default Value: ""
A list of ciphersuites separated with commas or semicolons. Each ciphersuite in the list may be prefixed with a minus sign (-) to indicate that the ciphersuite should be disabled rather than enabled. Besides the specific ciphersuite modifiers, this property supports the all (and -all) aliases, allowing all ciphersuites to be blanketly enabled or disabled at once.
Note: the list of ciphersuites provided to this property alters the baseline list of ciphersuites as defined by . Remember to start your ciphersuite string with -all; if you need to only enable a specific fixed set of ciphersuites. The list of supported ciphersuites is provided below:
- NULL_NULL_NULL
- RSA_NULL_MD5
- RSA_NULL_SHA
- RSA_RC4_MD5
- RSA_RC4_SHA
- RSA_RC2_MD5
- RSA_IDEA_MD5
- RSA_IDEA_SHA
- RSA_DES_MD5
- RSA_DES_SHA
- RSA_3DES_MD5
- RSA_3DES_SHA
- RSA_AES128_SHA
- RSA_AES256_SHA
- DH_DSS_DES_SHA
- DH_DSS_3DES_SHA
- DH_DSS_AES128_SHA
- DH_DSS_AES256_SHA
- DH_RSA_DES_SHA
- DH_RSA_3DES_SHA
- DH_RSA_AES128_SHA
- DH_RSA_AES256_SHA
- DHE_DSS_DES_SHA
- DHE_DSS_3DES_SHA
- DHE_DSS_AES128_SHA
- DHE_DSS_AES256_SHA
- DHE_RSA_DES_SHA
- DHE_RSA_3DES_SHA
- DHE_RSA_AES128_SHA
- DHE_RSA_AES256_SHA
- DH_ANON_RC4_MD5
- DH_ANON_DES_SHA
- DH_ANON_3DES_SHA
- DH_ANON_AES128_SHA
- DH_ANON_AES256_SHA
- RSA_RC2_MD5_EXPORT
- RSA_RC4_MD5_EXPORT
- RSA_DES_SHA_EXPORT
- DH_DSS_DES_SHA_EXPORT
- DH_RSA_DES_SHA_EXPORT
- DHE_DSS_DES_SHA_EXPORT
- DHE_RSA_DES_SHA_EXPORT
- DH_ANON_RC4_MD5_EXPORT
- DH_ANON_DES_SHA_EXPORT
- RSA_CAMELLIA128_SHA
- DH_DSS_CAMELLIA128_SHA
- DH_RSA_CAMELLIA128_SHA
- DHE_DSS_CAMELLIA128_SHA
- DHE_RSA_CAMELLIA128_SHA
- DH_ANON_CAMELLIA128_SHA
- RSA_CAMELLIA256_SHA
- DH_DSS_CAMELLIA256_SHA
- DH_RSA_CAMELLIA256_SHA
- DHE_DSS_CAMELLIA256_SHA
- DHE_RSA_CAMELLIA256_SHA
- DH_ANON_CAMELLIA256_SHA
- PSK_RC4_SHA
- PSK_3DES_SHA
- PSK_AES128_SHA
- PSK_AES256_SHA
- DHE_PSK_RC4_SHA
- DHE_PSK_3DES_SHA
- DHE_PSK_AES128_SHA
- DHE_PSK_AES256_SHA
- RSA_PSK_RC4_SHA
- RSA_PSK_3DES_SHA
- RSA_PSK_AES128_SHA
- RSA_PSK_AES256_SHA
- RSA_SEED_SHA
- DH_DSS_SEED_SHA
- DH_RSA_SEED_SHA
- DHE_DSS_SEED_SHA
- DHE_RSA_SEED_SHA
- DH_ANON_SEED_SHA
- SRP_SHA_3DES_SHA
- SRP_SHA_RSA_3DES_SHA
- SRP_SHA_DSS_3DES_SHA
- SRP_SHA_AES128_SHA
- SRP_SHA_RSA_AES128_SHA
- SRP_SHA_DSS_AES128_SHA
- SRP_SHA_AES256_SHA
- SRP_SHA_RSA_AES256_SHA
- SRP_SHA_DSS_AES256_SHA
- ECDH_ECDSA_NULL_SHA
- ECDH_ECDSA_RC4_SHA
- ECDH_ECDSA_3DES_SHA
- ECDH_ECDSA_AES128_SHA
- ECDH_ECDSA_AES256_SHA
- ECDHE_ECDSA_NULL_SHA
- ECDHE_ECDSA_RC4_SHA
- ECDHE_ECDSA_3DES_SHA
- ECDHE_ECDSA_AES128_SHA
- ECDHE_ECDSA_AES256_SHA
- ECDH_RSA_NULL_SHA
- ECDH_RSA_RC4_SHA
- ECDH_RSA_3DES_SHA
- ECDH_RSA_AES128_SHA
- ECDH_RSA_AES256_SHA
- ECDHE_RSA_NULL_SHA
- ECDHE_RSA_RC4_SHA
- ECDHE_RSA_3DES_SHA
- ECDHE_RSA_AES128_SHA
- ECDHE_RSA_AES256_SHA
- ECDH_ANON_NULL_SHA
- ECDH_ANON_RC4_SHA
- ECDH_ANON_3DES_SHA
- ECDH_ANON_AES128_SHA
- ECDH_ANON_AES256_SHA
- RSA_NULL_SHA256
- RSA_AES128_SHA256
- RSA_AES256_SHA256
- DH_DSS_AES128_SHA256
- DH_RSA_AES128_SHA256
- DHE_DSS_AES128_SHA256
- DHE_RSA_AES128_SHA256
- DH_DSS_AES256_SHA256
- DH_RSA_AES256_SHA256
- DHE_DSS_AES256_SHA256
- DHE_RSA_AES256_SHA256
- DH_ANON_AES128_SHA256
- DH_ANON_AES256_SHA256
- RSA_AES128_GCM_SHA256
- RSA_AES256_GCM_SHA384
- DHE_RSA_AES128_GCM_SHA256
- DHE_RSA_AES256_GCM_SHA384
- DH_RSA_AES128_GCM_SHA256
- DH_RSA_AES256_GCM_SHA384
- DHE_DSS_AES128_GCM_SHA256
- DHE_DSS_AES256_GCM_SHA384
- DH_DSS_AES128_GCM_SHA256
- DH_DSS_AES256_GCM_SHA384
- DH_ANON_AES128_GCM_SHA256
- DH_ANON_AES256_GCM_SHA384
- ECDHE_ECDSA_AES128_SHA256
- ECDHE_ECDSA_AES256_SHA384
- ECDH_ECDSA_AES128_SHA256
- ECDH_ECDSA_AES256_SHA384
- ECDHE_RSA_AES128_SHA256
- ECDHE_RSA_AES256_SHA384
- ECDH_RSA_AES128_SHA256
- ECDH_RSA_AES256_SHA384
- ECDHE_ECDSA_AES128_GCM_SHA256
- ECDHE_ECDSA_AES256_GCM_SHA384
- ECDH_ECDSA_AES128_GCM_SHA256
- ECDH_ECDSA_AES256_GCM_SHA384
- ECDHE_RSA_AES128_GCM_SHA256
- ECDHE_RSA_AES256_GCM_SHA384
- ECDH_RSA_AES128_GCM_SHA256
- ECDH_RSA_AES256_GCM_SHA384
- PSK_AES128_GCM_SHA256
- PSK_AES256_GCM_SHA384
- DHE_PSK_AES128_GCM_SHA256
- DHE_PSK_AES256_GCM_SHA384
- RSA_PSK_AES128_GCM_SHA256
- RSA_PSK_AES256_GCM_SHA384
- PSK_AES128_SHA256
- PSK_AES256_SHA384
- PSK_NULL_SHA256
- PSK_NULL_SHA384
- DHE_PSK_AES128_SHA256
- DHE_PSK_AES256_SHA384
- DHE_PSK_NULL_SHA256
- DHE_PSK_NULL_SHA384
- RSA_PSK_AES128_SHA256
- RSA_PSK_AES256_SHA384
- RSA_PSK_NULL_SHA256
- RSA_PSK_NULL_SHA384
- RSA_CAMELLIA128_SHA256
- DH_DSS_CAMELLIA128_SHA256
- DH_RSA_CAMELLIA128_SHA256
- DHE_DSS_CAMELLIA128_SHA256
- DHE_RSA_CAMELLIA128_SHA256
- DH_ANON_CAMELLIA128_SHA256
- RSA_CAMELLIA256_SHA256
- DH_DSS_CAMELLIA256_SHA256
- DH_RSA_CAMELLIA256_SHA256
- DHE_DSS_CAMELLIA256_SHA256
- DHE_RSA_CAMELLIA256_SHA256
- DH_ANON_CAMELLIA256_SHA256
- ECDHE_ECDSA_CAMELLIA128_SHA256
- ECDHE_ECDSA_CAMELLIA256_SHA384
- ECDH_ECDSA_CAMELLIA128_SHA256
- ECDH_ECDSA_CAMELLIA256_SHA384
- ECDHE_RSA_CAMELLIA128_SHA256
- ECDHE_RSA_CAMELLIA256_SHA384
- ECDH_RSA_CAMELLIA128_SHA256
- ECDH_RSA_CAMELLIA256_SHA384
- RSA_CAMELLIA128_GCM_SHA256
- RSA_CAMELLIA256_GCM_SHA384
- DHE_RSA_CAMELLIA128_GCM_SHA256
- DHE_RSA_CAMELLIA256_GCM_SHA384
- DH_RSA_CAMELLIA128_GCM_SHA256
- DH_RSA_CAMELLIA256_GCM_SHA384
- DHE_DSS_CAMELLIA128_GCM_SHA256
- DHE_DSS_CAMELLIA256_GCM_SHA384
- DH_DSS_CAMELLIA128_GCM_SHA256
- DH_DSS_CAMELLIA256_GCM_SHA384
- DH_anon_CAMELLIA128_GCM_SHA256
- DH_anon_CAMELLIA256_GCM_SHA384
- ECDHE_ECDSA_CAMELLIA128_GCM_SHA256
- ECDHE_ECDSA_CAMELLIA256_GCM_SHA384
- ECDH_ECDSA_CAMELLIA128_GCM_SHA256
- ECDH_ECDSA_CAMELLIA256_GCM_SHA384
- ECDHE_RSA_CAMELLIA128_GCM_SHA256
- ECDHE_RSA_CAMELLIA256_GCM_SHA384
- ECDH_RSA_CAMELLIA128_GCM_SHA256
- ECDH_RSA_CAMELLIA256_GCM_SHA384
- PSK_CAMELLIA128_GCM_SHA256
- PSK_CAMELLIA256_GCM_SHA384
- DHE_PSK_CAMELLIA128_GCM_SHA256
- DHE_PSK_CAMELLIA256_GCM_SHA384
- RSA_PSK_CAMELLIA128_GCM_SHA256
- RSA_PSK_CAMELLIA256_GCM_SHA384
- PSK_CAMELLIA128_SHA256
- PSK_CAMELLIA256_SHA384
- DHE_PSK_CAMELLIA128_SHA256
- DHE_PSK_CAMELLIA256_SHA384
- RSA_PSK_CAMELLIA128_SHA256
- RSA_PSK_CAMELLIA256_SHA384
- ECDHE_PSK_CAMELLIA128_SHA256
- ECDHE_PSK_CAMELLIA256_SHA384
- ECDHE_PSK_RC4_SHA
- ECDHE_PSK_3DES_SHA
- ECDHE_PSK_AES128_SHA
- ECDHE_PSK_AES256_SHA
- ECDHE_PSK_AES128_SHA256
- ECDHE_PSK_AES256_SHA384
- ECDHE_PSK_NULL_SHA
- ECDHE_PSK_NULL_SHA256
- ECDHE_PSK_NULL_SHA384
- ECDHE_RSA_CHACHA20_POLY1305_SHA256
- ECDHE_ECDSA_CHACHA20_POLY1305_SHA256
- DHE_RSA_CHACHA20_POLY1305_SHA256
- PSK_CHACHA20_POLY1305_SHA256
- ECDHE_PSK_CHACHA20_POLY1305_SHA256
- DHE_PSK_CHACHA20_POLY1305_SHA256
- RSA_PSK_CHACHA20_POLY1305_SHA256
- AES128_GCM_SHA256
- AES256_GCM_SHA384
- CHACHA20_POLY1305_SHA256
- AES128_CCM_SHA256
- AES128_CCM8_SHA256
ecCurves
String
Default Value: ""
Defines the elliptic curves to enable.
extensions
String
Default Value: ""
Provides access to TLS extensions.
forceResumeIfDestinationChanges
Bool
Default Value: False
Whether to force TLS session resumption when the destination address changes.
preSharedIdentity
String
Default Value: ""
Defines the identity used when the PSK (Pre-Shared Key) key-exchange mechanism is negotiated.
preSharedKey
String
Default Value: ""
Contains the pre-shared key for the PSK (Pre-Shared Key) key-exchange mechanism, encoded with base16.
preSharedKeyCiphersuite
String
Default Value: ""
Defines the ciphersuite used for PSK (Pre-Shared Key) negotiation.
renegotiationAttackPreventionMode
RenegotiationAttackPreventionModes
Default Value: 0
Selects the renegotiation attack prevention mechanism.
The following options are available:
crapmCompatible | 0 | TLS 1.0 and 1.1 compatibility mode (renegotiation indication extension is disabled). |
crapmStrict | 1 | Renegotiation attack prevention is enabled and enforced. |
crapmAuto | 2 | Automatically choose whether to enable or disable renegotiation attack prevention. |
revocationCheck
RevocationCheckKinds
Default Value: 1
Specifies the kind(s) of revocation check to perform.
Revocation checking is necessary to ensure the integrity of the chain and obtain up-to-date certificate validity and trustworthiness information.
crcNone | 0 | No revocation checking. |
crcAuto | 1 | Automatic mode selection. Currently this maps to crcAnyOCSPOrCRL, but it may change in the future. |
crcAllCRL | 2 | All provided CRL endpoints will be checked, and all checks must succeed. |
crcAllOCSP | 3 | All provided OCSP endpoints will be checked, and all checks must succeed. |
crcAllCRLAndOCSP | 4 | All provided CRL and OCSP endpoints will be checked, and all checks must succeed. |
crcAnyCRL | 5 | All provided CRL endpoints will be checked, and at least one check must succeed. |
crcAnyOCSP | 6 | All provided OCSP endpoints will be checked, and at least one check must succeed. |
crcAnyCRLOrOCSP | 7 | All provided CRL and OCSP endpoints will be checked, and at least one check must succeed. CRL endpoints are checked first. |
crcAnyOCSPOrCRL | 8 | All provided CRL and OCSP endpoints will be checked, and at least one check must succeed. OCSP endpoints are checked first. |
This setting controls the way the revocation checks are performed for every certificate in the chain. Typically certificates come with two types of revocation information sources: CRL (certificate revocation lists) and OCSP responders. CRLs are static objects periodically published by the CA at some online location. OCSP responders are active online services maintained by the CA that can provide up-to-date information on certificate statuses in near real time.
There are some conceptual differences between the two. CRLs are normally larger in size. Their use involves some latency because there is normally some delay between the time when a certificate was revoked and the time the subsequent CRL mentioning that is published. The benefits of CRL is that the same object can provide statuses for all certificates issued by a particular CA, and that the whole technology is much simpler than OCSP (and thus is supported by more CAs).
This setting lets you adjust the validation course by including or excluding certain types of revocation sources from the validation process. The crcAnyOCSPOrCRL setting (give preference to the faster OCSP route and only demand one source to succeed) is a good choice for most typical validation environments. The "crcAll*" modes are much stricter, and may be used in scenarios where bulletproof validity information is essential.
Note: If no CRL or OCSP endpoints are provided by the CA, the revocation check will be considered successful. This is because the CA chose not to supply revocation information for its certificates, meaning they are considered irrevocable.
Note: Within each of the above settings, if any retrieved CRL or OCSP response indicates that the certificate has been revoked, the revocation check fails.
sslOptions
Int32
Default Value: 16
Various SSL (TLS) protocol options, set of
cssloExpectShutdownMessage | 0x001 | Wait for the close-notify message when shutting down the connection |
cssloOpenSSLDTLSWorkaround | 0x002 | (DEPRECATED) Use a DTLS version workaround when talking to very old OpenSSL versions |
cssloDisableKexLengthAlignment | 0x004 | Do not align the client-side PMS by the RSA modulus size. It is unlikely that you will ever need to adjust it. |
cssloForceUseOfClientCertHashAlg | 0x008 | Enforce the use of the client certificate hash algorithm. It is unlikely that you will ever need to adjust it. |
cssloAutoAddServerNameExtension | 0x010 | Automatically add the server name extension when known |
cssloAcceptTrustedSRPPrimesOnly | 0x020 | Accept trusted SRP primes only |
cssloDisableSignatureAlgorithmsExtension | 0x040 | Disable (do not send) the signature algorithms extension. It is unlikely that you will ever need to adjust it. |
cssloIntolerateHigherProtocolVersions | 0x080 | (server option) Do not allow fallback from TLS versions higher than currently enabled |
cssloStickToPrefCertHashAlg | 0x100 | Stick to preferred certificate hash algorithms |
cssloNoImplicitTLS12Fallback | 0x200 | Disable implicit TLS 1.3 to 1.2 fallbacks |
cssloUseHandshakeBatches | 0x400 | Send the handshake message as large batches rather than individually |
tlsMode
SSLModes
Default Value: 0
Specifies the TLS mode to use.
smDefault | 0 | |
smNoTLS | 1 | Do not use TLS |
smExplicitTLS | 2 | Connect to the server without any encryption and then request an SSL session. |
smImplicitTLS | 3 | Connect to the specified port, and establish the SSL session at once. |
smMixedTLS | 4 | Connect to the specified port, and establish the SSL session at once, but allow plain data. |
useExtendedMasterSecret
Bool
Default Value: False
Enables the Extended Master Secret Extension, as defined in RFC 7627.
useSessionResumption
Bool
Default Value: False
Enables or disables the TLS session resumption capability.
versions
Int32
Default Value: 16
The SSL/TLS versions to enable by default.
csbSSL2 | 0x01 | SSL 2 |
csbSSL3 | 0x02 | SSL 3 |
csbTLS1 | 0x04 | TLS 1.0 |
csbTLS11 | 0x08 | TLS 1.1 |
csbTLS12 | 0x10 | TLS 1.2 |
csbTLS13 | 0x20 | TLS 1.3 |
Constructors
public init()
Creates a new TLSSettings object.
XAdESSignature Type
The component is a container for an XAdES/XML signature.
Remarks
XML document may include any number of XAdES/XML signatures. class stores on of them.
Fields
canonicalizationMethod
XMLCanonicalizationMethods
Default Value: 0
The XML canonicalization method that was used for signing.
Supported canonicalization methods:
cxcmNone | 0 | |
cxcmCanon | 1 | |
cxcmCanonComment | 2 | |
cxcmExclCanon | 3 | |
cxcmExclCanonComment | 4 | |
cxcmMinCanon | 5 | |
cxcmCanon_v1_1 | 6 | |
cxcmCanonComment_v1_1 | 7 |
certificateIndex
Int32 (read-only)
Default Value: -1
Returns the index of the signing certificate in the Certificates collection
Use this property to look up the signing certificate in the Certificates collection.
chainValidationDetails
Int32 (read-only)
Default Value: 0
The details of a certificate chain validation outcome. They may often suggest the reasons that contributed to the overall validation result.
Returns a bit mask of the following options:
cvrBadData | 0x0001 | One or more certificates in the validation path are malformed |
cvrRevoked | 0x0002 | One or more certificates are revoked |
cvrNotYetValid | 0x0004 | One or more certificates are not yet valid |
cvrExpired | 0x0008 | One or more certificates are expired |
cvrInvalidSignature | 0x0010 | A certificate contains a non-valid digital signature |
cvrUnknownCA | 0x0020 | A CA certificate for one or more certificates has not been found (chain incomplete) |
cvrCAUnauthorized | 0x0040 | One of the CA certificates are not authorized to act as CA |
cvrCRLNotVerified | 0x0080 | One or more CRLs could not be verified |
cvrOCSPNotVerified | 0x0100 | One or more OCSP responses could not be verified |
cvrIdentityMismatch | 0x0200 | The identity protected by the certificate (a TLS endpoint or an e-mail addressee) does not match what is recorded in the certificate |
cvrNoKeyUsage | 0x0400 | A mandatory key usage is not enabled in one of the chain certificates |
cvrBlocked | 0x0800 | One or more certificates are blocked |
cvrFailure | 0x1000 | General validation failure |
cvrChainLoop | 0x2000 | Chain loop: one of the CA certificates recursively signs itself |
cvrWeakAlgorithm | 0x4000 | A weak algorithm is used in one of certificates or revocation elements |
cvrUserEnforced | 0x8000 | The chain was considered invalid following intervention from a user code |
chainValidationResult
ChainValidities (read-only)
Default Value: 0
The outcome of a certificate chain validation routine.
Available options:
cvtValid | 0 | The chain is valid |
cvtValidButUntrusted | 1 | The chain is valid, but the root certificate is not trusted |
cvtInvalid | 2 | The chain is not valid (some of certificates are revoked, expired, or contain an invalid signature) |
cvtCantBeEstablished | 3 | The validity of the chain cannot be established because of missing or unavailable validation information (certificates, CRLs, or OCSP responses) |
Use the ValidationLog property to access the detailed validation log.
claimedSigningTime
String
Default Value: ""
The signing time from the signer's computer.
Use this property to provide the signature production time. The claimed time is not supported by a trusted source; it may be inaccurate, forfeited, or wrong, and as such is usually taken for informational purposes only by verifiers. Use timestamp servers to embed verifiable trusted timestamps. The time is in UTC.
handle
Int64
Default Value: 0
Allows to get or set a 'handle', a unique identifier of the underlying property object. Use this property to assign objects of the same type in a quicker manner, without copying them fieldwise.
When you pass a handle of one object to another, the source object is copied to the destination rather than assigned. It is safe to get rid of the original object
after such operation.
pdfSigner.setSigningCertHandle(certMgr.getCertHandle());
hashAlgorithm
String
Default Value: "Unknown"
The hash algorithm used for signing.
SB_HASH_ALGORITHM_MD5 | MD5 | |
SB_HASH_ALGORITHM_SHA1 | SHA1 | |
SB_HASH_ALGORITHM_SHA224 | SHA224 | |
SB_HASH_ALGORITHM_SHA256 | SHA256 | |
SB_HASH_ALGORITHM_SHA384 | SHA384 | |
SB_HASH_ALGORITHM_SHA512 | SHA512 | |
SB_HASH_ALGORITHM_RIPEMD160 | RIPEMD160 | |
SB_HASH_ALGORITHM_GOST_R3411_1994 | GOST1994 | |
SB_HASH_ALGORITHM_WHIRLPOOL | WHIRLPOOL | |
SB_HASH_ALGORITHM_SHA3_256 | SHA3_256 | |
SB_HASH_ALGORITHM_SHA3_384 | SHA3_384 | |
SB_HASH_ALGORITHM_SHA3_512 | SHA3_512 |
issuerRDN
String (read-only)
Default Value: ""
The Relative Distinguished Name of the signing certificate's issuer.
A collection of information, in the form of [OID, Value] pairs, about the company that issued the signing certificate.
lastArchivalTime
String (read-only)
Default Value: ""
Indicates the most recent archival time of an archived signature
This property returns the time of the most recent archival timestamp applied to the signature. This property only makes sense for 'archived' (e.g. CAdES-A) signatures. Time is in UTC.
policyHash
String
Default Value: ""
The signature policy hash value.
Use this property to get the signature policy hash from EPES signatures
policyHashAlgorithm
String
Default Value: ""
The algorithm that was used to calculate the signature policy hash
Use this property to get or set the hash algorithm used to calculate the signature policy hash. Read the actual hash value from .
SB_HASH_ALGORITHM_SHA1 | SHA1 | |
SB_HASH_ALGORITHM_SHA224 | SHA224 | |
SB_HASH_ALGORITHM_SHA256 | SHA256 | |
SB_HASH_ALGORITHM_SHA384 | SHA384 | |
SB_HASH_ALGORITHM_SHA512 | SHA512 | |
SB_HASH_ALGORITHM_MD2 | MD2 | |
SB_HASH_ALGORITHM_MD4 | MD4 | |
SB_HASH_ALGORITHM_MD5 | MD5 | |
SB_HASH_ALGORITHM_RIPEMD160 | RIPEMD160 | |
SB_HASH_ALGORITHM_CRC32 | CRC32 | |
SB_HASH_ALGORITHM_SSL3 | SSL3 | |
SB_HASH_ALGORITHM_GOST_R3411_1994 | GOST1994 | |
SB_HASH_ALGORITHM_WHIRLPOOL | WHIRLPOOL | |
SB_HASH_ALGORITHM_POLY1305 | POLY1305 | |
SB_HASH_ALGORITHM_SHA3_224 | SHA3_224 | |
SB_HASH_ALGORITHM_SHA3_256 | SHA3_256 | |
SB_HASH_ALGORITHM_SHA3_384 | SHA3_384 | |
SB_HASH_ALGORITHM_SHA3_512 | SHA3_512 | |
SB_HASH_ALGORITHM_BLAKE2S_128 | BLAKE2S_128 | |
SB_HASH_ALGORITHM_BLAKE2S_160 | BLAKE2S_160 | |
SB_HASH_ALGORITHM_BLAKE2S_224 | BLAKE2S_224 | |
SB_HASH_ALGORITHM_BLAKE2S_256 | BLAKE2S_256 | |
SB_HASH_ALGORITHM_BLAKE2B_160 | BLAKE2B_160 | |
SB_HASH_ALGORITHM_BLAKE2B_256 | BLAKE2B_256 | |
SB_HASH_ALGORITHM_BLAKE2B_384 | BLAKE2B_384 | |
SB_HASH_ALGORITHM_BLAKE2B_512 | BLAKE2B_512 | |
SB_HASH_ALGORITHM_SHAKE_128 | SHAKE_128 | |
SB_HASH_ALGORITHM_SHAKE_256 | SHAKE_256 | |
SB_HASH_ALGORITHM_SHAKE_128_LEN | SHAKE_128_LEN | |
SB_HASH_ALGORITHM_SHAKE_256_LEN | SHAKE_256_LEN |
policyID
String
Default Value: ""
The policy ID that was included or to be included into the signature.
Use this property to retrieve the signature policy identifier from EPES signatures.
policyURI
String
Default Value: ""
The signature policy URI that was included in the signature.
Use this property to set or retrieve the URI of the signature policy from EPES signatures.
serialNumber
Data (read-only)
Default Value: ""
The serial number of the timestamp.
signatureBytes
Data (read-only)
Default Value: ""
Returns the binary representation of the XML-DSig/XAdES signature.
signatureType
XMLSignatureTypes
Default Value: 4
The signature type to employ when signing the document.
This property specifies the signature type to be used when signing the document.
Supported values:
cxstDetached | 1 | Specifies whether a detached signature should be produced. I.e., a signature which is kept separately from the signed document. |
cxstEnveloping | 2 | Specifies whether an enveloping signature should be produced. |
cxstEnveloped | 4 | Specifies whether an enveloped signature should be produced. |
signatureValidationResult
XMLSignatureValidities (read-only)
Default Value: 0
Contains the signature validation result.
Use this property to check the result of the most recent XML signature validation.
xsvValid | 0 | |
xsvUnknown | 1 | |
xsvCorrupted | 2 | |
xsvSignerNotFound | 3 | |
xsvFailure | 4 | |
xsvReferenceCorrupted | 5 |
subjectKeyID
Data (read-only)
Default Value: ""
Contains the subject key identifier of the signing certificate.
Subject Key Identifier is a (non-critical) X.509 certificate extension which allows the identification of certificates containing a particular public key. In SecureBlackbox, the unique identifier is represented by a SHA-1 hash of the bit string of the subject public key.
subjectRDN
String (read-only)
Default Value: ""
Contains information about the person owning the signing certificate. Only certificates with given subject information will be enumerated during the search operation. Information is stored in the form of [Object Identifier, Value] pairs.
timestamped
Bool (read-only)
Default Value: False
Use this property to establish whether the signature contains an embedded timestamp.
validatedSigningTime
String (read-only)
Default Value: ""
Contains the certified signing time.
Use this property to obtain the signing time as certified by a timestamp from a trusted timestamping authority. This property is only non-empty if there was a valid timestamp included in the signature.
returns a non-trusted signing time from the signer's computer.
Both times are in UTC.
validationLog
String (read-only)
Default Value: ""
Contains the complete log of the certificate validation routine.
Use this property to access the chain validation log produced by the class. The log can be very useful when investigating issues with chain validation, as it contains a step-by-step trace of the entire validation procedure.
xAdES
Bool
Default Value: True
Specifies whether the document contains an advanced signature (XAdES).
Use this property to check whether the document is signed with XAdES or XML-DSIG only.
xAdESForm
XAdESForms
Default Value: 0
Specifies which form of XAdES should be produced.
Use this property to specify the form (level) of advanced electronic signature to be produced.
The supported forms are:
xafNone | 0 | None |
xafBasic | 1 | XAdES form, supported by XAdES v1.1.1 |
xafBES | 2 | XAdES-BES form, supported starting from XAdES v1.2.2 |
xafEPES | 3 | XAdES-EPES form, supported starting from XAdES v1.2.2 |
xafT | 4 | XAdES-T form |
xafC | 5 | XAdES-C form |
xafX | 6 | XAdES-X form |
xafXL | 7 | XAdES-X-L form |
xafA | 8 | XAdES-A form |
xafExtendedBES | 9 | XAdES-E-BES form |
xafExtendedEPES | 10 | XAdES-E-EPES form |
xafExtendedT | 11 | XAdES-E-T form |
xafExtendedC | 12 | XAdES-E-C form |
xafExtendedX | 13 | XAdES-E-X form |
xafExtendedXLong | 14 | XAdES-E-X-Long form (type 1) |
xafExtendedXL | 15 | XAdES-E-X-L form (type 2) |
xafExtendedA | 16 | XAdES-E-A form |
* XAdES-E-* forms are supported starting from XAdES v1.3.2
xAdESVersion
XAdESVersions
Default Value: 3
Specifies XAdES version.
This property specifies the version of the XAdES specification the signature should comply with. For the form of XAdES, use XAdESForm.
The supported vesions are:
xavUnknown | 0 | Unknown |
xav111 | 1 | XAdES v1.1.1 |
xav122 | 2 | XAdES v1.2.2 |
xav132 | 3 | XAdES v1.3.2 |
xav141 | 4 | XAdES v1.4.1 (aka v1.4.2) |
xmlElement
String
Default Value: ""
Specifies the XML element where to save the signature or containing the signature.
This property specifies the XML element where to save the electronic signature or that contains the signature to be validated.
Supported values are:
"" | an empty string indicates the Document element |
"#id" | indicates an XML element with specified Id |
XPath expression | indicates an XML element selected using XPath expression. Use XPathNamespaces property to specify Prefixes and NamespaceURIs
For example: "/root/data[1]" - indicates the second "data" element under the document element with a name "root" "//ns1:data" - indicates a data element. "ns1" prefix should be defined in XPathNamespaces property |
Node name | indicates an XML element selected using its NodeName.
For example: "data" - indicates an XML element with node name "data". |
Constructors
public init()
Creates a new XAdES signature object.
XMLNamespace Type
Represents an XML namespace map for XPath expressions.
Remarks
This class defines the correspondence between Prefixes and namespace URIs.
Fields
prefix
String
Default Value: ""
A user-defined prefix value of a namespace.
uri
String
Default Value: ""
A user-defined URI value of a namespace.
Constructors
public init()
Creates a new XML namespace object.
XMLReference Type
Represents an XML reference element.
Remarks
XMLReference specifies the digest algorithm and digest value, and, optionally: an identifier of the object being signed, the type of the object, and/or a list of transforms to be applied prior to digesting.
Fields
autoGenerateElementId
Bool
Default Value: False
Specifies whether the identifier (ID) attribute for a referenced (target) element should be auto-generated during signing. Used when the referenced element doesn't have an ID and CustomElementId and URI properties are empty.
canonicalizationMethod
XMLCanonicalizationMethods
Default Value: 0
Use this property to specify the canonicalization method for the transform of the reference. Use cxcmNone value to not to include canonicalization transform in transform chain. See XML-Signature Syntax and Processing specification for details.
cxcmNone | 0 | |
cxcmCanon | 1 | |
cxcmCanonComment | 2 | |
cxcmExclCanon | 3 | |
cxcmExclCanonComment | 4 | |
cxcmMinCanon | 5 | |
cxcmCanon_v1_1 | 6 | |
cxcmCanonComment_v1_1 | 7 |
customElementId
String
Default Value: ""
Specifies a custom identifier (ID) attribute for a referenced (target) element that will be set on signing. Used when the referenced element doesn't have an ID and URI property is empty.
digestValue
Data
Default Value: ""
Use this property to get or set the value of the digest calculated over the referenced data.
This property is optional and should be set only if you don't provide the actual data via TargetData or URI. If the data is set, then you don't need to set DigestValue since it will be calculated automatically.
handle
Int64
Default Value: 0
Allows to get or set a 'handle', a unique identifier of the underlying property object. Use this property to assign objects of the same type in a quicker manner, without copying them fieldwise.
When you pass a handle of one object to another, the source object is copied to the destination rather than assigned. It is safe to get rid of the original object
after such operation.
pdfSigner.setSigningCertHandle(certMgr.getCertHandle());
hashAlgorithm
String
Default Value: "SHA256"
Specifies the hash algorithm to be used.
Supported values:
SB_HASH_ALGORITHM_MD5 | MD5 | |
SB_HASH_ALGORITHM_SHA1 | SHA1 | |
SB_HASH_ALGORITHM_SHA224 | SHA224 | |
SB_HASH_ALGORITHM_SHA256 | SHA256 | |
SB_HASH_ALGORITHM_SHA384 | SHA384 | |
SB_HASH_ALGORITHM_SHA512 | SHA512 | |
SB_HASH_ALGORITHM_RIPEMD160 | RIPEMD160 | |
SB_HASH_ALGORITHM_GOST_R3411_1994 | GOST1994 | |
SB_HASH_ALGORITHM_WHIRLPOOL | WHIRLPOOL | |
SB_HASH_ALGORITHM_SHA3_256 | SHA3_256 | |
SB_HASH_ALGORITHM_SHA3_384 | SHA3_384 | |
SB_HASH_ALGORITHM_SHA3_512 | SHA3_512 |
hasURI
Bool
Default Value: True
Specifies whether the URI is set (even when it is empty).
id
String
Default Value: ""
A user-defined identifier (ID) attribute of this Reference element.
inclusiveNamespacesPrefixList
String
Default Value: ""
Use this property to specify InclusiveNamespaces PrefixList for exclusive canonicalization transform of the reference. See XML-Signature Syntax and Processing specification for details.
referenceType
String
Default Value: ""
The Reference's type attribute as defined in XMLDSIG specification.
signatureIndex
Int32 (read-only)
Default Value: -1
Returns the index of the owner signature, if applicable.
Use this property to establish the index of the associated signature object in the signature collection.
targetData
Data
Default Value: ""
Contains the referenced external data when the digest value is not explicitly specified.
This property is optional and should only be set if you reference the external data via URI, and you don't provide the digest value explicitly via DigestValue.
targetType
XMLReferenceTargetTypes
Default Value: 0
The reference's target type to use.
Use this property to specify the reference's target type to use when forming the signature.
targetXMLElement
String
Default Value: ""
This property specifies the referenced XML element. Used when the URI property is not set. In this case, the URI value is generated based on the ID of the referenced (target) XML element. If the URI property is set, this property is ignored until the ResolveReference event.
Supported values are:
"" | an empty string indicates the Document element. |
"#id" | indicates an XML element with specified Id. |
XPointer expression | indicates an XML element selected using XPointer expression. Use the XPathNamespaces property to specify Prefixes and NamespaceURIs
For example: "/root/data[1]" - indicates the second "data" element under the document element with a name "root" "//ns1:data" - indicates a data element. "ns1" prefix should be defined in XPathNamespaces property |
Node name | indicates an XML element selected using its NodeName.
For example: "data" - indicates an XML element with node name "data". |
uri
String
Default Value: ""
Use this property to get or set the URL which references the data. If the data is external, the application must set either TargetData or DigestValue. If TargetData is set, the digest is calculated automatically unless it is explicitly set by the application via DigestValue.
useBase64Transform
Bool
Default Value: False
Specifies whether Base64 transform is included in transform chain.
useEnvelopedSignatureTransform
Bool
Default Value: False
Specifies whether enveloped signature transform is included in transform chain.
useXPathFilter2Transform
Bool
Default Value: False
Specifies whether XPath Filter 2.0 transform is included in transform chain.
useXPathTransform
Bool
Default Value: False
Specifies whether XPath transform is included in transform chain.
xPathExpression
String
Default Value: ""
Use this property to specify XPath expression for XPath transform of the reference.
xPathFilter2Expressions
String
Default Value: ""
Use this property to specify XPointer expression(s) for XPath Filter 2.0 transform of the reference.
xPathFilter2Filters
String
Default Value: ""
Use this property to specify XPointer filter(s) for XPath Filter 2.0 transform of the reference. The prefix list is comma-separated.
Supported values:
"intersect" | Intersect filter computes the intersection of the selected subtrees with the filter node-set. |
"subtract" | Subtract filter computes the subtraction of the selected subtrees with the filter node-set. |
"union" | Union filter computes the union of the selected subtrees with the filter node-set. |
xPathFilter2PrefixList
String
Default Value: ""
Use this property to specify a prefix list for XPath Filter 2.0 transform of the reference. The prefix list is space-separated. Namespace URIs that are used are taken from XPathNamespaces property.
xPathPrefixList
String
Default Value: ""
Use this property to specify a prefix list for XPath transform of the reference. The prefix list is space-separated. Namespace URIs that are used are taken from XPathNamespaces property.
Constructors
public init()
Creates a new XML reference element.
public init(iD: )
Creates a new XML reference element from its ID .
public init(iD: , uRI: )
Creates a new XML reference element from its ID and URI reference to the external data.
Config Settings (XAdESSigner Module)
The 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.XAdESSigner Config Settings
For example, if the corresponding ds:Reference element has an Id "reference-id-1", then you should set this property to "#reference-id-1" value.
Index value could be omitted for the first DataObjectFormat element.
Default value is "ec". In this case "ec:" prefix will be used.
Special values:
"#default" or "" | indicates that the prefix will be omitted. |
"#auto" | indicates that the prefix will be auto-detected based on the parent nodes. |
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 the TrustedCertificates property) are considered trusted.
"" or "XML" | an XML document (by default). | |
"data" | a binary data. | |
"base64" | Base64 encoded binary data (input data will be encoded in Base64 and will be placed in ds:Object for Enveloping signature type) |
Enveloped signature type supports only an XML document as the input. | |
Enveloping signature type supports all types of the input. | |
Detached signature type supports an XML document and a binary data as the input. |
Supported values are:
"" | an empty string indicates the Document element |
"#id" | indicates an XML element with specified Id |
XPath expression | indicates an XML element selected using XPath expression. Use XPathNamespaces property to specify Prefixes and NamespaceURIs
For example: "/root/data[1]" - indicates the second "data" element under the document element with a name "root" "//ns1:data" - indicates a data element. "ns1" prefix should be defined in XPathNamespaces property |
Node name | indicates an XML element selected using its NodeName.
For example: "data" - indicates an XML element with node name "data". |
The empty elements in the custom XML content act as a placeholder for auto-generated elements.
For example to change the order of ds:KeyValue and ds:X509Data auto-generated elements use the value: "<X509Data/><KeyValue/>"
Supported values are:
certificate | Base64-encoded [X509v3] certificate is placed to the signature | |
issuerserial | X.509 issuer distinguished name/serial number pair are placed to the signature | |
subjectname | X.509 subject distinguished name is placed to the signature | |
ski | Base64 encoded plain (i.e. non-DER-encoded) value of a X509 V.3 SubjectKeyIdentifier extension is placed to the signature | |
crl | Base64-encoded certificate revocation list (CRL) is placed to the signature |
Sample value: "CITY=Test City, ST=Test State, POSTALCODE=Test Code, C=Test Country"
Supported values are:
SigAndRefs | SigAndRefs timestamp | |
RefsOnly | RefsOnly timestamp |
Supported values are:
"" | The same as "XML-DSig". | |
XML-DSig | The W3C's XMLDSig-compliant signature (by default). | |
EBICS | Electronic Banking Internet Communication Standard (EBICS) compliant signature. On signing the version is autodetected based on the document element. | |
EBICS_H3 | Electronic Banking Internet Communication Standard (EBICS) compliant signature. The version is H3. | |
EBICS_H4 | Electronic Banking Internet Communication Standard (EBICS) compliant signature. The version is H4. | |
EBICS_H5 | Electronic Banking Internet Communication Standard (EBICS) compliant signature. The version is H5. |
Default value is "ds". In this case "ds:" prefix will be used.
Special values:
"#default" or "" | indicates that the prefix will be omitted. |
"#auto" | indicates that the prefix will be auto-detected based on the parent nodes. |
cxcmNone | 0 | |
cxcmCanon | 1 | |
cxcmCanonComment | 2 | |
cxcmExclCanon | 3 | |
cxcmExclCanonComment | 4 | |
cxcmMinCanon | 5 | |
cxcmCanon_v1_1 | 6 | |
cxcmCanonComment_v1_1 | 7 |
Supported values:
SB_HASH_ALGORITHM_MD5 | MD5 | |
SB_HASH_ALGORITHM_SHA1 | SHA1 | |
SB_HASH_ALGORITHM_SHA224 | SHA224 | |
SB_HASH_ALGORITHM_SHA256 | SHA256 | |
SB_HASH_ALGORITHM_SHA384 | SHA384 | |
SB_HASH_ALGORITHM_SHA512 | SHA512 | |
SB_HASH_ALGORITHM_RIPEMD160 | RIPEMD160 | |
SB_HASH_ALGORITHM_GOST_R3411_1994 | GOST1994 | |
SB_HASH_ALGORITHM_WHIRLPOOL | WHIRLPOOL | |
SB_HASH_ALGORITHM_SHA3_256 | SHA3_256 | |
SB_HASH_ALGORITHM_SHA3_384 | SHA3_384 | |
SB_HASH_ALGORITHM_SHA3_512 | SHA3_512 |
The default value is empty string, in this case, the hash algorithm specified in HashAlgorithm property is used.
Supported values:
SB_HASH_ALGORITHM_MD5 | MD5 | |
SB_HASH_ALGORITHM_SHA1 | SHA1 | |
SB_HASH_ALGORITHM_SHA224 | SHA224 | |
SB_HASH_ALGORITHM_SHA256 | SHA256 | |
SB_HASH_ALGORITHM_SHA384 | SHA384 | |
SB_HASH_ALGORITHM_SHA512 | SHA512 | |
SB_HASH_ALGORITHM_RIPEMD160 | RIPEMD160 | |
SB_HASH_ALGORITHM_GOST_R3411_1994 | GOST1994 | |
SB_HASH_ALGORITHM_WHIRLPOOL | WHIRLPOOL | |
SB_HASH_ALGORITHM_SHA3_256 | SHA3_256 | |
SB_HASH_ALGORITHM_SHA3_384 | SHA3_384 | |
SB_HASH_ALGORITHM_SHA3_512 | SHA3_512 |
The default value is empty string, in this case, the hash algorithm specified in HashAlgorithm property is used.
Supported values:
SB_HASH_ALGORITHM_MD5 | MD5 | |
SB_HASH_ALGORITHM_SHA1 | SHA1 | |
SB_HASH_ALGORITHM_SHA224 | SHA224 | |
SB_HASH_ALGORITHM_SHA256 | SHA256 | |
SB_HASH_ALGORITHM_SHA384 | SHA384 | |
SB_HASH_ALGORITHM_SHA512 | SHA512 | |
SB_HASH_ALGORITHM_RIPEMD160 | RIPEMD160 | |
SB_HASH_ALGORITHM_GOST_R3411_1994 | GOST1994 | |
SB_HASH_ALGORITHM_WHIRLPOOL | WHIRLPOOL | |
SB_HASH_ALGORITHM_SHA3_256 | SHA3_256 | |
SB_HASH_ALGORITHM_SHA3_384 | SHA3_384 | |
SB_HASH_ALGORITHM_SHA3_512 | SHA3_512 |
cxcmNone | 0 | |
cxcmCanon | 1 | |
cxcmCanonComment | 2 | |
cxcmExclCanon | 3 | |
cxcmExclCanonComment | 4 | |
cxcmMinCanon | 5 | |
cxcmCanon_v1_1 | 6 | |
cxcmCanonComment_v1_1 | 7 |
Supported values are:
certificate | Base64-encoded [X509v3] certificates | |
crl | Base64-encoded certificate revocation lists (CRL) | |
ocsp | OCSP responses |
- CA, revocation source, TLS key usage requirements are not mandated
- Violation of OCSP issuer requirements are ignored
- The AuthorityKeyID extension in CRL- and certificate-issuing CAs are ignored (helps with incorrectly renewed certificates)
- Basic constraints and name constraints of CA certificates are ignored
- Some weaker algorithms are tolerated
In case of a timestamping failure, provide new TSA and HTTP settings inside the Notification event handler ('BeforeTimestamp' and 'TimestampError' event IDs).
Supported values are:
certificate | References to X.509 certificates | |
crl | References to certificate revocation lists (CRL) | |
ocsp | References to OCSP responses |
Supported values:
SB_HASH_ALGORITHM_MD5 | MD5 | |
SB_HASH_ALGORITHM_SHA1 | SHA1 | |
SB_HASH_ALGORITHM_SHA224 | SHA224 | |
SB_HASH_ALGORITHM_SHA256 | SHA256 | |
SB_HASH_ALGORITHM_SHA384 | SHA384 | |
SB_HASH_ALGORITHM_SHA512 | SHA512 | |
SB_HASH_ALGORITHM_RIPEMD160 | RIPEMD160 | |
SB_HASH_ALGORITHM_GOST_R3411_1994 | GOST1994 | |
SB_HASH_ALGORITHM_WHIRLPOOL | WHIRLPOOL | |
SB_HASH_ALGORITHM_SHA3_256 | SHA3_256 | |
SB_HASH_ALGORITHM_SHA3_384 | SHA3_384 | |
SB_HASH_ALGORITHM_SHA3_512 | SHA3_512 |
The default value is empty string, in this case, the hash algorithm specified in HashAlgorithm property is used.
Supported values are:
certificate | Base64-encoded [X509v3] certificates | |
crl | Base64-encoded certificate revocation lists (CRL) | |
ocsp | OCSP responses |
Default value is "xades". In this case "xades:" prefix will be used.
Special values:
"#default" or "" | indicates that the prefix will be omitted. |
"#auto" | indicates that the prefix will be auto-detected based on the parent nodes. |
Default value is "xadesv141". In this case "xadesv141:" prefix will be used.
Special values:
"#default" or "" | indicates that the prefix will be omitted. |
"#auto" | indicates that the prefix will be auto-detected based on the parent nodes. |
Supported values:
"" or "none" | no formatting (by default). | |
"auto" | enables auto-formatting, equivalent to: "indent: 1; indent-char: tab; base64-max-length: 64; starting-level: node" |
indent | specifies indentation level (default is 1) | |
indent-char | specifies indentation character: "space" or "tab" (default) | |
base64-max-length | specifies max length of base64 encoded data, such as signature value, certificate data and etc. (default is 64) | |
starting-level | specifies starting indentation level: non-negative integer or "node" - detected based on parent node, or "root" - detected based on number of parent nodes to a document element (default is "node"). | |
indent-before-main | specifies if whitespace characters should be inserted before a main (ds:Signature) element: "auto" (default), "yes" or "no" |
Base Config Settings
You can switch this property off to improve performance if your project only uses known, good private keys.
Supported values are:
off | No caching (default) | |
local | Local caching | |
global | Global caching |
This setting only applies to sessions negotiated with TLS version 1.3.
Supported values are:
file | File | |
console | Console | |
systemlog | System Log (supported for Android only) | |
debugger | Debugger (supported for VCL for Windows and .Net) |
Supported values are:
time | Current time | |
level | Level | |
package | Package name | |
module | Module name | |
class | Class name | |
method | Method name | |
threadid | Thread Id | |
contenttype | Content type | |
content | Content | |
all | All details |
Supported filter names are:
exclude-package | Exclude a package specified in the value | |
exclude-module | Exclude a module specified in the value | |
exclude-class | Exclude a class specified in the value | |
exclude-method | Exclude a method specified in the value | |
include-package | Include a package specified in the value | |
include-module | Include a module specified in the value | |
include-class | Include a class specified in the value | |
include-method | Include a method specified in the value |
none | No flush (caching only) | |
immediate | Immediate flush (real-time logging) | |
maxcount | Flush cached entries upon reaching LogMaxEventCount entries in the cache. |
Supported values are:
none | None (by default) | |
fatal | Severe errors that cause premature termination. | |
error | Other runtime errors or unexpected conditions. | |
warning | Use of deprecated APIs, poor use of API, 'almost' errors, other runtime situations that are undesirable or unexpected, but not necessarily "wrong". | |
info | Interesting runtime events (startup/shutdown). | |
debug | Detailed information on flow of through the system. | |
trace | More detailed information. |
The default value of this setting is 100.
none | No rotation | |
deleteolder | Delete older entries from the cache upon reaching LogMaxEventCount | |
keepolder | Keep older entries in the cache upon reaching LogMaxEventCount (newer entries are discarded) |
Supported values are:
none | No static DNS rules (default) | |
local | Local static DNS rules | |
global | Global static DNS rules |
This setting only applies to certificates originating from a Windows system store.
Trappable Errors (XAdESSigner Module)
XAdESSigner Errors
1048577 Invalid parameter value (SB_ERROR_INVALID_PARAMETER) | |
1048578 Class is configured incorrectly (SB_ERROR_INVALID_SETUP) | |
1048579 Operation cannot be executed in the current state (SB_ERROR_INVALID_STATE) | |
1048580 Attempt to set an invalid value to a property (SB_ERROR_INVALID_VALUE) | |
1048581 Certificate does not have its private key loaded (SB_ERROR_NO_PRIVATE_KEY) | |
1048581 Cancelled by the user (SB_ERROR_CANCELLED_BY_USER) | |
39845889 Input file does not exist (SB_ERROR_XML_INPUTFILE_NOT_EXISTS) | |
39845890 Data file does not exist (SB_ERROR_XML_DATAFILE_NOT_EXISTS) | |
39845891 Unsupported signature method type (SB_ERROR_XML_UNSUPPORTED_SIGNATURE_METHOD_TYPE) | |
39845892 Unsupported has algorithm (SB_ERROR_XML_UNSUPPORTED_HASH_ALGORITHM) | |
39845893 Unsupported key type (SB_ERROR_XML_UNSUPPORTED_KEY_TYPE) | |
39845894 Invalid key type (SB_ERROR_XML_INVALID_KEY_TYPE) | |
39845895 Invalid encryption method (SB_ERROR_XML_INVALID_ENCRYPTION_METHOD) | |
39845896 Not found (SB_ERROR_XML_NOT_FOUND) | |
39845897 No element ID (SB_ERROR_XML_NO_ELEMENT_ID) |