@@ -291,14 +291,14 @@ impl From<&SigningKey> for ProofOfPossession {
291
291
impl Signature {
292
292
/// Verify a signature against a verification key.
293
293
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 ) ,
299
298
) ,
300
- Err ( e) => blst_err_to_mithril ( e, Some ( * self ) , None ) ,
301
- }
299
+ Some ( * self ) ,
300
+ None ,
301
+ )
302
302
}
303
303
304
304
/// Dense mapping function indexed by the index to be evaluated.
@@ -753,32 +753,14 @@ mod tests {
753
753
fn serialize_deserialize_vk( seed in any:: <u64 >( ) ) {
754
754
let mut rng = rand_chacha:: ChaCha8Rng :: seed_from_u64( seed) ;
755
755
let sk = SigningKey :: gen ( & mut rng) ;
756
-
757
756
let vk = VerificationKey :: from( & sk) ;
758
757
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) ;
770
760
let vkpop = VerificationKeyPoP :: from( & sk) ;
771
761
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) ;
782
764
783
765
// Now we test serde
784
766
let encoded = bincode:: serialize( & vk) . unwrap( ) ;
@@ -795,16 +777,8 @@ mod tests {
795
777
let mut rng = rand_chacha:: ChaCha8Rng :: seed_from_u64( seed) ;
796
778
let sk = SigningKey :: gen ( & mut rng) ;
797
779
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) ;
808
782
809
783
// Now we test serde
810
784
let encoded = bincode:: serialize( & sk) . unwrap( ) ;
@@ -837,23 +811,13 @@ mod tests {
837
811
sigs. push( sig) ;
838
812
mvks. push( vk) ;
839
813
}
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) ;
854
819
}
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( ) ) ;
857
821
858
822
// If we have an invalid signature, the batch verification will fail
859
823
let mut msg = [ 0u8 ; 32 ] ;
0 commit comments