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.

Member Summary

Member Functions: decryptionExponent, encryptionExponent, impl, modulus, name, save, size

Enumerations

Exponent

EXP_SMALL = 0

EXP_LARGE

KeyLength

KL_512 = 512

KL_1024 = 1024

KL_2048 = 2048

KL_4096 = 4096

Constructors

RSAKey

explicit RSAKey(
    const X509Certificate & cert
);

Extracts the RSA public key from the given certificate.

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 = 0,
    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

~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.

name

const std::string & name() const;

Returns "rsa"

save

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

Exports the public and private keys to the given files.

If an empty filename is specified, the corresponding key is not exported.

save

void save(
    std::ostream * pPublicKeyStream,
    std::ostream * pPrivateKeyStream = 0,
    const std::string & privateKeyPassphrase = ""
);

Exports the public and private key to the given streams.

If a null pointer is passed for a stream, the corresponding key is not exported.

size

int size() const;

Returns the RSA modulus size.