pub struct SignatureConfig {
    pub version: SignatureVersion,
    pub typ: SignatureType,
    pub pub_alg: PublicKeyAlgorithm,
    pub hash_alg: HashAlgorithm,
    pub unhashed_subpackets: Vec<Subpacket>,
    pub hashed_subpackets: Vec<Subpacket>,
    pub created: Option<DateTime<Utc>>,
    pub issuer: Option<KeyId>,
}

Fields§

§version: SignatureVersion§typ: SignatureType§pub_alg: PublicKeyAlgorithm§hash_alg: HashAlgorithm§unhashed_subpackets: Vec<Subpacket>§hashed_subpackets: Vec<Subpacket>§created: Option<DateTime<Utc>>§issuer: Option<KeyId>

Implementations§

source§

impl SignatureConfig

source

pub fn new_v4( version: SignatureVersion, typ: SignatureType, pub_alg: PublicKeyAlgorithm, hash_alg: HashAlgorithm, hashed_subpackets: Vec<Subpacket>, unhashed_subpackets: Vec<Subpacket> ) -> Self

source

pub fn sign<F, R>( self, key: &impl SecretKeyTrait, key_pw: F, data: R ) -> Result<Signature>
where F: FnOnce() -> String, R: Read,

Sign the given data.

source

pub fn sign_certification<F>( self, key: &impl SecretKeyTrait, key_pw: F, tag: Tag, id: &impl Serialize ) -> Result<Signature>
where F: FnOnce() -> String,

Create a certification siganture.

source

pub fn sign_key_binding<F>( self, signing_key: &impl SecretKeyTrait, key_pw: F, key: &impl PublicKeyTrait ) -> Result<Signature>
where F: FnOnce() -> String,

Sign a key binding.

source

pub fn sign_key<F>( self, signing_key: &impl SecretKeyTrait, key_pw: F, key: &impl PublicKeyTrait ) -> Result<Signature>
where F: FnOnce() -> String,

Signs a direct key signature or a revocation.

source

pub fn typ(&self) -> SignatureType

Returns what kind of signature this is.

source

pub fn hash_signature_data(&self, hasher: &mut dyn Hasher) -> Result<usize>

Calcluate the serialized version of this packet, but only the part relevant for hashing.

source

pub fn hash_data_to_sign<R>( &self, hasher: &mut dyn Hasher, data: R ) -> Result<usize>
where R: Read,

source

pub fn trailer(&self, len: usize) -> Result<Vec<u8>>

source

pub fn subpackets(&self) -> impl Iterator<Item = &Subpacket>

👎Deprecated: Usually only hashed_subpackets should be used. unhashed_subpackets are only safe and useful to access in rare circumstances. When they are needed, unhashed_subpackets should be explicitly called.

Returns an iterator of all subpackets in the signature: all subpackets in the hashed area followed by all subpackets in the unhashed area.

source

pub fn hashed_subpackets(&self) -> impl Iterator<Item = &Subpacket>

Returns an iterator over the hashed subpackets of this signature.

source

pub fn unhashed_subpackets(&self) -> impl Iterator<Item = &Subpacket>

Returns an iterator over the unhashed subpackets of this signature.

source

pub fn is_certification(&self) -> bool

Returns if the signature is a certification or not.

source

pub fn created(&self) -> Option<&DateTime<Utc>>

Signature Creation Time.

The time the signature was made. MUST be present in the hashed area.

https://datatracker.ietf.org/doc/html/rfc4880#section-5.2.3.4

Returns the first Signature Creation Time subpacket, only from the hashed area.

source

pub fn issuer(&self) -> Vec<&KeyId>

Issuer.

The OpenPGP Key ID of the key issuing the signature.

https://datatracker.ietf.org/doc/html/rfc4880#section-5.2.3.5

Returns Issuer subpacket data from both the hashed and unhashed area.

source

pub fn issuer_fingerprint(&self) -> Vec<&[u8]>

Issuer Fingerprint.

The OpenPGP Key fingerprint of the key issuing the signature.

This subpacket type was introduced after RFC 4880, in the RFC 4880-bis lifecycle. It sees some use in the wild for v4 signatures, in both the hashed and unhashed areas.

https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-rfc4880bis-10#name-issuer-fingerprint

Returns Issuer Fingerprint subpacket data from both the hashed and unhashed area.

Trait Implementations§

source§

impl Clone for SignatureConfig

source§

fn clone(&self) -> SignatureConfig

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for SignatureConfig

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for SignatureConfig

source§

fn eq(&self, other: &SignatureConfig) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for SignatureConfig

source§

impl StructuralPartialEq for SignatureConfig

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V