OfficeQuickSigner Class
Properties Methods Events Config Settings Errors
The OfficeQuickSigner class signs Office documents in a quick-and-easy manner.
Syntax
class secureblackbox.OfficeQuickSigner
Remarks
OfficeQuickSigner provides digital signing capabilities of Office documents.
Property List
The following is the full list of the properties of the class with short descriptions. Click on the links for further details.
document_format | Defines the format of the Office document. |
document_type | Defines the type of the Office document. |
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. |
hash_algorithm | Specifies the hash algorithm to be used. |
input_bytes | Use this property to pass the input to class in byte array form. |
input_file | The file to be signed. |
output_bytes | Use this property to read the output the class object has produced. |
output_file | Defines where to save the signed document. |
signature_type | Specifies the type of the signature to be made. |
sign_core_properties | Whether to sign the core properties of the document. |
sign_document | Whether to sign the document itself. |
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. |
sign_signature_origin | Whether to sign the signature origin. |
Method List
The following is the full list of the methods of the class with short descriptions. Click on the links for further details.
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. |
reset | Resets the class settings. |
sign | Calculates the signature value. |
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. |
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_error | Information about errors during signing. |
on_external_sign | Handles remote or external signing initiated by the SignExternal method or other source. |
on_notification | This event notifies the application about an underlying control flow event. |
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. |
AsyncDocumentID | Specifies the document ID for SignAsyncEnd() call. |
ChainCurrentCACert | Returns the current CA certificate. |
ChainCurrentCert | Returns the certificate that is currently being validated. |
ChainCurrentCRL | Returns the current CRL. |
ChainCurrentCRLSize | Returns the size of the current CRL. |
ChainCurrentOCSP | Returns the current OCSP response. |
ChainCurrentOCSPSigner | Returns the signer of the current OCSP object. |
ChainInterimDetails | Returns the current interim validation details. |
ChainInterimResult | Returns the current interim validation result. |
CheckValidityPeriodForTrusted | Whether to check validity period for trusted certificates. |
ClaimedRolesXML | The XML content of the claimed roles. |
ClaimedRoleText | The text of the claimed role. |
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. |
CustomTrustedLists | Specifies the custom TrustedLists. |
CustomTSLs | Specifies the custom TrustedLists. |
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. |
DislikeOpenEndedOCSPs | Tells the class to discourage OCSP responses without an explicit NextUpdate parameter. |
ExclusiveCanonicalizationPrefix | Specifies the exclusive canonicalization prefix. |
ExpireTime | Signature expiration time in UTC. |
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. |
HMACSigningUsed | Whether to use HMAC signing. |
IgnoreChainLoops | Whether chain loops should be ignored. |
IgnoreChainValidationErrors | Whether to ignore any certificate chain validation issues. |
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. |
IncludeKnownRevocationInfoToSignature | Whether to include custom revocation info to the signature. |
InclusiveNamespacesPrefixList | Specifies the InclusiveNamespaces PrefixList. |
KeyInfoID | Specifies the ID for KeyInfo element. |
KeyName | Contains information about the key used for signing. |
ManifestCount | TBD. |
ManifestID[i] | TBD. |
ManifestObjectIndex[i] | TBD. |
ManifestXML[i] | TBD. |
ObjectCount | TBD. |
ObjectEncoding[i] | TBD. |
ObjectID[i] | TBD. |
ObjectMimeType[i] | TBD. |
ObjectSignaturePropertiesCount | TBD. |
ObjectSignaturePropertiesID[i] | TBD. |
ObjectSignaturePropertiesObjectIndex[i] | TBD. |
ObjectSignaturePropertiesXML[i] | TBD. |
ObjectSignaturePropertyCount | TBD. |
ObjectSignaturePropertyID[i] | TBD. |
ObjectSignaturePropertyPropertiesIndex[i] | TBD. |
ObjectSignaturePropertyTarget[i] | TBD. |
ObjectSignaturePropertyXML[i] | TBD. |
ObjectXML[i] | TBD. |
PolicyDescription | signature policy description. |
PolicyDescription | signature policy description. |
PolicyExplicitText | The explicit text of the user notice. |
PolicyExplicitText | The explicit text of the user notice. |
PolicyUNNumbers | The noticeNumbers part of the NoticeReference CAdES attribute. |
PolicyUNNumbers | The noticeNumbers part of the NoticeReference CAdES attribute. |
PolicyUNOrganization | The organization part of the NoticeReference qualifier. |
PolicyUNOrganization | The organization part of the NoticeReference qualifier. |
ProductionPlace | Identifies the place of the signature production. |
ProductionPlace | Identifies the place of the signature production. |
PromoteLongOCSPResponses | Whether long OCSP responses are requested. |
PSSUsed | Whether to use RSASSA-PSS algorithm. |
PSSUsed | Whether to use RSASSA-PSS algorithm. |
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. |
SchemeParams | The algorithm scheme parameters to employ. |
SignatureID | Specifies the ID for Signature element. |
SignatureInfoAddress1 | Specifies the location at which the signature was created. |
SignatureInfoAddress2 | Specifies the location at which the signature was created. |
SignatureInfoComments | Comments to the signature info text. |
SignatureInfoDelegateSuggestedSigner | Specifies the name of a person. |
SignatureInfoDelegateSuggestedSigner2 | Specifies the title of a person. |
SignatureInfoDelegateSuggestedSignerEmail | Specifies the e-mail address of a person. |
SignatureInfoImage | Specifies an image for the digital signature. |
SignatureInfoIncluded | Whether to include the signature info. |
SignatureInfoInvalidLnImage | Specifies the image of an invalid signature. |
SignatureInfoSignatureType | Specifies the type of the digital signature. |
SignatureInfoText | The text to be displayed as the signature info. |
SignatureInfoValidLnImage | Specifies the image of a valid signature. |
SignatureLineAdditionalSignatureInfo[Index] | Contains additional signature information. |
SignatureLineAllowComments[Index] | Indicates if comments are allowed. |
SignatureLineCount | The number of signature lines. |
SignatureLineId[Index] | Contains signature unique ID. |
SignatureLineImageData[Index] | Contains signature image. |
SignatureLineIndex | Specifies the index of the signature line to sign. |
SignatureLineShowSignDate[Index] | Indicates if signing date should be shown. |
SignatureLineSignatureIndex[Index] | The index of the signature that signs signature line. |
SignatureLineSignatureProviderId[Index] | Contains signature provider ID. |
SignatureLineSignatureProviderUrl[Index] | Contains signature provider URL. |
SignatureLineSigned[Index] | Indicates if signature line is signed. |
SignatureLineSigningInstructions[Index] | Contains signing instructions. |
SignatureLineSuggestedSigner2[Index] | Suggested signer line two. |
SignatureLineSuggestedSigner[Index] | Suggested signer line one. |
SignatureLineSuggestedSignerEmail[Index] | Suggested signer email address. |
SignatureOriginPartURI | Contains the signature origin part URI element. |
SignaturePartName | Name of signature part. |
SignaturePrefix | Specifies the signature prefix. |
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. |
SigningCertificatesChain | The indicator of which certificates should be/are included as the signing chain. |
SigningCertificatesHashAlgorithm | Specifies the hash algorithm used for SigningCertificates. |
SignTime | Specifies the signing time in UTC. |
SigPolicyDescription | signature policy description. |
SigPolicyDescription | signature policy description. |
SigPolicyExplicitText | The explicit text of the user notice. |
SigPolicyExplicitText | The explicit text of the user notice. |
SigPolicyHash | The EPES policy hash. |
SigPolicyHash | The EPES policy hash. |
SigPolicyHashAlgorithm | The hash algorithm that was used to generate the EPES policy hash. |
SigPolicyHashAlgorithm | The hash algorithm that was used to generate the EPES policy hash. |
SigPolicyID | The EPES policy ID. |
SigPolicyID | The EPES policy ID. |
SigPolicyNoticeNumbers | The noticeNumbers part of the NoticeReference CAdES attribute. |
SigPolicyNoticeNumbers | The noticeNumbers part of the NoticeReference CAdES attribute. |
SigPolicyNoticeOrganization | The organization part of the NoticeReference qualifier. |
SigPolicyNoticeOrganization | The organization part of the NoticeReference qualifier. |
SigPolicyURI | The EPES policy URI. |
SigPolicyURI | The EPES policy URI. |
TempPath | Path for storing temporary files. |
TimestampCanonicalizationMethod | Specifies canonicalization method used in timestamp. |
TimestampResponse | A base16-encoded timestamp response received from a TSA. |
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. |
UseDefaultTrustedLists | Enables or disables the use of the default TrustedLists. |
UseDefaultTSLs | Enables or disables the use of the default TrustedLists. |
UseHMACSigning | Whether to use HMAC signing. |
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. |
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. |
UseValidatorSettingsForTLSValidation | Whether to employ the primary chain validator setup for auxiliary TLS chain validations. |
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. |
XAdESPrefix | Specifies the XAdES prefix. |
XAdESv141Prefix | Specifies the XAdES v1.4.1 prefix. |
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 class. |
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. |
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 classes 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. |
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. |
UseInternalRandom | Switches between SecureBlackbox-own and platform PRNGs. |
UseLegacyAdESValidation | Enables legacy AdES validation mode. |
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. |
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. |
document_format Property
Defines the format of the Office document.
Syntax
def get_document_format() -> int: ...
document_format = property(get_document_format, None)
Default Value
0
Remarks
This property contains the Office document format.
odfUnknown | 0 | Unknown document format |
odfBinary | 1 | Binary Office document |
odfOpenXML | 2 | OpenXML Office document |
odfOpenXPS | 3 | OpenXPS document |
odfOpenDocument | 4 | OpenOffice document |
This property is read-only.
document_type Property
Defines the type of the Office document.
Syntax
def get_document_type() -> str: ...
document_type = property(get_document_type, None)
Default Value
""
Remarks
This property contains the Office document type.
This property is read-only.
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.
hash_algorithm Property
Specifies the hash algorithm to be used.
Syntax
def get_hash_algorithm() -> str: ... def set_hash_algorithm(value: str) -> None: ...
hash_algorithm = property(get_hash_algorithm, set_hash_algorithm)
Default Value
"SHA256"
Remarks
Use this property to set the hash algorithm for signature calculation.
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 |
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 file to be signed.
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 the path to the Office document to be signed.
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
Defines where to save the signed document.
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
Specifies the path where the signed Office document should be saved.
signature_type Property
Specifies the type of the signature to be made.
Syntax
def get_signature_type() -> int: ... def set_signature_type(value: int) -> None: ...
signature_type = property(get_signature_type, set_signature_type)
Default Value
0
Remarks
Use this property to define what kind of signature should be made over the document.
ostDefault | 0 | |
ostBinaryCryptoAPI | 1 | |
ostBinaryXML | 2 | |
ostOpenXML | 3 | |
ostOpenXPS | 4 | |
ostOpenDocument | 5 |
sign_core_properties Property
Whether to sign the core properties of the document.
Syntax
def get_sign_core_properties() -> bool: ... def set_sign_core_properties(value: bool) -> None: ...
sign_core_properties = property(get_sign_core_properties, set_sign_core_properties)
Default Value
FALSE
Remarks
The core properties are a set of elements that describe common and well-known properties of the Office document package such as creator, version, revision, etc.
sign_document Property
Whether to sign the document itself.
Syntax
def get_sign_document() -> bool: ... def set_sign_document(value: bool) -> None: ...
sign_document = property(get_sign_document, set_sign_document)
Default Value
TRUE
Remarks
Use this property to specify whether the signature should be computed over the document itself.
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.
sign_signature_origin Property
Whether to sign the signature origin.
Syntax
def get_sign_signature_origin() -> bool: ... def set_sign_signature_origin(value: bool) -> None: ...
sign_signature_origin = property(get_sign_signature_origin, set_sign_signature_origin)
Default Value
FALSE
Remarks
Specifies whether to sign the XPS document's signature origin.
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.
reset Method
Resets the class settings.
Syntax
def reset() -> None: ...
Remarks
reset is a generic method available in every class.
sign Method
Calculates the signature value.
Syntax
def sign() -> None: ...
Remarks
Call this method to generate a signature over the 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.
on_error Event
Information about errors during signing.
Syntax
class OfficeQuickSignerErrorEventParams(object): @property def error_code() -> int: ... @property def description() -> str: ... # In class OfficeQuickSigner: @property def on_error() -> Callable[[OfficeQuickSignerErrorEventParams], None]: ... @on_error.setter def on_error(event_hook: Callable[[OfficeQuickSignerErrorEventParams], None]) -> None: ...
Remarks
This event is fired in case of exceptional conditions during the office document processing.
ErrorCode contains an error code and Description contains a textual description of the error.
on_external_sign Event
Handles remote or external signing initiated by the SignExternal method or other source.
Syntax
class OfficeQuickSignerExternalSignEventParams(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 OfficeQuickSigner: @property def on_external_sign() -> Callable[[OfficeQuickSignerExternalSignEventParams], None]: ... @on_external_sign.setter def on_external_sign(event_hook: Callable[[OfficeQuickSignerExternalSignEventParams], 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_notification Event
This event notifies the application about an underlying control flow event.
Syntax
class OfficeQuickSignerNotificationEventParams(object): @property def event_id() -> str: ... @property def event_param() -> str: ... # In class OfficeQuickSigner: @property def on_notification() -> Callable[[OfficeQuickSignerNotificationEventParams], None]: ... @on_notification.setter def on_notification(event_hook: Callable[[OfficeQuickSignerNotificationEventParams], 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:
DocumentLoaded | Reports the completion of Office document processing by the component. Use the event handler to access document-related information. The EventParam value passed with this EventID is empty. |
RetrieveQualifyingProperties | TBD |
SignaturesLoaded | Notifies the application that the component has finished loading signatures. |
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. |
OfficeQuickSigner 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.OfficeQuickSigner 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.
Sample value: '{"addressCountry": "UK", "addressLocality": "London", "postalCode": "N1 7GU", "streetAddress": "20-22 Wenlock Road"}'
Identifies the place of the signature production.The signature production place in JSON format that was included or to be included into the signature.Sample value: '{"addressCountry": "UK", "addressLocality": "London", "postalCode": "N1 7GU", "streetAddress": "20-22 Wenlock Road"}'
Sample value: '{"addressCountry": "UK", "addressLocality": "London", "postalCode": "N1 7GU", "streetAddress": "20-22 Wenlock Road"}'
Identifies the place of the signature production.The signature production place in JSON format that was included or to be included into the signature.Sample value: '{"addressCountry": "UK", "addressLocality": "London", "postalCode": "N1 7GU", "streetAddress": "20-22 Wenlock Road"}'
Supported values are:
SigAndRefs | SigAndRefs timestamp | |
RefsOnly | RefsOnly timestamp |
This setting is used to provide parameters for some cryptographic schemes. Use the Name1=Value1;Name2=Value2;... syntax to encode the parameters. For example: Scheme=PSS;SaltSize=32;TrailerField=1.
Sample code that demonstrates adding signature information for OpenXML documents:
signer.NewSignature.Level = aslEPES;
signer.Config("SignatureInfoIncluded=true");
signer.Config("SignatureInfoText=Text");
signer.Config("SignatureInfoComments=Comment");
signer.Config("ClaimedRoleText=Role");
signer.Config("CommitmentTypeIndicationCount=1");
signer.Config("CommitmentTypeIndicationAllSignedDataObjects=true");
signer.Config("CommitmentTypeIndicationIdentifier=http://uri.etsi.org/01903/v1.2.2#ProofOfApproval");
signer.Config("CommitmentTypeIndicationIdentifierDescription=Approved this document");
signer.Config("ProductionPlace=CITY=Test City, ST=Test State, POSTALCODE=Test Code, C=Test Country");
signer.Config("SignatureInfoAddress1=Address1");
signer.Config("SignatureInfoAddress2=Address2");
When the type is 2, both SignatureInfoValidLnImage and SignatureInfoInvalidLnImage images should be specified.
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.
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).
The following default TSLs are used: EU (European Union) LOTL (list of trusted lists).
The following default TSLs are used: EU (European Union) LOTL (list of trusted lists).
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. |
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.
OfficeQuickSigner Errors
OfficeQuickSigner 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) |
24117249 | The input file does not exist (SB_ERROR_OFFICE_INPUTFILE_NOT_EXISTS) |
24117250 | Unsupported document format (SB_ERROR_OFFICE_UNSUPPORTED_DOCUMENT_FORMAT) |
24117251 | The document cannot be signed (SB_ERROR_OFFICE_DOCUMENT_NOT_SIGNABLE) |
24117253 | The document is already encrypted (SB_ERROR_OFFICE_DOCUMENT_ENCRYPTED) |
24117254 | The document cannot be encrypted (SB_ERROR_OFFICE_DOCUMENT_NOT_ENCRYPTABLE) |
24117255 | The document is not encrypted (SB_ERROR_OFFICE_DOCUMENT_NOT_ENCRYPTED) |
24117256 | Unsupported encryption type (SB_ERROR_OFFICE_DOCUMENT_UNKNOWN_ENCRYPTION) |
24117257 | Invalid password (SB_ERROR_OFFICE_INVALID_PASSWORD) |
24117258 | No signature found to complete the asynchronous signing (SB_ERROR_OFFICE_SIGNATURE_NOT_FOUND) |