Library: Crypto
Package: Cipher
Header: Poco/Crypto/CipherKey.h
CipherKey stores the key information for decryption/encryption of data. To create a random key, using the following code:
CipherKey key("aes-256");
Note that you won't be able to decrypt data encrypted with a random key once the Cipher is destroyed unless you persist the generated key and IV. An example usage for random keys is to encrypt data saved in a temporary file.
To create a key using a human-readable password string, use the following code. We create a AES Cipher and use a salt value to make the key more robust:
std::string password = "secret"; std::string salt("asdff8723lasdf(**923412"); CipherKey key("aes-256", password, salt);
Member Functions: blockSize, getIV, getKey, impl, ivSize, keySize, mode, name, setIV, setKey
typedef CipherKeyImpl::ByteVec ByteVec;
typedef CipherKeyImpl::Mode Mode;
DEFAULT_ITERATION_COUNT = 2000
Default iteration count to use with generateKey(). RSA security recommends an iteration count of at least 1000.
CipherKey(
const std::string & name
);
Creates a new CipherKeyImpl object. Autoinitializes key and initialization vector.
CipherKey(
const std::string & name,
const ByteVec & key,
const ByteVec & iv
);
Creates a new CipherKeyImpl object using the given cipher name, key and initialization vector.
CipherKey(
const std::string & name,
const std::string & passphrase,
const std::string & salt = "",
int iterationCount = DEFAULT_ITERATION_COUNT
);
Creates a new CipherKeyImpl object using the given cipher name, passphrase, salt value and iteration count.
~CipherKey();
Destroys the CipherKeyImpl.
int blockSize() const;
Returns the block size of the Cipher.
const ByteVec & getIV() const;
Returns the initialization vector (IV) for the Cipher.
const ByteVec & getKey() const;
Returns the key for the Cipher.
CipherKeyImpl::Ptr impl();
Returns the impl object
int ivSize() const;
Returns the IV size of the Cipher.
int keySize() const;
Returns the key size of the Cipher.
Mode mode() const;
Returns the Cipher's mode of operation.
const std::string & name() const;
Returns the name of the Cipher.
void setIV(
const ByteVec & iv
);
Sets the initialization vector (IV) for the Cipher.
void setKey(
const ByteVec & key
);
Sets the key for the Cipher.