Fix the known instance of #295

This commit is contained in:
Luke Parker 2023-07-13 13:53:41 -04:00
parent 6a4bccba74
commit c9bb284570
No known key found for this signature in database
3 changed files with 6 additions and 7 deletions

View file

@ -16,12 +16,6 @@ use crate::{Participant, DkgError, ThresholdCore, ThresholdKeys, validate_map};
/// Promote a set of keys to another Ciphersuite definition.
pub trait CiphersuitePromote<C2: Ciphersuite> {
#[doc(hidden)]
#[allow(non_snake_case)]
fn _bound_C2(_c2: C2) {
panic!()
}
fn promote(self) -> ThresholdKeys<C2>;
}

View file

@ -26,6 +26,9 @@ pub mod tests;
/// Various errors possible during signing.
#[derive(Clone, Copy, PartialEq, Eq, Debug, Error)]
pub enum FrostError {
#[error("internal error: {0}")]
InternalError(&'static str),
#[error("invalid participant (0 < participant <= {0}, yet participant is {1})")]
InvalidParticipant(u16, Participant),
#[error("invalid signing set ({0})")]

View file

@ -516,6 +516,8 @@ impl<C: Curve, A: Algorithm<C>> SignatureMachine<A::Signature> for AlgorithmSign
}
// If everyone has a valid share, and there were enough participants, this should've worked
panic!("everyone had a valid share yet the signature was still invalid");
// The only known way to cause this, for valid parameters/algorithms, is to deserialize a
// semantically invalid FrostKeys
Err(FrostError::InternalError("everyone had a valid share yet the signature was still invalid"))
}
}