Alamo
Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes
Util::Hash::SHA256 Class Reference

Public Member Functions

 SHA256 ()
 
void update (const uint8_t *data, size_t length)
 
void update (const std::string &data)
 
std::string final ()
 
void reset ()
 

Private Member Functions

void transform ()
 
void pad ()
 

Static Private Member Functions

static void toBytes (uint8_t *output, const std::array< uint32_t, 8 > &input, size_t size)
 
static uint32_t rotr (uint32_t x, uint32_t n)
 
static uint32_t choose (uint32_t e, uint32_t f, uint32_t g)
 
static uint32_t majority (uint32_t a, uint32_t b, uint32_t c)
 
static uint32_t sig0 (uint32_t x)
 
static uint32_t sig1 (uint32_t x)
 

Private Attributes

std::array< uint32_t, 8 > state_
 
uint8_t data_ [64] = {0}
 
uint32_t datalen_ = 0
 
uint64_t bitlen_ = 0
 
const std::array< uint32_t, 64 > k_
 

Detailed Description

Definition at line 81 of file Hash.H.

Constructor & Destructor Documentation

◆ SHA256()

Util::Hash::SHA256::SHA256 ( )
inline

Definition at line 83 of file Hash.H.

Here is the call graph for this function:

Member Function Documentation

◆ choose()

static uint32_t Util::Hash::SHA256::choose ( uint32_t  e,
uint32_t  f,
uint32_t  g 
)
inlinestaticprivate

Definition at line 156 of file Hash.H.

◆ final()

std::string Util::Hash::SHA256::final ( )
inline

Definition at line 100 of file Hash.H.

Here is the call graph for this function:

◆ majority()

static uint32_t Util::Hash::SHA256::majority ( uint32_t  a,
uint32_t  b,
uint32_t  c 
)
inlinestaticprivate

Definition at line 160 of file Hash.H.

◆ pad()

void Util::Hash::SHA256::pad ( )
inlineprivate

Definition at line 202 of file Hash.H.

Here is the call graph for this function:

◆ reset()

void Util::Hash::SHA256::reset ( )
inline

Definition at line 114 of file Hash.H.

◆ rotr()

static uint32_t Util::Hash::SHA256::rotr ( uint32_t  x,
uint32_t  n 
)
inlinestaticprivate

Definition at line 152 of file Hash.H.

◆ sig0()

static uint32_t Util::Hash::SHA256::sig0 ( uint32_t  x)
inlinestaticprivate

Definition at line 164 of file Hash.H.

Here is the call graph for this function:

◆ sig1()

static uint32_t Util::Hash::SHA256::sig1 ( uint32_t  x)
inlinestaticprivate

Definition at line 168 of file Hash.H.

Here is the call graph for this function:

◆ toBytes()

static void Util::Hash::SHA256::toBytes ( uint8_t *  output,
const std::array< uint32_t, 8 > &  input,
size_t  size 
)
inlinestaticprivate

Definition at line 143 of file Hash.H.

◆ transform()

void Util::Hash::SHA256::transform ( )
inlineprivate

Definition at line 172 of file Hash.H.

Here is the call graph for this function:

◆ update() [1/2]

void Util::Hash::SHA256::update ( const std::string &  data)
inline

Definition at line 96 of file Hash.H.

Here is the call graph for this function:

◆ update() [2/2]

void Util::Hash::SHA256::update ( const uint8_t *  data,
size_t  length 
)
inline

Definition at line 85 of file Hash.H.

Here is the call graph for this function:

Field Documentation

◆ bitlen_

uint64_t Util::Hash::SHA256::bitlen_ = 0
private

Definition at line 125 of file Hash.H.

◆ data_

uint8_t Util::Hash::SHA256::data_[64] = {0}
private

Definition at line 123 of file Hash.H.

◆ datalen_

uint32_t Util::Hash::SHA256::datalen_ = 0
private

Definition at line 124 of file Hash.H.

◆ k_

const std::array<uint32_t, 64> Util::Hash::SHA256::k_
private
Initial value:
= {
0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b,
0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01,
0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7,
0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,
0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152,
0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,
0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc,
0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819,
0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08,
0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f,
0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
}

Definition at line 127 of file Hash.H.

◆ state_

std::array<uint32_t, 8> Util::Hash::SHA256::state_
private

Definition at line 122 of file Hash.H.


The documentation for this class was generated from the following file: