Enum sequoia_openpgp::Fingerprint [−][src]
A long identifier for certificates and keys.
A Fingerprint
uniquely identifies a public key.
Currently, Sequoia supports version 4 fingerprints and Key IDs only. Version 3 fingerprints and Key IDs were deprecated by RFC 4880 in 2007.
Essentially, a v4 fingerprint is a SHA-1 hash over the key’s public key packet. For details, see Section 12.2 of RFC 4880.
Fingerprints are used, for example, to reference the issuing key
of a signature in its IssuerFingerprint
subpacket. As a
general rule of thumb, you should prefer using fingerprints over
KeyIDs because the latter are vulnerable to birthday attacks.
Note: This enum cannot be exhaustively matched to allow future extensions.
Examples
use openpgp::Fingerprint; let fp: Fingerprint = "0123 4567 89AB CDEF 0123 4567 89AB CDEF 0123 4567".parse()?; assert_eq!("0123456789ABCDEF0123456789ABCDEF01234567", fp.to_hex());
Variants (Non-exhaustive)
A 20 byte SHA-1 hash of the public key packet as defined in the RFC.
Used for holding fingerprint data that is not a V4 fingerprint, e.g. a V3 fingerprint (deprecated) or otherwise wrong-length data.
Implementations
impl Fingerprint
[src]
impl Fingerprint
[src]pub fn from_bytes(raw: &[u8]) -> Fingerprint
[src]
pub fn from_bytes(raw: &[u8]) -> Fingerprint
[src]Creates a Fingerprint
from a byte slice in big endian
representation.
Examples
use openpgp::Fingerprint; let fp: Fingerprint = "0123 4567 89AB CDEF 0123 4567 89AB CDEF 0123 4567".parse()?; let bytes = [0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0x01, 0x23, 0x45, 0x67]; assert_eq!(Fingerprint::from_bytes(&bytes), fp);
pub fn as_bytes(&self) -> &[u8]ⓘ
[src]
pub fn as_bytes(&self) -> &[u8]ⓘ
[src]Returns the raw fingerprint as a byte slice in big endian representation.
Examples
use openpgp::Fingerprint; let fp: Fingerprint = "0123 4567 89AB CDEF 0123 4567 89AB CDEF 0123 4567".parse()?; assert_eq!(fp.as_bytes(), [0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0x01, 0x23, 0x45, 0x67]);
pub fn to_hex(&self) -> String
[src]
pub fn to_hex(&self) -> String
[src]Converts this fingerprint to its canonical hexadecimal representation.
This representation is always uppercase and without spaces and is suitable for stable key identifiers.
The output of this function is exactly the same as formatting
this object with the :X
format specifier.
use openpgp::Fingerprint; let fp: Fingerprint = "0123 4567 89AB CDEF 0123 4567 89AB CDEF 0123 4567".parse()?; assert_eq!("0123456789ABCDEF0123456789ABCDEF01234567", fp.to_hex()); assert_eq!(format!("{:X}", fp), fp.to_hex());
pub fn to_spaced_hex(&self) -> String
[src]
pub fn to_spaced_hex(&self) -> String
[src]Converts this fingerprint to its hexadecimal representation with spaces.
This representation is always uppercase and with spaces grouping the hexadecimal digits into groups of four with a double space in the middle. It is only suitable for manual comparison of fingerprints.
Note: The spaces will hinder other kind of use cases. For example, it is harder to select the whole fingerprint for copying, and it has to be quoted when used as a command line argument. Only use this form for displaying a fingerprint with the intent of manual comparisons.
See also Fingerprint::to_icao
.
let fp: openpgp::Fingerprint = "0123 4567 89AB CDEF 0123 4567 89AB CDEF 0123 4567".parse()?; assert_eq!("0123 4567 89AB CDEF 0123 4567 89AB CDEF 0123 4567", fp.to_spaced_hex());
pub fn from_hex(s: &str) -> Result<Self, Error>
[src]
pub fn from_hex(s: &str) -> Result<Self, Error>
[src]Parses the hexadecimal representation of an OpenPGP fingerprint.
This function is the reverse of to_hex
. It also accepts
other variants of the fingerprint notation including
lower-case letters, spaces and optional leading 0x
.
use openpgp::Fingerprint; let fp = Fingerprint::from_hex("0123456789ABCDEF0123456789ABCDEF01234567")?; assert_eq!("0123456789ABCDEF0123456789ABCDEF01234567", fp.to_hex()); let fp = Fingerprint::from_hex("0123 4567 89ab cdef 0123 4567 89ab cdef 0123 4567")?; assert_eq!("0123456789ABCDEF0123456789ABCDEF01234567", fp.to_hex());
pub fn to_icao(&self) -> String
[src]
pub fn to_icao(&self) -> String
[src]Converts the hex representation of the Fingerprint
to a
phrase in the ICAO spelling alphabet.
Examples
use openpgp::Fingerprint; let fp: Fingerprint = "01AB 4567 89AB CDEF 0123 4567 89AB CDEF 0123 4567".parse()?; assert!(fp.to_icao().starts_with("Zero One Alfa Bravo"));
Trait Implementations
impl Clone for Fingerprint
[src]
impl Clone for Fingerprint
[src]fn clone(&self) -> Fingerprint
[src]
fn clone(&self) -> Fingerprint
[src]Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]Performs copy-assignment from source
. Read more
impl Debug for Fingerprint
[src]
impl Debug for Fingerprint
[src]impl Display for Fingerprint
[src]
impl Display for Fingerprint
[src]impl From<&'_ Fingerprint> for KeyID
[src]
impl From<&'_ Fingerprint> for KeyID
[src]fn from(fp: &Fingerprint) -> Self
[src]
fn from(fp: &Fingerprint) -> Self
[src]Performs the conversion.
impl From<&'_ Fingerprint> for KeyHandle
[src]
impl From<&'_ Fingerprint> for KeyHandle
[src]fn from(i: &Fingerprint) -> Self
[src]
fn from(i: &Fingerprint) -> Self
[src]Performs the conversion.
impl From<Fingerprint> for KeyID
[src]
impl From<Fingerprint> for KeyID
[src]fn from(fp: Fingerprint) -> Self
[src]
fn from(fp: Fingerprint) -> Self
[src]Performs the conversion.
impl From<Fingerprint> for KeyHandle
[src]
impl From<Fingerprint> for KeyHandle
[src]fn from(i: Fingerprint) -> Self
[src]
fn from(i: Fingerprint) -> Self
[src]Performs the conversion.
impl FromStr for Fingerprint
[src]
impl FromStr for Fingerprint
[src]impl Hash for Fingerprint
[src]
impl Hash for Fingerprint
[src]impl LowerHex for Fingerprint
[src]
impl LowerHex for Fingerprint
[src]impl Marshal for Fingerprint
[src]
impl Marshal for Fingerprint
[src]impl MarshalInto for Fingerprint
[src]
impl MarshalInto for Fingerprint
[src]impl Ord for Fingerprint
[src]
impl Ord for Fingerprint
[src]impl PartialEq<Fingerprint> for Fingerprint
[src]
impl PartialEq<Fingerprint> for Fingerprint
[src]fn eq(&self, other: &Fingerprint) -> bool
[src]
fn eq(&self, other: &Fingerprint) -> bool
[src]This method tests for self
and other
values to be equal, and is used
by ==
. Read more
fn ne(&self, other: &Fingerprint) -> bool
[src]
fn ne(&self, other: &Fingerprint) -> bool
[src]This method tests for !=
.
impl PartialOrd<Fingerprint> for Fingerprint
[src]
impl PartialOrd<Fingerprint> for Fingerprint
[src]fn partial_cmp(&self, other: &Fingerprint) -> Option<Ordering>
[src]
fn partial_cmp(&self, other: &Fingerprint) -> Option<Ordering>
[src]This method returns an ordering between self
and other
values if one exists. Read more
#[must_use]fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]fn lt(&self, other: &Rhs) -> bool
1.0.0[src]This method tests less than (for self
and other
) and is used by the <
operator. Read more
#[must_use]fn le(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]fn le(&self, other: &Rhs) -> bool
1.0.0[src]This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
impl Serialize for Fingerprint
[src]
impl Serialize for Fingerprint
[src]impl SerializeInto for Fingerprint
[src]
impl SerializeInto for Fingerprint
[src]impl TryFrom<&'_ KeyHandle> for Fingerprint
[src]
impl TryFrom<&'_ KeyHandle> for Fingerprint
[src]impl TryFrom<KeyHandle> for Fingerprint
[src]
impl TryFrom<KeyHandle> for Fingerprint
[src]impl UpperHex for Fingerprint
[src]
impl UpperHex for Fingerprint
[src]impl Eq for Fingerprint
[src]
impl StructuralEq for Fingerprint
[src]
impl StructuralPartialEq for Fingerprint
[src]
Auto Trait Implementations
impl RefUnwindSafe for Fingerprint
impl Send for Fingerprint
impl Sync for Fingerprint
impl Unpin for Fingerprint
impl UnwindSafe for Fingerprint
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> Same<T> for T
impl<T> Same<T> for T
type Output = T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn to_owned(&self) -> T
[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)
[src]
pub fn clone_into(&self, target: &mut T)
[src]🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more