Poco::Crypto

class RSAKey

Library: Crypto
Package: RSA
Header: Poco/Crypto/RSAKey.h

Description

This class stores an RSA key pair, consisting of private and public key. Storage of the private key is optional.

If a private key is available, the RSAKey can be used for decrypting data (encrypted with the public key) or computing secure digital signatures.

Inheritance

Direct Base Classes: KeyPair

All Base Classes: KeyPair

Member Summary

Member Functions: decryptionExponent, encryptionExponent, impl, modulus, operator =

Inherited Functions: impl, name, operator =, save, size, type

Enumerations

Exponent

EXP_SMALL = 0

EXP_LARGE

KeyLength

KL_512 = 512

KL_1024 = 1024

KL_2048 = 2048

KL_4096 = 4096

Constructors

RSAKey

RSAKey(
    const EVPPKey & key
);

Constructs RSAKey by extracting the RSA key.

RSAKey

RSAKey(
    const X509Certificate & cert
);

Extracts the RSA public key from the given certificate.

RSAKey

RSAKey(
    const PKCS12Container & cert
);

Extracts the RSA private key from the given certificate.

RSAKey

RSAKey(
    const RSAKey & other
);

Copy constructor.

RSAKey

RSAKey(
    RSAKey && other
) noexcept;

Move constructor.

RSAKey

RSAKey(
    KeyLength keyLength,
    Exponent exp
);

Creates the RSAKey. Creates a new public/private keypair using the given parameters. Can be used to sign data and verify signatures.

RSAKey

RSAKey(
    const std::string & publicKeyFile,
    const std::string & privateKeyFile = "",
    const std::string & privateKeyPassphrase = ""
);

Creates the RSAKey, by reading public and private key from the given files and using the given passphrase for the private key.

Cannot be used for signing or decryption unless a private key is available.

If a private key is specified, you don't need to specify a public key file. OpenSSL will auto-create the public key from the private key.

RSAKey

RSAKey(
    std::istream * pPublicKeyStream,
    std::istream * pPrivateKeyStream = nullptr,
    const std::string & privateKeyPassphrase = ""
);

Creates the RSAKey, by reading public and private key from the given streams and using the given passphrase for the private key.

Cannot be used for signing or decryption unless a private key is available.

If a private key is specified, you don't need to specify a public key file. OpenSSL will auto-create the public key from the private key.

Destructor

~RSAKey virtual

~RSAKey();

Destroys the RSAKey.

Member Functions

decryptionExponent

RSAKeyImpl::ByteVec decryptionExponent() const;

Returns the RSA decryption exponent.

encryptionExponent

RSAKeyImpl::ByteVec encryptionExponent() const;

Returns the RSA encryption exponent.

impl inline

RSAKeyImpl::Ptr impl() const;

Returns the impl object.

modulus

RSAKeyImpl::ByteVec modulus() const;

Returns the RSA modulus.

operator =

RSAKey & operator = (
    const RSAKey & other
);

Assignment.

operator =

RSAKey & operator = (
    RSAKey && other
) noexcept;

Move assignment.