Skip to content

Commit

Permalink
remove to-from-bytes
Browse files Browse the repository at this point in the history
  • Loading branch information
punwai committed Jul 15, 2022
1 parent b406fbd commit 11b58fa
Show file tree
Hide file tree
Showing 4 changed files with 6 additions and 44 deletions.
11 changes: 0 additions & 11 deletions crypto/src/bls12377/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -416,17 +416,6 @@ impl Signer<BLS12377Signature> for BLS12377KeyPair {
/// Implement AggregateAuthenticator
///
impl ToFromBytes for BLS12377AggregateSignature {
fn from_bytes(bytes: &[u8]) -> Result<Self, signature::Error> {
let g1 = <G1Projective as CanonicalDeserialize>::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 {
Expand Down
14 changes: 2 additions & 12 deletions crypto/src/bls12381.rs
Original file line number Diff line number Diff line change
Expand Up @@ -424,21 +424,11 @@ impl Signer<BLS12381Signature> for BLS12381KeyPair {
/// Implement AggregateAuthenticator
///
impl ToFromBytes for BLS12381AggregateSignature {
fn from_bytes(bytes: &[u8]) -> Result<Self, signature::Error> {
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 => &[],
Expand Down
21 changes: 2 additions & 19 deletions crypto/src/tests/bls12377_tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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 = <BLS12377AggregateSignature as ToFromBytes>::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]
Expand Down
4 changes: 2 additions & 2 deletions crypto/src/tests/bls12381_tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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]
Expand Down

0 comments on commit 11b58fa

Please sign in to comment.