Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
blake2s.hpp
Go to the documentation of this file.
1
// === AUDIT STATUS ===
2
// internal: { status: not started, auditors: [], date: YYYY-MM-DD }
3
// external_1: { status: not started, auditors: [], date: YYYY-MM-DD }
4
// external_2: { status: not started, auditors: [], date: YYYY-MM-DD }
5
// =====================
6
7
#pragma once
8
9
#include "../../primitives/field/field.hpp"
10
#include "
barretenberg/numeric/bitop/sparse_form.hpp
"
11
#include "
barretenberg/stdlib/hash/blake2s/blake_util.hpp
"
12
#include "
barretenberg/stdlib/primitives/byte_array/byte_array.hpp
"
13
14
namespace
bb::stdlib
{
15
16
template
<
typename
Builder>
class
Blake2s
{
17
using
field_ct
=
field_t<Builder>
;
18
using
byte_array_ct
=
byte_array<Builder>
;
19
20
static
constexpr
uint32_t
blake2s_IV
[8] = { 0x6A09E667UL, 0xBB67AE85UL, 0x3C6EF372UL, 0xA54FF53AUL,
21
0x510E527FUL, 0x9B05688CUL, 0x1F83D9ABUL, 0x5BE0CD19UL };
22
23
static
constexpr
uint32_t
initial_H
[8] = {
24
0x6b08e647, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19,
25
};
26
27
static
constexpr
size_t
BLAKE2S_STATE_SIZE
=
stdlib::blake_util::BLAKE_STATE_SIZE
;
28
static
constexpr
uint32_t
BLAKE2S_BLOCKBYTES
= 64;
29
30
struct
blake2s_state
{
31
field_t<Builder>
h
[8];
32
field_t<Builder>
t
[2];
33
field_t<Builder>
f
[2];
34
};
35
36
static
void
increment_counter
(
blake2s_state
& S,
const
uint32_t inc);
37
static
void
compress
(
blake2s_state
& S,
byte_array_ct
const
& in);
38
static
void
blake2s
(
blake2s_state
& S,
byte_array_ct
const
& in);
39
40
public
:
41
static
byte_array_ct
hash
(
const
byte_array_ct
& input);
42
};
43
44
}
// namespace bb::stdlib
blake_util.hpp
byte_array.hpp
bb::stdlib::Blake2s
Definition
blake2s.hpp:16
bb::stdlib::Blake2s::compress
static void compress(blake2s_state &S, byte_array_ct const &in)
Definition
blake2s.cpp:49
bb::stdlib::Blake2s::BLAKE2S_BLOCKBYTES
static constexpr uint32_t BLAKE2S_BLOCKBYTES
Definition
blake2s.hpp:28
bb::stdlib::Blake2s::blake2s
static void blake2s(blake2s_state &S, byte_array_ct const &in)
Definition
blake2s.cpp:98
bb::stdlib::Blake2s::blake2s_IV
static constexpr uint32_t blake2s_IV[8]
Definition
blake2s.hpp:20
bb::stdlib::Blake2s::initial_H
static constexpr uint32_t initial_H[8]
Definition
blake2s.hpp:23
bb::stdlib::Blake2s::hash
static byte_array_ct hash(const byte_array_ct &input)
Definition
blake2s.cpp:122
bb::stdlib::Blake2s::increment_counter
static void increment_counter(blake2s_state &S, const uint32_t inc)
Definition
blake2s.cpp:40
bb::stdlib::Blake2s::BLAKE2S_STATE_SIZE
static constexpr size_t BLAKE2S_STATE_SIZE
Definition
blake2s.hpp:27
bb::stdlib::byte_array
Represents a dynamic array of bytes in-circuit.
Definition
byte_array.hpp:28
bb::stdlib::field_t< Builder >
bb::stdlib::blake_util::BLAKE_STATE_SIZE
@ BLAKE_STATE_SIZE
Definition
blake_util.hpp:16
bb::stdlib
Definition
graph_description_goblin.test.cpp:13
sparse_form.hpp
bb::stdlib::Blake2s::blake2s_state
Definition
blake2s.hpp:30
bb::stdlib::Blake2s::blake2s_state::f
field_t< Builder > f[2]
Definition
blake2s.hpp:33
bb::stdlib::Blake2s::blake2s_state::t
field_t< Builder > t[2]
Definition
blake2s.hpp:32
bb::stdlib::Blake2s::blake2s_state::h
field_t< Builder > h[8]
Definition
blake2s.hpp:31
src
barretenberg
stdlib
hash
blake2s
blake2s.hpp
Generated by
1.9.8