8#include <openssl/crypto.h>
15 const std::vector<uint8_t> key;
16 const EVP_CIPHER* evp_cipher;
17 const EVP_CIPHER* evp_cipher_wrap_pad;
25 OPENSSL_cleanse(
const_cast<uint8_t*
>(key.data()), key.size());
28 virtual size_t key_size()
const override;
31 std::span<const uint8_t> iv,
32 std::span<const uint8_t> plain,
33 std::span<const uint8_t> aad,
34 std::vector<uint8_t>& cipher,
38 std::span<const uint8_t> iv,
40 std::span<const uint8_t> cipher,
41 std::span<const uint8_t> aad,
42 std::vector<uint8_t>& plain)
const override;
47 std::span<const uint8_t> plain)
const;
52 std::span<const uint8_t> cipher)
const;
Definition symmetric_key.h:13
KeyAesGcm_OpenSSL(KeyAesGcm_OpenSSL &&that)
std::vector< uint8_t > ckm_aes_key_unwrap_pad(std::span< const uint8_t > cipher) const
Definition symmetric_key.cpp:184
virtual ~KeyAesGcm_OpenSSL()
Definition symmetric_key.h:23
KeyAesGcm_OpenSSL(const KeyAesGcm_OpenSSL &that)=delete
virtual size_t key_size() const override
Definition symmetric_key.cpp:50
virtual void encrypt(std::span< const uint8_t > iv, std::span< const uint8_t > plain, std::span< const uint8_t > aad, std::vector< uint8_t > &cipher, uint8_t tag[GCM_SIZE_TAG]) const override
Definition symmetric_key.cpp:55
virtual bool decrypt(std::span< const uint8_t > iv, const uint8_t tag[GCM_SIZE_TAG], std::span< const uint8_t > cipher, std::span< const uint8_t > aad, std::vector< uint8_t > &plain) const override
Definition symmetric_key.cpp:111
std::vector< uint8_t > ckm_aes_key_wrap_pad(std::span< const uint8_t > plain) const
Definition symmetric_key.cpp:167
Definition symmetric_key.h:70
constexpr size_t GCM_SIZE_TAG
Definition symmetric_key.h:14