Classes | Functions | Variables
e_chacha20poly1305.c File Reference
#include <openssl/aead.h>
#include <string.h>
#include <openssl/chacha.h>
#include <openssl/cipher.h>
#include <openssl/err.h>
#include <openssl/mem.h>
#include <openssl/poly1305.h>
#include <openssl/type_check.h>
#include "internal.h"
#include "../chacha/internal.h"
#include "../fipsmodule/cipher/internal.h"
#include "../internal.h"
Include dependency graph for e_chacha20poly1305.c:

Go to the source code of this file.

Classes

struct  aead_chacha20_poly1305_ctx
 

Functions

static void aead_chacha20_poly1305_cleanup (EVP_AEAD_CTX *ctx)
 
static int aead_chacha20_poly1305_init (EVP_AEAD_CTX *ctx, const uint8_t *key, size_t key_len, size_t tag_len)
 
static int aead_chacha20_poly1305_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_chacha20_poly1305_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 int aead_xchacha20_poly1305_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_xchacha20_poly1305_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 void calc_tag (uint8_t tag[POLY1305_TAG_LEN], const uint8_t *key, const uint8_t nonce[12], const uint8_t *ad, size_t ad_len, const uint8_t *ciphertext, size_t ciphertext_len, const uint8_t *ciphertext_extra, size_t ciphertext_extra_len)
 
static int chacha20_poly1305_open_gather (const uint8_t *key, 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, size_t tag_len)
 
static int chacha20_poly1305_seal_scatter (const uint8_t *key, 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, size_t tag_len)
 
const EVP_AEADEVP_aead_chacha20_poly1305 (void)
 
const EVP_AEADEVP_aead_xchacha20_poly1305 (void)
 
 OPENSSL_STATIC_ASSERT (sizeof(((EVP_AEAD_CTX *) NULL) ->state) >=sizeof(struct aead_chacha20_poly1305_ctx), "AEAD state is too small")
 
static void poly1305_update_length (poly1305_state *poly1305, size_t data_len)
 

Variables

static const EVP_AEAD aead_chacha20_poly1305
 
static const EVP_AEAD aead_xchacha20_poly1305
 

Function Documentation

◆ aead_chacha20_poly1305_cleanup()

static void aead_chacha20_poly1305_cleanup ( EVP_AEAD_CTX ctx)
static

Definition at line 68 of file e_chacha20poly1305.c.

◆ aead_chacha20_poly1305_init()

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

Definition at line 44 of file e_chacha20poly1305.c.

◆ aead_chacha20_poly1305_open_gather()

static int aead_chacha20_poly1305_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 268 of file e_chacha20poly1305.c.

◆ aead_chacha20_poly1305_seal_scatter()

static int aead_chacha20_poly1305_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 185 of file e_chacha20poly1305.c.

◆ aead_xchacha20_poly1305_open_gather()

static int aead_xchacha20_poly1305_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 280 of file e_chacha20poly1305.c.

◆ aead_xchacha20_poly1305_seal_scatter()

static int aead_xchacha20_poly1305_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 198 of file e_chacha20poly1305.c.

◆ calc_tag()

static void calc_tag ( uint8_t  tag[POLY1305_TAG_LEN],
const uint8_t key,
const uint8_t  nonce[12],
const uint8_t ad,
size_t  ad_len,
const uint8_t ciphertext,
size_t  ciphertext_len,
const uint8_t ciphertext_extra,
size_t  ciphertext_extra_len 
)
static

Definition at line 82 of file e_chacha20poly1305.c.

◆ chacha20_poly1305_open_gather()

static int chacha20_poly1305_open_gather ( const uint8_t key,
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,
size_t  tag_len 
)
static

Definition at line 223 of file e_chacha20poly1305.c.

◆ chacha20_poly1305_seal_scatter()

static int chacha20_poly1305_seal_scatter ( const uint8_t key,
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,
size_t  tag_len 
)
static

Definition at line 111 of file e_chacha20poly1305.c.

◆ EVP_aead_chacha20_poly1305()

const EVP_AEAD* EVP_aead_chacha20_poly1305 ( void  )

Definition at line 337 of file e_chacha20poly1305.c.

◆ EVP_aead_xchacha20_poly1305()

const EVP_AEAD* EVP_aead_xchacha20_poly1305 ( void  )

Definition at line 341 of file e_chacha20poly1305.c.

◆ OPENSSL_STATIC_ASSERT()

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

◆ poly1305_update_length()

static void poly1305_update_length ( poly1305_state poly1305,
size_t  data_len 
)
static

Definition at line 70 of file e_chacha20poly1305.c.

Variable Documentation

◆ aead_chacha20_poly1305

const EVP_AEAD aead_chacha20_poly1305
static

◆ aead_xchacha20_poly1305

const EVP_AEAD aead_xchacha20_poly1305
static
aead_xchacha20_poly1305_seal_scatter
static int aead_xchacha20_poly1305_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_chacha20poly1305.c:198
POLY1305_TAG_LEN
#define POLY1305_TAG_LEN
Definition: third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h:138
aead_chacha20_poly1305_cleanup
static void aead_chacha20_poly1305_cleanup(EVP_AEAD_CTX *ctx)
Definition: e_chacha20poly1305.c:68
aead_chacha20_poly1305_open_gather
static int aead_chacha20_poly1305_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_chacha20poly1305.c:268
aead_chacha20_poly1305_seal_scatter
static int aead_chacha20_poly1305_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_chacha20poly1305.c:185
aead_xchacha20_poly1305_open_gather
static int aead_xchacha20_poly1305_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_chacha20poly1305.c:280
aead_chacha20_poly1305_init
static int aead_chacha20_poly1305_init(EVP_AEAD_CTX *ctx, const uint8_t *key, size_t key_len, size_t tag_len)
Definition: e_chacha20poly1305.c:44


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