Skip to content

Commit 6c28679

Browse files
committed
review suggestions
1 parent 9ae1aff commit 6c28679

File tree

1 file changed

+19
-55
lines changed

1 file changed

+19
-55
lines changed

mithril-stm/src/multi_sig.rs

Lines changed: 19 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -291,14 +291,14 @@ impl From<&SigningKey> for ProofOfPossession {
291291
impl Signature {
292292
/// Verify a signature against a verification key.
293293
pub fn verify(&self, msg: &[u8], mvk: &VerificationKey) -> Result<(), MultiSignatureError> {
294-
match self.0.validate(true) {
295-
Ok(_) => blst_err_to_mithril(
296-
self.0.verify(false, msg, &[], &[], &mvk.0, false),
297-
Some(*self),
298-
None,
294+
blst_err_to_mithril(
295+
self.0.validate(true).map_or_else(
296+
|e| e,
297+
|_| self.0.verify(false, msg, &[], &[], &mvk.0, false),
299298
),
300-
Err(e) => blst_err_to_mithril(e, Some(*self), None),
301-
}
299+
Some(*self),
300+
None,
301+
)
302302
}
303303

304304
/// Dense mapping function indexed by the index to be evaluated.
@@ -753,32 +753,14 @@ mod tests {
753753
fn serialize_deserialize_vk(seed in any::<u64>()) {
754754
let mut rng = rand_chacha::ChaCha8Rng::seed_from_u64(seed);
755755
let sk = SigningKey::gen(&mut rng);
756-
757756
let vk = VerificationKey::from(&sk);
758757
let vk_bytes = vk.to_bytes();
759-
let result = VerificationKey::from_bytes(&vk_bytes);
760-
match result {
761-
Ok(vk_from_bytes) => {
762-
assert_eq!(vk, vk_from_bytes);
763-
}
764-
Err(MultiSignatureError::SerializationError) => {
765-
println!("Verification key cannot be recovered from bytes.");
766-
}
767-
_ => unreachable!(),
768-
}
769-
758+
let vk2 = VerificationKey::from_bytes(&vk_bytes).unwrap();
759+
assert_eq!(vk, vk2);
770760
let vkpop = VerificationKeyPoP::from(&sk);
771761
let vkpop_bytes = vkpop.to_bytes();
772-
let result = VerificationKeyPoP::from_bytes(&vkpop_bytes);
773-
match result {
774-
Ok(vkpop_from_bytes) => {
775-
assert_eq!(vkpop, vkpop_from_bytes);
776-
}
777-
Err(MultiSignatureError::SerializationError) => {
778-
println!("VerificationKeyPoP cannot be recovered from bytes.");
779-
}
780-
_ => unreachable!(),
781-
}
762+
let vkpop2: VerificationKeyPoP = VerificationKeyPoP::from_bytes(&vkpop_bytes).unwrap();
763+
assert_eq!(vkpop, vkpop2);
782764

783765
// Now we test serde
784766
let encoded = bincode::serialize(&vk).unwrap();
@@ -795,16 +777,8 @@ mod tests {
795777
let mut rng = rand_chacha::ChaCha8Rng::seed_from_u64(seed);
796778
let sk = SigningKey::gen(&mut rng);
797779
let sk_bytes: [u8; 32] = sk.to_bytes();
798-
let result = SigningKey::from_bytes(&sk_bytes);
799-
match result {
800-
Ok(sk_from_bytes) => {
801-
assert_eq!(sk, sk_from_bytes);
802-
}
803-
Err(MultiSignatureError::SerializationError) => {
804-
println!("Signing key cannot be recovered from bytes.");
805-
}
806-
_ => unreachable!(),
807-
}
780+
let sk2 = SigningKey::from_bytes(&sk_bytes).unwrap();
781+
assert_eq!(sk, sk2);
808782

809783
// Now we test serde
810784
let encoded = bincode::serialize(&sk).unwrap();
@@ -837,23 +811,13 @@ mod tests {
837811
sigs.push(sig);
838812
mvks.push(vk);
839813
}
840-
let verify_aggregate = Signature::verify_aggregate(&msg, &mvks, &sigs);
841-
assert!(verify_aggregate.is_ok(), "Aggregate verification {verify_aggregate:?}");
842-
843-
match Signature::aggregate(&mvks, &sigs) {
844-
Ok((agg_vk, agg_sig)) => {
845-
batch_msgs.push(msg.to_vec());
846-
batch_vk.push(agg_vk);
847-
batch_sig.push(agg_sig);
848-
}
849-
Err(MultiSignatureError::AggregateSignatureInvalid) => {
850-
println!("Aggregation failed.");
851-
}
852-
_ => unreachable!(),
853-
}
814+
assert!(Signature::verify_aggregate(&msg, &mvks, &sigs).is_ok());
815+
let (agg_vk, agg_sig) = Signature::aggregate(&mvks, &sigs).unwrap();
816+
batch_msgs.push(msg.to_vec());
817+
batch_vk.push(agg_vk);
818+
batch_sig.push(agg_sig);
854819
}
855-
let batch_verify_aggregates = Signature::batch_verify_aggregates(&batch_msgs, &batch_vk, &batch_sig);
856-
assert!(batch_verify_aggregates.is_ok(), "{batch_verify_aggregates:?}");
820+
assert!(Signature::batch_verify_aggregates(&batch_msgs, &batch_vk, &batch_sig).is_ok());
857821

858822
// If we have an invalid signature, the batch verification will fail
859823
let mut msg = [0u8; 32];

0 commit comments

Comments
 (0)