cryptnox-sdk-esp32 1.0.0
ESP32 SDK for Cryptnox Hardware Wallet
Loading...
Searching...
No Matches
keccak256.cpp File Reference
#include "keccak256.h"
#include <string.h>
Include dependency graph for keccak256.cpp:

Go to the source code of this file.

Macros

#define KECCAK_ROUNDS   24U
#define KECCAK_RATE   136U /* 1088 / 8 bytes — rate for 256-bit output */
#define KECCAK_STATE_LANE   25U /* 5×5 uint64_t lanes */

Functions

static uint64_t rot64 (uint64_t x, uint8_t n)
static void keccak_f1600 (uint64_t st[KECCAK_STATE_LANE])
void keccak256 (const uint8_t *input, size_t length, uint8_t digest[32])

Variables

static const uint64_t kRC [KECCAK_ROUNDS]
static const uint8_t kRHO [KECCAK_STATE_LANE]

Macro Definition Documentation

◆ KECCAK_RATE

#define KECCAK_RATE   136U /* 1088 / 8 bytes — rate for 256-bit output */

Definition at line 10 of file keccak256.cpp.

Referenced by keccak256().

◆ KECCAK_ROUNDS

#define KECCAK_ROUNDS   24U

Definition at line 9 of file keccak256.cpp.

Referenced by keccak_f1600().

◆ KECCAK_STATE_LANE

#define KECCAK_STATE_LANE   25U /* 5×5 uint64_t lanes */

Definition at line 11 of file keccak256.cpp.

Referenced by keccak256(), and keccak_f1600().

Function Documentation

◆ keccak256()

void keccak256 ( const uint8_t * input,
size_t length,
uint8_t digest[32] )
Examples
UsdcSigning/main/main.cpp.

Definition at line 85 of file keccak256.cpp.

References keccak_f1600(), KECCAK_RATE, and KECCAK_STATE_LANE.

Referenced by signing_loop().

◆ keccak_f1600()

void keccak_f1600 ( uint64_t st[KECCAK_STATE_LANE])
static

Definition at line 42 of file keccak256.cpp.

References KECCAK_ROUNDS, KECCAK_STATE_LANE, kRC, kRHO, and rot64().

Referenced by keccak256().

◆ rot64()

uint64_t rot64 ( uint64_t x,
uint8_t n )
static

Definition at line 37 of file keccak256.cpp.

Referenced by keccak_f1600().

Variable Documentation

◆ kRC

const uint64_t kRC[KECCAK_ROUNDS]
static
Initial value:
= {
0x0000000000000001ULL, 0x0000000000008082ULL,
0x800000000000808AULL, 0x8000000080008000ULL,
0x000000000000808BULL, 0x0000000080000001ULL,
0x8000000080008081ULL, 0x8000000000008009ULL,
0x000000000000008AULL, 0x0000000000000088ULL,
0x0000000080008009ULL, 0x000000008000000AULL,
0x000000008000808BULL, 0x800000000000008BULL,
0x8000000000008089ULL, 0x8000000000008003ULL,
0x8000000000008002ULL, 0x8000000000000080ULL,
0x000000000000800AULL, 0x800000008000000AULL,
0x8000000080008081ULL, 0x8000000000008080ULL,
0x0000000080000001ULL, 0x8000000080008008ULL,
}

Definition at line 13 of file keccak256.cpp.

Referenced by keccak_f1600().

◆ kRHO

const uint8_t kRHO[KECCAK_STATE_LANE]
static
Initial value:
= {
0, 1, 62, 28, 27,
36, 44, 6, 55, 20,
3, 10, 43, 25, 39,
41, 45, 15, 21, 8,
18, 2, 61, 56, 14
}

Definition at line 29 of file keccak256.cpp.

Referenced by keccak_f1600().