61#define gcm_context_t( ctxsize ) \
63 struct gcm_context gcm; \
64 uint8_t raw[ (ctxsize) - \
65 sizeof ( struct gcm_context ) ]; \
69 const void *
key,
size_t keylen );
71 const void *
iv,
size_t ivlen );
73 const void *
src,
void *dst,
size_t len );
75 const void *
src,
void *dst,
size_t len );
88#define GCM_CIPHER( _gcm_name, _gcm_cipher, _raw_cipher, _raw_context, \
90static_assert ( _blocksize == sizeof ( union gcm_block ) ); \
91struct cipher_algorithm _gcm_cipher = { \
93 .ctxsize = ( sizeof ( struct gcm_context ) + \
94 sizeof ( _raw_context ) ), \
96 .alignsize = sizeof ( union gcm_block ), \
97 .authsize = sizeof ( union gcm_block ), \
99 .setkey = gcm_setkey, \
100 .setiv = gcm_setiv, \
101 .encrypt = gcm_encrypt, \
102 .decrypt = gcm_decrypt, \
104 .priv = &_raw_cipher, \
struct golan_eq_context ctx
union @162305117151260234136356364136041353210355154177 key
unsigned long long uint64_t
int gcm_setiv(struct cipher_algorithm *cipher, void *ctx, const void *iv, size_t ivlen)
Set initialisation vector.
void gcm_decrypt(struct cipher_algorithm *cipher, void *ctx, const void *src, void *dst, size_t len)
Decrypt data.
void gcm_auth(struct cipher_algorithm *cipher, void *ctx, void *auth)
Generate authentication tag.
void gcm_encrypt(struct cipher_algorithm *cipher, void *ctx, const void *src, void *dst, size_t len)
Encrypt data.
int gcm_setkey(struct cipher_algorithm *cipher, void *ctx, const void *key, size_t keylen)
Set key.
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
union gcm_block key
Hash key (H).
union gcm_block ctr
Counter (Y).
union gcm_block hash
Accumulated hash (X).
unsigned int flags
Processing flags.
union gcm_block len
Accumulated lengths.
uint8_t iv[12]
Initialisation vector.
uint32_t value
Counter value.
uint64_t data
Data length.
uint64_t add
Additional data length.
struct gcm_counter ctr
Counter.
uint32_t dword[4]
Raw dwords.
struct gcm_lengths len
Lengths.
uint16_t word[8]
Raw words.
u8 iv[16]
Initialization vector.