From a6da644e9a5c84b978c56e98515201e2e6f79d59 Mon Sep 17 00:00:00 2001 From: Marc Nijdam Date: Tue, 26 Mar 2024 13:25:12 -0500 Subject: [PATCH 1/2] Fix up to recommended signature use --- src/ed25519/mod.rs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/ed25519/mod.rs b/src/ed25519/mod.rs index 6ec6b9b..ffc3d7d 100644 --- a/src/ed25519/mod.rs +++ b/src/ed25519/mod.rs @@ -100,9 +100,10 @@ impl Keypair { impl signature::Signature for Signature { fn from_bytes(input: &[u8]) -> std::result::Result { - let signature = - ed25519_compact::Signature::try_from(input).map_err(signature::Error::from_source)?; - Ok(Signature(signature)) + Ok(Signature( + ed25519_compact::Signature::from_slice(input) + .map_err(|_| signature::Error::default())?, + )) } fn as_bytes(&self) -> &[u8] { @@ -140,8 +141,7 @@ impl signature::Signer for Keypair { impl Signature { pub fn from_bytes(bytes: &[u8]) -> Result { - let signature = ed25519_compact::Signature::try_from(bytes)?; - Ok(Signature(signature)) + Ok(Signature(ed25519_compact::Signature::from_slice(bytes)?)) } pub fn to_vec(&self) -> Vec { @@ -153,8 +153,9 @@ impl TryFrom<&[u8]> for Signature { type Error = Error; fn try_from(input: &[u8]) -> Result { - let signature = ed25519_compact::Signature::try_from(input)?; - Ok(Signature(signature)) + ed25519_compact::Signature::from_slice(input) + .map(Signature) + .map_err(Error::from) } } From de3951ebd309c16f1a80f3ba9ffa767bf9672fd1 Mon Sep 17 00:00:00 2001 From: Marc Nijdam Date: Tue, 26 Mar 2024 13:42:59 -0500 Subject: [PATCH 2/2] clean up some new clippy warnings --- src/ecc_compact/mod.rs | 6 +----- src/ed25519/mod.rs | 5 +---- src/public_key.rs | 1 - src/secp256k1/mod.rs | 5 +---- 4 files changed, 3 insertions(+), 14 deletions(-) diff --git a/src/ecc_compact/mod.rs b/src/ecc_compact/mod.rs index 7d0f4e8..51f7e57 100644 --- a/src/ecc_compact/mod.rs +++ b/src/ecc_compact/mod.rs @@ -4,11 +4,7 @@ use p256::{ elliptic_curve::{ecdh, sec1::ToCompactEncodedPoint, DecompactPoint}, FieldBytes, }; -use std::{ - convert::TryFrom, - hash::{Hash, Hasher}, - ops::Deref, -}; +use std::{hash::Hasher, ops::Deref}; #[derive(Debug, Clone)] pub struct PublicKey(pub(crate) p256::PublicKey); diff --git a/src/ed25519/mod.rs b/src/ed25519/mod.rs index ffc3d7d..cc0e1f2 100644 --- a/src/ed25519/mod.rs +++ b/src/ed25519/mod.rs @@ -1,8 +1,5 @@ use crate::*; -use std::{ - convert::TryFrom, - hash::{Hash, Hasher}, -}; +use std::hash::Hasher; #[derive(Debug, Clone)] pub struct PublicKey(pub(crate) ed25519_compact::PublicKey); diff --git a/src/public_key.rs b/src/public_key.rs index 5b95edd..bf3c567 100644 --- a/src/public_key.rs +++ b/src/public_key.rs @@ -3,7 +3,6 @@ //! since a client will need to be able to parse and use a public key from any //! keypair. use crate::*; -use std::{convert::TryFrom, hash::Hash}; ///Verify a given message against a given signature slice. Public keys are ///expected to implemt this trait to verify signed messages. diff --git a/src/secp256k1/mod.rs b/src/secp256k1/mod.rs index 7b0d581..b29bf91 100644 --- a/src/secp256k1/mod.rs +++ b/src/secp256k1/mod.rs @@ -1,10 +1,7 @@ use crate::*; use base64::{engine::general_purpose::STANDARD, Engine}; use k256::{ecdsa, elliptic_curve::sec1::ToEncodedPoint}; -use std::{ - convert::TryFrom, - hash::{Hash, Hasher}, -}; +use std::hash::Hasher; use thiserror::Error; #[derive(Debug, Clone)]