Macros | Functions | Variables
chacha.c File Reference
#include <openssl/chacha.h>
#include <assert.h>
#include <string.h>
#include <openssl/cpu.h>
#include "../internal.h"
#include "internal.h"
Include dependency graph for chacha.c:

Go to the source code of this file.

Macros

#define QUARTERROUND(a, b, c, d)
 

Functions

static void chacha_core (uint8_t output[64], const uint32_t input[16])
 
void CRYPTO_chacha_20 (uint8_t *out, const uint8_t *in, size_t in_len, const uint8_t key[32], const uint8_t nonce[12], uint32_t counter)
 
void CRYPTO_hchacha20 (uint8_t out[32], const uint8_t key[32], const uint8_t nonce[16])
 

Variables

static const uint8_t sigma [16]
 

Macro Definition Documentation

◆ QUARTERROUND

#define QUARTERROUND (   a,
  b,
  c,
  d 
)
Value:
x[a] += x[b]; \
x[d] = CRYPTO_rotl_u32(x[d] ^ x[a], 16); \
x[c] += x[d]; \
x[b] = CRYPTO_rotl_u32(x[b] ^ x[c], 12); \
x[a] += x[b]; \
x[d] = CRYPTO_rotl_u32(x[d] ^ x[a], 8); \
x[c] += x[d]; \
x[b] = CRYPTO_rotl_u32(x[b] ^ x[c], 7);

Definition at line 33 of file chacha.c.

Function Documentation

◆ chacha_core()

static void chacha_core ( uint8_t  output[64],
const uint32_t  input[16] 
)
static

Definition at line 103 of file chacha.c.

◆ CRYPTO_chacha_20()

void CRYPTO_chacha_20 ( uint8_t out,
const uint8_t in,
size_t  in_len,
const uint8_t  key[32],
const uint8_t  nonce[12],
uint32_t  counter 
)

Definition at line 127 of file chacha.c.

◆ CRYPTO_hchacha20()

void CRYPTO_hchacha20 ( uint8_t  out[32],
const uint8_t  key[32],
const uint8_t  nonce[16] 
)

Definition at line 43 of file chacha.c.

Variable Documentation

◆ sigma

const uint8_t sigma[16]
static
Initial value:
= { 'e', 'x', 'p', 'a', 'n', 'd', ' ', '3',
'2', '-', 'b', 'y', 't', 'e', ' ', 'k' }

Definition at line 29 of file chacha.c.

CRYPTO_rotl_u32
static uint32_t CRYPTO_rotl_u32(uint32_t value, int shift)
Definition: third_party/boringssl-with-bazel/src/crypto/internal.h:899
a
int a
Definition: abseil-cpp/absl/container/internal/hash_policy_traits_test.cc:88
c
void c(T a)
Definition: miscompile_with_no_unique_address_test.cc:40
x
int x
Definition: bloaty/third_party/googletest/googlemock/test/gmock-matchers_test.cc:3610
b
uint64_t b
Definition: abseil-cpp/absl/container/internal/layout_test.cc:53
d
static const fe d
Definition: curve25519_tables.h:19


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