Skip to content

Commit 54515e0

Browse files
authored
Add post_generate to Ciphersuite trait
1 parent 194007a commit 54515e0

File tree

1 file changed

+23
-11
lines changed

1 file changed

+23
-11
lines changed

frost-core/src/keys.rs

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -548,7 +548,6 @@ pub fn split<C: Ciphersuite, R: RngCore + CryptoRng>(
548548
}
549549
};
550550
let mut verifying_shares: BTreeMap<Identifier<C>, VerifyingShare<C>> = BTreeMap::new();
551-
552551
let mut secret_shares_by_id: BTreeMap<Identifier<C>, SecretShare<C>> = BTreeMap::new();
553552

554553
for secret_share in secret_shares {
@@ -558,14 +557,13 @@ pub fn split<C: Ciphersuite, R: RngCore + CryptoRng>(
558557
secret_shares_by_id.insert(secret_share.identifier, secret_share);
559558
}
560559

561-
Ok((
562-
secret_shares_by_id,
563-
PublicKeyPackage {
564-
header: Header::default(),
565-
verifying_shares,
566-
verifying_key,
567-
},
568-
))
560+
let public_key_package = PublicKeyPackage {
561+
header: Header::default(),
562+
verifying_shares,
563+
verifying_key,
564+
};
565+
566+
Ok((secret_shares_by_id, public_key_package))
569567
}
570568

571569
/// Evaluate the polynomial with the given coefficients (constant term first)
@@ -696,14 +694,28 @@ where
696694
fn try_from(secret_share: SecretShare<C>) -> Result<Self, Error<C>> {
697695
let (verifying_share, verifying_key) = secret_share.verify()?;
698696

699-
Ok(KeyPackage {
697+
let key_package = KeyPackage {
700698
header: Header::default(),
701699
identifier: secret_share.identifier,
702700
signing_share: secret_share.signing_share,
703701
verifying_share,
704702
verifying_key,
705703
min_signers: secret_share.commitment.0.len() as u16,
706-
})
704+
};
705+
706+
// Create a temporary PublicKeyPackage for post_generate
707+
let mut verifying_shares = BTreeMap::new();
708+
verifying_shares.insert(secret_share.identifier, verifying_share);
709+
let public_key_package = PublicKeyPackage {
710+
header: Header::default(),
711+
verifying_shares,
712+
verifying_key,
713+
};
714+
715+
// Apply the post-processing
716+
let (processed_key_package, _) = C::post_generate(key_package, public_key_package)?;
717+
718+
Ok(processed_key_package)
707719
}
708720
}
709721

0 commit comments

Comments
 (0)