Go to the documentation of this file.
24 #include "../internal.h"
29 static const uint8_t sigma[16] = {
'e',
'x',
'p',
'a',
'n',
'd',
' ',
'3',
30 '2',
'-',
'b',
'y',
't',
'e',
' ',
'k' };
33 #define QUARTERROUND(a, b, c, d) \
35 x[d] = CRYPTO_rotl_u32(x[d] ^ x[a], 16); \
37 x[b] = CRYPTO_rotl_u32(x[b] ^ x[c], 12); \
39 x[d] = CRYPTO_rotl_u32(x[d] ^ x[a], 8); \
41 x[b] = CRYPTO_rotl_u32(x[b] ^ x[c], 7);
50 for (
size_t i = 0;
i < 20;
i += 2) {
65 #if defined(CHACHA20_ASM)
79 #if !defined(OPENSSL_X86) && !defined(OPENSSL_X86_64)
108 for (
i = 20;
i > 0;
i -= 2) {
119 for (
i = 0;
i < 16; ++
i) {
122 for (
i = 0;
i < 16; ++
i) {
void CRYPTO_hchacha20(uint8_t out[32], const uint8_t key[32], const uint8_t nonce[16])
static const uint8_t sigma[16]
static void CRYPTO_store_u32_le(void *out, uint32_t v)
static void * OPENSSL_memcpy(void *dst, const void *src, size_t n)
_W64 unsigned int uintptr_t
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)
static uint32_t CRYPTO_load_u32_le(const void *in)
#define QUARTERROUND(a, b, c, d)
static int buffers_alias(const uint8_t *a, size_t a_len, const uint8_t *b, size_t b_len)
static void chacha_core(uint8_t output[64], const uint32_t input[16])
grpc
Author(s):
autogenerated on Fri May 16 2025 02:57:52