Console Library 8.0.0
A header-only library that makes C++ simple
Loading...
Searching...
No Matches
console::crypto::sha256_impl Namespace Reference

SHA256哈希算法的内部实现细节。 More...

Functions

uint32_t rotr (uint32_t x, uint32_t n)
 对32位无符号整数进行循环右移。
uint32_t ch (uint32_t x, uint32_t y, uint32_t z)
 SHA256中的选择函数Ch。
uint32_t maj (uint32_t x, uint32_t y, uint32_t z)
 SHA256中的多数函数Maj。
uint32_t sigma0 (uint32_t x)
 SHA256中的大西格玛0函数。
uint32_t sigma1 (uint32_t x)
 SHA256中的大西格玛1函数。
uint32_t gamma0 (uint32_t x)
 SHA256中的小西格玛0函数。
uint32_t gamma1 (uint32_t x)
 SHA256中的小西格玛1函数。
void transform (uint32_t *state, const uint8_t *data)
 对64字节的数据块执行SHA256变换。

Variables

static constexpr uint32_t K [64]
 SHA256算法使用的常量K数组。

Detailed Description

SHA256哈希算法的内部实现细节。

Note
该命名空间中的函数和常量仅供内部使用,不建议直接调用。

Function Documentation

◆ ch()

uint32_t console::crypto::sha256_impl::ch ( uint32_t x,
uint32_t y,
uint32_t z )
inline

SHA256中的选择函数Ch。

Parameters
x输入值。
y输入值。
z输入值。
Returns
uint32_t 计算结果。

◆ gamma0()

uint32_t console::crypto::sha256_impl::gamma0 ( uint32_t x)
inline

SHA256中的小西格玛0函数。

Parameters
x输入值。
Returns
uint32_t 计算结果。

◆ gamma1()

uint32_t console::crypto::sha256_impl::gamma1 ( uint32_t x)
inline

SHA256中的小西格玛1函数。

Parameters
x输入值。
Returns
uint32_t 计算结果。

◆ maj()

uint32_t console::crypto::sha256_impl::maj ( uint32_t x,
uint32_t y,
uint32_t z )
inline

SHA256中的多数函数Maj。

Parameters
x输入值。
y输入值。
z输入值。
Returns
uint32_t 计算结果。

◆ rotr()

uint32_t console::crypto::sha256_impl::rotr ( uint32_t x,
uint32_t n )
inline

对32位无符号整数进行循环右移。

Parameters
x待移位的整数。
n右移的位数。
Returns
uint32_t 循环右移后的结果。

◆ sigma0()

uint32_t console::crypto::sha256_impl::sigma0 ( uint32_t x)
inline

SHA256中的大西格玛0函数。

Parameters
x输入值。
Returns
uint32_t 计算结果。

◆ sigma1()

uint32_t console::crypto::sha256_impl::sigma1 ( uint32_t x)
inline

SHA256中的大西格玛1函数。

Parameters
x输入值。
Returns
uint32_t 计算结果。

◆ transform()

void console::crypto::sha256_impl::transform ( uint32_t * state,
const uint8_t * data )
inline

对64字节的数据块执行SHA256变换。

Parameters
state当前哈希状态,长度为8的数组。
data要处理的数据块,长度必须为64字节。

Variable Documentation

◆ K

uint32_t console::crypto::sha256_impl::K[64]
staticconstexpr

SHA256算法使用的常量K数组。