Struct sequoia_openpgp::parse::stream::GoodChecksum

source ·
pub struct GoodChecksum<'a> {
    pub sig: &'a Signature,
    pub ka: ValidErasedKeyAmalgamation<'a, PublicParts>,
}
Expand description

A good signature.

Represents the result of a successful signature verification. It includes the signature and the signing key with all the necessary context (i.e. certificate, time, policy) to evaluate the trustworthiness of the signature using a trust model.

GoodChecksum is used in VerificationResult. See also VerificationError.

A signature is considered good if and only if all of the following conditions are met:

  • The signature has a Signature Creation Time subpacket.

  • The signature is alive at the specified time (the time parameter passed to, e.g., VerifierBuilder::with_policy).

  • The certificate is alive and not revoked as of the signature’s creation time.

  • The signing key is alive, not revoked, and signing capable as of the signature’s creation time.

  • The signature was generated by the signing key.

Note: This doesn’t mean that the key that generated the signature is in anyway trustworthy in the sense that it belongs to the person or entity that the user thinks it belongs to. This property can only be evaluated within a trust model, such as the web of trust (WoT). This policy is normally implemented in the VerificationHelper::check method.

Fields§

§sig: &'a Signature

The signature.

§ka: ValidErasedKeyAmalgamation<'a, PublicParts>

The signing key that made the signature.

The amalgamation of the signing key includes the necessary context (i.e. certificate, time, policy) to evaluate the trustworthiness of the signature using a trust model.

Trait Implementations§

source§

impl<'a> Debug for GoodChecksum<'a>

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for GoodChecksum<'a>

§

impl<'a> !RefUnwindSafe for GoodChecksum<'a>

§

impl<'a> Send for GoodChecksum<'a>

§

impl<'a> Sync for GoodChecksum<'a>

§

impl<'a> Unpin for GoodChecksum<'a>

§

impl<'a> !UnwindSafe for GoodChecksum<'a>

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, 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.