17 if (
static_cast<uint64_t
>(state_addr) + 7 > AVM_HIGHEST_MEM_ADDRESS ||
18 static_cast<uint64_t
>(input_addr) + 15 > AVM_HIGHEST_MEM_ADDRESS ||
19 static_cast<uint64_t
>(output_addr) + 7 > AVM_HIGHEST_MEM_ADDRESS) {
23 std::array<uint32_t, 8> state;
24 for (
size_t i = 0; i < 8; ++i) {
29 state[i] = val.
as<uint32_t>();
33 for (
size_t i = 0; i < 16; ++i) {
38 input[i] = val.
as<uint32_t>();
43 for (
size_t i = 0; i < 8; ++i) {
44 memory.set(
static_cast<MemoryAddress>(output_addr + i), MemoryValue::from<uint32_t>(output[i]));
std::array< uint32_t, 8 > sha256_block(const std::array< uint32_t, 8 > &h_init, const std::array< uint32_t, 16 > &input)
SHA-256 compression function (FIPS 180-4 Section 6.2.2)