|
10Duke Enterprise C++ SDK
|
#include <AESGCMCipher.h>
An AES-GCM cipher that supports encryption with an externally provided nonce.
Extends AESCipher with the ability to supply the nonce (IV) explicitly. This is needed in key-derivation schemes where the same random value serves as both the PBKDF2 salt and the AES-GCM nonce.
Public Member Functions | |
| virtual void | encryptData (const ::tenduke::utl::DataSpan &nonce, const ::tenduke::utl::DataSpan &plaintext, ::tenduke::utl::DataSink &ciphertext) const =0 |
| Encrypts data using the provided nonce. | |
| virtual void | encryptData (const ::tenduke::utl::DataSpan &plaintext, ::tenduke::utl::DataSink &ciphertext) const=0 |
| Utility method to encrypt data. | |
| Public Member Functions inherited from tenduke::crypto::aes::AESCipher | |
| AESCipher (const AESCipher &)=delete | |
| AESCipher & | operator= (const AESCipher &)=delete |
| AESCipher (AESCipher &&other) noexcept=default | |
| AESCipher & | operator= (AESCipher &&other) noexcept=default |
| Public Member Functions inherited from tenduke::crypto::Cipher | |
| Cipher (const Cipher &)=delete | |
| Cipher & | operator= (const Cipher &)=delete |
| Cipher (Cipher &&other) noexcept=default | |
| Cipher & | operator= (Cipher &&other) noexcept=default |
| virtual void | decryptData (const ::tenduke::utl::DataSpan &ciphertext, ::tenduke::utl::DataSink &plaintext) const =0 |
| Utility method to decrypt data. | |
|
pure virtual |
Encrypts data using the provided nonce.
Writes [nonce][ciphertext][authentication tag] to ciphertext.
| nonce | the nonce (IV) to use; must be GCM_NONCE_SIZE bytes |
| plaintext | data to encrypt |
| ciphertext | sink that receives the output |
Implemented in LibcryptoAESCipher, tenduke::crypto::aes::libcrypto::LibcryptoAESCipher, and tenduke::crypto::win::cng::WinCNGAESCipher.
|
virtual |
Utility method to encrypt data.
This method encrypts the provided data and outputs a binary data object which contains:
| plaintext | the data to encrypt |
| ciphertext | the encrypted data |
Implements tenduke::crypto::Cipher.
Reimplemented in LibcryptoAESCipher, tenduke::crypto::aes::libcrypto::LibcryptoAESCipher, and tenduke::crypto::win::cng::WinCNGAESCipher.