Interface for creating an RSA signature. More...
#include <SignDocSDK-cpp.h>
Public Types | |
| enum | Version { v_1_5, v_2_0_salt0, v_2_0_salt32, v_2_0 = v_2_0_salt0 } |
RSA version (padding). More... | |
| enum | HashAlgorithm { ha_sha1 = 1, ha_sha256 = 2, ha_sha384 = 3, ha_sha512 = 4, ha_ripemd160 = 5 } |
Hash algorithm. More... | |
Public Member Functions | |
| SignRSA () | |
| Constructor. | |
| virtual | ~SignRSA () |
| Destructor. | |
| virtual bool | sign (Source &aSource, Version aVersion, HashAlgorithm aHashAlgorithm, std::vector< unsigned char > &aOutput)=0 |
| Compute an RSA signature. | |
| virtual int | getSignatureSize ()=0 |
| Get the size of the signature that will be computed by sign(). | |
| virtual bool | getSigningCertificate (std::vector< unsigned char > &aOutput) const =0 |
| Get the signing certificate. | |
| virtual int | getCertificateCount () const =0 |
| Get the number of available intermediate certificates. | |
| virtual bool | getCertificate (int aIndex, std::vector< unsigned char > &aOutput) const =0 |
| Get an intermediate certificate. | |
| virtual const char * | getErrorMessage () const =0 |
| Get an error message for the last operation. | |
| SIGNDOC_SignRSA * | getImpl () |
| Internal. | |
Interface for creating an RSA signature.
Selection of the certificate is up to the implementation.
RSA version (padding).
| v_1_5 |
RSA 1.5 (PKCS1-v1_5). |
| v_2_0_salt0 |
RSA 2.0 (RSASSA-PSS) with salt length 0. This is used for signing TIFF documents with method m_digsig_pkcs1. The hash algorithm passed in aHashAlgorithm of sign() shall also be used for mask generation, the salt length shall be 0. |
| v_2_0_salt32 |
RSA 2.0 (RSASSA-PSS) with salt length 32. This is used for PKCS #7 signatures if integer parameter "RSASignatureScheme" is rss_pss. The hash algorithm passed in aHashAlgorithm of sign() shall also be used for mask generation, the salt length shall be 32. |
| v_2_0 |
Compatibility. |
| de::softpro::doc::SignRSA::SignRSA | ( | ) | [inline] |
Constructor.
| virtual de::softpro::doc::SignRSA::~SignRSA | ( | ) | [inline, virtual] |
Destructor.
Should release the crypto provider context if one was acquired.
| virtual bool de::softpro::doc::SignRSA::getCertificate | ( | int | aIndex, |
| std::vector< unsigned char > & | aOutput | ||
| ) | const [pure virtual] |
Get an intermediate certificate.
This function must not throw any exception except for std::bad_alloc.
| [in] | aIndex | The zero-based index of the intermediate certificate, see getCertificateCount(). |
| [out] | aOutput | The requested intermediate certificate will be stored here (DER-encoded X.509). |
| virtual int de::softpro::doc::SignRSA::getCertificateCount | ( | ) | const [pure virtual] |
Get the number of available intermediate certificates.
| virtual const char* de::softpro::doc::SignRSA::getErrorMessage | ( | ) | const [pure virtual] |
Get an error message for the last operation.
This function must not throw any exception except for std::bad_alloc.
After any member function of this object has been called, you can retrieve an error message by calling this function.
| SIGNDOC_SignRSA* de::softpro::doc::SignRSA::getImpl | ( | ) | [inline] |
Internal.
| virtual int de::softpro::doc::SignRSA::getSignatureSize | ( | ) | [pure virtual] |
| virtual bool de::softpro::doc::SignRSA::getSigningCertificate | ( | std::vector< unsigned char > & | aOutput ) | const [pure virtual] |
Get the signing certificate.
This function must not throw any exception except for std::bad_alloc.
| [out] | aOutput | The signing certificate will be stored here (DER-encoded X.509). |
| virtual bool de::softpro::doc::SignRSA::sign | ( | Source & | aSource, |
| Version | aVersion, | ||
| HashAlgorithm | aHashAlgorithm, | ||
| std::vector< unsigned char > & | aOutput | ||
| ) | [pure virtual] |
Compute an RSA signature.
This function must not throw any exception except for std::bad_alloc.
| [in] | aSource | An object providing data to be hashed and signed. |
| [in] | aVersion | RSA version. |
| [in] | aHashAlgorithm | Hash algorithm. |
| [out] | aOutput | The RSA signature will be stored here. This shall be just the result of the RSA operation, not wrapped in an OCTET STRING. |
1.7.2