From 67e79fe28c6827c2bfb68d75d331b9fd3a574843 Mon Sep 17 00:00:00 2001 From: Justus Winter Date: Thu, 16 Jan 2020 17:45:27 +0100 Subject: openpgp: Return Result<()> from Signature::verify*. --- openpgp/src/crypto/asymmetric.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'openpgp/src/crypto/asymmetric.rs') diff --git a/openpgp/src/crypto/asymmetric.rs b/openpgp/src/crypto/asymmetric.rs index 76729ddb..32787db6 100644 --- a/openpgp/src/crypto/asymmetric.rs +++ b/openpgp/src/crypto/asymmetric.rs @@ -306,13 +306,13 @@ impl Key { } /// Verifies the given signature. - pub fn verify(&self, sig: &packet::Signature, digest: &[u8]) -> Result + pub fn verify(&self, sig: &packet::Signature, digest: &[u8]) -> Result<()> { use crate::PublicKeyAlgorithm::*; use crate::crypto::mpis::{PublicKey, Signature}; #[allow(deprecated)] - match (sig.pk_algo(), self.mpis(), sig.mpis()) { + let ok = match (sig.pk_algo(), self.mpis(), sig.mpis()) { (RSASign, PublicKey::RSA { e, n }, Signature::RSA { s }) | (RSAEncryptSign, PublicKey::RSA { e, n }, Signature::RSA { s }) => { let key = rsa::PublicKey::new(n.value(), e.value())?; @@ -394,6 +394,12 @@ impl Key { "unsupported combination of algorithm {}, key {} and \ signature {:?}.", sig.pk_algo(), self.pk_algo(), sig.mpis())).into()), + }?; + + if ok { + Ok(()) + } else { + Err(Error::ManipulatedMessage.into()) } } } -- cgit v1.2.3