mirror of
https://github.com/Qortal/pirate-librustzcash.git
synced 2025-11-03 04:47:02 +00:00
Increase the number of pedersen hash generators, exercise all test vectors.
This commit is contained in:
committed by
Jack Grigg
parent
4dff8055bf
commit
3701c2b442
@@ -220,7 +220,7 @@ impl JubjubBls12 {
|
|||||||
{
|
{
|
||||||
let mut pedersen_hash_generators = vec![];
|
let mut pedersen_hash_generators = vec![];
|
||||||
|
|
||||||
for m in 0..5 {
|
for m in 0..6 {
|
||||||
use byteorder::{LittleEndian, WriteBytesExt};
|
use byteorder::{LittleEndian, WriteBytesExt};
|
||||||
|
|
||||||
let mut segment_number = [0u8; 4];
|
let mut segment_number = [0u8; 4];
|
||||||
|
|||||||
@@ -124,19 +124,25 @@ pub mod test {
|
|||||||
fn test_pedersen_hash_points() {
|
fn test_pedersen_hash_points() {
|
||||||
let test_vectors = pedersen_hash_vectors::get_vectors();
|
let test_vectors = pedersen_hash_vectors::get_vectors();
|
||||||
|
|
||||||
let params = &JubjubBls12::new();
|
assert!(test_vectors.len() > 0);
|
||||||
|
|
||||||
let v = &test_vectors[0];
|
for v in test_vectors.iter() {
|
||||||
let input_bools: Vec<bool> = v.input_bits.iter().map(|&i| i == 1).collect();
|
let params = &JubjubBls12::new();
|
||||||
|
|
||||||
// The 6 bits prefix is handled separately
|
let input_bools: Vec<bool> = v.input_bits.iter().map(|&i| i == 1).collect();
|
||||||
assert_eq!(v.personalization.get_bits(), &input_bools[..6]);
|
|
||||||
|
|
||||||
let (x, y) =
|
// The 6 bits prefix is handled separately
|
||||||
pedersen_hash::<Bls12, _>(v.personalization, input_bools.into_iter().skip(6), params)
|
assert_eq!(v.personalization.get_bits(), &input_bools[..6]);
|
||||||
.to_xy();
|
|
||||||
|
|
||||||
assert_eq!(x.to_string(), v.hash_x);
|
let (x, y) = pedersen_hash::<Bls12, _>(
|
||||||
assert_eq!(y.to_string(), v.hash_y);
|
v.personalization,
|
||||||
|
input_bools.into_iter().skip(6),
|
||||||
|
params,
|
||||||
|
)
|
||||||
|
.to_xy();
|
||||||
|
|
||||||
|
assert_eq!(x.to_string(), v.hash_x);
|
||||||
|
assert_eq!(y.to_string(), v.hash_y);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user