Arachne 1.0
Arachne - the perpetual stitcher of Wikidata entities.
Loading...
Searching...
No Matches
arachne::crypto::anonymous_namespace{crypto.cpp} Namespace Reference

Functions

std::uint32_t load_be32 (const std::byte *bytes) noexcept
void store_be32 (std::byte *output, const std::uint32_t value) noexcept
std::string to_hex (const sha256_digest &digest)

Variables

constexpr std::array< std::uint32_t, 64 > round_constants
constexpr char hexadecimal [] = "0123456789abcdef"

Function Documentation

◆ load_be32()

std::uint32_t arachne::crypto::anonymous_namespace{crypto.cpp}::load_be32 ( const std::byte * bytes)
nodiscardnoexcept

Definition at line 33 of file crypto.cpp.

33 {
34 return static_cast<std::uint32_t>(std::to_integer<unsigned>(bytes[0]))
35 << 24U
36 | static_cast<std::uint32_t>(std::to_integer<unsigned>(bytes[1]))
37 << 16U
38 | static_cast<std::uint32_t>(std::to_integer<unsigned>(bytes[2]))
39 << 8U
40 | static_cast<std::uint32_t>(std::to_integer<unsigned>(bytes[3]));
41 }

Referenced by arachne::crypto::sha256_hasher::transform().

Here is the caller graph for this function:

◆ store_be32()

void arachne::crypto::anonymous_namespace{crypto.cpp}::store_be32 ( std::byte * output,
const std::uint32_t value )
noexcept

Definition at line 43 of file crypto.cpp.

43 {
44 output[0] = static_cast<std::byte>(value >> 24U);
45 output[1] = static_cast<std::byte>(value >> 16U);
46 output[2] = static_cast<std::byte>(value >> 8U);
47 output[3] = static_cast<std::byte>(value);
48 }

◆ to_hex()

std::string arachne::crypto::anonymous_namespace{crypto.cpp}::to_hex ( const sha256_digest & digest)
nodiscard

Definition at line 50 of file crypto.cpp.

50 {
51 std::string result;
52 result.resize(digest.size() * 2U);
53 std::size_t index = 0;
54 for (const std::byte value : digest) {
55 const auto byte = std::to_integer<unsigned>(value);
56 result[index++] = hexadecimal[byte >> 4U];
57 result[index++] = hexadecimal[byte & 0x0fU];
58 }
59 return result;
60 }

Variable Documentation

◆ hexadecimal

char arachne::crypto::anonymous_namespace{crypto.cpp}::hexadecimal = "0123456789abcdef"
constexpr

Definition at line 31 of file crypto.cpp.

◆ round_constants

std::array< std::uint32_t, 64 > arachne::crypto::anonymous_namespace{crypto.cpp}::round_constants
constexpr
Initial value:
{
0x428a2f98U, 0x71374491U, 0xb5c0fbcfU, 0xe9b5dba5U, 0x3956c25bU,
0x59f111f1U, 0x923f82a4U, 0xab1c5ed5U, 0xd807aa98U, 0x12835b01U,
0x243185beU, 0x550c7dc3U, 0x72be5d74U, 0x80deb1feU, 0x9bdc06a7U,
0xc19bf174U, 0xe49b69c1U, 0xefbe4786U, 0x0fc19dc6U, 0x240ca1ccU,
0x2de92c6fU, 0x4a7484aaU, 0x5cb0a9dcU, 0x76f988daU, 0x983e5152U,
0xa831c66dU, 0xb00327c8U, 0xbf597fc7U, 0xc6e00bf3U, 0xd5a79147U,
0x06ca6351U, 0x14292967U, 0x27b70a85U, 0x2e1b2138U, 0x4d2c6dfcU,
0x53380d13U, 0x650a7354U, 0x766a0abbU, 0x81c2c92eU, 0x92722c85U,
0xa2bfe8a1U, 0xa81a664bU, 0xc24b8b70U, 0xc76c51a3U, 0xd192e819U,
0xd6990624U, 0xf40e3585U, 0x106aa070U, 0x19a4c116U, 0x1e376c08U,
0x2748774cU, 0x34b0bcb5U, 0x391c0cb3U, 0x4ed8aa4aU, 0x5b9cca4fU,
0x682e6ff3U, 0x748f82eeU, 0x78a5636fU, 0x84c87814U, 0x8cc70208U,
0x90befffaU, 0xa4506cebU, 0xbef9a3f7U, 0xc67178f2U,
}

Definition at line 15 of file crypto.cpp.

15 {
16 0x428a2f98U, 0x71374491U, 0xb5c0fbcfU, 0xe9b5dba5U, 0x3956c25bU,
17 0x59f111f1U, 0x923f82a4U, 0xab1c5ed5U, 0xd807aa98U, 0x12835b01U,
18 0x243185beU, 0x550c7dc3U, 0x72be5d74U, 0x80deb1feU, 0x9bdc06a7U,
19 0xc19bf174U, 0xe49b69c1U, 0xefbe4786U, 0x0fc19dc6U, 0x240ca1ccU,
20 0x2de92c6fU, 0x4a7484aaU, 0x5cb0a9dcU, 0x76f988daU, 0x983e5152U,
21 0xa831c66dU, 0xb00327c8U, 0xbf597fc7U, 0xc6e00bf3U, 0xd5a79147U,
22 0x06ca6351U, 0x14292967U, 0x27b70a85U, 0x2e1b2138U, 0x4d2c6dfcU,
23 0x53380d13U, 0x650a7354U, 0x766a0abbU, 0x81c2c92eU, 0x92722c85U,
24 0xa2bfe8a1U, 0xa81a664bU, 0xc24b8b70U, 0xc76c51a3U, 0xd192e819U,
25 0xd6990624U, 0xf40e3585U, 0x106aa070U, 0x19a4c116U, 0x1e376c08U,
26 0x2748774cU, 0x34b0bcb5U, 0x391c0cb3U, 0x4ed8aa4aU, 0x5b9cca4fU,
27 0x682e6ff3U, 0x748f82eeU, 0x78a5636fU, 0x84c87814U, 0x8cc70208U,
28 0x90befffaU, 0xa4506cebU, 0xbef9a3f7U, 0xc67178f2U,
29 };