Classes | Macros | Functions | Variables
e_aesgcmsiv.c File Reference
#include <openssl/aead.h>
#include <assert.h>
#include <openssl/cipher.h>
#include <openssl/cpu.h>
#include <openssl/crypto.h>
#include <openssl/err.h>
#include "../fipsmodule/cipher/internal.h"
Include dependency graph for e_aesgcmsiv.c:

Go to the source code of this file.

Classes

struct  aead_aes_gcm_siv_ctx
 
struct  gcm_siv_record_keys
 

Macros

#define EVP_AEAD_AES_GCM_SIV_NONCE_LEN   12
 
#define EVP_AEAD_AES_GCM_SIV_TAG_LEN   16
 

Functions

static void aead_aes_gcm_siv_cleanup (EVP_AEAD_CTX *ctx)
 
static int aead_aes_gcm_siv_init (EVP_AEAD_CTX *ctx, const uint8_t *key, size_t key_len, size_t tag_len)
 
static int aead_aes_gcm_siv_open_gather (const EVP_AEAD_CTX *ctx, uint8_t *out, const uint8_t *nonce, size_t nonce_len, const uint8_t *in, size_t in_len, const uint8_t *in_tag, size_t in_tag_len, const uint8_t *ad, size_t ad_len)
 
static int aead_aes_gcm_siv_seal_scatter (const EVP_AEAD_CTX *ctx, uint8_t *out, uint8_t *out_tag, size_t *out_tag_len, size_t max_out_tag_len, const uint8_t *nonce, size_t nonce_len, const uint8_t *in, size_t in_len, const uint8_t *extra_in, size_t extra_in_len, const uint8_t *ad, size_t ad_len)
 
const EVP_AEADEVP_aead_aes_128_gcm_siv (void)
 
const EVP_AEADEVP_aead_aes_256_gcm_siv (void)
 
static void gcm_siv_crypt (uint8_t *out, const uint8_t *in, size_t in_len, const uint8_t initial_counter[AES_BLOCK_SIZE], block128_f enc_block, const AES_KEY *key)
 
static void gcm_siv_keys (const struct aead_aes_gcm_siv_ctx *gcm_siv_ctx, struct gcm_siv_record_keys *out_keys, const uint8_t nonce[EVP_AEAD_AES_GCM_SIV_NONCE_LEN])
 
static void gcm_siv_polyval (uint8_t out_tag[16], const uint8_t *in, size_t in_len, const uint8_t *ad, size_t ad_len, const uint8_t auth_key[16], const uint8_t nonce[EVP_AEAD_AES_GCM_SIV_NONCE_LEN])
 
 OPENSSL_STATIC_ASSERT (sizeof(((EVP_AEAD_CTX *) NULL) ->state) >=sizeof(struct aead_aes_gcm_siv_ctx), "AEAD state is too small")
 

Variables

static const EVP_AEAD aead_aes_128_gcm_siv
 
static const EVP_AEAD aead_aes_256_gcm_siv
 

Macro Definition Documentation

◆ EVP_AEAD_AES_GCM_SIV_NONCE_LEN

#define EVP_AEAD_AES_GCM_SIV_NONCE_LEN   12

Definition at line 27 of file e_aesgcmsiv.c.

◆ EVP_AEAD_AES_GCM_SIV_TAG_LEN

#define EVP_AEAD_AES_GCM_SIV_TAG_LEN   16

Definition at line 28 of file e_aesgcmsiv.c.

Function Documentation

◆ aead_aes_gcm_siv_cleanup()

static void aead_aes_gcm_siv_cleanup ( EVP_AEAD_CTX ctx)
static

Definition at line 610 of file e_aesgcmsiv.c.

◆ aead_aes_gcm_siv_init()

static int aead_aes_gcm_siv_init ( EVP_AEAD_CTX ctx,
const uint8_t key,
size_t  key_len,
size_t  tag_len 
)
static

Definition at line 581 of file e_aesgcmsiv.c.

◆ aead_aes_gcm_siv_open_gather()

static int aead_aes_gcm_siv_open_gather ( const EVP_AEAD_CTX ctx,
uint8_t out,
const uint8_t nonce,
size_t  nonce_len,
const uint8_t in,
size_t  in_len,
const uint8_t in_tag,
size_t  in_tag_len,
const uint8_t ad,
size_t  ad_len 
)
static

Definition at line 780 of file e_aesgcmsiv.c.

◆ aead_aes_gcm_siv_seal_scatter()

static int aead_aes_gcm_siv_seal_scatter ( const EVP_AEAD_CTX ctx,
uint8_t out,
uint8_t out_tag,
size_t *  out_tag_len,
size_t  max_out_tag_len,
const uint8_t nonce,
size_t  nonce_len,
const uint8_t in,
size_t  in_len,
const uint8_t extra_in,
size_t  extra_in_len,
const uint8_t ad,
size_t  ad_len 
)
static

Definition at line 738 of file e_aesgcmsiv.c.

◆ EVP_aead_aes_128_gcm_siv()

const EVP_AEAD* EVP_aead_aes_128_gcm_siv ( void  )

Definition at line 883 of file e_aesgcmsiv.c.

◆ EVP_aead_aes_256_gcm_siv()

const EVP_AEAD* EVP_aead_aes_256_gcm_siv ( void  )

Definition at line 887 of file e_aesgcmsiv.c.

◆ gcm_siv_crypt()

static void gcm_siv_crypt ( uint8_t out,
const uint8_t in,
size_t  in_len,
const uint8_t  initial_counter[AES_BLOCK_SIZE],
block128_f  enc_block,
const AES_KEY key 
)
static

Definition at line 619 of file e_aesgcmsiv.c.

◆ gcm_siv_keys()

static void gcm_siv_keys ( const struct aead_aes_gcm_siv_ctx gcm_siv_ctx,
struct gcm_siv_record_keys out_keys,
const uint8_t  nonce[EVP_AEAD_AES_GCM_SIV_NONCE_LEN] 
)
static

Definition at line 705 of file e_aesgcmsiv.c.

◆ gcm_siv_polyval()

static void gcm_siv_polyval ( uint8_t  out_tag[16],
const uint8_t in,
size_t  in_len,
const uint8_t ad,
size_t  ad_len,
const uint8_t  auth_key[16],
const uint8_t  nonce[EVP_AEAD_AES_GCM_SIV_NONCE_LEN] 
)
static

Definition at line 650 of file e_aesgcmsiv.c.

◆ OPENSSL_STATIC_ASSERT()

OPENSSL_STATIC_ASSERT ( sizeof(((EVP_AEAD_CTX *) NULL) ->state) >=sizeof(struct aead_aes_gcm_siv_ctx ,
"AEAD state is too small"   
)

Variable Documentation

◆ aead_aes_128_gcm_siv

const EVP_AEAD aead_aes_128_gcm_siv
static

◆ aead_aes_256_gcm_siv

const EVP_AEAD aead_aes_256_gcm_siv
static
aead_aes_gcm_siv_cleanup
static void aead_aes_gcm_siv_cleanup(EVP_AEAD_CTX *ctx)
Definition: e_aesgcmsiv.c:610
aead_aes_gcm_siv_seal_scatter
static int aead_aes_gcm_siv_seal_scatter(const EVP_AEAD_CTX *ctx, uint8_t *out, uint8_t *out_tag, size_t *out_tag_len, size_t max_out_tag_len, const uint8_t *nonce, size_t nonce_len, const uint8_t *in, size_t in_len, const uint8_t *extra_in, size_t extra_in_len, const uint8_t *ad, size_t ad_len)
Definition: e_aesgcmsiv.c:738
EVP_AEAD_AES_GCM_SIV_NONCE_LEN
#define EVP_AEAD_AES_GCM_SIV_NONCE_LEN
Definition: e_aesgcmsiv.c:27
aead_aes_gcm_siv_init
static int aead_aes_gcm_siv_init(EVP_AEAD_CTX *ctx, const uint8_t *key, size_t key_len, size_t tag_len)
Definition: e_aesgcmsiv.c:581
aead_aes_gcm_siv_open_gather
static int aead_aes_gcm_siv_open_gather(const EVP_AEAD_CTX *ctx, uint8_t *out, const uint8_t *nonce, size_t nonce_len, const uint8_t *in, size_t in_len, const uint8_t *in_tag, size_t in_tag_len, const uint8_t *ad, size_t ad_len)
Definition: e_aesgcmsiv.c:780
EVP_AEAD_AES_GCM_SIV_TAG_LEN
#define EVP_AEAD_AES_GCM_SIV_TAG_LEN
Definition: e_aesgcmsiv.c:28


grpc
Author(s):
autogenerated on Fri May 16 2025 03:01:11