diff options
author | Neal H. Walfield <neal@pep.foundation> | 2020-07-23 16:52:34 +0200 |
---|---|---|
committer | Neal H. Walfield <neal@pep.foundation> | 2020-07-29 17:03:03 +0200 |
commit | 20df0b8f6b70a997a3979a83c5dd0178cc0dbd99 (patch) | |
tree | 1121a7aad7f73cc43216b8a4d63c7dba917bb894 | |
parent | 6540c6bd0eefe98de82a327fc61419613b91b3c2 (diff) |
openpgp: Add a conversion from Signature to Signature4.
- Implement `TryFrom<Signature>` for `Signature4`.
-rw-r--r-- | openpgp/src/packet/signature/subpacket.rs | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/openpgp/src/packet/signature/subpacket.rs b/openpgp/src/packet/signature/subpacket.rs index d771068d..db513907 100644 --- a/openpgp/src/packet/signature/subpacket.rs +++ b/openpgp/src/packet/signature/subpacket.rs @@ -56,7 +56,7 @@ use std::cell::RefCell; use std::collections::HashMap; -use std::convert::TryInto; +use std::convert::{TryInto, TryFrom}; use std::hash::{Hash, Hasher}; use std::sync::Mutex; use std::ops::{Deref, DerefMut}; @@ -1985,6 +1985,21 @@ impl SubpacketAreas { } } +impl TryFrom<Signature> for Signature4 { + type Error = anyhow::Error; + + fn try_from(sig: Signature) -> Result<Self> { + match sig { + Signature::V4(sig) => Ok(sig), + sig => Err( + Error::InvalidArgument( + format!("Got a v{}, require a v4 signature", sig.version()) + .into()) + .into()), + } + } +} + impl Deref for Signature4 { type Target = signature::SignatureFields; |