Generate test vectors for Sapling generators
This commit is contained in:
parent
6786564447
commit
fb07e639b9
|
@ -1,7 +1,9 @@
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
|
from binascii import hexlify
|
||||||
from pyblake2 import blake2s
|
from pyblake2 import blake2s
|
||||||
|
|
||||||
from sapling_jubjub import Point, JUBJUB_COFACTOR
|
from sapling_jubjub import Point, JUBJUB_COFACTOR
|
||||||
|
from sapling_utils import chunk
|
||||||
|
|
||||||
# First 64 bytes of the BLAKE2s input during group hash.
|
# First 64 bytes of the BLAKE2s input during group hash.
|
||||||
# This is chosen to be some random string that we couldn't have
|
# This is chosen to be some random string that we couldn't have
|
||||||
|
@ -46,3 +48,47 @@ NOTE_POSITION_BASE = find_group_hash(b'Zcash_J_', b'')
|
||||||
WINDOWED_PEDERSEN_RANDOMNESS_BASE = find_group_hash(b'Zcash_PH', b'r')
|
WINDOWED_PEDERSEN_RANDOMNESS_BASE = find_group_hash(b'Zcash_PH', b'r')
|
||||||
VALUE_COMMITMENT_VALUE_BASE = find_group_hash(b'Zcash_cv', b'v')
|
VALUE_COMMITMENT_VALUE_BASE = find_group_hash(b'Zcash_cv', b'v')
|
||||||
VALUE_COMMITMENT_RANDOMNESS_BASE = find_group_hash(b'Zcash_cv', b'r')
|
VALUE_COMMITMENT_RANDOMNESS_BASE = find_group_hash(b'Zcash_cv', b'r')
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
print('''
|
||||||
|
struct SaplingGenerators {
|
||||||
|
skb: [u8; 32],
|
||||||
|
pkb: [u8; 32],
|
||||||
|
npb: [u8; 32],
|
||||||
|
wprb: [u8; 32],
|
||||||
|
vcvb: [u8; 32],
|
||||||
|
vcrb: [u8; 32],
|
||||||
|
};
|
||||||
|
|
||||||
|
let sapling_generators = SaplingGenerators {
|
||||||
|
skb: [
|
||||||
|
%s
|
||||||
|
],
|
||||||
|
pkb: [
|
||||||
|
%s
|
||||||
|
],
|
||||||
|
npb: [
|
||||||
|
%s
|
||||||
|
],
|
||||||
|
wprb: [
|
||||||
|
%s
|
||||||
|
],
|
||||||
|
vcvb: [
|
||||||
|
%s
|
||||||
|
],
|
||||||
|
vcrb: [
|
||||||
|
%s
|
||||||
|
],
|
||||||
|
};''' % (
|
||||||
|
chunk(hexlify(bytes(SPENDING_KEY_BASE))),
|
||||||
|
chunk(hexlify(bytes(PROVING_KEY_BASE))),
|
||||||
|
chunk(hexlify(bytes(NOTE_POSITION_BASE))),
|
||||||
|
chunk(hexlify(bytes(WINDOWED_PEDERSEN_RANDOMNESS_BASE))),
|
||||||
|
chunk(hexlify(bytes(VALUE_COMMITMENT_VALUE_BASE))),
|
||||||
|
chunk(hexlify(bytes(VALUE_COMMITMENT_RANDOMNESS_BASE))),
|
||||||
|
))
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
|
|
Loading…
Reference in New Issue