[][src]Struct sequoia_openpgp::packet::signature::Signature4

pub struct Signature4 { /* fields omitted */ }

Holds a v4 Signature packet.

This holds a version 4 Signature packet. Normally, you won't directly work with this data structure, but with the Signature enum, which is version agnostic. An exception is when you need to do version-specific operations. But currently, there aren't any version-specific methods.

Implementations

impl Signature4[src]

Hashing-related functionality.

pub fn hash_for_confirmation(&self, hash: &mut dyn Digest)[src]

Hashes this signature for use in a Third-Party Confirmation signature.

impl Signature4[src]

pub fn new(
    typ: SignatureType,
    pk_algo: PublicKeyAlgorithm,
    hash_algo: HashAlgorithm,
    hashed_area: SubpacketArea,
    unhashed_area: SubpacketArea,
    digest_prefix: [u8; 2],
    mpis: Signature
) -> Self
[src]

Creates a new signature packet.

If you want to sign something, consider using the SignatureBuilder interface.

pub fn pk_algo(&self) -> PublicKeyAlgorithm[src]

Gets the public key algorithm.

pub fn digest_prefix(&self) -> &[u8; 2][src]

Gets the hash prefix.

pub fn mpis(&self) -> &Signature[src]

Gets the signature packet's MPIs.

pub fn computed_digest(&self) -> Option<&[u8]>[src]

Gets the computed hash value.

This is set by the PacketParser when parsing the message.

pub fn level(&self) -> usize[src]

Gets the signature level.

A level of 0 indicates that the signature is directly over the data, a level of 1 means that the signature is a notarization over all level 0 signatures and the data, and so on.

pub fn exportable(&self) -> Result<()>[src]

Returns whether or not this signature should be exported.

This checks whether the Exportable Certification subpacket is absent or present and 1, and that the signature does not include any sensitive Revocation Key (designated revokers) subpackets.

Methods from Deref<Target = SignatureFields>

pub fn hash_standalone(&self, hash: &mut dyn Digest)[src]

Hashes this standalone signature.

pub fn hash_timestamp(&self, hash: &mut dyn Digest)[src]

Hashes this timestamp signature.

pub fn hash_direct_key<P>(
    &self,
    hash: &mut dyn Digest,
    key: &Key<P, PrimaryRole>
) where
    P: KeyParts
[src]

Hashes this direct key signature over the specified primary key, and the primary key.

pub fn hash_subkey_binding<P, Q>(
    &self,
    hash: &mut dyn Digest,
    key: &Key<P, PrimaryRole>,
    subkey: &Key<Q, SubordinateRole>
) where
    P: KeyParts,
    Q: KeyParts
[src]

Hashes this subkey binding over the specified primary key and subkey, the primary key, and the subkey.

pub fn hash_primary_key_binding<P, Q>(
    &self,
    hash: &mut dyn Digest,
    key: &Key<P, PrimaryRole>,
    subkey: &Key<Q, SubordinateRole>
) where
    P: KeyParts,
    Q: KeyParts
[src]

Hashes this primary key binding over the specified primary key and subkey, the primary key, and the subkey.

pub fn hash_userid_binding<P>(
    &self,
    hash: &mut dyn Digest,
    key: &Key<P, PrimaryRole>,
    userid: &UserID
) where
    P: KeyParts
[src]

Hashes this user ID binding over the specified primary key and user ID, the primary key, and the userid.

pub fn hash_user_attribute_binding<P>(
    &self,
    hash: &mut dyn Digest,
    key: &Key<P, PrimaryRole>,
    ua: &UserAttribute
) where
    P: KeyParts
[src]

Hashes this user attribute binding over the specified primary key and user attribute, the primary key, and the user attribute.

pub fn version(&self) -> u8[src]

Gets the version.

pub fn typ(&self) -> SignatureType[src]

Gets the signature type.

This function is called typ and not type, because type is a reserved word.

pub fn hash_algo(&self) -> HashAlgorithm[src]

Gets the hash algorithm.

Trait Implementations

impl Clone for Signature4[src]

impl Debug for Signature4[src]

impl Deref for Signature4[src]

type Target = SignatureFields

The resulting type after dereferencing.

impl DerefMut for Signature4[src]

impl Eq for Signature4[src]

impl From<Signature4> for SignatureBuilder[src]

impl From<Signature4> for Packet[src]

impl From<Signature4> for Signature[src]

impl Hash for Signature4[src]

impl Hash for Signature4[src]

impl Marshal for Signature4[src]

fn serialize(&self, o: &mut dyn Write) -> Result<()>[src]

Writes a serialized version of the specified Signature packet to o.

Errors

Returns Error::InvalidArgument if either the hashed-area or the unhashed-area exceeds the size limit of 2^16.

impl MarshalInto for Signature4[src]

impl Ord for Signature4[src]

impl PartialEq<Signature4> for Signature4[src]

fn eq(&self, other: &Signature4) -> bool[src]

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

This method compares the serialized version of the two packets. Thus, the computed values are ignored (level, computed_digest).

Note: because this function also compares the unhashed subpacket area, it is possible for a malicious party to take valid signatures, add subpackets to the unhashed area, yielding valid but distinct signatures. If you want to ignore the unhashed area, you should instead use the Signature4::normalized_eq method.

impl PartialOrd<Signature4> for Signature4[src]

impl TryFrom<Signature> for Signature4[src]

type Error = Error

The type returned in the event of a conversion error.

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> DynClone for T where
    T: Clone
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.