From 03fee2fb977d3d7213f4353fe2f39c708e616386 Mon Sep 17 00:00:00 2001 From: Paul Hauner Date: Mon, 13 May 2019 12:23:06 +1000 Subject: [PATCH] Fix SSZ for bls fake_crypto features --- .../utils/bls/src/fake_aggregate_signature.rs | 20 ++++++++++++++++++- eth2/utils/bls/src/fake_signature.rs | 20 ++++++++++++++++++- 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/eth2/utils/bls/src/fake_aggregate_signature.rs b/eth2/utils/bls/src/fake_aggregate_signature.rs index 26ec75d93..ac6cc5b2b 100644 --- a/eth2/utils/bls/src/fake_aggregate_signature.rs +++ b/eth2/utils/bls/src/fake_aggregate_signature.rs @@ -3,7 +3,7 @@ use cached_tree_hash::cached_tree_hash_ssz_encoding_as_vector; use serde::de::{Deserialize, Deserializer}; use serde::ser::{Serialize, Serializer}; use serde_hex::{encode as hex_encode, PrefixedHexVisitor}; -use ssz::{ssz_encode, Decodable, DecodeError, Encodable}; +use ssz::{ssz_encode, Decodable, DecodeError}; use tree_hash::tree_hash_ssz_encoding_as_vector; /// A BLS aggregate signature. @@ -57,6 +57,24 @@ impl FakeAggregateSignature { ) -> bool { true } + + /// Convert bytes to fake BLS aggregate signature + pub fn from_bytes(bytes: &[u8]) -> Result { + if bytes.len() != BLS_AGG_SIG_BYTE_SIZE { + Err(DecodeError::InvalidByteLength { + len: bytes.len(), + expected: BLS_AGG_SIG_BYTE_SIZE, + }) + } else { + Ok(Self { + bytes: bytes.to_vec(), + }) + } + } + + pub fn as_bytes(&self) -> Vec { + self.bytes.clone() + } } impl_ssz!( diff --git a/eth2/utils/bls/src/fake_signature.rs b/eth2/utils/bls/src/fake_signature.rs index 7fb52cdbf..02aad673a 100644 --- a/eth2/utils/bls/src/fake_signature.rs +++ b/eth2/utils/bls/src/fake_signature.rs @@ -4,7 +4,7 @@ use hex::encode as hex_encode; use serde::de::{Deserialize, Deserializer}; use serde::ser::{Serialize, Serializer}; use serde_hex::HexVisitor; -use ssz::{ssz_encode, Decodable, DecodeError, Encodable}; +use ssz::{ssz_encode, Decodable, DecodeError}; use tree_hash::tree_hash_ssz_encoding_as_vector; /// A single BLS signature. @@ -49,6 +49,24 @@ impl FakeSignature { true } + /// Convert bytes to fake BLS Signature + pub fn from_bytes(bytes: &[u8]) -> Result { + if bytes.len() != BLS_SIG_BYTE_SIZE { + Err(DecodeError::InvalidByteLength { + len: bytes.len(), + expected: BLS_SIG_BYTE_SIZE, + }) + } else { + Ok(Self { + bytes: bytes.to_vec(), + }) + } + } + + pub fn as_bytes(&self) -> Vec { + self.bytes.clone() + } + /// Returns a new empty signature. pub fn empty_signature() -> Self { FakeSignature::zero()