Struct secureblackbox::XMLDecryptor
Properties Methods Events Config Settings Errors
The XMLDecryptor struct decrypts XML documents.
Syntax
secureblackbox::XMLDecryptor
Remarks
XMlDecryptor decrypts XML documents encrypted with certificates or generic keys.
Object Lifetime
The new() method returns a mutable reference to a struct instance. The object itself is kept in the global list maintained by SecureBlackbox. Due to this, the XMLDecryptor struct cannot be disposed of automatically. Please, call the dispose(&mut self) method of XMLDecryptor when you have finished using the instance.
Property List
The following is the full list of the properties of the struct with short descriptions. Click on the links for further details.
| decryption_key | The symmetric (session) key used to encrypt the data. |
| encoding | Specifies XML encoding. |
| encrypted_data_type | Defines the type of data being encrypted. |
| encryption_method | The encryption method used to encrypt the document. |
| encrypt_key | Specifies if the encryption key is encrypted. |
| 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. |
| external_data | The data that should be encrypted. |
| fips_mode | Reserved. |
| input_bytes | Use this property to pass the input to struct in byte array form. |
| input_file | The XML file to be decrypted. |
| key_decryption_cert_bytes | Returns the raw certificate data in DER format. |
| key_decryption_cert_handle | Allows to get or set a 'handle', a unique identifier of the underlying property object. |
| key_decryption_key | The symmetric key used to decrypt a session key. |
| key_encryption_type | Defines how the session key is encrypted. |
| key_info_item_count | The number of records in the KeyInfoItem arrays. |
| key_info_item_issuer_rdn | A list of Property=Value pairs that uniquely identify the certificate issuer. |
| key_info_item_serial_number | Returns the certificate's serial number. |
| key_info_item_subject_key_id | Contains a unique identifier of the certificate's cryptographic key. |
| key_info_item_subject_rdn | A list of Property=Value pairs that uniquely identify the certificate holder (subject). |
| key_info_certificate_count | The number of records in the KeyInfoCertificate arrays. |
| key_info_certificate_bytes | Returns the raw certificate data in DER format. |
| key_info_certificate_handle | Allows to get or set a 'handle', a unique identifier of the underlying property object. |
| key_transport_method | Defines how the session key is encrypted. |
| key_wrap_method | The key wrap method used to encrypt the session key. |
| output_bytes | Use this property to read the output the struct object has produced. |
| output_file | Defines where to save the decrypted XML document. |
| use_gcm | Indicates if GCM mode was enabled. |
| xml_element | Defines the XML element to decrypt. |
Method List
The following is the full list of the methods of the struct with short descriptions. Click on the links for further details.
| add_known_namespace | Adds known prefix and correspondent namespace URI. |
| config | Sets or retrieves a configuration setting. |
| decrypt | Decrypts an XML document. |
| do_action | Performs an additional action. |
| reset | Resets the struct settings. |
Event List
The following is the full list of the events fired by the struct with short descriptions. Click on the links for further details.
| on_decryption_info_needed | Requests decryption information from the application. |
| on_error | Information about errors during signing. |
| on_external_decrypt | Handles remote or external decryption. |
| on_notification | This event notifies the application about an underlying control flow event. |
| on_save_external_data | Request to save decrypted external data. |
Config Settings
The following is a list of config settings for the struct with short descriptions. Click on the links for further details.
| EncryptedKeyXMLElement | Specifies the XML element where the encrypted key element is located. |
| KeyName | Contains information about the key used for encryption. |
| MimeType | Contains the mime type of the encrypted data. |
| TempPath | Path for storing temporary files. |
| WriteBOM | Specifies whether byte-order mark should be written when saving the document. |
| ASN1UseGlobalTagCache | Controls whether ASN.1 module should use a global object cache. |
| AssignSystemSmartCardPins | Specifies whether CSP-level PINs should be assigned to CNG keys. |
| 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 struct. |
| DefDeriveKeyIterations | Specifies the default key derivation algorithm iteration count. |
| DNSLocalSuffix | The suffix to assign for TLD names. |
| EnableClientSideSSLFFDHE | Enables or disables finite field DHE key exchange support in TLS clients. |
| EnableSSHMLKEM | Enables support for ML-KEM/hybrid key exchange algorithms in SSH client and server structs. |
| EnableTLSMLKEM | Enables support for ML-KEM and hybrid groups in TLS client and server structs. |
| GlobalCookies | Gets or sets global cookies for all the HTTP transports. |
| HardwareCryptoUsePolicy | The hardware crypto usage policy. |
| HttpUserAgent | Specifies the user agent name to be used by all HTTP clients. |
| HttpVersion | The HTTP version to use in any inner HTTP client structs created. |
| IgnoreExpiredMSCTLSigningCert | Whether to tolerate the expired Windows Update signing certificate. |
| ListDelimiter | The delimiter character for multi-element lists. |
| 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. |
| OldClientSideRSAFallback | Specifies whether the SSH client should use a SHA1 fallback. |
| PKICache | Specifies which PKI elements (certificates, CRLs, OCSP responses) should be cached. |
| PKICachePath | Specifies the file system path where cached PKI data is stored. |
| ProductVersion | Returns the version of the SecureBlackbox library. |
| ServerSSLDHKeyLength | Sets the size of the TLS DHE key exchange group. |
| 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. |
| UseCRLObjectCaching | Specifies whether reuse of loaded CRL objects is enabled. |
| UseInternalRandom | Switches between SecureBlackbox-own and platform PRNGs. |
| UseLegacyAdESValidation | Enables legacy AdES validation mode. |
| UseOCSPResponseObjectCaching | Specifies whether reuse of loaded OCSP response objects is enabled. |
| UseOwnDNSResolver | Specifies whether the client structs should use own DNS resolver. |
| UseSharedSystemStorages | Specifies whether the validation engine should use a global per-process copy of the system certificate stores. |
| UseSystemNativeSizeCalculation | An internal CryptoAPI access tweak. |
| UseSystemOAEPAndPSS | Enforces or disables the use of system-driven RSA OAEP and PSS computations. |
| UseSystemRandom | Enables or disables the use of the OS PRNG. |
| XMLRDNDescriptorName[OID] | Defines an OID mapping to descriptor names for the certificate's IssuerRDN or SubjectRDN. |
| XMLRDNDescriptorPriority[OID] | Specifies the priority of descriptor names associated with a specific OID. |
| XMLRDNDescriptorReverseOrder | Specifies whether to reverse the order of descriptors in RDN. |
| XMLRDNDescriptorSeparator | Specifies the separator used between descriptors in RDN. |
decryption_key property (XMLDecryptor Struct)
The symmetric (session) key used to encrypt the data.
Syntax
fn decryption_key(&self ) -> Result<Vec<u8>, SecureBlackboxError>
fn set_decryption_key(&self, value : Vec<u8>) -> Option<SecureBlackboxError> fn set_decryption_key_ref(&self, value : &[u8]) -> Option<SecureBlackboxError>
Remarks
Use this property to provide the encryption symmetric (session) key that will be used to encrypt a data.
It is required when the encrypt_key property is disabled. If the encrypt_key property is enabled, and no value is set, the component will generate a random session key (recommended).
Data Type
Vec
encoding property (XMLDecryptor Struct)
Specifies XML encoding.
Syntax
fn encoding(&self ) -> Result<String, SecureBlackboxError>
fn set_encoding(&self, value : &str) -> Option<SecureBlackboxError> fn set_encoding_ref(&self, value : &String) -> Option<SecureBlackboxError>
Default Value
""
Remarks
Use this property to specify the encoding to apply to the XML documents.
Data Type
String
encrypted_data_type property (XMLDecryptor Struct)
Defines the type of data being encrypted.
Syntax
fn encrypted_data_type(&self ) -> Result<i32, SecureBlackboxError>
Possible Values
0 // Element
1 // Content
2 // External
Default Value
0
Remarks
This property defines what data type is about to be encrypted.
Supported values:
| cxedtElement | 0 | The XML element is encrypted.
xml_node property specifies the XML element that should be encrypted. |
| cxedtContent | 1 | Element content is encrypted.
xml_node property specifies the XML element which content should be encrypted. |
| cxedtExternal | 2 | External data is encrypted. Use external_data property to set the data that should be encrypted.
xml_node property specifies the location where xenc:EncryptedData element should be placed. |
This property is read-only.
Data Type
i32
encryption_method property (XMLDecryptor Struct)
The encryption method used to encrypt the document.
Syntax
fn encryption_method(&self ) -> Result<String, SecureBlackboxError>
Default Value
"AES256"
Remarks
This property contains the encryption algorithm used to encrypt the XML document.
Supported values:
| SB_XML_ENCRYPTION_ALGORITHM_RC4 | RC4 | |
| SB_XML_ENCRYPTION_ALGORITHM_DES | DES | |
| SB_XML_ENCRYPTION_ALGORITHM_3DES | 3DEST | |
| SB_XML_ENCRYPTION_ALGORITHM_AES128 | AES128 | |
| SB_XML_ENCRYPTION_ALGORITHM_AES192 | AES192 | |
| SB_XML_ENCRYPTION_ALGORITHM_AES256 | AES256 | |
| SB_XML_ENCRYPTION_ALGORITHM_CAMELLIA128 | Camellia128 | |
| SB_XML_ENCRYPTION_ALGORITHM_CAMELLIA192 | Camellia192 | |
| SB_XML_ENCRYPTION_ALGORITHM_CAMELLIA256 | Camellia256 | |
| SB_XML_ENCRYPTION_ALGORITHM_SEED | SEED |
If use_gcm property is enabled, then supported values are:
| SB_XML_ENCRYPTION_ALGORITHM_AES128 | AES128 | |
| SB_XML_ENCRYPTION_ALGORITHM_AES192 | AES192 | |
| SB_XML_ENCRYPTION_ALGORITHM_AES256 | AES256 |
This property is read-only.
Data Type
String
encrypt_key property (XMLDecryptor Struct)
Specifies if the encryption key is encrypted.
Syntax
fn encrypt_key(&self ) -> Result<bool, SecureBlackboxError>
Default Value
true
Remarks
Use this property to specify if encryption (session) key should be encrypted and also added to the encrypted data.
This property is read-only.
Data Type
bool
external_crypto_async_document_id property (XMLDecryptor Struct)
Specifies an optional document ID for SignAsyncBegin() and SignAsyncEnd() calls.
Syntax
fn external_crypto_async_document_id(&self ) -> Result<String, SecureBlackboxError>
fn set_external_crypto_async_document_id(&self, value : &str) -> Option<SecureBlackboxError> fn set_external_crypto_async_document_id_ref(&self, value : &String) -> Option<SecureBlackboxError>
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.
Data Type
String
external_crypto_custom_params property (XMLDecryptor Struct)
Custom parameters to be passed to the signing service (uninterpreted).
Syntax
fn external_crypto_custom_params(&self ) -> Result<String, SecureBlackboxError>
fn set_external_crypto_custom_params(&self, value : &str) -> Option<SecureBlackboxError> fn set_external_crypto_custom_params_ref(&self, value : &String) -> Option<SecureBlackboxError>
Default Value
""
Remarks
Custom parameters to be passed to the signing service (uninterpreted).
Data Type
String
external_crypto_data property (XMLDecryptor Struct)
Additional data to be included in the async state and mirrored back by the requestor.
Syntax
fn external_crypto_data(&self ) -> Result<String, SecureBlackboxError>
fn set_external_crypto_data(&self, value : &str) -> Option<SecureBlackboxError> fn set_external_crypto_data_ref(&self, value : &String) -> Option<SecureBlackboxError>
Default Value
""
Remarks
Additional data to be included in the async state and mirrored back by the requestor.
Data Type
String
external_crypto_external_hash_calculation property (XMLDecryptor Struct)
Specifies whether the message hash is to be calculated at the external endpoint.
Syntax
fn external_crypto_external_hash_calculation(&self ) -> Result<bool, SecureBlackboxError>
fn set_external_crypto_external_hash_calculation(&self, value : bool) -> Option<SecureBlackboxError>
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 struct.
If set to true, the struct will pass a few kilobytes of to-be-signed data from the document to the OnExternalSign event. This only applies when SignExternal() is called.
Data Type
bool
external_crypto_hash_algorithm property (XMLDecryptor Struct)
Specifies the request's signature hash algorithm.
Syntax
fn external_crypto_hash_algorithm(&self ) -> Result<String, SecureBlackboxError>
fn set_external_crypto_hash_algorithm(&self, value : &str) -> Option<SecureBlackboxError> fn set_external_crypto_hash_algorithm_ref(&self, value : &String) -> Option<SecureBlackboxError>
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 |
Data Type
String
external_crypto_key_id property (XMLDecryptor Struct)
The ID of the pre-shared key used for DC request authentication.
Syntax
fn external_crypto_key_id(&self ) -> Result<String, SecureBlackboxError>
fn set_external_crypto_key_id(&self, value : &str) -> Option<SecureBlackboxError> fn set_external_crypto_key_id_ref(&self, value : &String) -> Option<SecureBlackboxError>
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";
Data Type
String
external_crypto_key_secret property (XMLDecryptor Struct)
The pre-shared key used for DC request authentication.
Syntax
fn external_crypto_key_secret(&self ) -> Result<String, SecureBlackboxError>
fn set_external_crypto_key_secret(&self, value : &str) -> Option<SecureBlackboxError> fn set_external_crypto_key_secret_ref(&self, value : &String) -> Option<SecureBlackboxError>
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.
Data Type
String
external_crypto_method property (XMLDecryptor Struct)
Specifies the asynchronous signing method.
Syntax
fn external_crypto_method(&self ) -> Result<i32, SecureBlackboxError>
fn set_external_crypto_method(&self, value : i32) -> Option<SecureBlackboxError>
Possible Values
0 // PKCS1
1 // PKCS7
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 |
Data Type
i32
external_crypto_mode property (XMLDecryptor Struct)
Specifies the external cryptography mode.
Syntax
fn external_crypto_mode(&self ) -> Result<i32, SecureBlackboxError>
fn set_external_crypto_mode(&self, value : i32) -> Option<SecureBlackboxError>
Possible Values
0 // Default
1 // Disabled
2 // Generic
3 // DCAuth
4 // DCAuthJSON
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) |
Data Type
i32
external_crypto_public_key_algorithm property (XMLDecryptor Struct)
Provide the public key algorithm here if the certificate is not available on the pre-signing stage.
Syntax
fn external_crypto_public_key_algorithm(&self ) -> Result<String, SecureBlackboxError>
fn set_external_crypto_public_key_algorithm(&self, value : &str) -> Option<SecureBlackboxError> fn set_external_crypto_public_key_algorithm_ref(&self, value : &String) -> Option<SecureBlackboxError>
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 | |
| SB_CERT_ALGORITHM_MLDSA_44 | id-ml-dsa-44 | |
| SB_CERT_ALGORITHM_MLDSA_65 | id-ml-dsa-65 | |
| SB_CERT_ALGORITHM_MLDSA_87 | id-ml-dsa-87 | |
| SB_CERT_ALGORITHM_HASH_MLDSA_44_SHA512 | id-hash-ml-dsa-44-with-sha512 | |
| SB_CERT_ALGORITHM_HASH_MLDSA_65_SHA512 | id-hash-ml-dsa-65-with-sha512 | |
| SB_CERT_ALGORITHM_HASH_MLDSA_87_SHA512 | id-hash-ml-dsa-87-with-sha512 | |
| SB_CERT_ALGORITHM_MLKEM_512 | id-ml-kem-512 | |
| SB_CERT_ALGORITHM_MLKEM_768 | id-ml-kem-768 | |
| SB_CERT_ALGORITHM_MLKEM_1024 | id-ml-kem-1024 |
Data Type
String
external_data property (XMLDecryptor Struct)
The data that should be encrypted.
Syntax
fn external_data(&self ) -> Result<Vec<u8>, SecureBlackboxError>
fn set_external_data(&self, value : Vec<u8>) -> Option<SecureBlackboxError> fn set_external_data_ref(&self, value : &[u8]) -> Option<SecureBlackboxError>
Remarks
Use this property to provide the data that should be encrypted if encrypted_data_type property is set to cxedtExternal value.
Data Type
Vec
fips_mode property (XMLDecryptor Struct)
Reserved.
Syntax
fn fips_mode(&self ) -> Result<bool, SecureBlackboxError>
fn set_fips_mode(&self, value : bool) -> Option<SecureBlackboxError>
Default Value
false
Remarks
This property is reserved for future use.
Data Type
bool
input_bytes property (XMLDecryptor Struct)
Use this property to pass the input to struct in byte array form.
Syntax
fn input_bytes(&self ) -> Result<Vec<u8>, SecureBlackboxError>
fn set_input_bytes(&self, value : Vec<u8>) -> Option<SecureBlackboxError> fn set_input_bytes_ref(&self, value : &[u8]) -> Option<SecureBlackboxError>
Remarks
Assign a byte array containing the data to be processed to this property.
Data Type
Vec
input_file property (XMLDecryptor Struct)
The XML file to be decrypted.
Syntax
fn input_file(&self ) -> Result<String, SecureBlackboxError>
fn set_input_file(&self, value : &str) -> Option<SecureBlackboxError> fn set_input_file_ref(&self, value : &String) -> Option<SecureBlackboxError>
Default Value
""
Remarks
Provide the path to the XML document to be decrypted.
Data Type
String
key_decryption_cert_bytes property (XMLDecryptor Struct)
Returns the raw certificate data in DER format.
Syntax
fn key_decryption_cert_bytes(&self ) -> Result<Vec<u8>, SecureBlackboxError>
Remarks
Returns the raw certificate data in DER format.
This property is read-only.
Data Type
Vec
key_decryption_cert_handle property (XMLDecryptor Struct)
Allows to get or set a 'handle', a unique identifier of the underlying property object.
Syntax
fn key_decryption_cert_handle(&self ) -> Result<i64, SecureBlackboxError>
fn set_key_decryption_cert_handle(&self, value : i64) -> Option<SecureBlackboxError>
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());
Data Type
i64
key_decryption_key property (XMLDecryptor Struct)
The symmetric key used to decrypt a session key.
Syntax
fn key_decryption_key(&self ) -> Result<Vec<u8>, SecureBlackboxError>
fn set_key_decryption_key(&self, value : Vec<u8>) -> Option<SecureBlackboxError> fn set_key_decryption_key_ref(&self, value : &[u8]) -> Option<SecureBlackboxError>
Remarks
Use this property to provide the decryption symmetric key that will be used to decrypt a session key. It is required when encrypt_key property is enabled and key_encryption_type set to cxetKeyWrap value.
Data Type
Vec
key_encryption_type property (XMLDecryptor Struct)
Defines how the session key is encrypted.
Syntax
fn key_encryption_type(&self ) -> Result<i32, SecureBlackboxError>
Possible Values
0 // KeyTransport
1 // KeyWrap
Default Value
0
Remarks
This property defines how the session key is encrypted.
Supported values:
| cxetKeyTransport | 0 | The key is encrypted using public-key based algorithm |
| cxetKeyWrap | 1 | The key is encrypted using symmetric algorithm with pre-shared secret key |
This property is read-only.
Data Type
i32
key_info_item_count property (XMLDecryptor Struct)
The number of records in the KeyInfoItem arrays.
Syntax
fn key_info_item_count(&self ) -> Result<i32, SecureBlackboxError>
Default Value
0
Remarks
This property controls the size of the following arrays:
- key_info_item_issuer_rdn
- key_info_item_serial_number
- key_info_item_subject_key_id
- key_info_item_subject_rdn
This property is read-only.
Data Type
i32
key_info_item_issuer_rdn property (XMLDecryptor Struct)
A list of Property=Value pairs that uniquely identify the certificate issuer.
Syntax
fn key_info_item_issuer_rdn(&self , KeyInfoItemIndex : i32) -> Result<String, SecureBlackboxError>
Default Value
""
Remarks
A list of Property=Value pairs that uniquely identify the certificate issuer.
Example: /C=US/O=Nationwide CA/CN=Web Certification Authority
The KeyInfoItemIndex parameter specifies the index of the item in the array. The size of the array is controlled by the KeyInfoItemCount property.
This property is read-only.
Data Type
String
key_info_item_serial_number property (XMLDecryptor Struct)
Returns the certificate's serial number.
Syntax
fn key_info_item_serial_number(&self , KeyInfoItemIndex : i32) -> Result<Vec<u8>, SecureBlackboxError>
Remarks
Returns the certificate's serial number.
The serial number is a binary string that uniquely identifies a certificate among others issued by the same CA. According to the X.509 standard, the (issuer, serial number) pair should be globally unique to facilitate chain building.
The KeyInfoItemIndex parameter specifies the index of the item in the array. The size of the array is controlled by the KeyInfoItemCount property.
This property is read-only.
Data Type
Vec
key_info_item_subject_key_id property (XMLDecryptor Struct)
Contains a unique identifier of the certificate's cryptographic key.
Syntax
fn key_info_item_subject_key_id(&self , KeyInfoItemIndex : i32) -> Result<Vec<u8>, SecureBlackboxError>
Remarks
Contains a unique identifier of the certificate's cryptographic key.
Subject Key Identifier is a certificate extension which allows a specific public key to be associated with a certificate holder. Typically, subject key identifiers of CA certificates are recorded as respective CA key identifiers in the subordinate certificates that they issue, which facilitates chain building.
The key_info_item_subject_key_id and key_info_item_ca_key_id properties of self-signed certificates typically contain identical values, as in that specific case, the issuer and the subject are the same entity.
The KeyInfoItemIndex parameter specifies the index of the item in the array. The size of the array is controlled by the KeyInfoItemCount property.
This property is read-only.
Data Type
Vec
key_info_item_subject_rdn property (XMLDecryptor Struct)
A list of Property=Value pairs that uniquely identify the certificate holder (subject).
Syntax
fn key_info_item_subject_rdn(&self , KeyInfoItemIndex : i32) -> Result<String, SecureBlackboxError>
Default Value
""
Remarks
A list of Property=Value pairs that uniquely identify the certificate holder (subject).
Depending on the purpose of the certificate and the policies of the CA that issued it, the values included in the subject record may differ drastically and contain business or personal names, web URLs, email addresses, and other data.
Example: /C=US/O=Oranges and Apples, Inc./OU=Accounts Receivable/1.2.3.4.5=Value with unknown OID/CN=Margaret Watkins.
The KeyInfoItemIndex parameter specifies the index of the item in the array. The size of the array is controlled by the KeyInfoItemCount property.
This property is read-only.
Data Type
String
key_info_certificate_count property (XMLDecryptor Struct)
The number of records in the KeyInfoCertificate arrays.
Syntax
fn key_info_certificate_count(&self ) -> Result<i32, SecureBlackboxError>
Default Value
0
Remarks
This property controls the size of the following arrays:
The array indices start at 0 and end at key_info_certificate_count - 1.This property is read-only.
Data Type
i32
key_info_certificate_bytes property (XMLDecryptor Struct)
Returns the raw certificate data in DER format.
Syntax
fn key_info_certificate_bytes(&self , KeyInfoCertificateIndex : i32) -> Result<Vec<u8>, SecureBlackboxError>
Remarks
Returns the raw certificate data in DER format.
The KeyInfoCertificateIndex parameter specifies the index of the item in the array. The size of the array is controlled by the KeyInfoCertificateCount property.
This property is read-only.
Data Type
Vec
key_info_certificate_handle property (XMLDecryptor Struct)
Allows to get or set a 'handle', a unique identifier of the underlying property object.
Syntax
fn key_info_certificate_handle(&self , KeyInfoCertificateIndex : i32) -> Result<i64, SecureBlackboxError>
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 KeyInfoCertificateIndex parameter specifies the index of the item in the array. The size of the array is controlled by the KeyInfoCertificateCount property.
This property is read-only.
Data Type
i64
key_transport_method property (XMLDecryptor Struct)
Defines how the session key is encrypted.
Syntax
fn key_transport_method(&self ) -> Result<i32, SecureBlackboxError>
Possible Values
0 // RSA15
1 // RSAOAEP
Default Value
0
Remarks
This property defines how the session key is encrypted.
Supported values:
| cxktRSA15 | 0 | RSA 1.5 (RSAES-PKCS1-v1_5) encryption is used |
| cxktRSAOAEP | 1 | RSA-OAEP (RSAES-OAEP-ENCRYPT) encryption is used |
This property is read-only.
Data Type
i32
key_wrap_method property (XMLDecryptor Struct)
The key wrap method used to encrypt the session key.
Syntax
fn key_wrap_method(&self ) -> Result<String, SecureBlackboxError>
Default Value
"Camellia256"
Remarks
This property specifies the key wrap algorithm used to encrypt the session key.
Supported values:
| SB_XML_ENCRYPTION_ALGORITHM_3DES | 3DEST | |
| SB_XML_ENCRYPTION_ALGORITHM_AES128 | AES128 | |
| SB_XML_ENCRYPTION_ALGORITHM_AES192 | AES192 | |
| SB_XML_ENCRYPTION_ALGORITHM_AES256 | AES256 | |
| SB_XML_ENCRYPTION_ALGORITHM_CAMELLIA128 | Camellia128 | |
| SB_XML_ENCRYPTION_ALGORITHM_CAMELLIA192 | Camellia192 | |
| SB_XML_ENCRYPTION_ALGORITHM_CAMELLIA256 | Camellia256 | |
| SB_XML_ENCRYPTION_ALGORITHM_SEED | SEED |
This property is read-only.
Data Type
String
output_bytes property (XMLDecryptor Struct)
Use this property to read the output the struct object has produced.
Syntax
fn output_bytes(&self ) -> Result<Vec<u8>, SecureBlackboxError>
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.
Data Type
Vec
output_file property (XMLDecryptor Struct)
Defines where to save the decrypted XML document.
Syntax
fn output_file(&self ) -> Result<String, SecureBlackboxError>
fn set_output_file(&self, value : &str) -> Option<SecureBlackboxError> fn set_output_file_ref(&self, value : &String) -> Option<SecureBlackboxError>
Default Value
""
Remarks
A path where the decrypted XML document should be saved.
Data Type
String
use_gcm property (XMLDecryptor Struct)
Indicates if GCM mode was enabled.
Syntax
fn use_gcm(&self ) -> Result<bool, SecureBlackboxError>
Default Value
true
Remarks
Use this property to check if GCM encryption mode was enabled.
This property is read-only.
Data Type
bool
xml_element property (XMLDecryptor Struct)
Defines the XML element to decrypt.
Syntax
fn xml_element(&self ) -> Result<String, SecureBlackboxError>
fn set_xml_element(&self, value : &str) -> Option<SecureBlackboxError> fn set_xml_element_ref(&self, value : &String) -> Option<SecureBlackboxError>
Default Value
""
Remarks
Defines the XML element to decrypt.
Supported values are:
| "" | an empty string indicates that all xenc:EncryptedData elements will be decrypted. |
| "#id" | indicates an XML element with specified Id. |
| XPointer expression | indicates an XML element selected using XPointer expression. Use add_known_namespace method 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 via add_known_namespace method. |
| Node name | indicates an XML element selected using its NodeName.
For example: "data" - indicates an XML element with node name "data". |
Data Type
String
add_known_namespace method (XMLDecryptor Struct)
Adds known prefix and correspondent namespace URI.
Syntax
fn add_known_namespace(&self, prefix : &str, uri : &str) -> Result<(), SecureBlackboxError>
Remarks
Use this method to add a known prefix and namespace URI that are used in XPath expression within XMLElement/XMLNode property, and within TargetXMLElement and XPathPrefixList properties of the references.
config method (XMLDecryptor Struct)
Sets or retrieves a configuration setting.
Syntax
fn config(&self, configuration_string : &str) -> Result<String, SecureBlackboxError>
Remarks
config is a generic method available in every struct. It is used to set and retrieve configuration settings for the struct.
These settings are similar in functionality to properties, but they are rarely used. In order to avoid "polluting" the property namespace of the struct, 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.
decrypt method (XMLDecryptor Struct)
Decrypts an XML document.
Syntax
fn decrypt(&self) -> Result<(), SecureBlackboxError>
Remarks
Call this method to decrypt an XML document.
do_action method (XMLDecryptor Struct)
Performs an additional action.
Syntax
fn do_action(&self, action_id : &str, action_params : &str) -> Result<String, SecureBlackboxError>
Remarks
do_action is a generic method available in every struct. 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;....
Common ActionIDs:
| Action | Parameters | Returned value | Description |
| ResetTrustedListCache | none | none | Clears the cached list of trusted lists. |
| ResetCertificateCache | none | none | Clears the cached certificates. |
| ResetCRLCache | none | none | Clears the cached CRLs. |
| ResetOCSPResponseCache | none | none | Clears the cached OCSP responses. |
reset method (XMLDecryptor Struct)
Resets the struct settings.
Syntax
fn reset(&self) -> Result<(), SecureBlackboxError>
Remarks
reset is a generic method available in every struct.
on_decryption_info_needed event (XMLDecryptor Struct)
Requests decryption information from the application.
Syntax
// XMLDecryptorDecryptionInfoNeededEventArgs carries the XMLDecryptor DecryptionInfoNeeded event's parameters.
pub struct XMLDecryptorDecryptionInfoNeededEventArgs {
fn cancel_decryption(&self) -> bool
fn set_cancel_decryption(&self, value : bool)
}
// XMLDecryptorDecryptionInfoNeededEvent defines the signature of the XMLDecryptor DecryptionInfoNeeded event's handler function.
pub trait XMLDecryptorDecryptionInfoNeededEvent {
fn on_decryption_info_needed(&self, sender : XMLDecryptor, e : &mut XMLDecryptorDecryptionInfoNeededEventArgs);
}
impl <'a> XMLDecryptor<'a> {
pub fn on_decryption_info_needed(&self) -> &'a dyn XMLDecryptorDecryptionInfoNeededEvent;
pub fn set_on_decryption_info_needed(&mut self, value : &'a dyn XMLDecryptorDecryptionInfoNeededEvent);
...
}
Remarks
This event is fired when the component needs decryption information (the private key) from the user.
Use encrypt_key, Config["KeyName"] and key_encryption_type properties to identify the encryption type and then set decryption_key or key_decryption_key or key_decryption_certificate properties accordingly.
if CancelDecryption property is set to true value (default value) then decryption would fail if provided key/certificate is invalid. Otherwise this event would be fired again.
on_error event (XMLDecryptor Struct)
Information about errors during signing.
Syntax
// XMLDecryptorErrorEventArgs carries the XMLDecryptor Error event's parameters.
pub struct XMLDecryptorErrorEventArgs {
fn error_code(&self) -> i32
fn description(&self) -> &String
}
// XMLDecryptorErrorEvent defines the signature of the XMLDecryptor Error event's handler function.
pub trait XMLDecryptorErrorEvent {
fn on_error(&self, sender : XMLDecryptor, e : &mut XMLDecryptorErrorEventArgs);
}
impl <'a> XMLDecryptor<'a> {
pub fn on_error(&self) -> &'a dyn XMLDecryptorErrorEvent;
pub fn set_on_error(&mut self, value : &'a dyn XMLDecryptorErrorEvent);
...
}
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.
on_external_decrypt event (XMLDecryptor Struct)
Handles remote or external decryption.
Syntax
// XMLDecryptorExternalDecryptEventArgs carries the XMLDecryptor ExternalDecrypt event's parameters.
pub struct XMLDecryptorExternalDecryptEventArgs {
fn operation_id(&self) -> &String
fn algorithm(&self) -> &String
fn pars(&self) -> &String
fn encrypted_data(&self) -> &String
fn data(&self) -> &String
fn set_data(&self, value : &str)
fn set_data_ref(&self, value : &String)
}
// XMLDecryptorExternalDecryptEvent defines the signature of the XMLDecryptor ExternalDecrypt event's handler function.
pub trait XMLDecryptorExternalDecryptEvent {
fn on_external_decrypt(&self, sender : XMLDecryptor, e : &mut XMLDecryptorExternalDecryptEventArgs);
}
impl <'a> XMLDecryptor<'a> {
pub fn on_external_decrypt(&self) -> &'a dyn XMLDecryptorExternalDecryptEvent;
pub fn set_on_external_decrypt(&mut self, value : &'a dyn XMLDecryptorExternalDecryptEvent);
...
}
Remarks
Assign a handler to this event if you need to delegate a low-level decryption operation to an external, remote, or custom decryption engine. The handler receives an encrypted value in the EncryptedData parameter, and is expected to decrypt it and place the decrypted value into the Data parameter.
OperationId provides a comment about the operation and its origin. It depends on the exact struct being used, and may be empty. Algorithm specifies the encryption algorithm being used, and Pars contains algorithm-dependent parameters.
The struct uses base16 (hex) encoding for the EncryptedData, Data, and Pars parameters. If your decryption engine uses a different input and output encoding, you may need to decode and/or encode the data before and/or after the decryption.
Sample data encoded in base16: a0dee2a0382afbb09120ffa7ccd8a152 - lower case base16 A0DEE2A0382AFBB09120FFA7CCD8A152 - upper case base16
on_notification event (XMLDecryptor Struct)
This event notifies the application about an underlying control flow event.
Syntax
// XMLDecryptorNotificationEventArgs carries the XMLDecryptor Notification event's parameters.
pub struct XMLDecryptorNotificationEventArgs {
fn event_id(&self) -> &String
fn event_param(&self) -> &String
}
// XMLDecryptorNotificationEvent defines the signature of the XMLDecryptor Notification event's handler function.
pub trait XMLDecryptorNotificationEvent {
fn on_notification(&self, sender : XMLDecryptor, e : &mut XMLDecryptorNotificationEventArgs);
}
impl <'a> XMLDecryptor<'a> {
pub fn on_notification(&self) -> &'a dyn XMLDecryptorNotificationEvent;
pub fn set_on_notification(&mut self, value : &'a dyn XMLDecryptorNotificationEvent);
...
}
Remarks
The struct fires this event to let the application know about some event, occurrence, or milestone in the struct. 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 struct, the exact action it is performing, or the document being processed, one or both may be omitted.
on_save_external_data event (XMLDecryptor Struct)
Request to save decrypted external data.
Syntax
// XMLDecryptorSaveExternalDataEventArgs carries the XMLDecryptor SaveExternalData event's parameters.
pub struct XMLDecryptorSaveExternalDataEventArgs {
fn external_data(&self) -> &[u8]
}
// XMLDecryptorSaveExternalDataEvent defines the signature of the XMLDecryptor SaveExternalData event's handler function.
pub trait XMLDecryptorSaveExternalDataEvent {
fn on_save_external_data(&self, sender : XMLDecryptor, e : &mut XMLDecryptorSaveExternalDataEventArgs);
}
impl <'a> XMLDecryptor<'a> {
pub fn on_save_external_data(&self) -> &'a dyn XMLDecryptorSaveExternalDataEvent;
pub fn set_on_save_external_data(&mut self, value : &'a dyn XMLDecryptorSaveExternalDataEvent);
...
}
Remarks
This event is fired when the component successfully decrypted an external data and needs to save it. The same data could be read using external_data property.
It makes sense to use this event when the XML document contains several xenc:EncryptedData elements and the component decrypts them all.
Config Settings (XMLDecryptor Struct)
The struct 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 struct, access to these internal properties is provided through the config method.XMLDecryptor Config Settings
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 add_known_namespace method 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 via add_known_namespace method. |
| Node name | indicates an XML element selected using its NodeName.
For example: "data" - indicates an XML element with node name "data". |
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:
| auto | Use hardware cryptography if available; otherwise, fall back to software-based cryptography (default). |
| enable | Always attempt to use hardware cryptography. If unavailable, exception will be thrown. |
| disable | Do not use hardware cryptography. |
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:
| certificate | Enables caching of certificates. |
| crl | Enables caching of Certificate Revocation Lists (CRLs). |
| ocsp | Enables caching of OCSP (Online Certificate Status Protocol) responses. |
Example (default value):
PKICache=certificate,crl,ocsp
In this example, the component caches certificates, CRLs, and OCSP responses.
The default value is an empty string - no cached PKI data is stored on disk.
Example:
PKICachePath=C:\Temp\cache
In this example, the cached PKI data is stored in the C:\Temp\cache directory.
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.
The property accepts comma-separated values where the first descriptor name is used when the OID is mapped, and subsequent values act as aliases for parsing.
Syntax:
Config("XMLRDNDescriptorName[OID]=PrimaryName,Alias1,Alias2");
Where:
OID: The Object Identifier from the certificate's IssuerRDN or SubjectRDN that you want to map.
PrimaryName: The main descriptor name used in the XML signature when the OID is encountered.
Alias1, Alias2, ...: Optional alternative names recognized during parsing.
Usage Examples:
Map OID 2.5.4.5 to SERIALNUMBER:
Config("XMLRDNDescriptorName[2.5.4.5]=SERIALNUMBER");
Map OID 1.2.840.113549.1.9.1 to E, with aliases EMAIL and EMAILADDRESS:
Config("XMLRDNDescriptorName[1.2.840.113549.1.9.1]=E,EMAIL,EMAILADDRESS");
Trappable Errors (XMLDecryptor Struct)
XMLDecryptor Errors
| 1048577 | Invalid parameter (SB_ERROR_INVALID_PARAMETER) |
| 1048578 | Invalid configuration (SB_ERROR_INVALID_SETUP) |
| 1048579 | Invalid state (SB_ERROR_INVALID_STATE) |
| 1048580 | Invalid value (SB_ERROR_INVALID_VALUE) |
| 1048581 | Private key not found (SB_ERROR_NO_PRIVATE_KEY) |
| 1048582 | Cancelled by the user (SB_ERROR_CANCELLED_BY_USER) |
| 1048583 | The file was not found (SB_ERROR_NO_SUCH_FILE) |
| 1048584 | Unsupported feature or operation (SB_ERROR_UNSUPPORTED_FEATURE) |
| 1048585 | General error (SB_ERROR_GENERAL_ERROR) |
| 39845889 | The input file does not exist (SB_ERROR_XML_INPUTFILE_NOT_EXISTS) |
| 39845890 | Data file does not exist (SB_ERROR_XML_DATAFILE_NOT_EXISTS) |
| 39845892 | Unsupported hash algorithm (SB_ERROR_XML_UNSUPPORTED_HASH_ALGORITHM) |
| 39845893 | Unsupported key type (SB_ERROR_XML_UNSUPPORTED_KEY_TYPE) |
| 39845895 | Unsupported encryption algorithm (SB_ERROR_XML_INVALID_ENCRYPTION_METHOD) |
| 39845896 | XML element not found (SB_ERROR_XML_NOT_FOUND) |
| 39845897 | XML element has no ID (SB_ERROR_XML_NO_ELEMENT_ID) |