class RSADigestEngine

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::Crypto::DigestEngine is created and 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 Summary

Member Functions: digest, digestLength, reset, signature, updateImpl, verify

Inherited Functions: constantTimeEquals, digest, digestFromHex, digestLength, digestToHex, reset, update, updateImpl







    const RSAKey & key,
    DigestType digestType = DIGEST_SHA1

Deprecated. This function is deprecated and should no longer be used.

Creates the RSADigestEngine with the given RSA key, using the MD5 or SHA-1 hash algorithm. Kept for backward compatibility


    const RSAKey & key,
    const std::string & name

Creates the RSADigestEngine with the given RSA key, using the hash algorithm with the given name (e.g., "MD5", "SHA1", "SHA256", "SHA512", etc.). See the OpenSSL documentation for a list of supported digest algorithms.

Throws a Poco::NotFoundException if no algorithm with the given name exists.


~RSADigestEngine virtual


Destroys the RSADigestEngine.

Member Functions


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.

digestLength virtual

std::size_t digestLength() const;

Returns the length of the digest in bytes.

reset virtual

void reset();

Resets the engine so that a new digest can be computed.


const DigestEngine::Digest & signature();

Signs the digest using the RSA algorithm and the private key (the 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.

updateImpl protected virtual

void updateImpl(
    const void * data,
    std::size_t length

Securely control IoT edge devices from anywhere   Connect a Device