XAdESSigner Class
Properties Methods Events Config Settings Errors
The XAdESSigner class creates XAdES-compliant signature files.
Syntax
class 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 xades_form property.
- Whether the signature should be detached, enveloped, or enveloping: adjust via signature_type property.
- When creating a timestamped signature (such as T or A), provide the address of your online TSA service via timestamp_server property.
- When creating long-term signatures that include the signing chain and validation material, tune up validation parameters via revocation_check, offline_mode, and ignore_chain_validation_errors 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 xades_version property.
- Specify the needed canonicalization method using the canonicalization_method property.
- Provide the hash algorithm via the hash_algorithm 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 signing_certificate property, and optionally provide the remainder of its chain via signing_chain 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 input_file property), as a stream (assign to input_stream property), or as a byte array (assign to input_bytes). Similarly, the output can be collected in one of the same forms, either by passing the destination path or stream via output_file and output_stream respectively, or by reading the resulting document bytes from the output_bytes property after the signing completes.
Having set up the input and output (unless using output_bytes, 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 timestamp_server 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 on_tls_cert_validate 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 on_format_element and on_format_text 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 on_resolve_reference 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 sign_external instead of sign. When the hash is ready, it will be passed back to your code with on_external_sign 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 sign_external 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 sign_async_begin 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 sign_async_end method. sign_async_end 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.
- revocation_check 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.
- offline_mode 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 known_certificates, trusted_certificates, known_crls, and known_ocsps collections to look for the missing validation material.
- ignore_chain_validation_errors 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.
- known_certificates, known_crls, and known_ocsps let you provide your own validation material. This may be useful when working in offline_mode, where the signer has no access to the validation sources, or where the validation material has already been collected.
- trusted_certificates lets you provide a list of trust anchors, either as a complement to the system's or as an alternative to it.
- blocked_certificates 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, socket_settings, and tls_settings let you tune up the connectivity and TLS options in accordance with local preferences.
- tls_client_chain lets you provide the client certificate and its chain for TLS client authentication.
- Subscribe to on_tls_cert_validate 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:
- chain_validation_result contains the primary result of the chain validation routine: valid, valid but untrusted, invalid, or undefined.
- chain_validation_details 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.
- validation_log 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 class with short descriptions. Click on the links for further details.
auto_validate_signatures | Specifies whether class should validate any present signatures when the document is opened. |
blocked_cert_count | The number of records in the BlockedCert arrays. |
blocked_cert_bytes | Returns the raw certificate data in DER format. |
blocked_cert_handle | Allows to get or set a 'handle', a unique identifier of the underlying property object. |
crl_count | The number of records in the CRL arrays. |
crl_bytes | Returns the raw CRL data in DER format. |
crl_handle | Allows to get or set a 'handle', a unique identifier of the underlying property object. |
crl_issuer | The common name of the CRL issuer (CA), typically a company name. |
crl_issuer_rdn | A collection of information, in the form of [OID, Value] pairs, uniquely identifying the CRL issuer. |
crl_location | The URL that the CRL was downloaded from. |
crl_next_update | The planned time and date of the next version of this CRL to be published. |
crl_this_update | The date and time at which this version of the CRL was published. |
data_bytes | Use this property to pass the external data to class in the byte array form. |
data_file | A file containing the external data covered by a detached signature. |
data_type | Specifies the external data type. |
data_uri | Specifies a detached data resource URI. |
encoding | Specifies XML encoding. |
external_crypto_async_document_id | Specifies an optional document ID for SignAsyncBegin() and SignAsyncEnd() calls. |
external_crypto_custom_params | Custom parameters to be passed to the signing service (uninterpreted). |
external_crypto_data | Additional data to be included in the async state and mirrored back by the requestor. |
external_crypto_external_hash_calculation | Specifies whether the message hash is to be calculated at the external endpoint. |
external_crypto_hash_algorithm | Specifies the request's signature hash algorithm. |
external_crypto_key_id | The ID of the pre-shared key used for DC request authentication. |
external_crypto_key_secret | The pre-shared key used for DC request authentication. |
external_crypto_method | Specifies the asynchronous signing method. |
external_crypto_mode | Specifies the external cryptography mode. |
external_crypto_public_key_algorithm | Provide the public key algorithm here if the certificate is not available on the pre-signing stage. |
fips_mode | Reserved. |
ignore_chain_validation_errors | Makes the class tolerant to chain validation errors. |
input_bytes | Use this property to pass the input to class in byte array form. |
input_file | The XML document to sign. |
known_cert_count | The number of records in the KnownCert arrays. |
known_cert_bytes | Returns the raw certificate data in DER format. |
known_cert_handle | Allows to get or set a 'handle', a unique identifier of the underlying property object. |
known_crl_count | The number of records in the KnownCRL arrays. |
known_crl_bytes | Returns the raw CRL data in DER format. |
known_crl_handle | Allows to get or set a 'handle', a unique identifier of the underlying property object. |
known_ocsp_count | The number of records in the KnownOCSP arrays. |
known_ocsp_bytes | A buffer containing the raw OCSP response data. |
known_ocsp_handle | Allows to get or set a 'handle', a unique identifier of the underlying property object. |
new_sig_canonicalization_method | The XML canonicalization method that was used for signing. |
new_sig_certificate_index | Returns the index of the signing certificate in the Certificates collection Use this property to look up the signing certificate in the Certificates collection. |
new_sig_chain_validation_details | The details of a certificate chain validation outcome. |
new_sig_chain_validation_result | The outcome of a certificate chain validation routine. |
new_sig_claimed_signing_time | The signing time from the signer's computer. |
new_sig_handle | Allows to get or set a 'handle', a unique identifier of the underlying property object. |
new_sig_hash_algorithm | The hash algorithm used for signing. |
new_sig_issuer_rdn | The Relative Distinguished Name of the signing certificate's issuer. |
new_sig_last_archival_time | 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. |
new_sig_policy_hash | The signature policy hash value. |
new_sig_policy_hash_algorithm | 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. |
new_sig_policy_id | The policy ID that was included or to be included into the signature. |
new_sig_policy_uri | The signature policy URI that was included in the signature. |
new_sig_serial_number | The serial number of the timestamp. |
new_sig_signature_bytes | Returns the binary representation of the XML-DSig/XAdES signature. |
new_sig_signature_type | The signature type to employ when signing the document. |
new_sig_signature_validation_result | Contains the signature validation result. |
new_sig_subject_key_id | Contains the subject key identifier of the signing certificate. |
new_sig_subject_rdn | Contains information about the person owning the signing certificate. |
new_sig_timestamped | Use this property to establish whether the signature contains an embedded timestamp. |
new_sig_validated_signing_time | Contains the certified signing time. |
new_sig_validation_log | Contains the complete log of the certificate validation routine. |
new_sig_xades | Specifies whether the document contains an advanced signature (XAdES). |
new_sig_xades_form | Specifies which form of XAdES should be produced. |
new_sig_xades_version | Specifies XAdES version. |
new_sig_xml_element | Specifies the XML element where to save the signature or containing the signature. |
ocsp_count | The number of records in the OCSP arrays. |
ocsp_bytes | A buffer containing the raw OCSP response data. |
ocsp_handle | Allows to get or set a 'handle', a unique identifier of the underlying property object. |
ocsp_issuer | Indicates the issuer of this response (a CA or its authorized representative). |
ocsp_issuer_rdn | Indicates the RDN of the issuer of this response (a CA or its authorized representative). |
ocsp_location | The location of the OCSP responder. |
ocsp_produced_at | Specifies the time when the response was produced, in UTC. |
offline_mode | Switches the class to offline mode. |
output_bytes | Use this property to read the output the class object has produced. |
output_file | Specifies the file where the signed document will be saved. |
profile | Specifies a pre-defined profile to apply when creating the signature. |
proxy_address | The IP address of the proxy server. |
proxy_authentication | The authentication type used by the proxy server. |
proxy_password | The password to authenticate to the proxy server. |
proxy_port | The port on the proxy server to connect to. |
proxy_proxy_type | The type of the proxy server. |
proxy_request_headers | Contains HTTP request headers for WebTunnel and HTTP proxy. |
proxy_response_body | Contains the HTTP or HTTPS (WebTunnel) proxy response body. |
proxy_response_headers | Contains response headers received from an HTTP or HTTPS (WebTunnel) proxy server. |
proxy_use_ipv6 | Specifies whether IPv6 should be used when connecting through the proxy. |
proxy_use_proxy | Enables or disables proxy-driven connection. |
proxy_username | Specifies the username credential for proxy authentication. |
reference_count | The number of records in the Reference arrays. |
reference_auto_generate_element_id | Specifies whether the identifier (ID) attribute for a referenced (target) element should be auto-generated during signing. |
reference_canonicalization_method | Use this property to specify the canonicalization method for the transform of the reference. |
reference_custom_element_id | Specifies a custom identifier (ID) attribute for a referenced (target) element that will be set on signing. |
reference_digest_value | Use this property to get or set the value of the digest calculated over the referenced data. |
reference_handle | Allows to get or set a 'handle', a unique identifier of the underlying property object. |
reference_hash_algorithm | Specifies the hash algorithm to be used. |
reference_has_uri | Specifies whether the URI is set (even when it is empty). |
reference_id | A user-defined identifier (ID) attribute of this Reference element. |
reference_inclusive_namespaces_prefix_list | Use this property to specify InclusiveNamespaces PrefixList for exclusive canonicalization transform of the reference. |
reference_reference_type | The Reference's type attribute as defined in XMLDSIG specification. |
reference_signature_index | Returns the index of the owner signature, if applicable. |
reference_target_data | Contains the referenced external data when the digest value is not explicitly specified. |
reference_target_type | The reference's target type to use. |
reference_target_xml_element | This property specifies the referenced XML element. |
reference_uri | Use this property to get or set the URL which references the data. |
reference_use_base64_transform | Specifies whether Base64 transform is included in transform chain. |
reference_use_enveloped_signature_transform | Specifies whether enveloped signature transform is included in transform chain. |
reference_use_xpath_filter2_transform | Specifies whether XPath Filter 2. |
reference_use_xpath_transform | Specifies whether XPath transform is included in transform chain. |
reference_xpath_expression | Use this property to specify XPath expression for XPath transform of the reference. |
reference_xpath_filter2_expressions | Use this property to specify XPointer expression(s) for XPath Filter 2. |
reference_xpath_filter2_filters | Use this property to specify XPointer filter(s) for XPath Filter 2. |
reference_xpath_filter2_prefix_list | Use this property to specify a prefix list for XPath Filter 2. |
reference_xpath_prefix_list | Use this property to specify a prefix list for XPath transform of the reference. |
revocation_check | Specifies the kind(s) of revocation check to perform for all chain certificates. |
signature_count | The number of records in the Signature arrays. |
signature_canonicalization_method | The XML canonicalization method that was used for signing. |
signature_certificate_index | Returns the index of the signing certificate in the Certificates collection Use this property to look up the signing certificate in the Certificates collection. |
signature_chain_validation_details | The details of a certificate chain validation outcome. |
signature_chain_validation_result | The outcome of a certificate chain validation routine. |
signature_claimed_signing_time | The signing time from the signer's computer. |
signature_handle | Allows to get or set a 'handle', a unique identifier of the underlying property object. |
signature_hash_algorithm | The hash algorithm used for signing. |
signature_issuer_rdn | The Relative Distinguished Name of the signing certificate's issuer. |
signature_last_archival_time | 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. |
signature_policy_hash | The signature policy hash value. |
signature_policy_hash_algorithm | 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. |
signature_policy_id | The policy ID that was included or to be included into the signature. |
signature_policy_uri | The signature policy URI that was included in the signature. |
signature_serial_number | The serial number of the timestamp. |
signature_signature_bytes | Returns the binary representation of the XML-DSig/XAdES signature. |
signature_signature_type | The signature type to employ when signing the document. |
signature_signature_validation_result | Contains the signature validation result. |
signature_subject_key_id | Contains the subject key identifier of the signing certificate. |
signature_subject_rdn | Contains information about the person owning the signing certificate. |
signature_timestamped | Use this property to establish whether the signature contains an embedded timestamp. |
signature_validated_signing_time | Contains the certified signing time. |
signature_validation_log | Contains the complete log of the certificate validation routine. |
signature_xades | Specifies whether the document contains an advanced signature (XAdES). |
signature_xades_form | Specifies which form of XAdES should be produced. |
signature_xades_version | Specifies XAdES version. |
signature_xml_element | Specifies the XML element where to save the signature or containing the signature. |
signing_cert_bytes | Returns the raw certificate data in DER format. |
signing_cert_handle | Allows to get or set a 'handle', a unique identifier of the underlying property object. |
signing_chain_count | The number of records in the SigningChain arrays. |
signing_chain_bytes | Returns the raw certificate data in DER format. |
signing_chain_handle | Allows to get or set a 'handle', a unique identifier of the underlying property object. |
socket_dns_mode | Selects the DNS resolver to use: the class's (secure) built-in one, or the one provided by the system. |
socket_dns_port | Specifies the port number to be used for sending queries to the DNS server. |
socket_dns_query_timeout | The timeout (in milliseconds) for each DNS query. |
socket_dns_servers | The addresses of DNS servers to use for address resolution, separated by commas or semicolons. |
socket_dns_total_timeout | The timeout (in milliseconds) for the whole resolution process. |
socket_incoming_speed_limit | The maximum number of bytes to read from the socket, per second. |
socket_local_address | The local network interface to bind the socket to. |
socket_local_port | The local port number to bind the socket to. |
socket_outgoing_speed_limit | The maximum number of bytes to write to the socket, per second. |
socket_timeout | The maximum period of waiting, in milliseconds, after which the socket operation is considered unsuccessful. |
socket_use_ipv6 | Enables or disables IP protocol version 6. |
timestamp_count | The number of records in the Timestamp arrays. |
timestamp_accuracy | This property indicates the accuracy of the included time mark, in microseconds. |
timestamp_bytes | Returns the raw timestamp data in DER format. |
timestamp_certificate_index | Returns the index of the TSA certificate in the Certificates collection. |
timestamp_chain_validation_details | The details of a certificate chain validation outcome. |
timestamp_chain_validation_result | The outcome of a certificate chain validation routine. |
timestamp_hash_algorithm | Returns the timestamp's hash algorithm. |
timestamp_serial_number | Returns the timestamp's serial number. |
timestamp_signature_index | Returns the index of the owner signature, if applicable. |
timestamp_time | The time point incorporated into the timestamp. |
timestamp_timestamp_type | Returns the type of the timestamp. |
timestamp_tsa_name | This value uniquely identifies the Timestamp Authority (TSA). |
timestamp_validation_log | Contains the TSA certificate chain validation log. |
timestamp_validation_result | Contains the timestamp validation outcome. |
timestamp_server | The address of the timestamping server. |
tls_client_cert_count | The number of records in the TLSClientCert arrays. |
tls_client_cert_bytes | Returns the raw certificate data in DER format. |
tls_client_cert_handle | Allows to get or set a 'handle', a unique identifier of the underlying property object. |
tls_server_cert_count | The number of records in the TLSServerCert arrays. |
tls_server_cert_bytes | Returns the raw certificate data in DER format. |
tls_server_cert_handle | Allows to get or set a 'handle', a unique identifier of the underlying property object. |
tls_auto_validate_certificates | Specifies whether server-side TLS certificates should be validated automatically using internal validation rules. |
tls_base_configuration | Selects the base configuration for the TLS settings. |
tls_ciphersuites | A list of ciphersuites separated with commas or semicolons. |
tls_ec_curves | Defines the elliptic curves to enable. |
tls_extensions | Provides access to TLS extensions. |
tls_force_resume_if_destination_changes | Whether to force TLS session resumption when the destination address changes. |
tls_pre_shared_identity | Defines the identity used when the PSK (Pre-Shared Key) key-exchange mechanism is negotiated. |
tls_pre_shared_key | Contains the pre-shared key for the PSK (Pre-Shared Key) key-exchange mechanism, encoded with base16. |
tls_pre_shared_key_ciphersuite | Defines the ciphersuite used for PSK (Pre-Shared Key) negotiation. |
tls_renegotiation_attack_prevention_mode | Selects the renegotiation attack prevention mechanism. |
tls_revocation_check | Specifies the kind(s) of revocation check to perform. |
tls_ssl_options | 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. |
tls_tls_mode | Specifies the TLS mode to use. |
tls_use_extended_master_secret | Enables the Extended Master Secret Extension, as defined in RFC 7627. |
tls_use_session_resumption | Enables or disables the TLS session resumption capability. |
tls_versions | The SSL/TLS versions to enable by default. |
trusted_cert_count | The number of records in the TrustedCert arrays. |
trusted_cert_bytes | Returns the raw certificate data in DER format. |
trusted_cert_handle | Allows to get or set a 'handle', a unique identifier of the underlying property object. |
validation_moment | The time point at which signature validity is to be established. |
namespace_count | The number of records in the Namespace arrays. |
namespace_prefix | A user-defined prefix value of a namespace. |
namespace_uri | A user-defined URI value of a namespace. |
Method List
The following is the full list of the methods of the class with short descriptions. Click on the links for further details.
add_data_reference | Creates a new XML reference to the specified data. |
add_reference | Creates a new XML reference to the specified XML element. |
add_timestamp_validation_data | Use this method to add timestamp validation data to the signature. |
add_validation_data_refs | Use this method to add signature validation references to the signature. |
add_validation_data_values | Use this method to add signature validation values to the signature. |
close | Closes an opened document. |
config | Sets or retrieves a configuration setting. |
do_action | Performs an additional action. |
extract_async_data | Extracts user data from the DC signing service response. |
get_inner_xml | Get the inner XML content of the selected XML element. |
get_outer_xml | Get the outer XML content of the selected XML element. |
get_text_content | 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. |
set_inner_xml | Set the inner XML content of the selected XML element. |
set_text_content | Set the text content of the selected XML element. |
sign | Signs an XML document. |
sign_async_begin | Initiates the asynchronous signing operation. |
sign_async_end | Completes the asynchronous signing operation. |
sign_external | 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 class with short descriptions. Click on the links for further details.
on_chain_element_download | Fires when there is a need to download a chain element from an online source. |
on_chain_element_needed | Fires when an element required to validate the chain was not located. |
on_chain_element_store | This event is fired when a chain element (certificate, CRL, or OCSP response) should be stored along with a signature. |
on_chain_validated | Reports the completion of a certificate chain validation. |
on_chain_validation_progress | This event is fired multiple times during chain validation to report various stages of the validation procedure. |
on_document_loaded | This event is fired when the document has been loaded into memory. |
on_error | Information about errors during signing. |
on_external_sign | Handles remote or external signing initiated by the SignExternal method or other source. |
on_format_element | Reports the XML element that is currently being processed. |
on_format_text | Reports XML text that is currently being processed. |
on_notification | This event notifies the application about an underlying control flow event. |
on_reference_validated | Marks the end of a reference validation. |
on_resolve_reference | Asks the application to resolve a reference. |
on_signature_found | Signifies the start of signature validation. |
on_signature_validated | Marks the completion of the signature validation routine. |
on_timestamp_found | Signifies the start of a timestamp validation routine. |
on_timestamp_request | Fires when the class is ready to request a timestamp from an external TSA. |
on_timestamp_validated | Reports the completion of the timestamp validation routine. |
on_tls_cert_needed | Fires when a remote TLS party requests a client certificate. |
on_tls_cert_validate | This event is fired upon receipt of the TLS server's certificate, allowing the user to control its acceptance. |
on_tls_established | Fires when a TLS handshake with Host successfully completes. |
on_tls_handshake | Fires when a new TLS handshake is initiated, before the handshake commences. |
on_tls_shutdown | Reports the graceful closure of a TLS connection. |
Config Settings
The following is a list of config settings for the class 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 class 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 class. |
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 classes 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. |
auto_validate_signatures Property
Specifies whether class should validate any present signatures when the document is opened.
Syntax
def get_auto_validate_signatures() -> bool: ... def set_auto_validate_signatures(value: bool) -> None: ...
auto_validate_signatures = property(get_auto_validate_signatures, set_auto_validate_signatures)
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.
blocked_cert_count Property
The number of records in the BlockedCert arrays.
Syntax
def get_blocked_cert_count() -> int: ... def set_blocked_cert_count(value: int) -> None: ...
blocked_cert_count = property(get_blocked_cert_count, set_blocked_cert_count)
Default Value
0
Remarks
This property controls the size of the following arrays:
The array indices start at 0 and end at blocked_cert_count - 1.blocked_cert_bytes Property
Returns the raw certificate data in DER format.
Syntax
def get_blocked_cert_bytes(blocked_cert_index: int) -> bytes: ...
Remarks
Returns the raw certificate data in DER format.
The blocked_cert_index parameter specifies the index of the item in the array. The size of the array is controlled by the blocked_cert_count property.
This property is read-only.
blocked_cert_handle Property
Allows to get or set a 'handle', a unique identifier of the underlying property object.
Syntax
def get_blocked_cert_handle(blocked_cert_index: int) -> int: ... def set_blocked_cert_handle(blocked_cert_index: int, value: int) -> None: ...
Default Value
0
Remarks
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());
The blocked_cert_index parameter specifies the index of the item in the array. The size of the array is controlled by the blocked_cert_count property.
crl_count Property
The number of records in the CRL arrays.
Syntax
def get_crl_count() -> int: ...
crl_count = property(get_crl_count, None)
Default Value
0
Remarks
This property controls the size of the following arrays:
The array indices start at 0 and end at crl_count - 1.This property is read-only.
crl_bytes Property
Returns the raw CRL data in DER format.
Syntax
def get_crl_bytes(crl_index: int) -> bytes: ...
Remarks
Returns the raw CRL data in DER format.
The crl_index parameter specifies the index of the item in the array. The size of the array is controlled by the crl_count property.
This property is read-only.
crl_handle Property
Allows to get or set a 'handle', a unique identifier of the underlying property object.
Syntax
def get_crl_handle(crl_index: int) -> int: ...
Default Value
0
Remarks
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());
The crl_index parameter specifies the index of the item in the array. The size of the array is controlled by the crl_count property.
This property is read-only.
crl_issuer Property
The common name of the CRL issuer (CA), typically a company name.
Syntax
def get_crl_issuer(crl_index: int) -> str: ...
Default Value
""
Remarks
The common name of the CRL issuer (CA), typically a company name.
The crl_index parameter specifies the index of the item in the array. The size of the array is controlled by the crl_count property.
This property is read-only.
crl_issuer_rdn Property
A collection of information, in the form of [OID, Value] pairs, uniquely identifying the CRL issuer.
Syntax
def get_crl_issuer_rdn(crl_index: int) -> str: ...
Default Value
""
Remarks
A collection of information, in the form of [OID, Value] pairs, uniquely identifying the CRL issuer.
The crl_index parameter specifies the index of the item in the array. The size of the array is controlled by the crl_count property.
This property is read-only.
crl_location Property
The URL that the CRL was downloaded from.
Syntax
def get_crl_location(crl_index: int) -> str: ...
Default Value
""
Remarks
The URL that the CRL was downloaded from.
The crl_index parameter specifies the index of the item in the array. The size of the array is controlled by the crl_count property.
This property is read-only.
crl_next_update Property
The planned time and date of the next version of this CRL to be published.
Syntax
def get_crl_next_update(crl_index: int) -> str: ...
Default Value
""
Remarks
The planned time and date of the next version of this CRL to be published.
The crl_index parameter specifies the index of the item in the array. The size of the array is controlled by the crl_count property.
This property is read-only.
crl_this_update Property
The date and time at which this version of the CRL was published.
Syntax
def get_crl_this_update(crl_index: int) -> str: ...
Default Value
""
Remarks
The date and time at which this version of the CRL was published.
The crl_index parameter specifies the index of the item in the array. The size of the array is controlled by the crl_count property.
This property is read-only.
data_bytes Property
Use this property to pass the external data to class in the byte array form.
Syntax
def get_data_bytes() -> bytes: ... def set_data_bytes(value: bytes) -> None: ...
data_bytes = property(get_data_bytes, set_data_bytes)
Remarks
Assign a byte array containing the external data to be processed to this property.
data_file Property
A file containing the external data covered by a detached signature.
Syntax
def get_data_file() -> str: ... def set_data_file(value: str) -> None: ...
data_file = property(get_data_file, set_data_file)
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 data_stream.
data_type Property
Specifies the external data type.
Syntax
def get_data_type() -> int: ... def set_data_type(value: int) -> None: ...
data_type = property(get_data_type, set_data_type)
Default Value
0
Remarks
Use this property to specify the type of the external data (either data_file, data_stream or data_bytes properties) for class.
data_uri Property
Specifies a detached data resource URI.
Syntax
def get_data_uri() -> str: ... def set_data_uri(value: str) -> None: ...
data_uri = property(get_data_uri, set_data_uri)
Default Value
""
Remarks
Specifies a URI used for data being signed, usually the data filename if stored along with a detached signature.
encoding Property
Specifies XML encoding.
Syntax
def get_encoding() -> str: ... def set_encoding(value: str) -> None: ...
encoding = property(get_encoding, set_encoding)
Default Value
""
Remarks
Use this property to specify the encoding to apply to the XML documents.
external_crypto_async_document_id Property
Specifies an optional document ID for SignAsyncBegin() and SignAsyncEnd() calls.
Syntax
def get_external_crypto_async_document_id() -> str: ... def set_external_crypto_async_document_id(value: str) -> None: ...
external_crypto_async_document_id = property(get_external_crypto_async_document_id, set_external_crypto_async_document_id)
Default Value
""
Remarks
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.
external_crypto_custom_params Property
Custom parameters to be passed to the signing service (uninterpreted).
Syntax
def get_external_crypto_custom_params() -> str: ... def set_external_crypto_custom_params(value: str) -> None: ...
external_crypto_custom_params = property(get_external_crypto_custom_params, set_external_crypto_custom_params)
Default Value
""
Remarks
Custom parameters to be passed to the signing service (uninterpreted).
external_crypto_data Property
Additional data to be included in the async state and mirrored back by the requestor.
Syntax
def get_external_crypto_data() -> str: ... def set_external_crypto_data(value: str) -> None: ...
external_crypto_data = property(get_external_crypto_data, set_external_crypto_data)
Default Value
""
Remarks
Additional data to be included in the async state and mirrored back by the requestor.
external_crypto_external_hash_calculation Property
Specifies whether the message hash is to be calculated at the external endpoint.
Syntax
def get_external_crypto_external_hash_calculation() -> bool: ... def set_external_crypto_external_hash_calculation(value: bool) -> None: ...
external_crypto_external_hash_calculation = property(get_external_crypto_external_hash_calculation, set_external_crypto_external_hash_calculation)
Default Value
FALSE
Remarks
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.
external_crypto_hash_algorithm Property
Specifies the request's signature hash algorithm.
Syntax
def get_external_crypto_hash_algorithm() -> str: ... def set_external_crypto_hash_algorithm(value: str) -> None: ...
external_crypto_hash_algorithm = property(get_external_crypto_hash_algorithm, set_external_crypto_hash_algorithm)
Default Value
"SHA256"
Remarks
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 |
external_crypto_key_id Property
The ID of the pre-shared key used for DC request authentication.
Syntax
def get_external_crypto_key_id() -> str: ... def set_external_crypto_key_id(value: str) -> None: ...
external_crypto_key_id = property(get_external_crypto_key_id, set_external_crypto_key_id)
Default Value
""
Remarks
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 external_crypto_key_secret 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";
external_crypto_key_secret Property
The pre-shared key used for DC request authentication.
Syntax
def get_external_crypto_key_secret() -> str: ... def set_external_crypto_key_secret(value: str) -> None: ...
external_crypto_key_secret = property(get_external_crypto_key_secret, set_external_crypto_key_secret)
Default Value
""
Remarks
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.
Read more about configuring authentication in the external_crypto_key_id topic.
external_crypto_method Property
Specifies the asynchronous signing method.
Syntax
def get_external_crypto_method() -> int: ... def set_external_crypto_method(value: int) -> None: ...
external_crypto_method = property(get_external_crypto_method, set_external_crypto_method)
Default Value
0
Remarks
Specifies the asynchronous signing method. This is typically defined by the DC server capabilities and setup.
Available options:
asmdPKCS1 | 0 |
asmdPKCS7 | 1 |
external_crypto_mode Property
Specifies the external cryptography mode.
Syntax
def get_external_crypto_mode() -> int: ... def set_external_crypto_mode(value: int) -> None: ...
external_crypto_mode = property(get_external_crypto_mode, set_external_crypto_mode)
Default Value
0
Remarks
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) |
external_crypto_public_key_algorithm Property
Provide the public key algorithm here if the certificate is not available on the pre-signing stage.
Syntax
def get_external_crypto_public_key_algorithm() -> str: ... def set_external_crypto_public_key_algorithm(value: str) -> None: ...
external_crypto_public_key_algorithm = property(get_external_crypto_public_key_algorithm, set_external_crypto_public_key_algorithm)
Default Value
""
Remarks
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 |
fips_mode Property
Reserved.
Syntax
def get_fips_mode() -> bool: ... def set_fips_mode(value: bool) -> None: ...
fips_mode = property(get_fips_mode, set_fips_mode)
Default Value
FALSE
Remarks
This property is reserved for future use.
ignore_chain_validation_errors Property
Makes the class tolerant to chain validation errors.
Syntax
def get_ignore_chain_validation_errors() -> bool: ... def set_ignore_chain_validation_errors(value: bool) -> None: ...
ignore_chain_validation_errors = property(get_ignore_chain_validation_errors, set_ignore_chain_validation_errors)
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.
input_bytes Property
Use this property to pass the input to class in byte array form.
Syntax
def get_input_bytes() -> bytes: ... def set_input_bytes(value: bytes) -> None: ...
input_bytes = property(get_input_bytes, set_input_bytes)
Remarks
Assign a byte array containing the data to be processed to this property.
input_file Property
The XML document to sign.
Syntax
def get_input_file() -> str: ... def set_input_file(value: str) -> None: ...
input_file = property(get_input_file, set_input_file)
Default Value
""
Remarks
Provide a path to the XML file to sign.
known_cert_count Property
The number of records in the KnownCert arrays.
Syntax
def get_known_cert_count() -> int: ... def set_known_cert_count(value: int) -> None: ...
known_cert_count = property(get_known_cert_count, set_known_cert_count)
Default Value
0
Remarks
This property controls the size of the following arrays:
The array indices start at 0 and end at known_cert_count - 1.known_cert_bytes Property
Returns the raw certificate data in DER format.
Syntax
def get_known_cert_bytes(known_cert_index: int) -> bytes: ...
Remarks
Returns the raw certificate data in DER format.
The known_cert_index parameter specifies the index of the item in the array. The size of the array is controlled by the known_cert_count property.
This property is read-only.
known_cert_handle Property
Allows to get or set a 'handle', a unique identifier of the underlying property object.
Syntax
def get_known_cert_handle(known_cert_index: int) -> int: ... def set_known_cert_handle(known_cert_index: int, value: int) -> None: ...
Default Value
0
Remarks
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());
The known_cert_index parameter specifies the index of the item in the array. The size of the array is controlled by the known_cert_count property.
known_crl_count Property
The number of records in the KnownCRL arrays.
Syntax
def get_known_crl_count() -> int: ... def set_known_crl_count(value: int) -> None: ...
known_crl_count = property(get_known_crl_count, set_known_crl_count)
Default Value
0
Remarks
This property controls the size of the following arrays:
The array indices start at 0 and end at known_crl_count - 1.known_crl_bytes Property
Returns the raw CRL data in DER format.
Syntax
def get_known_crl_bytes(known_crl_index: int) -> bytes: ...
Remarks
Returns the raw CRL data in DER format.
The known_crl_index parameter specifies the index of the item in the array. The size of the array is controlled by the known_crl_count property.
This property is read-only.
known_crl_handle Property
Allows to get or set a 'handle', a unique identifier of the underlying property object.
Syntax
def get_known_crl_handle(known_crl_index: int) -> int: ... def set_known_crl_handle(known_crl_index: int, value: int) -> None: ...
Default Value
0
Remarks
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());
The known_crl_index parameter specifies the index of the item in the array. The size of the array is controlled by the known_crl_count property.
known_ocsp_count Property
The number of records in the KnownOCSP arrays.
Syntax
def get_known_ocsp_count() -> int: ... def set_known_ocsp_count(value: int) -> None: ...
known_ocsp_count = property(get_known_ocsp_count, set_known_ocsp_count)
Default Value
0
Remarks
This property controls the size of the following arrays:
The array indices start at 0 and end at known_ocsp_count - 1.known_ocsp_bytes Property
A buffer containing the raw OCSP response data.
Syntax
def get_known_ocsp_bytes(known_ocsp_index: int) -> bytes: ...
Remarks
A buffer containing the raw OCSP response data.
The known_ocsp_index parameter specifies the index of the item in the array. The size of the array is controlled by the known_ocsp_count property.
This property is read-only.
known_ocsp_handle Property
Allows to get or set a 'handle', a unique identifier of the underlying property object.
Syntax
def get_known_ocsp_handle(known_ocsp_index: int) -> int: ... def set_known_ocsp_handle(known_ocsp_index: int, value: int) -> None: ...
Default Value
0
Remarks
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());
The known_ocsp_index parameter specifies the index of the item in the array. The size of the array is controlled by the known_ocsp_count property.
new_sig_canonicalization_method Property
The XML canonicalization method that was used for signing.
Syntax
def get_new_sig_canonicalization_method() -> int: ... def set_new_sig_canonicalization_method(value: int) -> None: ...
new_sig_canonicalization_method = property(get_new_sig_canonicalization_method, set_new_sig_canonicalization_method)
Default Value
0
Remarks
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 |
The parameter specifies the index of the item in the array. The size of the array is controlled by the new_sig_count property.
new_sig_certificate_index Property
Returns the index of the signing certificate in the Certificates collection Use this property to look up the signing certificate in the Certificates collection.
Syntax
def get_new_sig_certificate_index() -> int: ...
new_sig_certificate_index = property(get_new_sig_certificate_index, None)
Default Value
-1
Remarks
Returns the index of the signing certificate in the Certificates collection
Use this property to look up the signing certificate in the Certificates collection.
The parameter specifies the index of the item in the array. The size of the array is controlled by the new_sig_count property.
This property is read-only.
new_sig_chain_validation_details Property
The details of a certificate chain validation outcome.
Syntax
def get_new_sig_chain_validation_details() -> int: ...
new_sig_chain_validation_details = property(get_new_sig_chain_validation_details, None)
Default Value
0
Remarks
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 |
The parameter specifies the index of the item in the array. The size of the array is controlled by the new_sig_count property.
This property is read-only.
new_sig_chain_validation_result Property
The outcome of a certificate chain validation routine.
Syntax
def get_new_sig_chain_validation_result() -> int: ...
new_sig_chain_validation_result = property(get_new_sig_chain_validation_result, None)
Default Value
0
Remarks
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.
The parameter specifies the index of the item in the array. The size of the array is controlled by the new_sig_count property.
This property is read-only.
new_sig_claimed_signing_time Property
The signing time from the signer's computer.
Syntax
def get_new_sig_claimed_signing_time() -> str: ... def set_new_sig_claimed_signing_time(value: str) -> None: ...
new_sig_claimed_signing_time = property(get_new_sig_claimed_signing_time, set_new_sig_claimed_signing_time)
Default Value
""
Remarks
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.
The parameter specifies the index of the item in the array. The size of the array is controlled by the new_sig_count property.
new_sig_handle Property
Allows to get or set a 'handle', a unique identifier of the underlying property object.
Syntax
def get_new_sig_handle() -> int: ... def set_new_sig_handle(value: int) -> None: ...
new_sig_handle = property(get_new_sig_handle, set_new_sig_handle)
Default Value
0
Remarks
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());
The parameter specifies the index of the item in the array. The size of the array is controlled by the new_sig_count property.
new_sig_hash_algorithm Property
The hash algorithm used for signing.
Syntax
def get_new_sig_hash_algorithm() -> str: ... def set_new_sig_hash_algorithm(value: str) -> None: ...
new_sig_hash_algorithm = property(get_new_sig_hash_algorithm, set_new_sig_hash_algorithm)
Default Value
"Unknown"
Remarks
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 |
The parameter specifies the index of the item in the array. The size of the array is controlled by the new_sig_count property.
new_sig_issuer_rdn Property
The Relative Distinguished Name of the signing certificate's issuer.
Syntax
def get_new_sig_issuer_rdn() -> str: ...
new_sig_issuer_rdn = property(get_new_sig_issuer_rdn, None)
Default Value
""
Remarks
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.
The parameter specifies the index of the item in the array. The size of the array is controlled by the new_sig_count property.
This property is read-only.
new_sig_last_archival_time Property
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.
Syntax
def get_new_sig_last_archival_time() -> str: ...
new_sig_last_archival_time = property(get_new_sig_last_archival_time, None)
Default Value
""
Remarks
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.
The parameter specifies the index of the item in the array. The size of the array is controlled by the new_sig_count property.
This property is read-only.
new_sig_policy_hash Property
The signature policy hash value.
Syntax
def get_new_sig_policy_hash() -> str: ... def set_new_sig_policy_hash(value: str) -> None: ...
new_sig_policy_hash = property(get_new_sig_policy_hash, set_new_sig_policy_hash)
Default Value
""
Remarks
The signature policy hash value.
Use this property to get the signature policy hash from EPES signatures
The parameter specifies the index of the item in the array. The size of the array is controlled by the new_sig_count property.
new_sig_policy_hash_algorithm Property
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.
Syntax
def get_new_sig_policy_hash_algorithm() -> str: ... def set_new_sig_policy_hash_algorithm(value: str) -> None: ...
new_sig_policy_hash_algorithm = property(get_new_sig_policy_hash_algorithm, set_new_sig_policy_hash_algorithm)
Default Value
""
Remarks
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 new_sig_policy_hash.
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 |
The parameter specifies the index of the item in the array. The size of the array is controlled by the new_sig_count property.
new_sig_policy_id Property
The policy ID that was included or to be included into the signature.
Syntax
def get_new_sig_policy_id() -> str: ... def set_new_sig_policy_id(value: str) -> None: ...
new_sig_policy_id = property(get_new_sig_policy_id, set_new_sig_policy_id)
Default Value
""
Remarks
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.
The parameter specifies the index of the item in the array. The size of the array is controlled by the new_sig_count property.
new_sig_policy_uri Property
The signature policy URI that was included in the signature.
Syntax
def get_new_sig_policy_uri() -> str: ... def set_new_sig_policy_uri(value: str) -> None: ...
new_sig_policy_uri = property(get_new_sig_policy_uri, set_new_sig_policy_uri)
Default Value
""
Remarks
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.
The parameter specifies the index of the item in the array. The size of the array is controlled by the new_sig_count property.
new_sig_serial_number Property
The serial number of the timestamp.
Syntax
def get_new_sig_serial_number() -> bytes: ...
new_sig_serial_number = property(get_new_sig_serial_number, None)
Remarks
The serial number of the timestamp.
The parameter specifies the index of the item in the array. The size of the array is controlled by the new_sig_count property.
This property is read-only.
new_sig_signature_bytes Property
Returns the binary representation of the XML-DSig/XAdES signature.
Syntax
def get_new_sig_signature_bytes() -> bytes: ...
new_sig_signature_bytes = property(get_new_sig_signature_bytes, None)
Remarks
Returns the binary representation of the XML-DSig/XAdES signature.
The parameter specifies the index of the item in the array. The size of the array is controlled by the new_sig_count property.
This property is read-only.
new_sig_signature_type Property
The signature type to employ when signing the document.
Syntax
def get_new_sig_signature_type() -> int: ... def set_new_sig_signature_type(value: int) -> None: ...
new_sig_signature_type = property(get_new_sig_signature_type, set_new_sig_signature_type)
Default Value
4
Remarks
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. |
The parameter specifies the index of the item in the array. The size of the array is controlled by the new_sig_count property.
new_sig_signature_validation_result Property
Contains the signature validation result.
Syntax
def get_new_sig_signature_validation_result() -> int: ...
new_sig_signature_validation_result = property(get_new_sig_signature_validation_result, None)
Default Value
0
Remarks
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 |
The parameter specifies the index of the item in the array. The size of the array is controlled by the new_sig_count property.
This property is read-only.
new_sig_subject_key_id Property
Contains the subject key identifier of the signing certificate.
Syntax
def get_new_sig_subject_key_id() -> bytes: ...
new_sig_subject_key_id = property(get_new_sig_subject_key_id, None)
Remarks
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.
The parameter specifies the index of the item in the array. The size of the array is controlled by the new_sig_count property.
This property is read-only.
new_sig_subject_rdn Property
Contains information about the person owning the signing certificate.
Syntax
def get_new_sig_subject_rdn() -> str: ...
new_sig_subject_rdn = property(get_new_sig_subject_rdn, None)
Default Value
""
Remarks
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.
The parameter specifies the index of the item in the array. The size of the array is controlled by the new_sig_count property.
This property is read-only.
new_sig_timestamped Property
Use this property to establish whether the signature contains an embedded timestamp.
Syntax
def get_new_sig_timestamped() -> bool: ...
new_sig_timestamped = property(get_new_sig_timestamped, None)
Default Value
FALSE
Remarks
Use this property to establish whether the signature contains an embedded timestamp.
The parameter specifies the index of the item in the array. The size of the array is controlled by the new_sig_count property.
This property is read-only.
new_sig_validated_signing_time Property
Contains the certified signing time.
Syntax
def get_new_sig_validated_signing_time() -> str: ...
new_sig_validated_signing_time = property(get_new_sig_validated_signing_time, None)
Default Value
""
Remarks
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.
new_sig_claimed_signing_time returns a non-trusted signing time from the signer's computer.
Both times are in UTC.
The parameter specifies the index of the item in the array. The size of the array is controlled by the new_sig_count property.
This property is read-only.
new_sig_validation_log Property
Contains the complete log of the certificate validation routine.
Syntax
def get_new_sig_validation_log() -> str: ...
new_sig_validation_log = property(get_new_sig_validation_log, None)
Default Value
""
Remarks
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.
The parameter specifies the index of the item in the array. The size of the array is controlled by the new_sig_count property.
This property is read-only.
new_sig_xades Property
Specifies whether the document contains an advanced signature (XAdES).
Syntax
def get_new_sig_xades() -> bool: ... def set_new_sig_xades(value: bool) -> None: ...
new_sig_xades = property(get_new_sig_xades, set_new_sig_xades)
Default Value
TRUE
Remarks
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.
The parameter specifies the index of the item in the array. The size of the array is controlled by the new_sig_count property.
new_sig_xades_form Property
Specifies which form of XAdES should be produced.
Syntax
def get_new_sig_xades_form() -> int: ... def set_new_sig_xades_form(value: int) -> None: ...
new_sig_xades_form = property(get_new_sig_xades_form, set_new_sig_xades_form)
Default Value
0
Remarks
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
The parameter specifies the index of the item in the array. The size of the array is controlled by the new_sig_count property.
new_sig_xades_version Property
Specifies XAdES version.
Syntax
def get_new_sig_xades_version() -> int: ... def set_new_sig_xades_version(value: int) -> None: ...
new_sig_xades_version = property(get_new_sig_xades_version, set_new_sig_xades_version)
Default Value
3
Remarks
Specifies XAdES version.
This property specifies the version of the XAdES specification the signature should comply with. For the form of XAdES, use xades_form.
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) |
The parameter specifies the index of the item in the array. The size of the array is controlled by the new_sig_count property.
new_sig_xml_element Property
Specifies the XML element where to save the signature or containing the signature.
Syntax
def get_new_sig_xml_element() -> str: ... def set_new_sig_xml_element(value: str) -> None: ...
new_sig_xml_element = property(get_new_sig_xml_element, set_new_sig_xml_element)
Default Value
""
Remarks
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 xpath_namespaces 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 xpath_namespaces property |
Node name | indicates an XML element selected using its NodeName.
For example: "data" - indicates an XML element with node name "data". |
The parameter specifies the index of the item in the array. The size of the array is controlled by the new_sig_count property.
ocsp_count Property
The number of records in the OCSP arrays.
Syntax
def get_ocsp_count() -> int: ...
ocsp_count = property(get_ocsp_count, None)
Default Value
0
Remarks
This property controls the size of the following arrays:
The array indices start at 0 and end at ocsp_count - 1.This property is read-only.
ocsp_bytes Property
A buffer containing the raw OCSP response data.
Syntax
def get_ocsp_bytes(ocsp_index: int) -> bytes: ...
Remarks
A buffer containing the raw OCSP response data.
The ocsp_index parameter specifies the index of the item in the array. The size of the array is controlled by the ocsp_count property.
This property is read-only.
ocsp_handle Property
Allows to get or set a 'handle', a unique identifier of the underlying property object.
Syntax
def get_ocsp_handle(ocsp_index: int) -> int: ...
Default Value
0
Remarks
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());
The ocsp_index parameter specifies the index of the item in the array. The size of the array is controlled by the ocsp_count property.
This property is read-only.
ocsp_issuer Property
Indicates the issuer of this response (a CA or its authorized representative).
Syntax
def get_ocsp_issuer(ocsp_index: int) -> str: ...
Default Value
""
Remarks
Indicates the issuer of this response (a CA or its authorized representative).
The ocsp_index parameter specifies the index of the item in the array. The size of the array is controlled by the ocsp_count property.
This property is read-only.
ocsp_issuer_rdn Property
Indicates the RDN of the issuer of this response (a CA or its authorized representative).
Syntax
def get_ocsp_issuer_rdn(ocsp_index: int) -> str: ...
Default Value
""
Remarks
Indicates the RDN of the issuer of this response (a CA or its authorized representative).
The ocsp_index parameter specifies the index of the item in the array. The size of the array is controlled by the ocsp_count property.
This property is read-only.
ocsp_location Property
The location of the OCSP responder.
Syntax
def get_ocsp_location(ocsp_index: int) -> str: ...
Default Value
""
Remarks
The location of the OCSP responder.
The ocsp_index parameter specifies the index of the item in the array. The size of the array is controlled by the ocsp_count property.
This property is read-only.
ocsp_produced_at Property
Specifies the time when the response was produced, in UTC.
Syntax
def get_ocsp_produced_at(ocsp_index: int) -> str: ...
Default Value
""
Remarks
Specifies the time when the response was produced, in UTC.
The ocsp_index parameter specifies the index of the item in the array. The size of the array is controlled by the ocsp_count property.
This property is read-only.
offline_mode Property
Switches the class to offline mode.
Syntax
def get_offline_mode() -> bool: ... def set_offline_mode(value: bool) -> None: ...
offline_mode = property(get_offline_mode, set_offline_mode)
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 known_certificates, known_crls, and other related properties.
output_bytes Property
Use this property to read the output the class object has produced.
Syntax
def get_output_bytes() -> bytes: ...
output_bytes = property(get_output_bytes, None)
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 output_file and output_stream properties had not been assigned.
This property is read-only.
output_file Property
Specifies the file where the signed document will be saved.
Syntax
def get_output_file() -> str: ... def set_output_file(value: str) -> None: ...
output_file = property(get_output_file, set_output_file)
Default Value
""
Remarks
Provide the full path to the file where the signed document should be saved.
profile Property
Specifies a pre-defined profile to apply when creating the signature.
Syntax
def get_profile() -> str: ... def set_profile(value: str) -> None: ...
profile = property(get_profile, set_profile)
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_address Property
The IP address of the proxy server.
Syntax
def get_proxy_address() -> str: ... def set_proxy_address(value: str) -> None: ...
proxy_address = property(get_proxy_address, set_proxy_address)
Default Value
""
Remarks
The IP address of the proxy server.
proxy_authentication Property
The authentication type used by the proxy server.
Syntax
def get_proxy_authentication() -> int: ... def set_proxy_authentication(value: int) -> None: ...
proxy_authentication = property(get_proxy_authentication, set_proxy_authentication)
Default Value
0
Remarks
The authentication type used by the proxy server.
patNoAuthentication | 0 |
patBasic | 1 |
patDigest | 2 |
patNTLM | 3 |
proxy_password Property
The password to authenticate to the proxy server.
Syntax
def get_proxy_password() -> str: ... def set_proxy_password(value: str) -> None: ...
proxy_password = property(get_proxy_password, set_proxy_password)
Default Value
""
Remarks
The password to authenticate to the proxy server.
proxy_port Property
The port on the proxy server to connect to.
Syntax
def get_proxy_port() -> int: ... def set_proxy_port(value: int) -> None: ...
proxy_port = property(get_proxy_port, set_proxy_port)
Default Value
0
Remarks
The port on the proxy server to connect to.
proxy_proxy_type Property
The type of the proxy server.
Syntax
def get_proxy_proxy_type() -> int: ... def set_proxy_proxy_type(value: int) -> None: ...
proxy_proxy_type = property(get_proxy_proxy_type, set_proxy_proxy_type)
Default Value
0
Remarks
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 |
proxy_request_headers Property
Contains HTTP request headers for WebTunnel and HTTP proxy.
Syntax
def get_proxy_request_headers() -> str: ... def set_proxy_request_headers(value: str) -> None: ...
proxy_request_headers = property(get_proxy_request_headers, set_proxy_request_headers)
Default Value
""
Remarks
Contains HTTP request headers for WebTunnel and HTTP proxy.
proxy_response_body Property
Contains the HTTP or HTTPS (WebTunnel) proxy response body.
Syntax
def get_proxy_response_body() -> str: ... def set_proxy_response_body(value: str) -> None: ...
proxy_response_body = property(get_proxy_response_body, set_proxy_response_body)
Default Value
""
Remarks
Contains the HTTP or HTTPS (WebTunnel) proxy response body.
proxy_response_headers Property
Contains response headers received from an HTTP or HTTPS (WebTunnel) proxy server.
Syntax
def get_proxy_response_headers() -> str: ... def set_proxy_response_headers(value: str) -> None: ...
proxy_response_headers = property(get_proxy_response_headers, set_proxy_response_headers)
Default Value
""
Remarks
Contains response headers received from an HTTP or HTTPS (WebTunnel) proxy server.
proxy_use_ipv6 Property
Specifies whether IPv6 should be used when connecting through the proxy.
Syntax
def get_proxy_use_ipv6() -> bool: ... def set_proxy_use_ipv6(value: bool) -> None: ...
proxy_use_ipv6 = property(get_proxy_use_ipv6, set_proxy_use_ipv6)
Default Value
FALSE
Remarks
Specifies whether IPv6 should be used when connecting through the proxy.
proxy_use_proxy Property
Enables or disables proxy-driven connection.
Syntax
def get_proxy_use_proxy() -> bool: ... def set_proxy_use_proxy(value: bool) -> None: ...
proxy_use_proxy = property(get_proxy_use_proxy, set_proxy_use_proxy)
Default Value
FALSE
Remarks
Enables or disables proxy-driven connection.
proxy_username Property
Specifies the username credential for proxy authentication.
Syntax
def get_proxy_username() -> str: ... def set_proxy_username(value: str) -> None: ...
proxy_username = property(get_proxy_username, set_proxy_username)
Default Value
""
Remarks
Specifies the username credential for proxy authentication.
reference_count Property
The number of records in the Reference arrays.
Syntax
def get_reference_count() -> int: ... def set_reference_count(value: int) -> None: ...
reference_count = property(get_reference_count, set_reference_count)
Default Value
0
Remarks
This property controls the size of the following arrays:
- reference_auto_generate_element_id
- reference_canonicalization_method
- reference_custom_element_id
- reference_digest_value
- reference_handle
- reference_hash_algorithm
- reference_has_uri
- reference_id
- reference_inclusive_namespaces_prefix_list
- reference_reference_type
- reference_signature_index
- reference_target_data
- reference_target_type
- reference_target_xml_element
- reference_uri
- reference_use_base64_transform
- reference_use_enveloped_signature_transform
- reference_use_xpath_filter2_transform
- reference_use_xpath_transform
- reference_xpath_expression
- reference_xpath_filter2_expressions
- reference_xpath_filter2_filters
- reference_xpath_filter2_prefix_list
- reference_xpath_prefix_list
reference_auto_generate_element_id Property
Specifies whether the identifier (ID) attribute for a referenced (target) element should be auto-generated during signing.
Syntax
def get_reference_auto_generate_element_id(reference_index: int) -> bool: ... def set_reference_auto_generate_element_id(reference_index: int, value: bool) -> None: ...
Default Value
FALSE
Remarks
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.
The reference_index parameter specifies the index of the item in the array. The size of the array is controlled by the reference_count property.
reference_canonicalization_method Property
Use this property to specify the canonicalization method for the transform of the reference.
Syntax
def get_reference_canonicalization_method(reference_index: int) -> int: ... def set_reference_canonicalization_method(reference_index: int, value: int) -> None: ...
Default Value
0
Remarks
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 |
The reference_index parameter specifies the index of the item in the array. The size of the array is controlled by the reference_count property.
reference_custom_element_id Property
Specifies a custom identifier (ID) attribute for a referenced (target) element that will be set on signing.
Syntax
def get_reference_custom_element_id(reference_index: int) -> str: ... def set_reference_custom_element_id(reference_index: int, value: str) -> None: ...
Default Value
""
Remarks
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.
The reference_index parameter specifies the index of the item in the array. The size of the array is controlled by the reference_count property.
reference_digest_value Property
Use this property to get or set the value of the digest calculated over the referenced data.
Syntax
def get_reference_digest_value(reference_index: int) -> bytes: ... def set_reference_digest_value(reference_index: int, value: bytes) -> None: ...
Remarks
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.
The reference_index parameter specifies the index of the item in the array. The size of the array is controlled by the reference_count property.
reference_handle Property
Allows to get or set a 'handle', a unique identifier of the underlying property object.
Syntax
def get_reference_handle(reference_index: int) -> int: ... def set_reference_handle(reference_index: int, value: int) -> None: ...
Default Value
0
Remarks
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());
The reference_index parameter specifies the index of the item in the array. The size of the array is controlled by the reference_count property.
reference_hash_algorithm Property
Specifies the hash algorithm to be used.
Syntax
def get_reference_hash_algorithm(reference_index: int) -> str: ... def set_reference_hash_algorithm(reference_index: int, value: str) -> None: ...
Default Value
"SHA256"
Remarks
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 |
The reference_index parameter specifies the index of the item in the array. The size of the array is controlled by the reference_count property.
reference_has_uri Property
Specifies whether the URI is set (even when it is empty).
Syntax
def get_reference_has_uri(reference_index: int) -> bool: ... def set_reference_has_uri(reference_index: int, value: bool) -> None: ...
Default Value
TRUE
Remarks
Specifies whether the URI is set (even when it is empty).
The reference_index parameter specifies the index of the item in the array. The size of the array is controlled by the reference_count property.
reference_id Property
A user-defined identifier (ID) attribute of this Reference element.
Syntax
def get_reference_id(reference_index: int) -> str: ... def set_reference_id(reference_index: int, value: str) -> None: ...
Default Value
""
Remarks
A user-defined identifier (ID) attribute of this Reference element.
The reference_index parameter specifies the index of the item in the array. The size of the array is controlled by the reference_count property.
reference_inclusive_namespaces_prefix_list Property
Use this property to specify InclusiveNamespaces PrefixList for exclusive canonicalization transform of the reference.
Syntax
def get_reference_inclusive_namespaces_prefix_list(reference_index: int) -> str: ... def set_reference_inclusive_namespaces_prefix_list(reference_index: int, value: str) -> None: ...
Default Value
""
Remarks
Use this property to specify InclusiveNamespaces PrefixList for exclusive canonicalization transform of the reference. See XML-Signature Syntax and Processing specification for details.
The reference_index parameter specifies the index of the item in the array. The size of the array is controlled by the reference_count property.
reference_reference_type Property
The Reference's type attribute as defined in XMLDSIG specification.
Syntax
def get_reference_reference_type(reference_index: int) -> str: ... def set_reference_reference_type(reference_index: int, value: str) -> None: ...
Default Value
""
Remarks
The Reference's type attribute as defined in XMLDSIG specification.
The reference_index parameter specifies the index of the item in the array. The size of the array is controlled by the reference_count property.
reference_signature_index Property
Returns the index of the owner signature, if applicable.
Syntax
def get_reference_signature_index(reference_index: int) -> int: ...
Default Value
-1
Remarks
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.
The reference_index parameter specifies the index of the item in the array. The size of the array is controlled by the reference_count property.
This property is read-only.
reference_target_data Property
Contains the referenced external data when the digest value is not explicitly specified.
Syntax
def get_reference_target_data(reference_index: int) -> bytes: ... def set_reference_target_data(reference_index: int, value: bytes) -> None: ...
Remarks
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.
The reference_index parameter specifies the index of the item in the array. The size of the array is controlled by the reference_count property.
reference_target_type Property
The reference's target type to use.
Syntax
def get_reference_target_type(reference_index: int) -> int: ... def set_reference_target_type(reference_index: int, value: int) -> None: ...
Default Value
0
Remarks
The reference's target type to use.
Use this property to specify the reference's target type to use when forming the signature.
The reference_index parameter specifies the index of the item in the array. The size of the array is controlled by the reference_count property.
reference_target_xml_element Property
This property specifies the referenced XML element.
Syntax
def get_reference_target_xml_element(reference_index: int) -> str: ... def set_reference_target_xml_element(reference_index: int, value: str) -> None: ...
Default Value
""
Remarks
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 xpath_namespaces property |
Node name | indicates an XML element selected using its NodeName.
For example: "data" - indicates an XML element with node name "data". |
The reference_index parameter specifies the index of the item in the array. The size of the array is controlled by the reference_count property.
reference_uri Property
Use this property to get or set the URL which references the data.
Syntax
def get_reference_uri(reference_index: int) -> str: ... def set_reference_uri(reference_index: int, value: str) -> None: ...
Default Value
""
Remarks
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.
The reference_index parameter specifies the index of the item in the array. The size of the array is controlled by the reference_count property.
reference_use_base64_transform Property
Specifies whether Base64 transform is included in transform chain.
Syntax
def get_reference_use_base64_transform(reference_index: int) -> bool: ... def set_reference_use_base64_transform(reference_index: int, value: bool) -> None: ...
Default Value
FALSE
Remarks
Specifies whether Base64 transform is included in transform chain.
The reference_index parameter specifies the index of the item in the array. The size of the array is controlled by the reference_count property.
reference_use_enveloped_signature_transform Property
Specifies whether enveloped signature transform is included in transform chain.
Syntax
def get_reference_use_enveloped_signature_transform(reference_index: int) -> bool: ... def set_reference_use_enveloped_signature_transform(reference_index: int, value: bool) -> None: ...
Default Value
FALSE
Remarks
Specifies whether enveloped signature transform is included in transform chain.
The reference_index parameter specifies the index of the item in the array. The size of the array is controlled by the reference_count property.
reference_use_xpath_filter2_transform Property
Specifies whether XPath Filter 2.
Syntax
def get_reference_use_xpath_filter2_transform(reference_index: int) -> bool: ... def set_reference_use_xpath_filter2_transform(reference_index: int, value: bool) -> None: ...
Default Value
FALSE
Remarks
Specifies whether XPath Filter 2.0 transform is included in transform chain.
The reference_index parameter specifies the index of the item in the array. The size of the array is controlled by the reference_count property.
reference_use_xpath_transform Property
Specifies whether XPath transform is included in transform chain.
Syntax
def get_reference_use_xpath_transform(reference_index: int) -> bool: ... def set_reference_use_xpath_transform(reference_index: int, value: bool) -> None: ...
Default Value
FALSE
Remarks
Specifies whether XPath transform is included in transform chain.
The reference_index parameter specifies the index of the item in the array. The size of the array is controlled by the reference_count property.
reference_xpath_expression Property
Use this property to specify XPath expression for XPath transform of the reference.
Syntax
def get_reference_xpath_expression(reference_index: int) -> str: ... def set_reference_xpath_expression(reference_index: int, value: str) -> None: ...
Default Value
""
Remarks
Use this property to specify XPath expression for XPath transform of the reference.
The reference_index parameter specifies the index of the item in the array. The size of the array is controlled by the reference_count property.
reference_xpath_filter2_expressions Property
Use this property to specify XPointer expression(s) for XPath Filter 2.
Syntax
def get_reference_xpath_filter2_expressions(reference_index: int) -> str: ... def set_reference_xpath_filter2_expressions(reference_index: int, value: str) -> None: ...
Default Value
""
Remarks
Use this property to specify XPointer expression(s) for XPath Filter 2.0 transform of the reference.
The reference_index parameter specifies the index of the item in the array. The size of the array is controlled by the reference_count property.
reference_xpath_filter2_filters Property
Use this property to specify XPointer filter(s) for XPath Filter 2.
Syntax
def get_reference_xpath_filter2_filters(reference_index: int) -> str: ... def set_reference_xpath_filter2_filters(reference_index: int, value: str) -> None: ...
Default Value
""
Remarks
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. |
The reference_index parameter specifies the index of the item in the array. The size of the array is controlled by the reference_count property.
reference_xpath_filter2_prefix_list Property
Use this property to specify a prefix list for XPath Filter 2.
Syntax
def get_reference_xpath_filter2_prefix_list(reference_index: int) -> str: ... def set_reference_xpath_filter2_prefix_list(reference_index: int, value: str) -> None: ...
Default Value
""
Remarks
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.
The reference_index parameter specifies the index of the item in the array. The size of the array is controlled by the reference_count property.
reference_xpath_prefix_list Property
Use this property to specify a prefix list for XPath transform of the reference.
Syntax
def get_reference_xpath_prefix_list(reference_index: int) -> str: ... def set_reference_xpath_prefix_list(reference_index: int, value: str) -> None: ...
Default Value
""
Remarks
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.
The reference_index parameter specifies the index of the item in the array. The size of the array is controlled by the reference_count property.
revocation_check Property
Specifies the kind(s) of revocation check to perform for all chain certificates.
Syntax
def get_revocation_check() -> int: ... def set_revocation_check(value: int) -> None: ...
revocation_check = property(get_revocation_check, set_revocation_check)
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.
signature_count Property
The number of records in the Signature arrays.
Syntax
def get_signature_count() -> int: ...
signature_count = property(get_signature_count, None)
Default Value
0
Remarks
This property controls the size of the following arrays:
- signature_canonicalization_method
- signature_certificate_index
- signature_chain_validation_details
- signature_chain_validation_result
- signature_claimed_signing_time
- signature_handle
- signature_hash_algorithm
- signature_issuer_rdn
- signature_last_archival_time
- signature_policy_hash
- signature_policy_hash_algorithm
- signature_policy_id
- signature_policy_uri
- signature_serial_number
- signature_signature_bytes
- signature_signature_type
- signature_signature_validation_result
- signature_subject_key_id
- signature_subject_rdn
- signature_timestamped
- signature_validated_signing_time
- signature_validation_log
- signature_xades
- signature_xades_form
- signature_xades_version
- signature_xml_element
This property is read-only.
signature_canonicalization_method Property
The XML canonicalization method that was used for signing.
Syntax
def get_signature_canonicalization_method(signature_index: int) -> int: ...
Default Value
0
Remarks
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 |
The signature_index parameter specifies the index of the item in the array. The size of the array is controlled by the signature_count property.
This property is read-only.
signature_certificate_index Property
Returns the index of the signing certificate in the Certificates collection Use this property to look up the signing certificate in the Certificates collection.
Syntax
def get_signature_certificate_index(signature_index: int) -> int: ...
Default Value
-1
Remarks
Returns the index of the signing certificate in the Certificates collection
Use this property to look up the signing certificate in the Certificates collection.
The signature_index parameter specifies the index of the item in the array. The size of the array is controlled by the signature_count property.
This property is read-only.
signature_chain_validation_details Property
The details of a certificate chain validation outcome.
Syntax
def get_signature_chain_validation_details(signature_index: int) -> int: ...
Default Value
0
Remarks
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 |
The signature_index parameter specifies the index of the item in the array. The size of the array is controlled by the signature_count property.
This property is read-only.
signature_chain_validation_result Property
The outcome of a certificate chain validation routine.
Syntax
def get_signature_chain_validation_result(signature_index: int) -> int: ...
Default Value
0
Remarks
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.
The signature_index parameter specifies the index of the item in the array. The size of the array is controlled by the signature_count property.
This property is read-only.
signature_claimed_signing_time Property
The signing time from the signer's computer.
Syntax
def get_signature_claimed_signing_time(signature_index: int) -> str: ...
Default Value
""
Remarks
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.
The signature_index parameter specifies the index of the item in the array. The size of the array is controlled by the signature_count property.
This property is read-only.
signature_handle Property
Allows to get or set a 'handle', a unique identifier of the underlying property object.
Syntax
def get_signature_handle(signature_index: int) -> int: ...
Default Value
0
Remarks
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());
The signature_index parameter specifies the index of the item in the array. The size of the array is controlled by the signature_count property.
This property is read-only.
signature_hash_algorithm Property
The hash algorithm used for signing.
Syntax
def get_signature_hash_algorithm(signature_index: int) -> str: ...
Default Value
"Unknown"
Remarks
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 |
The signature_index parameter specifies the index of the item in the array. The size of the array is controlled by the signature_count property.
This property is read-only.
signature_issuer_rdn Property
The Relative Distinguished Name of the signing certificate's issuer.
Syntax
def get_signature_issuer_rdn(signature_index: int) -> str: ...
Default Value
""
Remarks
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.
The signature_index parameter specifies the index of the item in the array. The size of the array is controlled by the signature_count property.
This property is read-only.
signature_last_archival_time Property
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.
Syntax
def get_signature_last_archival_time(signature_index: int) -> str: ...
Default Value
""
Remarks
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.
The signature_index parameter specifies the index of the item in the array. The size of the array is controlled by the signature_count property.
This property is read-only.
signature_policy_hash Property
The signature policy hash value.
Syntax
def get_signature_policy_hash(signature_index: int) -> str: ...
Default Value
""
Remarks
The signature policy hash value.
Use this property to get the signature policy hash from EPES signatures
The signature_index parameter specifies the index of the item in the array. The size of the array is controlled by the signature_count property.
This property is read-only.
signature_policy_hash_algorithm Property
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.
Syntax
def get_signature_policy_hash_algorithm(signature_index: int) -> str: ...
Default Value
""
Remarks
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 signature_policy_hash.
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 |
The signature_index parameter specifies the index of the item in the array. The size of the array is controlled by the signature_count property.
This property is read-only.
signature_policy_id Property
The policy ID that was included or to be included into the signature.
Syntax
def get_signature_policy_id(signature_index: int) -> str: ...
Default Value
""
Remarks
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.
The signature_index parameter specifies the index of the item in the array. The size of the array is controlled by the signature_count property.
This property is read-only.
signature_policy_uri Property
The signature policy URI that was included in the signature.
Syntax
def get_signature_policy_uri(signature_index: int) -> str: ...
Default Value
""
Remarks
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.
The signature_index parameter specifies the index of the item in the array. The size of the array is controlled by the signature_count property.
This property is read-only.
signature_serial_number Property
The serial number of the timestamp.
Syntax
def get_signature_serial_number(signature_index: int) -> bytes: ...
Remarks
The serial number of the timestamp.
The signature_index parameter specifies the index of the item in the array. The size of the array is controlled by the signature_count property.
This property is read-only.
signature_signature_bytes Property
Returns the binary representation of the XML-DSig/XAdES signature.
Syntax
def get_signature_signature_bytes(signature_index: int) -> bytes: ...
Remarks
Returns the binary representation of the XML-DSig/XAdES signature.
The signature_index parameter specifies the index of the item in the array. The size of the array is controlled by the signature_count property.
This property is read-only.
signature_signature_type Property
The signature type to employ when signing the document.
Syntax
def get_signature_signature_type(signature_index: int) -> int: ...
Default Value
4
Remarks
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. |
The signature_index parameter specifies the index of the item in the array. The size of the array is controlled by the signature_count property.
This property is read-only.
signature_signature_validation_result Property
Contains the signature validation result.
Syntax
def get_signature_signature_validation_result(signature_index: int) -> int: ...
Default Value
0
Remarks
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 |
The signature_index parameter specifies the index of the item in the array. The size of the array is controlled by the signature_count property.
This property is read-only.
signature_subject_key_id Property
Contains the subject key identifier of the signing certificate.
Syntax
def get_signature_subject_key_id(signature_index: int) -> bytes: ...
Remarks
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.
The signature_index parameter specifies the index of the item in the array. The size of the array is controlled by the signature_count property.
This property is read-only.
signature_subject_rdn Property
Contains information about the person owning the signing certificate.
Syntax
def get_signature_subject_rdn(signature_index: int) -> str: ...
Default Value
""
Remarks
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.
The signature_index parameter specifies the index of the item in the array. The size of the array is controlled by the signature_count property.
This property is read-only.
signature_timestamped Property
Use this property to establish whether the signature contains an embedded timestamp.
Syntax
def get_signature_timestamped(signature_index: int) -> bool: ...
Default Value
FALSE
Remarks
Use this property to establish whether the signature contains an embedded timestamp.
The signature_index parameter specifies the index of the item in the array. The size of the array is controlled by the signature_count property.
This property is read-only.
signature_validated_signing_time Property
Contains the certified signing time.
Syntax
def get_signature_validated_signing_time(signature_index: int) -> str: ...
Default Value
""
Remarks
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.
signature_claimed_signing_time returns a non-trusted signing time from the signer's computer.
Both times are in UTC.
The signature_index parameter specifies the index of the item in the array. The size of the array is controlled by the signature_count property.
This property is read-only.
signature_validation_log Property
Contains the complete log of the certificate validation routine.
Syntax
def get_signature_validation_log(signature_index: int) -> str: ...
Default Value
""
Remarks
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.
The signature_index parameter specifies the index of the item in the array. The size of the array is controlled by the signature_count property.
This property is read-only.
signature_xades Property
Specifies whether the document contains an advanced signature (XAdES).
Syntax
def get_signature_xades(signature_index: int) -> bool: ...
Default Value
TRUE
Remarks
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.
The signature_index parameter specifies the index of the item in the array. The size of the array is controlled by the signature_count property.
This property is read-only.
signature_xades_form Property
Specifies which form of XAdES should be produced.
Syntax
def get_signature_xades_form(signature_index: int) -> int: ...
Default Value
0
Remarks
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
The signature_index parameter specifies the index of the item in the array. The size of the array is controlled by the signature_count property.
This property is read-only.
signature_xades_version Property
Specifies XAdES version.
Syntax
def get_signature_xades_version(signature_index: int) -> int: ...
Default Value
3
Remarks
Specifies XAdES version.
This property specifies the version of the XAdES specification the signature should comply with. For the form of XAdES, use xades_form.
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) |
The signature_index parameter specifies the index of the item in the array. The size of the array is controlled by the signature_count property.
This property is read-only.
signature_xml_element Property
Specifies the XML element where to save the signature or containing the signature.
Syntax
def get_signature_xml_element(signature_index: int) -> str: ...
Default Value
""
Remarks
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 xpath_namespaces 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 xpath_namespaces property |
Node name | indicates an XML element selected using its NodeName.
For example: "data" - indicates an XML element with node name "data". |
The signature_index parameter specifies the index of the item in the array. The size of the array is controlled by the signature_count property.
This property is read-only.
signing_cert_bytes Property
Returns the raw certificate data in DER format.
Syntax
def get_signing_cert_bytes() -> bytes: ...
signing_cert_bytes = property(get_signing_cert_bytes, None)
Remarks
Returns the raw certificate data in DER format.
This property is read-only.
signing_cert_handle Property
Allows to get or set a 'handle', a unique identifier of the underlying property object.
Syntax
def get_signing_cert_handle() -> int: ... def set_signing_cert_handle(value: int) -> None: ...
signing_cert_handle = property(get_signing_cert_handle, set_signing_cert_handle)
Default Value
0
Remarks
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());
signing_chain_count Property
The number of records in the SigningChain arrays.
Syntax
def get_signing_chain_count() -> int: ... def set_signing_chain_count(value: int) -> None: ...
signing_chain_count = property(get_signing_chain_count, set_signing_chain_count)
Default Value
0
Remarks
This property controls the size of the following arrays:
The array indices start at 0 and end at signing_chain_count - 1.signing_chain_bytes Property
Returns the raw certificate data in DER format.
Syntax
def get_signing_chain_bytes(signing_chain_index: int) -> bytes: ...
Remarks
Returns the raw certificate data in DER format.
The signing_chain_index parameter specifies the index of the item in the array. The size of the array is controlled by the signing_chain_count property.
This property is read-only.
signing_chain_handle Property
Allows to get or set a 'handle', a unique identifier of the underlying property object.
Syntax
def get_signing_chain_handle(signing_chain_index: int) -> int: ... def set_signing_chain_handle(signing_chain_index: int, value: int) -> None: ...
Default Value
0
Remarks
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());
The signing_chain_index parameter specifies the index of the item in the array. The size of the array is controlled by the signing_chain_count property.
socket_dns_mode Property
Selects the DNS resolver to use: the class's (secure) built-in one, or the one provided by the system.
Syntax
def get_socket_dns_mode() -> int: ... def set_socket_dns_mode(value: int) -> None: ...
socket_dns_mode = property(get_socket_dns_mode, set_socket_dns_mode)
Default Value
0
Remarks
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 |
socket_dns_port Property
Specifies the port number to be used for sending queries to the DNS server.
Syntax
def get_socket_dns_port() -> int: ... def set_socket_dns_port(value: int) -> None: ...
socket_dns_port = property(get_socket_dns_port, set_socket_dns_port)
Default Value
0
Remarks
Specifies the port number to be used for sending queries to the DNS server.
socket_dns_query_timeout Property
The timeout (in milliseconds) for each DNS query.
Syntax
def get_socket_dns_query_timeout() -> int: ... def set_socket_dns_query_timeout(value: int) -> None: ...
socket_dns_query_timeout = property(get_socket_dns_query_timeout, set_socket_dns_query_timeout)
Default Value
0
Remarks
The timeout (in milliseconds) for each DNS query. The value of 0 indicates an infinite timeout.
socket_dns_servers Property
The addresses of DNS servers to use for address resolution, separated by commas or semicolons.
Syntax
def get_socket_dns_servers() -> str: ... def set_socket_dns_servers(value: str) -> None: ...
socket_dns_servers = property(get_socket_dns_servers, set_socket_dns_servers)
Default Value
""
Remarks
The addresses of DNS servers to use for address resolution, separated by commas or semicolons.
socket_dns_total_timeout Property
The timeout (in milliseconds) for the whole resolution process.
Syntax
def get_socket_dns_total_timeout() -> int: ... def set_socket_dns_total_timeout(value: int) -> None: ...
socket_dns_total_timeout = property(get_socket_dns_total_timeout, set_socket_dns_total_timeout)
Default Value
0
Remarks
The timeout (in milliseconds) for the whole resolution process. The value of 0 indicates an infinite timeout.
socket_incoming_speed_limit Property
The maximum number of bytes to read from the socket, per second.
Syntax
def get_socket_incoming_speed_limit() -> int: ... def set_socket_incoming_speed_limit(value: int) -> None: ...
socket_incoming_speed_limit = property(get_socket_incoming_speed_limit, set_socket_incoming_speed_limit)
Default Value
0
Remarks
The maximum number of bytes to read from the socket, per second.
socket_local_address Property
The local network interface to bind the socket to.
Syntax
def get_socket_local_address() -> str: ... def set_socket_local_address(value: str) -> None: ...
socket_local_address = property(get_socket_local_address, set_socket_local_address)
Default Value
""
Remarks
The local network interface to bind the socket to.
socket_local_port Property
The local port number to bind the socket to.
Syntax
def get_socket_local_port() -> int: ... def set_socket_local_port(value: int) -> None: ...
socket_local_port = property(get_socket_local_port, set_socket_local_port)
Default Value
0
Remarks
The local port number to bind the socket to.
socket_outgoing_speed_limit Property
The maximum number of bytes to write to the socket, per second.
Syntax
def get_socket_outgoing_speed_limit() -> int: ... def set_socket_outgoing_speed_limit(value: int) -> None: ...
socket_outgoing_speed_limit = property(get_socket_outgoing_speed_limit, set_socket_outgoing_speed_limit)
Default Value
0
Remarks
The maximum number of bytes to write to the socket, per second.
socket_timeout Property
The maximum period of waiting, in milliseconds, after which the socket operation is considered unsuccessful.
Syntax
def get_socket_timeout() -> int: ... def set_socket_timeout(value: int) -> None: ...
socket_timeout = property(get_socket_timeout, set_socket_timeout)
Default Value
60000
Remarks
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).
socket_use_ipv6 Property
Enables or disables IP protocol version 6.
Syntax
def get_socket_use_ipv6() -> bool: ... def set_socket_use_ipv6(value: bool) -> None: ...
socket_use_ipv6 = property(get_socket_use_ipv6, set_socket_use_ipv6)
Default Value
FALSE
Remarks
Enables or disables IP protocol version 6.
timestamp_count Property
The number of records in the Timestamp arrays.
Syntax
def get_timestamp_count() -> int: ...
timestamp_count = property(get_timestamp_count, None)
Default Value
0
Remarks
This property controls the size of the following arrays:
- timestamp_accuracy
- timestamp_bytes
- timestamp_certificate_index
- timestamp_chain_validation_details
- timestamp_chain_validation_result
- timestamp_hash_algorithm
- timestamp_serial_number
- timestamp_signature_index
- timestamp_time
- timestamp_timestamp_type
- timestamp_tsa_name
- timestamp_validation_log
- timestamp_validation_result
This property is read-only.
timestamp_accuracy Property
This property indicates the accuracy of the included time mark, in microseconds.
Syntax
def get_timestamp_accuracy(timestamp_index: int) -> int: ...
Default Value
0
Remarks
This field indicates the accuracy of the included time mark, in microseconds.
The timestamp_index parameter specifies the index of the item in the array. The size of the array is controlled by the timestamp_count property.
This property is read-only.
timestamp_bytes Property
Returns the raw timestamp data in DER format.
Syntax
def get_timestamp_bytes(timestamp_index: int) -> bytes: ...
Remarks
Returns the raw timestamp data in DER format.
The timestamp_index parameter specifies the index of the item in the array. The size of the array is controlled by the timestamp_count property.
This property is read-only.
timestamp_certificate_index Property
Returns the index of the TSA certificate in the Certificates collection.
Syntax
def get_timestamp_certificate_index(timestamp_index: int) -> int: ...
Default Value
-1
Remarks
Returns the index of the TSA certificate in the Certificates collection.
Use this property to look up the TSA certificate in the Certificates collection.
The timestamp_index parameter specifies the index of the item in the array. The size of the array is controlled by the timestamp_count property.
This property is read-only.
timestamp_chain_validation_details Property
The details of a certificate chain validation outcome.
Syntax
def get_timestamp_chain_validation_details(timestamp_index: int) -> int: ...
Default Value
0
Remarks
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 |
The timestamp_index parameter specifies the index of the item in the array. The size of the array is controlled by the timestamp_count property.
This property is read-only.
timestamp_chain_validation_result Property
The outcome of a certificate chain validation routine.
Syntax
def get_timestamp_chain_validation_result(timestamp_index: int) -> int: ...
Default Value
0
Remarks
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.
The timestamp_index parameter specifies the index of the item in the array. The size of the array is controlled by the timestamp_count property.
This property is read-only.
timestamp_hash_algorithm Property
Returns the timestamp's hash algorithm.
Syntax
def get_timestamp_hash_algorithm(timestamp_index: int) -> str: ...
Default Value
""
Remarks
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 |
The timestamp_index parameter specifies the index of the item in the array. The size of the array is controlled by the timestamp_count property.
This property is read-only.
timestamp_serial_number Property
Returns the timestamp's serial number.
Syntax
def get_timestamp_serial_number(timestamp_index: int) -> bytes: ...
Remarks
Returns the timestamp's serial number.
The timestamp_index parameter specifies the index of the item in the array. The size of the array is controlled by the timestamp_count property.
This property is read-only.
timestamp_signature_index Property
Returns the index of the owner signature, if applicable.
Syntax
def get_timestamp_signature_index(timestamp_index: int) -> int: ...
Default Value
-1
Remarks
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.
The timestamp_index parameter specifies the index of the item in the array. The size of the array is controlled by the timestamp_count property.
This property is read-only.
timestamp_time Property
The time point incorporated into the timestamp.
Syntax
def get_timestamp_time(timestamp_index: int) -> str: ...
Default Value
""
Remarks
The time point incorporated into the timestamp.
The timestamp_index parameter specifies the index of the item in the array. The size of the array is controlled by the timestamp_count property.
This property is read-only.
timestamp_timestamp_type Property
Returns the type of the timestamp.
Syntax
def get_timestamp_timestamp_type(timestamp_index: int) -> int: ...
Default Value
0
Remarks
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).
The timestamp_index parameter specifies the index of the item in the array. The size of the array is controlled by the timestamp_count property.
This property is read-only.
timestamp_tsa_name Property
This value uniquely identifies the Timestamp Authority (TSA).
Syntax
def get_timestamp_tsa_name(timestamp_index: int) -> str: ...
Default Value
""
Remarks
This value uniquely identifies the Timestamp Authority (TSA).
This property provides information about the entity that manages the TSA.
The timestamp_index parameter specifies the index of the item in the array. The size of the array is controlled by the timestamp_count property.
This property is read-only.
timestamp_validation_log Property
Contains the TSA certificate chain validation log.
Syntax
def get_timestamp_validation_log(timestamp_index: int) -> str: ...
Default Value
""
Remarks
Contains the TSA certificate chain validation log. This information is extremely useful if the timestamp validation fails.
The timestamp_index parameter specifies the index of the item in the array. The size of the array is controlled by the timestamp_count property.
This property is read-only.
timestamp_validation_result Property
Contains the timestamp validation outcome.
Syntax
def get_timestamp_validation_result(timestamp_index: int) -> int: ...
Default Value
0
Remarks
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 |
The timestamp_index parameter specifies the index of the item in the array. The size of the array is controlled by the timestamp_count property.
This property is read-only.
timestamp_server Property
The address of the timestamping server.
Syntax
def get_timestamp_server() -> str: ... def set_timestamp_server(value: str) -> None: ...
timestamp_server = property(get_timestamp_server, set_timestamp_server)
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.
tls_client_cert_count Property
The number of records in the TLSClientCert arrays.
Syntax
def get_tls_client_cert_count() -> int: ... def set_tls_client_cert_count(value: int) -> None: ...
tls_client_cert_count = property(get_tls_client_cert_count, set_tls_client_cert_count)
Default Value
0
Remarks
This property controls the size of the following arrays:
The array indices start at 0 and end at tls_client_cert_count - 1.tls_client_cert_bytes Property
Returns the raw certificate data in DER format.
Syntax
def get_tls_client_cert_bytes(tls_client_cert_index: int) -> bytes: ...
Remarks
Returns the raw certificate data in DER format.
The tls_client_cert_index parameter specifies the index of the item in the array. The size of the array is controlled by the tls_client_cert_count property.
This property is read-only.
tls_client_cert_handle Property
Allows to get or set a 'handle', a unique identifier of the underlying property object.
Syntax
def get_tls_client_cert_handle(tls_client_cert_index: int) -> int: ... def set_tls_client_cert_handle(tls_client_cert_index: int, value: int) -> None: ...
Default Value
0
Remarks
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());
The tls_client_cert_index parameter specifies the index of the item in the array. The size of the array is controlled by the tls_client_cert_count property.
tls_server_cert_count Property
The number of records in the TLSServerCert arrays.
Syntax
def get_tls_server_cert_count() -> int: ...
tls_server_cert_count = property(get_tls_server_cert_count, None)
Default Value
0
Remarks
This property controls the size of the following arrays:
The array indices start at 0 and end at tls_server_cert_count - 1.This property is read-only.
tls_server_cert_bytes Property
Returns the raw certificate data in DER format.
Syntax
def get_tls_server_cert_bytes(tls_server_cert_index: int) -> bytes: ...
Remarks
Returns the raw certificate data in DER format.
The tls_server_cert_index parameter specifies the index of the item in the array. The size of the array is controlled by the tls_server_cert_count property.
This property is read-only.
tls_server_cert_handle Property
Allows to get or set a 'handle', a unique identifier of the underlying property object.
Syntax
def get_tls_server_cert_handle(tls_server_cert_index: int) -> int: ...
Default Value
0
Remarks
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());
The tls_server_cert_index parameter specifies the index of the item in the array. The size of the array is controlled by the tls_server_cert_count property.
This property is read-only.
tls_auto_validate_certificates Property
Specifies whether server-side TLS certificates should be validated automatically using internal validation rules.
Syntax
def get_tls_auto_validate_certificates() -> bool: ... def set_tls_auto_validate_certificates(value: bool) -> None: ...
tls_auto_validate_certificates = property(get_tls_auto_validate_certificates, set_tls_auto_validate_certificates)
Default Value
TRUE
Remarks
Specifies whether server-side TLS certificates should be validated automatically using internal validation rules.
tls_base_configuration Property
Selects the base configuration for the TLS settings.
Syntax
def get_tls_base_configuration() -> int: ... def set_tls_base_configuration(value: int) -> None: ...
tls_base_configuration = property(get_tls_base_configuration, set_tls_base_configuration)
Default Value
0
Remarks
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 |
tls_ciphersuites Property
A list of ciphersuites separated with commas or semicolons.
Syntax
def get_tls_ciphersuites() -> str: ... def set_tls_ciphersuites(value: str) -> None: ...
tls_ciphersuites = property(get_tls_ciphersuites, set_tls_ciphersuites)
Default Value
""
Remarks
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 tls_base_configuration. 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
tls_ec_curves Property
Defines the elliptic curves to enable.
Syntax
def get_tls_ec_curves() -> str: ... def set_tls_ec_curves(value: str) -> None: ...
tls_ec_curves = property(get_tls_ec_curves, set_tls_ec_curves)
Default Value
""
Remarks
Defines the elliptic curves to enable.
tls_extensions Property
Provides access to TLS extensions.
Syntax
def get_tls_extensions() -> str: ... def set_tls_extensions(value: str) -> None: ...
tls_extensions = property(get_tls_extensions, set_tls_extensions)
Default Value
""
Remarks
Provides access to TLS extensions.
tls_force_resume_if_destination_changes Property
Whether to force TLS session resumption when the destination address changes.
Syntax
def get_tls_force_resume_if_destination_changes() -> bool: ... def set_tls_force_resume_if_destination_changes(value: bool) -> None: ...
tls_force_resume_if_destination_changes = property(get_tls_force_resume_if_destination_changes, set_tls_force_resume_if_destination_changes)
Default Value
FALSE
Remarks
Whether to force TLS session resumption when the destination address changes.
tls_pre_shared_identity Property
Defines the identity used when the PSK (Pre-Shared Key) key-exchange mechanism is negotiated.
Syntax
def get_tls_pre_shared_identity() -> str: ... def set_tls_pre_shared_identity(value: str) -> None: ...
tls_pre_shared_identity = property(get_tls_pre_shared_identity, set_tls_pre_shared_identity)
Default Value
""
Remarks
Defines the identity used when the PSK (Pre-Shared Key) key-exchange mechanism is negotiated.
tls_pre_shared_key Property
Contains the pre-shared key for the PSK (Pre-Shared Key) key-exchange mechanism, encoded with base16.
Syntax
def get_tls_pre_shared_key() -> str: ... def set_tls_pre_shared_key(value: str) -> None: ...
tls_pre_shared_key = property(get_tls_pre_shared_key, set_tls_pre_shared_key)
Default Value
""
Remarks
Contains the pre-shared key for the PSK (Pre-Shared Key) key-exchange mechanism, encoded with base16.
tls_pre_shared_key_ciphersuite Property
Defines the ciphersuite used for PSK (Pre-Shared Key) negotiation.
Syntax
def get_tls_pre_shared_key_ciphersuite() -> str: ... def set_tls_pre_shared_key_ciphersuite(value: str) -> None: ...
tls_pre_shared_key_ciphersuite = property(get_tls_pre_shared_key_ciphersuite, set_tls_pre_shared_key_ciphersuite)
Default Value
""
Remarks
Defines the ciphersuite used for PSK (Pre-Shared Key) negotiation.
tls_renegotiation_attack_prevention_mode Property
Selects the renegotiation attack prevention mechanism.
Syntax
def get_tls_renegotiation_attack_prevention_mode() -> int: ... def set_tls_renegotiation_attack_prevention_mode(value: int) -> None: ...
tls_renegotiation_attack_prevention_mode = property(get_tls_renegotiation_attack_prevention_mode, set_tls_renegotiation_attack_prevention_mode)
Default Value
0
Remarks
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. |
tls_revocation_check Property
Specifies the kind(s) of revocation check to perform.
Syntax
def get_tls_revocation_check() -> int: ... def set_tls_revocation_check(value: int) -> None: ...
tls_revocation_check = property(get_tls_revocation_check, set_tls_revocation_check)
Default Value
1
Remarks
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.
tls_ssl_options Property
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.
Syntax
def get_tls_ssl_options() -> int: ... def set_tls_ssl_options(value: int) -> None: ...
tls_ssl_options = property(get_tls_ssl_options, set_tls_ssl_options)
Default Value
16
Remarks
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 |
tls_tls_mode Property
Specifies the TLS mode to use.
Syntax
def get_tls_tls_mode() -> int: ... def set_tls_tls_mode(value: int) -> None: ...
tls_tls_mode = property(get_tls_tls_mode, set_tls_tls_mode)
Default Value
0
Remarks
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. |
tls_use_extended_master_secret Property
Enables the Extended Master Secret Extension, as defined in RFC 7627.
Syntax
def get_tls_use_extended_master_secret() -> bool: ... def set_tls_use_extended_master_secret(value: bool) -> None: ...
tls_use_extended_master_secret = property(get_tls_use_extended_master_secret, set_tls_use_extended_master_secret)
Default Value
FALSE
Remarks
Enables the Extended Master Secret Extension, as defined in RFC 7627.
tls_use_session_resumption Property
Enables or disables the TLS session resumption capability.
Syntax
def get_tls_use_session_resumption() -> bool: ... def set_tls_use_session_resumption(value: bool) -> None: ...
tls_use_session_resumption = property(get_tls_use_session_resumption, set_tls_use_session_resumption)
Default Value
FALSE
Remarks
Enables or disables the TLS session resumption capability.
tls_versions Property
The SSL/TLS versions to enable by default.
Syntax
def get_tls_versions() -> int: ... def set_tls_versions(value: int) -> None: ...
tls_versions = property(get_tls_versions, set_tls_versions)
Default Value
16
Remarks
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 |
trusted_cert_count Property
The number of records in the TrustedCert arrays.
Syntax
def get_trusted_cert_count() -> int: ... def set_trusted_cert_count(value: int) -> None: ...
trusted_cert_count = property(get_trusted_cert_count, set_trusted_cert_count)
Default Value
0
Remarks
This property controls the size of the following arrays:
The array indices start at 0 and end at trusted_cert_count - 1.trusted_cert_bytes Property
Returns the raw certificate data in DER format.
Syntax
def get_trusted_cert_bytes(trusted_cert_index: int) -> bytes: ...
Remarks
Returns the raw certificate data in DER format.
The trusted_cert_index parameter specifies the index of the item in the array. The size of the array is controlled by the trusted_cert_count property.
This property is read-only.
trusted_cert_handle Property
Allows to get or set a 'handle', a unique identifier of the underlying property object.
Syntax
def get_trusted_cert_handle(trusted_cert_index: int) -> int: ... def set_trusted_cert_handle(trusted_cert_index: int, value: int) -> None: ...
Default Value
0
Remarks
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());
The trusted_cert_index parameter specifies the index of the item in the array. The size of the array is controlled by the trusted_cert_count property.
validation_moment Property
The time point at which signature validity is to be established.
Syntax
def get_validation_moment() -> str: ... def set_validation_moment(value: str) -> None: ...
validation_moment = property(get_validation_moment, set_validation_moment)
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.
namespace_count Property
The number of records in the Namespace arrays.
Syntax
def get_namespace_count() -> int: ... def set_namespace_count(value: int) -> None: ...
namespace_count = property(get_namespace_count, set_namespace_count)
Default Value
0
Remarks
This property controls the size of the following arrays:
The array indices start at 0 and end at namespace_count - 1.namespace_prefix Property
A user-defined prefix value of a namespace.
Syntax
def get_namespace_prefix(namespace_index: int) -> str: ... def set_namespace_prefix(namespace_index: int, value: str) -> None: ...
Default Value
""
Remarks
A user-defined prefix value of a namespace.
The namespace_index parameter specifies the index of the item in the array. The size of the array is controlled by the namespace_count property.
namespace_uri Property
A user-defined URI value of a namespace.
Syntax
def get_namespace_uri(namespace_index: int) -> str: ... def set_namespace_uri(namespace_index: int, value: str) -> None: ...
Default Value
""
Remarks
A user-defined URI value of a namespace.
The namespace_index parameter specifies the index of the item in the array. The size of the array is controlled by the namespace_count property.
add_data_reference Method
Creates a new XML reference to the specified data.
Syntax
def add_data_reference(data_uri: str, data: bytes) -> int: ...
Remarks
Use this method to add a reference to the custom data. Pass the reference's URI via DataURI parameter.
This method uses hash_algorithm property to specify the hash algorithm of the reference.
The method returns the index of the new reference entry in the references collection.
add_reference Method
Creates a new XML reference to the specified XML element.
Syntax
def add_reference(target_xml_element: str, custom_id: str, auto_generate_id: bool) -> int: ...
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 canonicalization_method and hash_algorithm 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.
add_timestamp_validation_data Method
Use this method to add timestamp validation data to the signature.
Syntax
def add_timestamp_validation_data(sig_index: int) -> None: ...
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 on_signature_validated event handler after successful signature validation.
add_validation_data_refs Method
Use this method to add signature validation references to the signature.
Syntax
def add_validation_data_refs(sig_index: int) -> None: ...
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 on_signature_validated event handler after successful signature validation.
add_validation_data_values Method
Use this method to add signature validation values to the signature.
Syntax
def add_validation_data_values(sig_index: int) -> None: ...
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 on_signature_validated event handler after successful signature validation.
close Method
Closes an opened document.
Syntax
def close(save_changes: bool) -> None: ...
Remarks
Use this method to close a previously opened document. Set SaveChanges to true to apply any changes made.
config Method
Sets or retrieves a configuration setting.
Syntax
def config(configuration_string: str) -> str: ...
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.
do_action Method
Performs an additional action.
Syntax
def do_action(action_id: str, action_params: str) -> str: ...
Remarks
do_action 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;....
extract_async_data Method
Extracts user data from the DC signing service response.
Syntax
def extract_async_data(async_reply: str) -> str: ...
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.
get_inner_xml Method
Get the inner XML content of the selected XML element.
Syntax
def get_inner_xml(xpath: str) -> str: ...
Remarks
Call this method to get the inner XML content of the selected XML element.
get_outer_xml Method
Get the outer XML content of the selected XML element.
Syntax
def get_outer_xml(xpath: str) -> str: ...
Remarks
Call this method to get the outer XML content of the selected XML element.
get_text_content Method
Get the text content of the selected XML element.
Syntax
def get_text_content(xpath: str) -> str: ...
Remarks
Call this method to get the text content of the selected XML element.
open Method
Opens a document for signing or updating.
Syntax
def open() -> None: ...
Remarks
Use this method to open a document for signing or updating. When finished, call close to complete or discard the operation.
revalidate Method
Revalidates a signature in accordance with current settings.
Syntax
def revalidate(index: int, detached: bool) -> None: ...
Remarks
Use this method to re-validate a signature in the opened XML document.
set_inner_xml Method
Set the inner XML content of the selected XML element.
Syntax
def set_inner_xml(xpath: str, value: str) -> None: ...
Remarks
Call this method to set the inner XML content of the selected XML element.
set_text_content Method
Set the text content of the selected XML element.
Syntax
def set_text_content(xpath: str, value: str) -> None: ...
Remarks
Call this method to set the text content of the selected XML element.
sign Method
Signs an XML document.
Syntax
def sign() -> None: ...
Remarks
Call this method to generate a signature over an XML document.
sign_async_begin Method
Initiates the asynchronous signing operation.
Syntax
def sign_async_begin() -> str: ...
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 output_file (or output_stream). 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 input_file (or input_stream), and call sign_async_end 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 signing_certificate 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 sign_async_end 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 sign_async_begin 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 sign_async_end method.
sign_async_end Method
Completes the asynchronous signing operation.
Syntax
def sign_async_end(async_reply: str) -> None: ...
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 sign_async_begin call to input_file (or input_stream). The method will embed the signature into the pre-signed document, and save the complete signed document to output_file (or output_stream).
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 signing_certificate 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 (sign_async_begin) 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 sign_async_begin 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 sign_async_end method.
sign_external Method
Signs the document using an external signing facility.
Syntax
def sign_external() -> None: ...
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 on_external_sign event which allows to pass the hash value for signing.
timestamp Method
Use this method to add an timestamp.
Syntax
def timestamp(sig_index: int, timestamp_type: int) -> None: ...
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 on_signature_validated 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
Upgrades existing XAdES signature to a new form.
Syntax
def upgrade(sig_index: int, to_form: int) -> None: ...
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 |
on_chain_element_download Event
Fires when there is a need to download a chain element from an online source.
Syntax
class XAdESSignerChainElementDownloadEventParams(object): @property def kind() -> int: ... @property def cert_rdn() -> str: ... @property def ca_cert_rdn() -> str: ... @property def location() -> str: ... @property def action() -> int: ... @action.setter def action(value) -> None: ... # In class XAdESSigner: @property def on_chain_element_download() -> Callable[[XAdESSignerChainElementDownloadEventParams], None]: ... @on_chain_element_download.setter def on_chain_element_download(event_hook: Callable[[XAdESSignerChainElementDownloadEventParams], None]) -> None: ...
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 |
on_chain_element_needed Event
Fires when an element required to validate the chain was not located.
Syntax
class XAdESSignerChainElementNeededEventParams(object): @property def kind() -> int: ... @property def cert_rdn() -> str: ... @property def ca_cert_rdn() -> str: ... # In class XAdESSigner: @property def on_chain_element_needed() -> Callable[[XAdESSignerChainElementNeededEventParams], None]: ... @on_chain_element_needed.setter def on_chain_element_needed(event_hook: Callable[[XAdESSignerChainElementNeededEventParams], None]) -> None: ...
Remarks
Subscribe to this event to be notified about missing validation elements. Use the known_crls, known_certificates, and known_ocsps properties in the event handler to provide the missing piece.
on_chain_element_store Event
This event is fired when a chain element (certificate, CRL, or OCSP response) should be stored along with a signature.
Syntax
class XAdESSignerChainElementStoreEventParams(object): @property def kind() -> int: ... @property def body() -> bytes: ... @property def uri() -> str: ... @uri.setter def uri(value) -> None: ... # In class XAdESSigner: @property def on_chain_element_store() -> Callable[[XAdESSignerChainElementStoreEventParams], None]: ... @on_chain_element_store.setter def on_chain_element_store(event_hook: Callable[[XAdESSignerChainElementStoreEventParams], None]) -> None: ...
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.
on_chain_validated Event
Reports the completion of a certificate chain validation.
Syntax
class XAdESSignerChainValidatedEventParams(object): @property def index() -> int: ... @property def subject_rdn() -> str: ... @property def validation_result() -> int: ... @property def validation_details() -> int: ... # In class XAdESSigner: @property def on_chain_validated() -> Callable[[XAdESSignerChainValidatedEventParams], None]: ... @on_chain_validated.setter def on_chain_validated(event_hook: Callable[[XAdESSignerChainValidatedEventParams], None]) -> None: ...
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 |
on_chain_validation_progress Event
This event is fired multiple times during chain validation to report various stages of the validation procedure.
Syntax
class XAdESSignerChainValidationProgressEventParams(object): @property def event_kind() -> str: ... @property def cert_rdn() -> str: ... @property def ca_cert_rdn() -> str: ... @property def action() -> int: ... @action.setter def action(value) -> None: ... # In class XAdESSigner: @property def on_chain_validation_progress() -> Callable[[XAdESSignerChainValidationProgressEventParams], None]: ... @on_chain_validation_progress.setter def on_chain_validation_progress(event_hook: Callable[[XAdESSignerChainValidationProgressEventParams], None]) -> None: ...
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 |
on_document_loaded Event
This event is fired when the document has been loaded into memory.
Syntax
class XAdESSignerDocumentLoadedEventParams(object): @property def cancel() -> bool: ... @cancel.setter def cancel(value) -> None: ... # In class XAdESSigner: @property def on_document_loaded() -> Callable[[XAdESSignerDocumentLoadedEventParams], None]: ... @on_document_loaded.setter def on_document_loaded(event_hook: Callable[[XAdESSignerDocumentLoadedEventParams], None]) -> None: ...
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.
on_error Event
Information about errors during signing.
Syntax
class XAdESSignerErrorEventParams(object): @property def error_code() -> int: ... @property def description() -> str: ... # In class XAdESSigner: @property def on_error() -> Callable[[XAdESSignerErrorEventParams], None]: ... @on_error.setter def on_error(event_hook: Callable[[XAdESSignerErrorEventParams], None]) -> None: ...
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.
on_external_sign Event
Handles remote or external signing initiated by the SignExternal method or other source.
Syntax
class XAdESSignerExternalSignEventParams(object): @property def operation_id() -> str: ... @property def hash_algorithm() -> str: ... @property def pars() -> str: ... @property def data() -> str: ... @property def signed_data() -> str: ... @signed_data.setter def signed_data(value) -> None: ... # In class XAdESSigner: @property def on_external_sign() -> Callable[[XAdESSignerExternalSignEventParams], None]: ... @on_external_sign.setter def on_external_sign(event_hook: Callable[[XAdESSignerExternalSignEventParams], None]) -> None: ...
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();
};
on_format_element Event
Reports the XML element that is currently being processed.
Syntax
class XAdESSignerFormatElementEventParams(object): @property def start_tag_whitespace() -> str: ... @start_tag_whitespace.setter def start_tag_whitespace(value) -> None: ... @property def end_tag_whitespace() -> str: ... @end_tag_whitespace.setter def end_tag_whitespace(value) -> None: ... @property def level() -> int: ... @property def path() -> str: ... @property def has_child_elements() -> bool: ... # In class XAdESSigner: @property def on_format_element() -> Callable[[XAdESSignerFormatElementEventParams], None]: ... @on_format_element.setter def on_format_element(event_hook: Callable[[XAdESSignerFormatElementEventParams], None]) -> None: ...
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.
on_format_text Event
Reports XML text that is currently being processed.
Syntax
class XAdESSignerFormatTextEventParams(object): @property def text() -> str: ... @text.setter def text(value) -> None: ... @property def text_type() -> int: ... @property def level() -> int: ... @property def path() -> str: ... # In class XAdESSigner: @property def on_format_text() -> Callable[[XAdESSignerFormatTextEventParams], None]: ... @on_format_text.setter def on_format_text(event_hook: Callable[[XAdESSignerFormatTextEventParams], None]) -> None: ...
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.
on_notification Event
This event notifies the application about an underlying control flow event.
Syntax
class XAdESSignerNotificationEventParams(object): @property def event_id() -> str: ... @property def event_param() -> str: ... # In class XAdESSigner: @property def on_notification() -> Callable[[XAdESSignerNotificationEventParams], None]: ... @on_notification.setter def on_notification(event_hook: Callable[[XAdESSignerNotificationEventParams], None]) -> None: ...
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 timestamp_server was set to a
virtual:// URI. The EventParam parameter contains the
TSP request (or the plain hash, depending on the value provided to
timestamp_server), 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. |
on_reference_validated Event
Marks the end of a reference validation.
Syntax
class XAdESSignerReferenceValidatedEventParams(object): @property def reference_index() -> int: ... @property def id() -> str: ... @property def uri() -> str: ... @property def ref_type() -> str: ... @property def digest_valid() -> bool: ... # In class XAdESSigner: @property def on_reference_validated() -> Callable[[XAdESSignerReferenceValidatedEventParams], None]: ... @on_reference_validated.setter def on_reference_validated(event_hook: Callable[[XAdESSignerReferenceValidatedEventParams], None]) -> None: ...
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.
on_resolve_reference Event
Asks the application to resolve a reference.
Syntax
class XAdESSignerResolveReferenceEventParams(object): @property def reference_index() -> int: ... @property def uri() -> str: ... # In class XAdESSigner: @property def on_resolve_reference() -> Callable[[XAdESSignerResolveReferenceEventParams], None]: ... @on_resolve_reference.setter def on_resolve_reference(event_hook: Callable[[XAdESSignerResolveReferenceEventParams], None]) -> None: ...
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.
on_signature_found Event
Signifies the start of signature validation.
Syntax
class XAdESSignerSignatureFoundEventParams(object): @property def index() -> int: ... @property def issuer_rdn() -> str: ... @property def serial_number() -> bytes: ... @property def subject_key_id() -> bytes: ... @property def cert_found() -> bool: ... @property def validate_signature() -> bool: ... @validate_signature.setter def validate_signature(value) -> None: ... @property def validate_chain() -> bool: ... @validate_chain.setter def validate_chain(value) -> None: ... # In class XAdESSigner: @property def on_signature_found() -> Callable[[XAdESSignerSignatureFoundEventParams], None]: ... @on_signature_found.setter def on_signature_found(event_hook: Callable[[XAdESSignerSignatureFoundEventParams], None]) -> None: ...
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 known_certificates 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.
on_signature_validated Event
Marks the completion of the signature validation routine.
Syntax
class XAdESSignerSignatureValidatedEventParams(object): @property def index() -> int: ... @property def issuer_rdn() -> str: ... @property def serial_number() -> bytes: ... @property def subject_key_id() -> bytes: ... @property def validation_result() -> int: ... # In class XAdESSigner: @property def on_signature_validated() -> Callable[[XAdESSignerSignatureValidatedEventParams], None]: ... @on_signature_validated.setter def on_signature_validated(event_hook: Callable[[XAdESSignerSignatureValidatedEventParams], None]) -> None: ...
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 |
on_timestamp_found Event
Signifies the start of a timestamp validation routine.
Syntax
class XAdESSignerTimestampFoundEventParams(object): @property def index() -> int: ... @property def issuer_rdn() -> str: ... @property def serial_number() -> bytes: ... @property def subject_key_id() -> bytes: ... @property def cert_found() -> bool: ... @property def validate_timestamp() -> bool: ... @validate_timestamp.setter def validate_timestamp(value) -> None: ... @property def validate_chain() -> bool: ... @validate_chain.setter def validate_chain(value) -> None: ... # In class XAdESSigner: @property def on_timestamp_found() -> Callable[[XAdESSignerTimestampFoundEventParams], None]: ... @on_timestamp_found.setter def on_timestamp_found(event_hook: Callable[[XAdESSignerTimestampFoundEventParams], None]) -> None: ...
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 known_certificates 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.
on_timestamp_request Event
Fires when the class is ready to request a timestamp from an external TSA.
Syntax
class XAdESSignerTimestampRequestEventParams(object): @property def tsa() -> str: ... @property def timestamp_request() -> str: ... @property def timestamp_response() -> str: ... @timestamp_response.setter def timestamp_response(value) -> None: ... @property def suppress_default() -> bool: ... @suppress_default.setter def suppress_default(value) -> None: ... # In class XAdESSigner: @property def on_timestamp_request() -> Callable[[XAdESSignerTimestampRequestEventParams], None]: ... @on_timestamp_request.setter def on_timestamp_request(event_hook: Callable[[XAdESSignerTimestampRequestEventParams], None]) -> None: ...
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 timestamp_server 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.
on_timestamp_validated Event
Reports the completion of the timestamp validation routine.
Syntax
class XAdESSignerTimestampValidatedEventParams(object): @property def index() -> int: ... @property def issuer_rdn() -> str: ... @property def serial_number() -> bytes: ... @property def subject_key_id() -> bytes: ... @property def time() -> str: ... @property def validation_result() -> int: ... @property def chain_validation_result() -> int: ... @property def chain_validation_details() -> int: ... # In class XAdESSigner: @property def on_timestamp_validated() -> Callable[[XAdESSignerTimestampValidatedEventParams], None]: ... @on_timestamp_validated.setter def on_timestamp_validated(event_hook: Callable[[XAdESSignerTimestampValidatedEventParams], None]) -> None: ...
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 |
on_tls_cert_needed Event
Fires when a remote TLS party requests a client certificate.
Syntax
class XAdESSignerTLSCertNeededEventParams(object): @property def host() -> str: ... @property def ca_names() -> str: ... # In class XAdESSigner: @property def on_tls_cert_needed() -> Callable[[XAdESSignerTLSCertNeededEventParams], None]: ... @on_tls_cert_needed.setter def on_tls_cert_needed(event_hook: Callable[[XAdESSignerTLSCertNeededEventParams], None]) -> None: ...
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 tls_client_chain 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 on_tls_handshake event for the given host and, if the certificate was accepted, succeeded by the on_tls_established event.
on_tls_cert_validate Event
This event is fired upon receipt of the TLS server's certificate, allowing the user to control its acceptance.
Syntax
class XAdESSignerTLSCertValidateEventParams(object): @property def server_host() -> str: ... @property def server_ip() -> str: ... @property def accept() -> bool: ... @accept.setter def accept(value) -> None: ... # In class XAdESSigner: @property def on_tls_cert_validate() -> Callable[[XAdESSignerTLSCertValidateEventParams], None]: ... @on_tls_cert_validate.setter def on_tls_cert_validate(event_hook: Callable[[XAdESSignerTLSCertValidateEventParams], None]) -> None: ...
Remarks
This event is fired during a TLS handshake. Use the tls_server_chain 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.
on_tls_established Event
Fires when a TLS handshake with Host successfully completes.
Syntax
class XAdESSignerTLSEstablishedEventParams(object): @property def host() -> str: ... @property def version() -> str: ... @property def ciphersuite() -> str: ... @property def connection_id() -> bytes: ... @property def abort() -> bool: ... @abort.setter def abort(value) -> None: ... # In class XAdESSigner: @property def on_tls_established() -> Callable[[XAdESSignerTLSEstablishedEventParams], None]: ... @on_tls_established.setter def on_tls_established(event_hook: Callable[[XAdESSignerTLSEstablishedEventParams], None]) -> None: ...
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.
on_tls_handshake Event
Fires when a new TLS handshake is initiated, before the handshake commences.
Syntax
class XAdESSignerTLSHandshakeEventParams(object): @property def host() -> str: ... @property def abort() -> bool: ... @abort.setter def abort(value) -> None: ... # In class XAdESSigner: @property def on_tls_handshake() -> Callable[[XAdESSignerTLSHandshakeEventParams], None]: ... @on_tls_handshake.setter def on_tls_handshake(event_hook: Callable[[XAdESSignerTLSHandshakeEventParams], None]) -> None: ...
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 on_tls_established event. If the server chooses to request a client certificate, the on_tls_cert_needed event will also be fired.
on_tls_shutdown Event
Reports the graceful closure of a TLS connection.
Syntax
class XAdESSignerTLSShutdownEventParams(object): @property def host() -> str: ... # In class XAdESSigner: @property def on_tls_shutdown() -> Callable[[XAdESSignerTLSShutdownEventParams], None]: ... @on_tls_shutdown.setter def on_tls_shutdown(event_hook: Callable[[XAdESSignerTLSShutdownEventParams], None]) -> None: ...
Remarks
This event notifies the application about the closure of an earlier established TLS connection. Note that only graceful connection closures are reported.
XAdESSigner Config Settings
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 trusted_certificates 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 xpath_namespaces 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 xpath_namespaces 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 hash_algorithm 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 hash_algorithm 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 on_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 hash_algorithm 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.
XAdESSigner Errors
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) |