25#ifndef BR_BEARSSL_AEAD_H__
26#define BR_BEARSSL_AEAD_H__
207 void (*
reset)(
const br_aead_class **cc,
const void *iv,
size_t len);
222 const void *data,
size_t len);
234 void (*
flip)(
const br_aead_class **cc);
252 void (*
run)(
const br_aead_class **cc,
int encrypt,
253 void *data,
size_t len);
277 void (*
get_tag)(
const br_aead_class **cc,
void *tag);
296 uint32_t (*
check_tag)(
const br_aead_class **cc,
const void *tag);
327 const void *tag,
size_t len);
359#ifndef BR_DOXYGEN_IGNORE
360 const br_block_ctr_class **bctx;
363 unsigned char j0_1[12];
364 unsigned char buf[16];
367 uint64_t count_aad, count_ctr;
388 const br_block_ctr_class **bctx,
br_ghash gh);
543 const void *tag,
size_t len);
582#ifndef BR_DOXYGEN_IGNORE
583 const br_block_ctrcbc_class **bctx;
584 unsigned char L2[16];
585 unsigned char L4[16];
586 unsigned char nonce[16];
587 unsigned char head[16];
588 unsigned char ctr[16];
589 unsigned char cbcmac[16];
590 unsigned char buf[16];
604#ifndef BR_DOXYGEN_IGNORE
605 unsigned char st[3][16];
683 const void *nonce,
size_t len);
704 const void *nonce,
size_t len);
747 memcpy(st->st[1], ctx->head,
sizeof ctx->head);
856 const void *tag,
size_t len);
897#ifndef BR_DOXYGEN_IGNORE
898 const br_block_ctrcbc_class **bctx;
899 unsigned char ctr[16];
900 unsigned char cbcmac[16];
901 unsigned char tagmask[16];
902 unsigned char buf[16];
966 uint64_t aad_len, uint64_t data_len,
size_t tag_len);
Class type of an AEAD algorithm.
Definition bearssl_aead.h:181
void(* get_tag_trunc)(const br_aead_class **cc, void *tag, size_t len)
Compute authentication tag (with truncation).
Definition bearssl_aead.h:311
void(* run)(const br_aead_class **cc, int encrypt, void *data, size_t len)
Encrypt or decrypt some data.
Definition bearssl_aead.h:252
void(* get_tag)(const br_aead_class **cc, void *tag)
Compute authentication tag.
Definition bearssl_aead.h:277
uint32_t(* check_tag)(const br_aead_class **cc, const void *tag)
Compute and check authentication tag.
Definition bearssl_aead.h:296
uint32_t(* check_tag_trunc)(const br_aead_class **cc, const void *tag, size_t len)
Compute and check authentication tag (with truncation).
Definition bearssl_aead.h:326
void(* reset)(const br_aead_class **cc, const void *iv, size_t len)
Reset an AEAD context.
Definition bearssl_aead.h:207
void(* flip)(const br_aead_class **cc)
Finish injection of additional authenticated data.
Definition bearssl_aead.h:234
size_t tag_size
Size (in bytes) of authentication tags created by this AEAD algorithm.
Definition bearssl_aead.h:187
void(* aad_inject)(const br_aead_class **cc, const void *data, size_t len)
Inject additional authenticated data.
Definition bearssl_aead.h:221
Context structure for CCM.
Definition bearssl_aead.h:896
Context structure for EAX.
Definition bearssl_aead.h:578
const br_aead_class * vtable
Pointer to vtable for this context.
Definition bearssl_aead.h:580
EAX captured state.
Definition bearssl_aead.h:603
Context structure for GCM.
Definition bearssl_aead.h:355
const br_aead_class * vtable
Pointer to vtable for this context.
Definition bearssl_aead.h:357