INNER CODE UNIT · Rust
aggregate_custom
ZcashFoundation/frost · frost-core/src/lib.rs:596
pub fn aggregate_custom<C>(
signing_package: &SigningPackage<C>,
signature_shares: &BTreeMap<Identifier<C>, round2::SignatureShare<C>>,
pubkeys: &keys::PublicKeyPackage<C>,
cheater_detection: CheaterDetection,
) -> Result<Signature<C>, Error<C>>
where
C: Ciphersuite,
{
// Check if signing_package.signing_commitments and signature_shares have
// the same set of identifiers, and if they are all in pubkeys.verifying_shares.
if signing_package.signing_commitments().len() != signature_shares.len() {
return Err(Error::UnknownIdentifier);
}
if let Some(min) = pubkeys.min_signers() {
if signature_shares.len() < min as usize {
return Err(Error::IncorrectNumberOfShares);