diff --git a/src/ed25519/mod.rs b/src/ed25519/mod.rs index 5fff594..6ec6b9b 100644 --- a/src/ed25519/mod.rs +++ b/src/ed25519/mod.rs @@ -100,11 +100,13 @@ impl Keypair { impl signature::Signature for Signature { fn from_bytes(input: &[u8]) -> std::result::Result { - Ok(Signature(signature::Signature::from_bytes(input)?)) + let signature = + ed25519_compact::Signature::try_from(input).map_err(signature::Error::from_source)?; + Ok(Signature(signature)) } fn as_bytes(&self) -> &[u8] { - self.0.as_bytes() + self.0.as_ref() } } @@ -138,7 +140,8 @@ impl signature::Signer for Keypair { impl Signature { pub fn from_bytes(bytes: &[u8]) -> Result { - Ok(Signature(signature::Signature::from_bytes(bytes)?)) + let signature = ed25519_compact::Signature::try_from(bytes)?; + Ok(Signature(signature)) } pub fn to_vec(&self) -> Vec { @@ -150,9 +153,8 @@ impl TryFrom<&[u8]> for Signature { type Error = Error; fn try_from(input: &[u8]) -> Result { - signature::Signature::from_bytes(input) - .map(Signature) - .map_err(Error::from) + let signature = ed25519_compact::Signature::try_from(input)?; + Ok(Signature(signature)) } }