8 #ifndef BOTAN_GCM_GHASH_H_
9 #define BOTAN_GCM_GHASH_H_
11 #include <botan/sym_algo.h>
25 void set_associated_data(
const uint8_t ad[],
size_t ad_len);
28 nonce_hash(const uint8_t nonce[],
size_t nonce_len)
31 nonce_hash(y0, nonce, nonce_len);
37 void start(
const uint8_t nonce[],
size_t len);
42 void update(
const uint8_t in[],
size_t len);
47 void update_associated_data(
const uint8_t ad[],
size_t len);
52 final(mac.data(), mac.size());
56 void final(uint8_t out[],
size_t out_len);
61 void clear()
override;
65 std::string
name()
const override {
return "GHASH"; }
67 std::string provider()
const;
70 const uint8_t input[],
size_t input_len);
73 size_t ad_len,
size_t pt_len);
75 void key_schedule(
const uint8_t key[],
size_t key_len)
override;
78 const uint8_t input[],
81 static const size_t GCM_BS = 16;
90 size_t m_text_len = 0;
Key_Length_Specification key_spec() const override
int(* final)(unsigned char *, CTX *)
#define BOTAN_PUBLIC_API(maj, min)
std::vector< T, secure_allocator< T >> secure_vector
int(* update)(CTX *, const void *, CC_LONG len)
std::string name() const override
#define BOTAN_FUTURE_INTERNAL_HEADER(hdr)