From da51f271739be0507c8a4a440e946cd3a82cfb1e Mon Sep 17 00:00:00 2001 From: Heiko Schaefer Date: Fri, 16 Jul 2021 16:31:14 +0200 Subject: [PATCH] Simplify code. --- openpgp-card-sequoia/src/signer.rs | 41 ++++++++++++++---------------- 1 file changed, 19 insertions(+), 22 deletions(-) diff --git a/openpgp-card-sequoia/src/signer.rs b/openpgp-card-sequoia/src/signer.rs index c99c791..79c4570 100644 --- a/openpgp-card-sequoia/src/signer.rs +++ b/openpgp-card-sequoia/src/signer.rs @@ -98,28 +98,22 @@ impl<'a> crypto::Signer for CardSigner { PublicKeyAlgorithm::RSAEncryptSign, mpi::PublicKey::RSA { .. }, ) => { - let sig = match hash_algo { - openpgp::types::HashAlgorithm::SHA256 => { - let hash = - Hash::SHA256(digest.try_into().map_err(|_| { - anyhow!("invalid slice length") - })?); - self.ocu.signature_for_hash(hash)? - } - openpgp::types::HashAlgorithm::SHA384 => { - let hash = - Hash::SHA384(digest.try_into().map_err(|_| { - anyhow!("invalid slice length") - })?); - self.ocu.signature_for_hash(hash)? - } - openpgp::types::HashAlgorithm::SHA512 => { - let hash = - Hash::SHA512(digest.try_into().map_err(|_| { - anyhow!("invalid slice length") - })?); - self.ocu.signature_for_hash(hash)? - } + let hash = match hash_algo { + openpgp::types::HashAlgorithm::SHA256 => Hash::SHA256( + digest + .try_into() + .map_err(|_| anyhow!("invalid slice length"))?, + ), + openpgp::types::HashAlgorithm::SHA384 => Hash::SHA384( + digest + .try_into() + .map_err(|_| anyhow!("invalid slice length"))?, + ), + openpgp::types::HashAlgorithm::SHA512 => Hash::SHA512( + digest + .try_into() + .map_err(|_| anyhow!("invalid slice length"))?, + ), _ => { return Err(anyhow!( "Unsupported hash algorithm for RSA {:?}", @@ -128,11 +122,14 @@ impl<'a> crypto::Signer for CardSigner { } }; + let sig = self.ocu.signature_for_hash(hash)?; + let mpi = mpi::MPI::new(&sig[..]); Ok(mpi::Signature::RSA { s: mpi }) } (PublicKeyAlgorithm::EdDSA, mpi::PublicKey::EdDSA { .. }) => { let hash = Hash::EdDSA(digest); + let sig = self.ocu.signature_for_hash(hash)?; let r = mpi::MPI::new(&sig[..32]);