Library: Crypto
Package: RSA
Header: Poco/Crypto/RSADigestEngine.h
This class implements a Poco::DigestEngine that can be used to compute a secure digital signature.
First another Poco::DigestEngine (Poco::MD5Engine or Poco::SHA1Engine) is used to compute a cryptographic hash of the data to be signed. Then, the hash value is encrypted, using the RSA private key.
To verify a signature, pass it to the verify() member function. It will decrypt the signature using the RSA public key and compare the resulting hash with the actual hash of the data.
Direct Base Classes: Poco::DigestEngine
All Base Classes: Poco::DigestEngine
Member Functions: digest, digestLength, reset, signature, updateImpl, verify
Inherited Functions: digest, digestLength, digestToHex, reset, update, updateImpl
RSADigestEngine(
const RSAKey & key,
DigestType digestType = DIGEST_SHA1
);
Creates the RSADigestEngine with the given RSA key, using the SHA-1 hash algorithm.
~RSADigestEngine();
Destroys the RSADigestEngine.
const DigestEngine::Digest & digest();
Finishes the computation of the digest (the first time it's called) and returns the message digest.
Can be called multiple times.
unsigned digestLength() const;
Returns the length of the digest in bytes.
See also: Poco::DigestEngine::digestLength()
void reset();
Resets the engine so that a new digest can be computed.
See also: Poco::DigestEngine::reset()
const DigestEngine::Digest & signature();
Signs the digest using the RSA algorithm and the private key (teh first time it's called) and returns the result.
Can be called multiple times.
bool verify(
const DigestEngine::Digest & signature
);
Verifies the data against the signature.
Returns true if the signature can be verified, false otherwise.
void updateImpl(
const void * data,
unsigned length
);
See also: Poco::DigestEngine::updateImpl()