16 static const size_t HASH_REPR_WORDS_PER_HASH =
17 MPC_HASH_SIZE_BYTES / HASH_REPR_WORD_SIZE;
19 static_assert(MPC_HASH_SIZE_BYTES %
sizeof(
size_t) == 0,
"invalid hash size");
21 MPC_HASH_SIZE_BYTES == crypto_generichash_blake2b_BYTES_MAX,
22 "unexpected hash size");
26 crypto_generichash_blake2b_init(&state,
nullptr, 0, MPC_HASH_SIZE_BYTES);
31 crypto_generichash_blake2b_update(&state, (
const uint8_t *)in, size);
36 crypto_generichash_blake2b_final(
37 &state, (uint8_t *)out_hash, MPC_HASH_SIZE_BYTES);
57 for (
size_t i = 0; i < HASH_REPR_WORDS_PER_HASH; ++i) {
58 char sep = ((i % 4) == 3) ?
'\n' :
' ';
68 for (
size_t i = 0; i < HASH_REPR_WORDS_PER_HASH; ++i) {
70 std::cerr <<
"Read failed" << std::endl;
75 if (bin.size() != HASH_REPR_WORD_SIZE) {
76 std::cerr <<
"Invalid word size" << std::endl;
80 memcpy(&out_data[i], bin.data(), HASH_REPR_WORD_SIZE);