diff --git a/crypto/src/bls12377/mod.rs b/crypto/src/bls12377/mod.rs index 2ef2ea2f3..6a7aff4a6 100644 --- a/crypto/src/bls12377/mod.rs +++ b/crypto/src/bls12377/mod.rs @@ -416,17 +416,6 @@ impl Signer for BLS12377KeyPair { /// Implement AggregateAuthenticator /// -impl ToFromBytes for BLS12377AggregateSignature { - fn from_bytes(bytes: &[u8]) -> Result { - let g1 = ::deserialize(bytes) - .map_err(|_| signature::Error::new())?; - Ok(BLS12377AggregateSignature { - sig: Some(g1.into()), - bytes: OnceCell::new(), - }) - } -} - impl AsRef<[u8]> for BLS12377AggregateSignature { fn as_ref(&self) -> &[u8] { match &self.sig { diff --git a/crypto/src/bls12381.rs b/crypto/src/bls12381.rs index 3bab67a81..d0636c4b2 100644 --- a/crypto/src/bls12381.rs +++ b/crypto/src/bls12381.rs @@ -424,21 +424,11 @@ impl Signer for BLS12381KeyPair { /// Implement AggregateAuthenticator /// -impl ToFromBytes for BLS12381AggregateSignature { - fn from_bytes(bytes: &[u8]) -> Result { - let sig = blst::Signature::from_bytes(bytes).map_err(|_e| signature::Error::new())?; - Ok(BLS12381AggregateSignature { - sig: Some(sig), - bytes: OnceCell::new(), - }) - } -} - +// Don't try to use this externally impl AsRef<[u8]> for BLS12381AggregateSignature { fn as_ref(&self) -> &[u8] { match self.sig { - Some(sig) => self - .bytes + Some(sig) => self.bytes .get_or_try_init::<_, eyre::Report>(|| Ok(sig.to_bytes())) .expect("OnceCell invariant violated"), None => &[], diff --git a/crypto/src/tests/bls12377_tests.rs b/crypto/src/tests/bls12377_tests.rs index b3405598c..bb3421626 100644 --- a/crypto/src/tests/bls12377_tests.rs +++ b/crypto/src/tests/bls12377_tests.rs @@ -280,7 +280,7 @@ fn test_serialize_deserialize_aggregate_signatures() { let sig = BLS12377AggregateSignature::default(); let serialized = bincode::serialize(&sig).unwrap(); let deserialized: BLS12377AggregateSignature = bincode::deserialize(&serialized).unwrap(); - assert_eq!(deserialized.as_bytes(), sig.as_bytes()); + assert_eq!(deserialized.as_ref(), sig.as_ref()); let message = b"hello, narwhal"; // Test populated aggregate signature @@ -296,24 +296,7 @@ fn test_serialize_deserialize_aggregate_signatures() { let sig = BLS12377AggregateSignature::aggregate(signatures).unwrap(); let serialized = bincode::serialize(&sig).unwrap(); let deserialized: BLS12377AggregateSignature = bincode::deserialize(&serialized).unwrap(); - assert_eq!(deserialized.as_bytes(), sig.as_bytes()); -} - -#[test] -fn to_from_bytes_aggregate_signature() { - let kpref = keys().pop().unwrap(); - let signature = kpref.sign(b"Hello, world"); - let aggregated_signature = BLS12377AggregateSignature::aggregate(vec![signature]).unwrap(); - let sig_bytes = aggregated_signature.as_ref(); - let rebuilt_sig = ::from_bytes(sig_bytes).unwrap(); - - assert!(aggregated_signature - .verify(&[kpref.public().clone()], b"Hello, world") - .is_ok()); - assert!(rebuilt_sig - .verify(&[kpref.public().clone()], b"Hello, world") - .is_ok()); - assert_eq!(rebuilt_sig.as_ref(), aggregated_signature.as_ref()); + assert_eq!(deserialized.as_ref(), sig.as_ref()); } #[test] diff --git a/crypto/src/tests/bls12381_tests.rs b/crypto/src/tests/bls12381_tests.rs index e22f97291..352478483 100644 --- a/crypto/src/tests/bls12381_tests.rs +++ b/crypto/src/tests/bls12381_tests.rs @@ -282,7 +282,7 @@ fn test_serialize_deserialize_aggregate_signatures() { let sig = BLS12381AggregateSignature::default(); let serialized = bincode::serialize(&sig).unwrap(); let deserialized: BLS12381AggregateSignature = bincode::deserialize(&serialized).unwrap(); - assert_eq!(deserialized.as_bytes(), sig.as_bytes()); + assert_eq!(deserialized.as_ref(), sig.as_ref()); let message = b"hello, narwhal"; // Test populated aggregate signature @@ -298,7 +298,7 @@ fn test_serialize_deserialize_aggregate_signatures() { let sig = BLS12381AggregateSignature::aggregate(signatures).unwrap(); let serialized = bincode::serialize(&sig).unwrap(); let deserialized: BLS12381AggregateSignature = bincode::deserialize(&serialized).unwrap(); - assert_eq!(deserialized.as_bytes(), sig.as_bytes()); + assert_eq!(deserialized.as_ref(), sig.as_ref()); } #[test]