11 #include <botan/gcm.h>
12 #include <botan/mac.h>
13 #include <botan/types.h>
26 void clear()
override;
27 std::string name()
const override;
28 size_t output_length()
const override;
38 void start(
const uint8_t nonce[],
size_t nonce_len);
54 void start(
const std::vector<uint8_t>& nonce);
58 return m_cipher->key_spec();
69 GMAC& operator=(
const GMAC&) =
delete;
72 void add_data(
const uint8_t[],
size_t)
override;
73 void final_result(uint8_t[])
override;
74 void start_msg(
const uint8_t nonce[],
size_t nonce_len)
override;
75 void key_schedule(
const uint8_t key[],
size_t size)
override;
77 static const size_t GCM_BS = 16;
79 std::unique_ptr<BlockCipher> m_cipher;
Key_Length_Specification key_spec() const override
std::vector< T, secure_allocator< T >> secure_vector