3.8.6 Correct transcript to scalar derivation

Replaces the externally passed in Digest with C::H since C is available.
This commit is contained in:
Luke Parker
2023-03-02 10:04:18 -05:00
parent 530671795a
commit 97374a3e24
6 changed files with 54 additions and 36 deletions

View File

@@ -3,8 +3,6 @@ use core::ops::Deref;
use zeroize::Zeroizing;
use rand_core::OsRng;
use sha2::Sha256;
use group::{ff::Field, Group};
use multiexp::BatchVerifier;
@@ -84,7 +82,7 @@ pub(crate) fn aggregate<C: Ciphersuite>() {
// Create 5 signatures
let mut keys = vec![];
let mut challenges = vec![];
let mut aggregator = SchnorrAggregator::<Sha256, C>::new(DST);
let mut aggregator = SchnorrAggregator::<C>::new(DST);
for i in 0 .. 5 {
keys.push(Zeroizing::new(C::random_nonzero_F(&mut OsRng)));
// In practice, this MUST be a secure challenge binding to the nonce, key, and any message
@@ -102,7 +100,7 @@ pub(crate) fn aggregate<C: Ciphersuite>() {
let aggregate = aggregator.complete().unwrap();
let aggregate =
SchnorrAggregate::<C>::read::<&[u8]>(&mut aggregate.serialize().as_ref()).unwrap();
assert!(aggregate.verify::<Sha256>(
assert!(aggregate.verify(
DST,
keys
.iter()