15 const unsigned char ZCASH_EXPANDSEED_PERSONALIZATION[crypto_generichash_blake2b_PERSONALBYTES] = {
'Z',
'c',
'a',
's',
'h',
'_',
'E',
'x',
'p',
'a',
'n',
'd',
'S',
'e',
'e',
'd'};
20 std::array<unsigned char, 64> res;
21 unsigned char blob[33];
26 crypto_generichash_blake2b_state state;
28 crypto_generichash_blake2b_update(&state, blob, 33);
29 crypto_generichash_blake2b_final(&state, res.data(), 64);
60 std::array<unsigned char, 11> res;
61 unsigned char blob[34];
68 crypto_generichash_blake2b_state state;
70 crypto_generichash_blake2b_update(&state, blob, 34);
71 crypto_generichash_blake2b_final(&state, res.data(), 11);
75 }
else if (blob[33] == 255) {
76 throw std::runtime_error(
"librustzcash_check_diversifier did not return valid diversifier");
void * memcpy(void *a, const void *b, size_t c)
bool librustzcash_check_diversifier(const unsigned char *diversifier)
void librustzcash_to_scalar(const unsigned char *input, unsigned char *result)
const unsigned char ZCASH_EXPANDSEED_PERSONALIZATION[crypto_generichash_blake2b_PERSONALBYTES]
uint256 PRF_ovk(const uint256 &sk)
uint256 PRF_ask(const uint256 &sk)
Sapling functions.
uint256 PRF_nsk(const uint256 &sk)
std::array< unsigned char, 11 > default_diversifier(const uint256 &sk)
std::array< unsigned char, 64 > PRF_expand(const uint256 &sk, unsigned char t)