Library: Crypto
Package: RSA
Header: Poco/Crypto/RSAKey.h
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 Functions: decryptionExponent, encryptionExponent, impl, modulus, name, save, size
EXP_SMALL = 0
KL_512 = 512
KL_1024 = 1024
KL_2048 = 2048
KL_4096 = 4096
explicit RSAKey(
const X509Certificate & cert
);
Extracts the RSA public key from the given certificate.
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(
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. Can only by used for signing if a private key is available.
RSAKey(
std::istream * pPublicKeyStream,
std::istream * pPrivateKeyStream = 0,
const std::string & privateKeyPassphrase = ""
);
Creates the RSAKey. Can only by used for signing if pPrivKey is not null. If a private key file is specified, you don't need to specify a public key file. OpenSSL will auto-create it from the private key.
~RSAKey();
Destroys the RSAKey.
RSAKeyImpl::ByteVec decryptionExponent() const;
Returns the RSA decryption exponent.
RSAKeyImpl::ByteVec encryptionExponent() const;
Returns the RSA encryption exponent.
RSAKeyImpl::Ptr impl() const;
Returns the impl object.
RSAKeyImpl::ByteVec modulus() const;
Returns the RSA modulus.
const std::string & name() const;
Returns "rsa"
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.
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.
int size() const;
Returns the RSA modulus size.