in akd/src/ecvrf/tests.rs [211:237]
fn test_hash_points() {
for tv in TESTVECTORS.iter() {
let sk = VRFExpandedPrivateKey::from(&from_string!(VRFPrivateKey, tv.SK));
let h_point = from_string!(CompressedEdwardsY, tv.H);
let k_bytes = nonce_generation_bytes(sk.nonce, h_point);
let k_scalar = ed25519_Scalar::from_bytes_mod_order_wide(&k_bytes);
let gamma = h_point * sk.key;
let u = ED25519_BASEPOINT_POINT * k_scalar;
let v = h_point * k_scalar;
assert_eq!(tv.U, to_string!(u.compress()));
assert_eq!(tv.V, to_string!(v.compress()));
let c_scalar = hash_points(&[h_point, gamma, u, v]);
let s_scalar = k_scalar + c_scalar * sk.key;
s_scalar.reduce();
let mut c_bytes = [0u8; 16];
c_bytes.copy_from_slice(&c_scalar.to_bytes()[..16]);
let pi = Proof::new(gamma, c_scalar, s_scalar);
assert_eq!(tv.pi, to_string!(pi));
}
}