OfficeQuickSigner Class
Properties Methods Events Config Settings Errors
The OfficeQuickSigner class signs Office documents in a quick-and-easy manner.
Syntax
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.
DocumentFormat | Defines the format of the Office document. |
DocumentType | Defines the type of the Office document. |
ExternalCryptoAsyncDocumentID | Specifies an optional document ID for SignAsyncBegin() and SignAsyncEnd() calls. |
ExternalCryptoCustomParams | Custom parameters to be passed to the signing service (uninterpreted). |
ExternalCryptoData | Additional data to be included in the async state and mirrored back by the requestor. |
ExternalCryptoExternalHashCalculation | Specifies whether the message hash is to be calculated at the external endpoint. |
ExternalCryptoHashAlgorithm | Specifies the request's signature hash algorithm. |
ExternalCryptoKeyID | The ID of the pre-shared key used for DC request authentication. |
ExternalCryptoKeySecret | The pre-shared key used for DC request authentication. |
ExternalCryptoMethod | Specifies the asynchronous signing method. |
ExternalCryptoMode | Specifies the external cryptography mode. |
ExternalCryptoPublicKeyAlgorithm | Provide public key algorithm here if the certificate is not available on the pre-signing stage. |
FIPSMode | Reserved. |
HashAlgorithm | Specifies the hash algorithm to be used. |
InputBytes | Use this property to pass the input to class in the byte array form. |
InputFile | The file to be signed. |
OutputBytes | Use this property to read the output the class object has produced. |
OutputFile | Defines where to save the signed document. |
SignatureType | Specifies the type of the signature to be made. |
SignCoreProperties | Whether to sign the core properties of the document. |
SignDocument | Whether to sign the document itself. |
SigningCertBytes | Returns raw certificate data in DER format. |
SigningCertHandle | Allows to get or set a 'handle', a unique identifier of the underlying property object. |
SigningChainCount | The number of records in the SigningChain arrays. |
SigningChainBytes | Returns raw certificate data in DER format. |
SigningChainHandle | Allows to get or set a 'handle', a unique identifier of the underlying property object. |
SignSignatureOrigin | 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. |
DoAction | Performs an additional action. |
ExtractAsyncData | Extracts user data from the DC signing service response. |
Sign | Calculates the signature value. |
SignAsyncBegin | Initiates the asynchronous signing operation. |
SignAsyncEnd | Completes the asynchronous signing operation. |
SignExternal | 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.
Error | Information about errors during signing. |
ExternalSign | Handles remote or external signing initiated by the SignExternal method or other source. |
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.
ExpireTime | Signature expiration time in UTC. |
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. |
SignTime | Specifies the signing time in UTC. |
TempPath | Location where the temporary files are stored. |
CheckKeyIntegrityBeforeUse | Enables or disable private key integrity check before use. |
CookieCaching | Specifies whether a cookie cache should be used for HTTP(S) transports. |
Cookies | Gets or sets local cookies for the class. |
DefDeriveKeyIterations | Specifies the default key derivation algorithm iteration count. |
EnableClientSideSSLFFDHE | Enables or disables finite field DHE key exchange support in TLS clients. |
GlobalCookies | Gets or sets global cookies for all the HTTP transports. |
HttpUserAgent | Specifies the user agent name to be used by all HTTP clients. |
LogDestination | Specifies the debug log destination. |
LogDetails | Specifies the debug log details to dump. |
LogFile | Specifies the debug log filename. |
LogFilters | Specifies the debug log filters. |
LogFlushMode | Specifies the log flush mode. |
LogLevel | Specifies the debug log level. |
LogMaxEventCount | Specifies the maximum number of events to cache before further action is taken. |
LogRotationMode | Specifies the log rotation mode. |
MaxASN1BufferLength | Specifies the maximal allowed length for ASN.1 primitive tag data. |
MaxASN1TreeDepth | Specifies the maximal depth for processed ASN.1 trees. |
OCSPHashAlgorithm | Specifies the hash algorithm to be used to identify certificates in OCSP requests. |
StaticDNS | Specifies whether static DNS rules should be used. |
StaticIPAddress[domain] | Gets or sets an IP address for the specified domain name. |
StaticIPAddresses | Gets or sets all the static DNS rules. |
Tag | Allows to store any custom data. |
TLSSessionGroup | Specifies the group name of TLS sessions to be used for session resumption. |
TLSSessionLifetime | Specifies lifetime in seconds of the cached TLS session. |
TLSSessionPurgeInterval | Specifies how often the session cache should remove the expired TLS sessions. |
UseOwnDNSResolver | Specifies whether the client classes should use own DNS resolver. |
UseSharedSystemStorages | Specifies whether the validation engine should use a global per-process copy of the system certificate stores. |
UseSystemOAEPAndPSS | Enforces or disables the use of system-driven RSA OAEP and PSS computations. |
UseSystemRandom | Enables or disables the use of the OS PRNG. |
DocumentFormat Property (OfficeQuickSigner Class)
Defines the format of the Office document.
Syntax
ANSI (Cross Platform) int GetDocumentFormat(); Unicode (Windows) INT GetDocumentFormat();
Possible Values
ODF_UNKNOWN(0),
ODF_BINARY(1),
ODF_OPEN_XML(2),
ODF_OPEN_XPS(3),
ODF_OPEN_DOCUMENT(4)
int secureblackbox_officequicksigner_getdocumentformat(void* lpObj);
int GetDocumentFormat();
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 and not available at design time.
Data Type
Integer
DocumentType Property (OfficeQuickSigner Class)
Defines the type of the Office document.
Syntax
ANSI (Cross Platform) char* GetDocumentType(); Unicode (Windows) LPWSTR GetDocumentType();
char* secureblackbox_officequicksigner_getdocumenttype(void* lpObj);
QString GetDocumentType();
Default Value
""
Remarks
This property contains the Office document type.
This property is read-only and not available at design time.
Data Type
String
ExternalCryptoAsyncDocumentID Property (OfficeQuickSigner Class)
Specifies an optional document ID for SignAsyncBegin() and SignAsyncEnd() calls.
Syntax
ANSI (Cross Platform) char* GetExternalCryptoAsyncDocumentID();
int SetExternalCryptoAsyncDocumentID(const char* lpszExternalCryptoAsyncDocumentID); Unicode (Windows) LPWSTR GetExternalCryptoAsyncDocumentID();
INT SetExternalCryptoAsyncDocumentID(LPCWSTR lpszExternalCryptoAsyncDocumentID);
char* secureblackbox_officequicksigner_getexternalcryptoasyncdocumentid(void* lpObj);
int secureblackbox_officequicksigner_setexternalcryptoasyncdocumentid(void* lpObj, const char* lpszExternalCryptoAsyncDocumentID);
QString GetExternalCryptoAsyncDocumentID();
int SetExternalCryptoAsyncDocumentID(QString qsExternalCryptoAsyncDocumentID);
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 pre-signing (SignAsyncBegin) and completion (SignAsyncEnd) stages.
Data Type
String
ExternalCryptoCustomParams Property (OfficeQuickSigner Class)
Custom parameters to be passed to the signing service (uninterpreted).
Syntax
ANSI (Cross Platform) char* GetExternalCryptoCustomParams();
int SetExternalCryptoCustomParams(const char* lpszExternalCryptoCustomParams); Unicode (Windows) LPWSTR GetExternalCryptoCustomParams();
INT SetExternalCryptoCustomParams(LPCWSTR lpszExternalCryptoCustomParams);
char* secureblackbox_officequicksigner_getexternalcryptocustomparams(void* lpObj);
int secureblackbox_officequicksigner_setexternalcryptocustomparams(void* lpObj, const char* lpszExternalCryptoCustomParams);
QString GetExternalCryptoCustomParams();
int SetExternalCryptoCustomParams(QString qsExternalCryptoCustomParams);
Default Value
""
Remarks
Custom parameters to be passed to the signing service (uninterpreted).
This property is not available at design time.
Data Type
String
ExternalCryptoData Property (OfficeQuickSigner Class)
Additional data to be included in the async state and mirrored back by the requestor.
Syntax
ANSI (Cross Platform) char* GetExternalCryptoData();
int SetExternalCryptoData(const char* lpszExternalCryptoData); Unicode (Windows) LPWSTR GetExternalCryptoData();
INT SetExternalCryptoData(LPCWSTR lpszExternalCryptoData);
char* secureblackbox_officequicksigner_getexternalcryptodata(void* lpObj);
int secureblackbox_officequicksigner_setexternalcryptodata(void* lpObj, const char* lpszExternalCryptoData);
QString GetExternalCryptoData();
int SetExternalCryptoData(QString qsExternalCryptoData);
Default Value
""
Remarks
Additional data to be included in the async state and mirrored back by the requestor
This property is not available at design time.
Data Type
String
ExternalCryptoExternalHashCalculation Property (OfficeQuickSigner Class)
Specifies whether the message hash is to be calculated at the external endpoint.
Syntax
ANSI (Cross Platform) int GetExternalCryptoExternalHashCalculation();
int SetExternalCryptoExternalHashCalculation(int bExternalCryptoExternalHashCalculation); Unicode (Windows) BOOL GetExternalCryptoExternalHashCalculation();
INT SetExternalCryptoExternalHashCalculation(BOOL bExternalCryptoExternalHashCalculation);
int secureblackbox_officequicksigner_getexternalcryptoexternalhashcalculation(void* lpObj);
int secureblackbox_officequicksigner_setexternalcryptoexternalhashcalculation(void* lpObj, int bExternalCryptoExternalHashCalculation);
bool GetExternalCryptoExternalHashCalculation();
int SetExternalCryptoExternalHashCalculation(bool bExternalCryptoExternalHashCalculation);
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 all components. In particular, components operating with larger objects (PDFSigner, CAdESSigner, XAdESSigner) do not support it.
Data Type
Boolean
ExternalCryptoHashAlgorithm Property (OfficeQuickSigner Class)
Specifies the request's signature hash algorithm.
Syntax
ANSI (Cross Platform) char* GetExternalCryptoHashAlgorithm();
int SetExternalCryptoHashAlgorithm(const char* lpszExternalCryptoHashAlgorithm); Unicode (Windows) LPWSTR GetExternalCryptoHashAlgorithm();
INT SetExternalCryptoHashAlgorithm(LPCWSTR lpszExternalCryptoHashAlgorithm);
char* secureblackbox_officequicksigner_getexternalcryptohashalgorithm(void* lpObj);
int secureblackbox_officequicksigner_setexternalcryptohashalgorithm(void* lpObj, const char* lpszExternalCryptoHashAlgorithm);
QString GetExternalCryptoHashAlgorithm();
int SetExternalCryptoHashAlgorithm(QString qsExternalCryptoHashAlgorithm);
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
ExternalCryptoKeyID Property (OfficeQuickSigner Class)
The ID of the pre-shared key used for DC request authentication.
Syntax
ANSI (Cross Platform) char* GetExternalCryptoKeyID();
int SetExternalCryptoKeyID(const char* lpszExternalCryptoKeyID); Unicode (Windows) LPWSTR GetExternalCryptoKeyID();
INT SetExternalCryptoKeyID(LPCWSTR lpszExternalCryptoKeyID);
char* secureblackbox_officequicksigner_getexternalcryptokeyid(void* lpObj);
int secureblackbox_officequicksigner_setexternalcryptokeyid(void* lpObj, const char* lpszExternalCryptoKeyID);
QString GetExternalCryptoKeyID();
int SetExternalCryptoKeyID(QString qsExternalCryptoKeyID);
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 extra protection layer for the protocol and diminishes the risk of private key becoming abused by foreign parties. Use this property to provide the pre-shared key identifier, and use ExternalCryptoKeySecret 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
ExternalCryptoKeySecret Property (OfficeQuickSigner Class)
The pre-shared key used for DC request authentication.
Syntax
ANSI (Cross Platform) char* GetExternalCryptoKeySecret();
int SetExternalCryptoKeySecret(const char* lpszExternalCryptoKeySecret); Unicode (Windows) LPWSTR GetExternalCryptoKeySecret();
INT SetExternalCryptoKeySecret(LPCWSTR lpszExternalCryptoKeySecret);
char* secureblackbox_officequicksigner_getexternalcryptokeysecret(void* lpObj);
int secureblackbox_officequicksigner_setexternalcryptokeysecret(void* lpObj, const char* lpszExternalCryptoKeySecret);
QString GetExternalCryptoKeySecret();
int SetExternalCryptoKeySecret(QString qsExternalCryptoKeySecret);
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 ExternalCryptoKeyID topic.
Data Type
String
ExternalCryptoMethod Property (OfficeQuickSigner Class)
Specifies the asynchronous signing method.
Syntax
ANSI (Cross Platform) int GetExternalCryptoMethod();
int SetExternalCryptoMethod(int iExternalCryptoMethod); Unicode (Windows) INT GetExternalCryptoMethod();
INT SetExternalCryptoMethod(INT iExternalCryptoMethod);
Possible Values
ASMD_PKCS1(0),
ASMD_PKCS7(1)
int secureblackbox_officequicksigner_getexternalcryptomethod(void* lpObj);
int secureblackbox_officequicksigner_setexternalcryptomethod(void* lpObj, int iExternalCryptoMethod);
int GetExternalCryptoMethod();
int SetExternalCryptoMethod(int iExternalCryptoMethod);
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
Integer
ExternalCryptoMode Property (OfficeQuickSigner Class)
Specifies the external cryptography mode.
Syntax
ANSI (Cross Platform) int GetExternalCryptoMode();
int SetExternalCryptoMode(int iExternalCryptoMode); Unicode (Windows) INT GetExternalCryptoMode();
INT SetExternalCryptoMode(INT iExternalCryptoMode);
Possible Values
ECM_DEFAULT(0),
ECM_DISABLED(1),
ECM_GENERIC(2),
ECM_DCAUTH(3),
ECM_DCAUTH_JSON(4)
int secureblackbox_officequicksigner_getexternalcryptomode(void* lpObj);
int secureblackbox_officequicksigner_setexternalcryptomode(void* lpObj, int iExternalCryptoMode);
int GetExternalCryptoMode();
int SetExternalCryptoMode(int iExternalCryptoMode);
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 OnExternalSign event (2) |
ecmDCAuth | DCAuth signing (3) |
ecmDCAuthJSON | DCAuth signing in JSON format (4) |
This property is not available at design time.
Data Type
Integer
ExternalCryptoPublicKeyAlgorithm Property (OfficeQuickSigner Class)
Provide public key algorithm here if the certificate is not available on the pre-signing stage.
Syntax
ANSI (Cross Platform) char* GetExternalCryptoPublicKeyAlgorithm();
int SetExternalCryptoPublicKeyAlgorithm(const char* lpszExternalCryptoPublicKeyAlgorithm); Unicode (Windows) LPWSTR GetExternalCryptoPublicKeyAlgorithm();
INT SetExternalCryptoPublicKeyAlgorithm(LPCWSTR lpszExternalCryptoPublicKeyAlgorithm);
char* secureblackbox_officequicksigner_getexternalcryptopublickeyalgorithm(void* lpObj);
int secureblackbox_officequicksigner_setexternalcryptopublickeyalgorithm(void* lpObj, const char* lpszExternalCryptoPublicKeyAlgorithm);
QString GetExternalCryptoPublicKeyAlgorithm();
int SetExternalCryptoPublicKeyAlgorithm(QString qsExternalCryptoPublicKeyAlgorithm);
Default Value
""
Remarks
Provide 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 |
Data Type
String
FIPSMode Property (OfficeQuickSigner Class)
Reserved.
Syntax
ANSI (Cross Platform) int GetFIPSMode();
int SetFIPSMode(int bFIPSMode); Unicode (Windows) BOOL GetFIPSMode();
INT SetFIPSMode(BOOL bFIPSMode);
int secureblackbox_officequicksigner_getfipsmode(void* lpObj);
int secureblackbox_officequicksigner_setfipsmode(void* lpObj, int bFIPSMode);
bool GetFIPSMode();
int SetFIPSMode(bool bFIPSMode);
Default Value
FALSE
Remarks
This property is reserved for future use.
Data Type
Boolean
HashAlgorithm Property (OfficeQuickSigner Class)
Specifies the hash algorithm to be used.
Syntax
ANSI (Cross Platform) char* GetHashAlgorithm();
int SetHashAlgorithm(const char* lpszHashAlgorithm); Unicode (Windows) LPWSTR GetHashAlgorithm();
INT SetHashAlgorithm(LPCWSTR lpszHashAlgorithm);
char* secureblackbox_officequicksigner_gethashalgorithm(void* lpObj);
int secureblackbox_officequicksigner_sethashalgorithm(void* lpObj, const char* lpszHashAlgorithm);
QString GetHashAlgorithm();
int SetHashAlgorithm(QString qsHashAlgorithm);
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 |
Data Type
String
InputBytes Property (OfficeQuickSigner Class)
Use this property to pass the input to class in the byte array form.
Syntax
ANSI (Cross Platform) int GetInputBytes(char* &lpInputBytes, int &lenInputBytes);
int SetInputBytes(const char* lpInputBytes, int lenInputBytes); Unicode (Windows) INT GetInputBytes(LPSTR &lpInputBytes, INT &lenInputBytes);
INT SetInputBytes(LPCSTR lpInputBytes, INT lenInputBytes);
int secureblackbox_officequicksigner_getinputbytes(void* lpObj, char** lpInputBytes, int* lenInputBytes);
int secureblackbox_officequicksigner_setinputbytes(void* lpObj, const char* lpInputBytes, int lenInputBytes);
QByteArray GetInputBytes();
int SetInputBytes(QByteArray qbaInputBytes);
Remarks
Assign a byte array containing the data to be processed to this property.
This property is not available at design time.
Data Type
Byte Array
InputFile Property (OfficeQuickSigner Class)
The file to be signed.
Syntax
ANSI (Cross Platform) char* GetInputFile();
int SetInputFile(const char* lpszInputFile); Unicode (Windows) LPWSTR GetInputFile();
INT SetInputFile(LPCWSTR lpszInputFile);
char* secureblackbox_officequicksigner_getinputfile(void* lpObj);
int secureblackbox_officequicksigner_setinputfile(void* lpObj, const char* lpszInputFile);
QString GetInputFile();
int SetInputFile(QString qsInputFile);
Default Value
""
Remarks
Provide the path to the Office document to be signed.
Data Type
String
OutputBytes Property (OfficeQuickSigner Class)
Use this property to read the output the class object has produced.
Syntax
ANSI (Cross Platform) int GetOutputBytes(char* &lpOutputBytes, int &lenOutputBytes); Unicode (Windows) INT GetOutputBytes(LPSTR &lpOutputBytes, INT &lenOutputBytes);
int secureblackbox_officequicksigner_getoutputbytes(void* lpObj, char** lpOutputBytes, int* lenOutputBytes);
QByteArray GetOutputBytes();
Remarks
Read the contents of this property after the operation is completed to read the produced output. This property will only be set if OutputFile and OutputStream properties had not been assigned.
This property is read-only and not available at design time.
Data Type
Byte Array
OutputFile Property (OfficeQuickSigner Class)
Defines where to save the signed document.
Syntax
ANSI (Cross Platform) char* GetOutputFile();
int SetOutputFile(const char* lpszOutputFile); Unicode (Windows) LPWSTR GetOutputFile();
INT SetOutputFile(LPCWSTR lpszOutputFile);
char* secureblackbox_officequicksigner_getoutputfile(void* lpObj);
int secureblackbox_officequicksigner_setoutputfile(void* lpObj, const char* lpszOutputFile);
QString GetOutputFile();
int SetOutputFile(QString qsOutputFile);
Default Value
""
Remarks
Specifies the path where the signed Office document should be saved.
Data Type
String
SignatureType Property (OfficeQuickSigner Class)
Specifies the type of the signature to be made.
Syntax
ANSI (Cross Platform) int GetSignatureType();
int SetSignatureType(int iSignatureType); Unicode (Windows) INT GetSignatureType();
INT SetSignatureType(INT iSignatureType);
Possible Values
OST_DEFAULT(0),
OST_BINARY_CRYPTO_API(1),
OST_BINARY_XML(2),
OST_OPEN_XML(3),
OST_OPEN_XPS(4),
OST_OPEN_DOCUMENT(5)
int secureblackbox_officequicksigner_getsignaturetype(void* lpObj);
int secureblackbox_officequicksigner_setsignaturetype(void* lpObj, int iSignatureType);
int GetSignatureType();
int SetSignatureType(int iSignatureType);
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 |
Data Type
Integer
SignCoreProperties Property (OfficeQuickSigner Class)
Whether to sign the core properties of the document.
Syntax
ANSI (Cross Platform) int GetSignCoreProperties();
int SetSignCoreProperties(int bSignCoreProperties); Unicode (Windows) BOOL GetSignCoreProperties();
INT SetSignCoreProperties(BOOL bSignCoreProperties);
int secureblackbox_officequicksigner_getsigncoreproperties(void* lpObj);
int secureblackbox_officequicksigner_setsigncoreproperties(void* lpObj, int bSignCoreProperties);
bool GetSignCoreProperties();
int SetSignCoreProperties(bool bSignCoreProperties);
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.
Data Type
Boolean
SignDocument Property (OfficeQuickSigner Class)
Whether to sign the document itself.
Syntax
ANSI (Cross Platform) int GetSignDocument();
int SetSignDocument(int bSignDocument); Unicode (Windows) BOOL GetSignDocument();
INT SetSignDocument(BOOL bSignDocument);
int secureblackbox_officequicksigner_getsigndocument(void* lpObj);
int secureblackbox_officequicksigner_setsigndocument(void* lpObj, int bSignDocument);
bool GetSignDocument();
int SetSignDocument(bool bSignDocument);
Default Value
TRUE
Remarks
Use this property to specify whether the signature should be computed over the document itself.
Data Type
Boolean
SigningCertBytes Property (OfficeQuickSigner Class)
Returns raw certificate data in DER format.
Syntax
ANSI (Cross Platform) int GetSigningCertBytes(char* &lpSigningCertBytes, int &lenSigningCertBytes); Unicode (Windows) INT GetSigningCertBytes(LPSTR &lpSigningCertBytes, INT &lenSigningCertBytes);
int secureblackbox_officequicksigner_getsigningcertbytes(void* lpObj, char** lpSigningCertBytes, int* lenSigningCertBytes);
QByteArray GetSigningCertBytes();
Remarks
Returns raw certificate data in DER format.
This property is read-only and not available at design time.
Data Type
Byte Array
SigningCertHandle Property (OfficeQuickSigner Class)
Allows to get or set a 'handle', a unique identifier of the underlying property object.
Syntax
ANSI (Cross Platform) int64 GetSigningCertHandle();
int SetSigningCertHandle(int64 lSigningCertHandle); Unicode (Windows) LONG64 GetSigningCertHandle();
INT SetSigningCertHandle(LONG64 lSigningCertHandle);
int64 secureblackbox_officequicksigner_getsigningcerthandle(void* lpObj);
int secureblackbox_officequicksigner_setsigningcerthandle(void* lpObj, int64 lSigningCertHandle);
qint64 GetSigningCertHandle();
int SetSigningCertHandle(qint64 lSigningCertHandle);
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());
This property is not available at design time.
Data Type
Long64
SigningChainCount Property (OfficeQuickSigner Class)
The number of records in the SigningChain arrays.
Syntax
ANSI (Cross Platform) int GetSigningChainCount();
int SetSigningChainCount(int iSigningChainCount); Unicode (Windows) INT GetSigningChainCount();
INT SetSigningChainCount(INT iSigningChainCount);
int secureblackbox_officequicksigner_getsigningchaincount(void* lpObj);
int secureblackbox_officequicksigner_setsigningchaincount(void* lpObj, int iSigningChainCount);
int GetSigningChainCount();
int SetSigningChainCount(int iSigningChainCount);
Default Value
0
Remarks
This property controls the size of the following arrays:
The array indices start at 0 and end at SigningChainCount - 1.This property is not available at design time.
Data Type
Integer
SigningChainBytes Property (OfficeQuickSigner Class)
Returns raw certificate data in DER format.
Syntax
ANSI (Cross Platform) int GetSigningChainBytes(int iSigningChainIndex, char* &lpSigningChainBytes, int &lenSigningChainBytes); Unicode (Windows) INT GetSigningChainBytes(INT iSigningChainIndex, LPSTR &lpSigningChainBytes, INT &lenSigningChainBytes);
int secureblackbox_officequicksigner_getsigningchainbytes(void* lpObj, int signingchainindex, char** lpSigningChainBytes, int* lenSigningChainBytes);
QByteArray GetSigningChainBytes(int iSigningChainIndex);
Remarks
Returns raw certificate data in DER format.
The SigningChainIndex parameter specifies the index of the item in the array. The size of the array is controlled by the SigningChainCount property.
This property is read-only and not available at design time.
Data Type
Byte Array
SigningChainHandle Property (OfficeQuickSigner Class)
Allows to get or set a 'handle', a unique identifier of the underlying property object.
Syntax
ANSI (Cross Platform) int64 GetSigningChainHandle(int iSigningChainIndex);
int SetSigningChainHandle(int iSigningChainIndex, int64 lSigningChainHandle); Unicode (Windows) LONG64 GetSigningChainHandle(INT iSigningChainIndex);
INT SetSigningChainHandle(INT iSigningChainIndex, LONG64 lSigningChainHandle);
int64 secureblackbox_officequicksigner_getsigningchainhandle(void* lpObj, int signingchainindex);
int secureblackbox_officequicksigner_setsigningchainhandle(void* lpObj, int signingchainindex, int64 lSigningChainHandle);
qint64 GetSigningChainHandle(int iSigningChainIndex);
int SetSigningChainHandle(int iSigningChainIndex, qint64 lSigningChainHandle);
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 SigningChainIndex parameter specifies the index of the item in the array. The size of the array is controlled by the SigningChainCount property.
This property is not available at design time.
Data Type
Long64
SignSignatureOrigin Property (OfficeQuickSigner Class)
Whether to sign the signature origin.
Syntax
ANSI (Cross Platform) int GetSignSignatureOrigin();
int SetSignSignatureOrigin(int bSignSignatureOrigin); Unicode (Windows) BOOL GetSignSignatureOrigin();
INT SetSignSignatureOrigin(BOOL bSignSignatureOrigin);
int secureblackbox_officequicksigner_getsignsignatureorigin(void* lpObj);
int secureblackbox_officequicksigner_setsignsignatureorigin(void* lpObj, int bSignSignatureOrigin);
bool GetSignSignatureOrigin();
int SetSignSignatureOrigin(bool bSignSignatureOrigin);
Default Value
FALSE
Remarks
Specifies whether to sign the XPS document's signature origin.
Data Type
Boolean
Config Method (OfficeQuickSigner Class)
Sets or retrieves a configuration setting.
Syntax
ANSI (Cross Platform) char* Config(const char* lpszConfigurationString); Unicode (Windows) LPWSTR Config(LPCWSTR lpszConfigurationString);
char* secureblackbox_officequicksigner_config(void* lpObj, const char* lpszConfigurationString);
QString Config(const QString& qsConfigurationString);
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.
Error Handling (C++)
This method returns a String value; after it returns, call the GetLastErrorCode() method to obtain its result code; 0 indicates success, while a non-zero error code indicates that this method encountered an error during its execution. If an error occurs, the GetLastError() method can be called to retrieve the associated error message.
DoAction Method (OfficeQuickSigner Class)
Performs an additional action.
Syntax
ANSI (Cross Platform) char* DoAction(const char* lpszActionID, const char* lpszActionParams); Unicode (Windows) LPWSTR DoAction(LPCWSTR lpszActionID, LPCWSTR lpszActionParams);
char* secureblackbox_officequicksigner_doaction(void* lpObj, const char* lpszActionID, const char* lpszActionParams);
QString DoAction(const QString& qsActionID, const QString& qsActionParams);
Remarks
DoAction is a generic method available in every class. It is used to perform an additional action introduced after the product major release. The list of actions is not fixed, and may be flexibly extended over time.
The unique identifier (case insencitive) 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;....
Error Handling (C++)
This method returns a String value; after it returns, call the GetLastErrorCode() method to obtain its result code; 0 indicates success, while a non-zero error code indicates that this method encountered an error during its execution. If an error occurs, the GetLastError() method can be called to retrieve the associated error message.
ExtractAsyncData Method (OfficeQuickSigner Class)
Extracts user data from the DC signing service response.
Syntax
ANSI (Cross Platform) char* ExtractAsyncData(const char* lpszAsyncReply); Unicode (Windows) LPWSTR ExtractAsyncData(LPCWSTR lpszAsyncReply);
char* secureblackbox_officequicksigner_extractasyncdata(void* lpObj, const char* lpszAsyncReply);
QString ExtractAsyncData(const QString& qsAsyncReply);
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 completion async stage.
Error Handling (C++)
This method returns a String value; after it returns, call the GetLastErrorCode() method to obtain its result code; 0 indicates success, while a non-zero error code indicates that this method encountered an error during its execution. If an error occurs, the GetLastError() method can be called to retrieve the associated error message.
Sign Method (OfficeQuickSigner Class)
Calculates the signature value.
Syntax
ANSI (Cross Platform) int Sign(); Unicode (Windows) INT Sign();
int secureblackbox_officequicksigner_sign(void* lpObj);
int Sign();
Remarks
Call this method to generate a signature over the document.
Error Handling (C++)
This method returns a result code; 0 indicates success, while a non-zero error code indicates that this method encountered an error during its execution. If an error occurs, the GetLastError() method can be called to retrieve the associated error message. (Note: This method's result code can also be obtained by calling the GetLastErrorCode() method after it returns.)
SignAsyncBegin Method (OfficeQuickSigner Class)
Initiates the asynchronous signing operation.
Syntax
ANSI (Cross Platform) char* SignAsyncBegin(); Unicode (Windows) LPWSTR SignAsyncBegin();
char* secureblackbox_officequicksigner_signasyncbegin(void* lpObj);
QString SignAsyncBegin();
Remarks
When using the DC framework, call this method to initiate the asynchronous signing process. Upon completion, a pre-signed copy of the document will be saved in OutputFile (or OutputStream). Keep the pre-signed copy somewhere local, and pass the returned string ('the request state') to the DC processor for handling.
Upon receiving the response state from the DC processor, assign the path to the pre-signed copy to InputFile (or InputStream), and call SignAsyncEnd to finalize the signing.
Note that depending on the signing method and DC configuration used, you may still need to provide the public part of the signing certificate via the SigningCertificate property.
Use the ExternalCrypto.AsyncDocumentID property to supply a unique document ID to include in the request. This is helpful when creating batches of multiple async requests, as it allows you to pass the whole response batch to SignAsyncEnd and expect it to recover the correct response from the batch automatically.
AsyncState is a message of the distributed cryptography (DC) protocol. DC protocol is based on exchange of async states between a DC client (an application that wants to sign a PDF, XML, or Office document) and a DC server (an application that controls access to the private key). An async state can carry one or more signing requests, comprised of document hashes, or one or more signatures produced over those hashes.
In a typical scenario you get a client-side async state from the SignAsyncBegin method. This state contains document hashes to be signed on the DC server side. You then send the async state to the DC server (often represented by the DCAuth control), which processes it and produces a matching signatures state. The async state produced by the server is then passed to the SignAsyncEnd method.
Error Handling (C++)
This method returns a String value; after it returns, call the GetLastErrorCode() method to obtain its result code; 0 indicates success, while a non-zero error code indicates that this method encountered an error during its execution. If an error occurs, the GetLastError() method can be called to retrieve the associated error message.
SignAsyncEnd Method (OfficeQuickSigner Class)
Completes the asynchronous signing operation.
Syntax
ANSI (Cross Platform) int SignAsyncEnd(const char* lpszAsyncReply); Unicode (Windows) INT SignAsyncEnd(LPCWSTR lpszAsyncReply);
int secureblackbox_officequicksigner_signasyncend(void* lpObj, const char* lpszAsyncReply);
int SignAsyncEnd(const QString& qsAsyncReply);
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 prior SignAsyncBegin call to InputFile (or InputStream). The method will embed the signature into the pre-signed document, and save the complete signed document to OutputFile (or OutputStream).
Note that depending on the signing method and DC configuration used, you may still need to provide the public part of the signing certificate via the SigningCertificate property.
Use the ExternalCrypto.AsyncDocumentID parameter to pass a specific document ID if using batched AsyncReply. If used, it should match the value provided on the pre-signing (SignAsyncBegin) stage.
AsyncState is a message of the distributed cryptography (DC) protocol. DC protocol is based on exchange of async states between a DC client (an application that wants to sign a PDF, XML, or Office document) and a DC server (an application that controls access to the private key). An async state can carry one or more signing requests, comprised of document hashes, or one or more signatures produced over those hashes.
In a typical scenario you get a client-side async state from the SignAsyncBegin method. This state contains document hashes to be signed on the DC server side. You then send the async state to the DC server (often represented by the DCAuth control), which processes it and produces a matching signatures state. The async state produced by the server is then passed to the SignAsyncEnd method.
Error Handling (C++)
This method returns a result code; 0 indicates success, while a non-zero error code indicates that this method encountered an error during its execution. If an error occurs, the GetLastError() method can be called to retrieve the associated error message. (Note: This method's result code can also be obtained by calling the GetLastErrorCode() method after it returns.)
SignExternal Method (OfficeQuickSigner Class)
Signs the document using an external signing facility.
Syntax
ANSI (Cross Platform) int SignExternal(); Unicode (Windows) INT SignExternal();
int secureblackbox_officequicksigner_signexternal(void* lpObj);
int SignExternal();
Remarks
Call this method to delegate the low-level signing operation to an external, remote, or custom signing engine. This method is useful if the signature has to be made by a device accessible through a custom or non-standard signing interface.
When all preparations are done and hash is computed, the class fires ExternalSign event which allows to pass the hash value for signing.
Error Handling (C++)
This method returns a result code; 0 indicates success, while a non-zero error code indicates that this method encountered an error during its execution. If an error occurs, the GetLastError() method can be called to retrieve the associated error message. (Note: This method's result code can also be obtained by calling the GetLastErrorCode() method after it returns.)
Error Event (OfficeQuickSigner Class)
Information about errors during signing.
Syntax
ANSI (Cross Platform) virtual int FireError(OfficeQuickSignerErrorEventParams *e);
typedef struct {
int ErrorCode;
const char *Description; int reserved; } OfficeQuickSignerErrorEventParams;
Unicode (Windows) virtual INT FireError(OfficeQuickSignerErrorEventParams *e);
typedef struct {
INT ErrorCode;
LPCWSTR Description; INT reserved; } OfficeQuickSignerErrorEventParams;
#define EID_OFFICEQUICKSIGNER_ERROR 1 virtual INT SECUREBLACKBOX_CALL FireError(INT &iErrorCode, LPSTR &lpszDescription);
class OfficeQuickSignerErrorEventParams { public: int ErrorCode(); const QString &Description(); int EventRetVal(); void SetEventRetVal(int iRetVal); };
// To handle, connect one or more slots to this signal. void Error(OfficeQuickSignerErrorEventParams *e);
// Or, subclass OfficeQuickSigner and override this emitter function. virtual int FireError(OfficeQuickSignerErrorEventParams *e) {...}
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.
ExternalSign Event (OfficeQuickSigner Class)
Handles remote or external signing initiated by the SignExternal method or other source.
Syntax
ANSI (Cross Platform) virtual int FireExternalSign(OfficeQuickSignerExternalSignEventParams *e);
typedef struct {
const char *OperationId;
const char *HashAlgorithm;
const char *Pars;
const char *Data;
char *SignedData; int reserved; } OfficeQuickSignerExternalSignEventParams;
Unicode (Windows) virtual INT FireExternalSign(OfficeQuickSignerExternalSignEventParams *e);
typedef struct {
LPCWSTR OperationId;
LPCWSTR HashAlgorithm;
LPCWSTR Pars;
LPCWSTR Data;
LPWSTR SignedData; INT reserved; } OfficeQuickSignerExternalSignEventParams;
#define EID_OFFICEQUICKSIGNER_EXTERNALSIGN 2 virtual INT SECUREBLACKBOX_CALL FireExternalSign(LPSTR &lpszOperationId, LPSTR &lpszHashAlgorithm, LPSTR &lpszPars, LPSTR &lpszData, LPSTR &lpszSignedData);
class OfficeQuickSignerExternalSignEventParams { public: const QString &OperationId(); const QString &HashAlgorithm(); const QString &Pars(); const QString &Data(); const QString &SignedData(); void SetSignedData(const QString &qsSignedData); int EventRetVal(); void SetEventRetVal(int iRetVal); };
// To handle, connect one or more slots to this signal. void ExternalSign(OfficeQuickSignerExternalSignEventParams *e);
// Or, subclass OfficeQuickSigner and override this emitter function. virtual int FireExternalSign(OfficeQuickSignerExternalSignEventParams *e) {...}
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 component via SignedData parameter.
OperationId provides a comment about the operation and its origin. It depends on the exact component being used, and may be empty. HashAlgorithm specifies the hash algorithm being used for the operation, and Pars contain algorithm-dependent parameters.
The component uses base16 (hex) encoding for 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 a .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();
};
Notification Event (OfficeQuickSigner Class)
This event notifies the application about an underlying control flow event.
Syntax
ANSI (Cross Platform) virtual int FireNotification(OfficeQuickSignerNotificationEventParams *e);
typedef struct {
const char *EventID;
const char *EventParam; int reserved; } OfficeQuickSignerNotificationEventParams;
Unicode (Windows) virtual INT FireNotification(OfficeQuickSignerNotificationEventParams *e);
typedef struct {
LPCWSTR EventID;
LPCWSTR EventParam; INT reserved; } OfficeQuickSignerNotificationEventParams;
#define EID_OFFICEQUICKSIGNER_NOTIFICATION 3 virtual INT SECUREBLACKBOX_CALL FireNotification(LPSTR &lpszEventID, LPSTR &lpszEventParam);
class OfficeQuickSignerNotificationEventParams { public: const QString &EventID(); const QString &EventParam(); int EventRetVal(); void SetEventRetVal(int iRetVal); };
// To handle, connect one or more slots to this signal. void Notification(OfficeQuickSignerNotificationEventParams *e);
// Or, subclass OfficeQuickSigner and override this emitter function. virtual int FireNotification(OfficeQuickSignerNotificationEventParams *e) {...}
Remarks
The class fires this event to let the application know about some event, occurrence, or milestone in the component. 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 EventID parameter. EventParam contains any parameters accompanying the occurrence. Depending on the type of the component, 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. |
BeforeTimestamp | This event is fired before timestamp is requested from the timestamping authority. Use the event handler to modify TSA and HTTP settings. |
TimestampError | This event is only fired if failed to obtain a timestamp from the timestamping authority. The EventParam parameter contains extended error info. |
TimestampRequest | A timestamp is requested from the custom timestamping
authority. This event is only fired if TimestampServer was set to a
virtual:// URI. The EventParam parameter contains the
TSP request (or the plain hash, depending on the value provided to
TimestampServer), in base16, that needs to be sent to the TSA.
Use the event handler to send the request to the TSA. Upon receiving the response, assign it, in base16, to the TimestampResponse configuration property. |
Config Settings (OfficeQuickSigner Class)
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
Sample code that demonstrates adding signature information for OpenXML documents:
signer.NewSignature.XAdES = true;
signer.NewSignature.XAdESForm = xafEPES;
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.
Base Config Settings
You can switch this property off to improve performance if your project only uses known, good private keys.
Supported values are:
off | No caching (default) | |
local | Local caching | |
global | Global caching |
This setting only applies to sessions negotiated with TLS version 1.3.
Supported values are:
file | File | |
console | Console | |
systemlog | System Log (supported for Android only) | |
debugger | Debugger (supported for VCL for Windows and .Net) |
Supported values are:
time | Current time | |
level | Level | |
package | Package name | |
module | Module name | |
class | Class name | |
method | Method name | |
threadid | Thread Id | |
contenttype | Content type | |
content | Content | |
all | All details |
Supported filter names are:
exclude-package | Exclude a package specified in the value | |
exclude-module | Exclude a module specified in the value | |
exclude-class | Exclude a class specified in the value | |
exclude-method | Exclude a method specified in the value | |
include-package | Include a package specified in the value | |
include-module | Include a module specified in the value | |
include-class | Include a class specified in the value | |
include-method | Include a method specified in the value |
none | No flush (caching only) | |
immediate | Immediate flush (real-time logging) | |
maxcount | Flush cached entries upon reaching LogMaxEventCount entries in the cache. |
Supported values are:
none | None (by default) | |
fatal | Severe errors that cause premature termination. | |
error | Other runtime errors or unexpected conditions. | |
warning | Use of deprecated APIs, poor use of API, 'almost' errors, other runtime situations that are undesirable or unexpected, but not necessarily "wrong". | |
info | Interesting runtime events (startup/shutdown). | |
debug | Detailed information on flow of through the system. | |
trace | More detailed information. |
The default value of this setting is 100.
none | No rotation | |
deleteolder | Delete older entries from the cache upon reaching LogMaxEventCount | |
keepolder | Keep older entries in the cache upon reaching LogMaxEventCount (newer entries are discarded) |
Supported values are:
none | No static DNS rules (default) | |
local | Local static DNS rules | |
global | Global static DNS rules |
This setting only applies to certificates originating from a Windows system store.
Trappable Errors (OfficeQuickSigner Class)
Error Handling (C++)
Call the GetLastErrorCode() method to obtain the last called method's result code; 0 indicates success, while a non-zero error code indicates that this method encountered an error during its execution. Known error codes are listed below. If an error occurs, the GetLastError() method can be called to retrieve the associated error message.
OfficeQuickSigner Errors
1048577 Invalid parameter value (SB_ERROR_INVALID_PARAMETER) | |
1048578 Class is configured incorrectly (SB_ERROR_INVALID_SETUP) | |
1048579 Operation cannot be executed in the current state (SB_ERROR_INVALID_STATE) | |
1048580 Attempt to set an invalid value to a property (SB_ERROR_INVALID_VALUE) | |
1048581 Certificate does not have its private key loaded (SB_ERROR_NO_PRIVATE_KEY) | |
1048581 Cancelled by the user (SB_ERROR_CANCELLED_BY_USER) | |
24117249 Input file does not exist (SB_ERROR_OFFICE_INPUTFILE_NOT_EXISTS) | |
24117250 Unsupported document format (SB_ERROR_OFFICE_UNSUPPORTED_DOCUMENT_FORMAT) | |
24117251 Document cannot be signed (SB_ERROR_OFFICE_DOCUMENT_NOT_SIGNABLE) | |
24117252 Document is not signed (SB_ERROR_OFFICE_DOCUMENT_NOT_SIGNED) | |
24117253 Document is encrypted (SB_ERROR_OFFICE_DOCUMENT_ENCRYPTED) | |
24117254 Document cannot be encrypted (SB_ERROR_OFFICE_DOCUMENT_NOT_ENCRYPTABLE) | |
24117255 Document is not encrypted (SB_ERROR_OFFICE_DOCUMENT_NOT_ENCRYPTED) | |
24117256 Unknown encryption algorithm (SB_ERROR_OFFICE_DOCUMENT_UNKNOWN_ENCRYPTION) | |
24117257 Invalid password (SB_ERROR_OFFICE_INVALID_PASSWORD) | |
24117258 Signature not found (SB_ERROR_OFFICE_SIGNATURE_NOT_FOUND) |