mirror of
https://github.com/Qortal/pirate-librustzcash.git
synced 2025-11-13 17:47:03 +00:00
Change personalizations to actually match spec this time.
This commit is contained in:
@@ -624,7 +624,7 @@ fn test_input_circuit_with_bls12_381() {
|
|||||||
|
|
||||||
assert!(cs.is_satisfied());
|
assert!(cs.is_satisfied());
|
||||||
assert_eq!(cs.num_constraints(), 98776);
|
assert_eq!(cs.num_constraints(), 98776);
|
||||||
assert_eq!(cs.hash(), "d810fa887178359f3fc5723781a0750b750dd0c02aeb0b14ff19a343db9868f1");
|
assert_eq!(cs.hash(), "2080d5f350cd7eff7742ab05dff18f82c0a2f29a5d2a758d805236067b2ed31f");
|
||||||
|
|
||||||
assert_eq!(cs.num_inputs(), 8);
|
assert_eq!(cs.num_inputs(), 8);
|
||||||
assert_eq!(cs.get_input(0, "ONE"), Fr::one());
|
assert_eq!(cs.get_input(0, "ONE"), Fr::one());
|
||||||
@@ -752,7 +752,7 @@ fn test_output_circuit_with_bls12_381() {
|
|||||||
|
|
||||||
assert!(cs.is_satisfied());
|
assert!(cs.is_satisfied());
|
||||||
assert_eq!(cs.num_constraints(), 7827);
|
assert_eq!(cs.num_constraints(), 7827);
|
||||||
assert_eq!(cs.hash(), "e49724488227ae83b2360a5ddbda7e44c83e6f526a369cefeb747c5dd6aab7c7");
|
assert_eq!(cs.hash(), "a7810a444f7ef6d0caa8ba026ce06e64654863cd0557241282ca337858039a53");
|
||||||
|
|
||||||
let expected_cm = payment_address.create_note(
|
let expected_cm = payment_address.create_note(
|
||||||
value_commitment.value,
|
value_commitment.value,
|
||||||
|
|||||||
@@ -31,18 +31,10 @@ pub const SPENDING_KEY_GENERATOR_PERSONALIZATION: &'static [u8; 8]
|
|||||||
pub const PROOF_GENERATION_KEY_BASE_GENERATOR_PERSONALIZATION: &'static [u8; 8]
|
pub const PROOF_GENERATION_KEY_BASE_GENERATOR_PERSONALIZATION: &'static [u8; 8]
|
||||||
= b"Zcash_H_";
|
= b"Zcash_H_";
|
||||||
|
|
||||||
/// BLAKE2s Personalization for the note commitment randomness generator
|
|
||||||
pub const NOTE_COMMITMENT_RANDOMNESS_GENERATOR_PERSONALIZATION: &'static [u8; 8]
|
|
||||||
= b"Zcashrcm";
|
|
||||||
|
|
||||||
/// BLAKE2s Personalization for the value commitment randomness generator
|
|
||||||
pub const VALUE_COMMITMENT_RANDOMNESS_GENERATOR_PERSONALIZATION: &'static [u8; 8]
|
|
||||||
= b"Zcashrcv";
|
|
||||||
|
|
||||||
/// BLAKE2s Personalization for the value commitment generator for the value
|
/// BLAKE2s Personalization for the value commitment generator for the value
|
||||||
pub const VALUE_COMMITMENT_VALUE_GENERATOR_PERSONALIZATION: &'static [u8; 8]
|
pub const VALUE_COMMITMENT_GENERATOR_PERSONALIZATION: &'static [u8; 8]
|
||||||
= b"Zcash_cv";
|
= b"Zcash_cv";
|
||||||
|
|
||||||
/// BLAKE2s Personalization for the nullifier position generator (for computing rho)
|
/// BLAKE2s Personalization for the nullifier position generator (for computing rho)
|
||||||
pub const NULLIFIER_POSITION_IN_TREE_GENERATOR_PERSONALIZATION: &'static [u8; 8]
|
pub const NULLIFIER_POSITION_IN_TREE_GENERATOR_PERSONALIZATION: &'static [u8; 8]
|
||||||
= b"Zcashrho";
|
= b"Zcash_J_";
|
||||||
|
|||||||
@@ -224,10 +224,10 @@ impl JubjubBls12 {
|
|||||||
let mut pedersen_hash_generators = vec![];
|
let mut pedersen_hash_generators = vec![];
|
||||||
|
|
||||||
for m in 0..5 {
|
for m in 0..5 {
|
||||||
use byteorder::{WriteBytesExt, BigEndian};
|
use byteorder::{WriteBytesExt, LittleEndian};
|
||||||
|
|
||||||
let mut segment_number = [0u8; 4];
|
let mut segment_number = [0u8; 4];
|
||||||
(&mut segment_number[0..4]).write_u32::<BigEndian>(m).unwrap();
|
(&mut segment_number[0..4]).write_u32::<LittleEndian>(m).unwrap();
|
||||||
|
|
||||||
pedersen_hash_generators.push(
|
pedersen_hash_generators.push(
|
||||||
find_group_hash(
|
find_group_hash(
|
||||||
@@ -259,22 +259,22 @@ impl JubjubBls12 {
|
|||||||
let mut fixed_base_generators = vec![edwards::Point::zero(); FixedGenerators::Max as usize];
|
let mut fixed_base_generators = vec![edwards::Point::zero(); FixedGenerators::Max as usize];
|
||||||
|
|
||||||
fixed_base_generators[FixedGenerators::ProofGenerationKey as usize] =
|
fixed_base_generators[FixedGenerators::ProofGenerationKey as usize] =
|
||||||
find_group_hash(b"0", constants::PROOF_GENERATION_KEY_BASE_GENERATOR_PERSONALIZATION, &tmp_params);
|
find_group_hash(&[], constants::PROOF_GENERATION_KEY_BASE_GENERATOR_PERSONALIZATION, &tmp_params);
|
||||||
|
|
||||||
fixed_base_generators[FixedGenerators::NoteCommitmentRandomness as usize] =
|
fixed_base_generators[FixedGenerators::NoteCommitmentRandomness as usize] =
|
||||||
find_group_hash(b"0", constants::NOTE_COMMITMENT_RANDOMNESS_GENERATOR_PERSONALIZATION, &tmp_params);
|
find_group_hash(b"r", constants::PEDERSEN_HASH_GENERATORS_PERSONALIZATION, &tmp_params);
|
||||||
|
|
||||||
fixed_base_generators[FixedGenerators::NullifierPosition as usize] =
|
fixed_base_generators[FixedGenerators::NullifierPosition as usize] =
|
||||||
find_group_hash(b"0", constants::NULLIFIER_POSITION_IN_TREE_GENERATOR_PERSONALIZATION, &tmp_params);
|
find_group_hash(&[], constants::NULLIFIER_POSITION_IN_TREE_GENERATOR_PERSONALIZATION, &tmp_params);
|
||||||
|
|
||||||
fixed_base_generators[FixedGenerators::ValueCommitmentValue as usize] =
|
fixed_base_generators[FixedGenerators::ValueCommitmentValue as usize] =
|
||||||
find_group_hash(b"0", constants::VALUE_COMMITMENT_VALUE_GENERATOR_PERSONALIZATION, &tmp_params);
|
find_group_hash(b"v", constants::VALUE_COMMITMENT_GENERATOR_PERSONALIZATION, &tmp_params);
|
||||||
|
|
||||||
fixed_base_generators[FixedGenerators::ValueCommitmentRandomness as usize] =
|
fixed_base_generators[FixedGenerators::ValueCommitmentRandomness as usize] =
|
||||||
find_group_hash(b"0", constants::VALUE_COMMITMENT_RANDOMNESS_GENERATOR_PERSONALIZATION, &tmp_params);
|
find_group_hash(b"r", constants::VALUE_COMMITMENT_GENERATOR_PERSONALIZATION, &tmp_params);
|
||||||
|
|
||||||
fixed_base_generators[FixedGenerators::SpendingKeyGenerator as usize] =
|
fixed_base_generators[FixedGenerators::SpendingKeyGenerator as usize] =
|
||||||
find_group_hash(b"0", constants::SPENDING_KEY_GENERATOR_PERSONALIZATION, &tmp_params);
|
find_group_hash(&[], constants::SPENDING_KEY_GENERATOR_PERSONALIZATION, &tmp_params);
|
||||||
|
|
||||||
// Check for duplicates, far worse than spec inconsistencies!
|
// Check for duplicates, far worse than spec inconsistencies!
|
||||||
for (i, p1) in fixed_base_generators.iter().enumerate() {
|
for (i, p1) in fixed_base_generators.iter().enumerate() {
|
||||||
|
|||||||
Reference in New Issue
Block a user