From ebf143bfa906769ff096f1a60f8d98b688c681dd Mon Sep 17 00:00:00 2001 From: Justus Winter Date: Tue, 31 Mar 2020 11:01:45 +0200 Subject: openpgp: Move definition of struct KeyID. --- openpgp/src/keyid.rs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'openpgp/src/keyid.rs') diff --git a/openpgp/src/keyid.rs b/openpgp/src/keyid.rs index e7e262fd..306e9648 100644 --- a/openpgp/src/keyid.rs +++ b/openpgp/src/keyid.rs @@ -3,9 +3,25 @@ use quickcheck::{Arbitrary, Gen}; use crate::Error; use crate::Fingerprint; -use crate::KeyID; use crate::Result; +/// Holds a KeyID. +/// +/// A KeyID is a fingerprint fragment. It identifies a public key, +/// but is easy to forge. For more details about how a KeyID is +/// generated, see [Section 12.2 of RFC 4880]. +/// +/// [Section 12.2 of RFC 4880]: https://tools.ietf.org/html/rfc4880#section-12.2 +#[derive(PartialEq, Eq, PartialOrd, Ord, Clone, Hash)] +pub enum KeyID { + /// Lower 8 byte SHA-1 hash. + V4([u8;8]), + /// Used for holding fingerprints that we don't understand. For + /// instance, we don't grok v3 fingerprints. And, it is possible + /// that the Issuer subpacket contains the wrong number of bytes. + Invalid(Box<[u8]>) +} + impl fmt::Display for KeyID { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { write!(f, "{}", self.convert_to_string(true)) -- cgit v1.2.3