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

pub struct Signature4 { /* fields omitted */ }

Holds a signature packet.

Signature packets are used both for certification purposes as well as for document signing purposes.

See Section 5.2 of RFC 4880 for details.

Methods

impl Signature4[src]

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

We'd like to implement Deref for Signature4 for both signature::Builder and SubpacketArea. Unfortunately, it is only possible to implement Deref for one of them. Since SubpacketArea has more methods with much more documentation, implement deref for that, and write provider forwarders for signature::Builder. Gets the version.

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

Gets the signature type.

pub fn set_type(self, t: SignatureType) -> Self[src]

Sets the signature type.

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

Gets the public key algorithm.

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

Gets the hash algorithm.

impl Signature4[src]

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

Creates a new signature packet.

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

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

Gets the hash prefix.

pub fn set_hash_prefix(&mut self, prefix: [u8; 2]) -> [u8; 2][src]

Sets the hash prefix.

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

Gets the signature packet's MPIs.

pub fn set_mpis(&mut self, mpis: Signature) -> Signature[src]

Sets the signature packet's MPIs.

pub fn computed_hash(&self) -> Option<&(HashAlgorithm, Vec<u8>)>[src]

Gets the computed hash value.

pub fn set_computed_hash(
    &mut self,
    hash: Option<(HashAlgorithm, Vec<u8>)>
) -> Option<(HashAlgorithm, Vec<u8>)>
[src]

Sets the computed hash value.

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 set_level(&mut self, level: usize) -> usize[src]

Sets 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 get_issuer(&self) -> Option<KeyID>[src]

Gets the issuer.

pub fn normalize(&self) -> Self[src]

Normalizes the signature.

This function normalizes the unhashed signature subpackets. All but the following subpackets are removed:

  • SubpacketValue::Issuer is left in place, is added, or updated from the hashed signature subpackets, and
  • the first SubpacketValue::EmbeddedSignature is left in place.

pub fn verify_hash<R>(
    &self,
    key: &Key<PublicParts, R>,
    hash_algo: HashAlgorithm,
    hash: &[u8]
) -> Result<bool> where
    R: KeyRole
[src]

Verifies the signature against hash.

Note: This only verifies the cryptographic signature. Constraints on the signature, like creation and expiration time, or signature revocations must be checked by the caller.

Likewise, this function does not check whether key can made valid signatures; it is up to the caller to make sure the key is not revoked, not expired, has a valid self-signature, has a subkey binding signature (if appropriate), has the signing capability, etc.

pub fn verify<R>(&self, key: &Key<PublicParts, R>) -> Result<bool> where
    R: KeyRole
[src]

Verifies the signature over text or binary documents using key.

Note: This only verifies the cryptographic signature. Constraints on the signature, like creation and expiration time, or signature revocations must be checked by the caller.

Likewise, this function does not check whether key can make valid signatures; it is up to the caller to make sure the key is not revoked, not expired, has a valid self-signature, has a subkey binding signature (if appropriate), has the signing capability, etc.

pub fn verify_standalone<R>(&self, key: &Key<PublicParts, R>) -> Result<bool> where
    R: KeyRole
[src]

Verifies the standalone signature using key.

Note: This only verifies the cryptographic signature. Constraints on the signature, like creation and expiration time, or signature revocations must be checked by the caller.

Likewise, this function does not check whether key can make valid signatures; it is up to the caller to make sure the key is not revoked, not expired, has a valid self-signature, has a subkey binding signature (if appropriate), has the signing capability, etc.

pub fn verify_timestamp<R>(&self, key: &Key<PublicParts, R>) -> Result<bool> where
    R: KeyRole
[src]

Verifies the timestamp signature using key.

Note: This only verifies the cryptographic signature. Constraints on the signature, like creation and expiration time, or signature revocations must be checked by the caller.

Likewise, this function does not check whether key can make valid signatures; it is up to the caller to make sure the key is not revoked, not expired, has a valid self-signature, has a subkey binding signature (if appropriate), has the signing capability, etc.

pub fn verify_primary_key_binding<R>(
    &self,
    signer: &Key<PublicParts, R>,
    pk: &PublicKey
) -> Result<bool> where
    R: KeyRole
[src]

Verifies the primary key binding.

self is the primary key binding signature, signer is the key that allegedly made the signature, and pk is the primary key.

For a self-signature, signer and pk will be the same.

Note: This only verifies the cryptographic signature. Constraints on the signature, like creation and expiration time, or signature revocations must be checked by the caller.

Likewise, this function does not check whether signer can made valid signatures; it is up to the caller to make sure the key is not revoked, not expired, has a valid self-signature, has a subkey binding signature (if appropriate), has the signing capability, etc.

pub fn verify_primary_key_revocation<R>(
    &self,
    signer: &Key<PublicParts, R>,
    pk: &PublicKey
) -> Result<bool> where
    R: KeyRole
[src]

Verifies the primary key revocation certificate.

self is the primary key revocation certificate, signer is the key that allegedly made the signature, and pk is the primary key,

For a self-signature, signer and pk will be the same.

Note: This only verifies the cryptographic signature. Constraints on the signature, like creation and expiration time, or signature revocations must be checked by the caller.

Likewise, this function does not check whether signer can made valid signatures; it is up to the caller to make sure the key is not revoked, not expired, has a valid self-signature, has a subkey binding signature (if appropriate), has the signing capability, etc.

pub fn verify_subkey_binding<R>(
    &self,
    signer: &Key<PublicParts, R>,
    pk: &PublicKey,
    subkey: &PublicSubkey
) -> Result<bool> where
    R: KeyRole
[src]

Verifies the subkey binding.

self is the subkey key binding signature, signer is the key that allegedly made the signature, pk is the primary key, and subkey is the subkey.

For a self-signature, signer and pk will be the same.

If the signature indicates that this is a Signing capable subkey, then the back signature is also verified. If it is missing or can't be verified, then this function returns false.

Note: This only verifies the cryptographic signature. Constraints on the signature, like creation and expiration time, or signature revocations must be checked by the caller.

Likewise, this function does not check whether signer can made valid signatures; it is up to the caller to make sure the key is not revoked, not expired, has a valid self-signature, has a subkey binding signature (if appropriate), has the signing capability, etc.

pub fn verify_subkey_revocation<R>(
    &self,
    signer: &Key<PublicParts, R>,
    pk: &PublicKey,
    subkey: &PublicSubkey
) -> Result<bool> where
    R: KeyRole
[src]

Verifies the subkey revocation.

self is the subkey key revocation certificate, signer is the key that allegedly made the signature, pk is the primary key, and subkey is the subkey.

For a self-revocation, signer and pk will be the same.

Note: This only verifies the cryptographic signature. Constraints on the signature, like creation and expiration time, or signature revocations must be checked by the caller.

Likewise, this function does not check whether signer can made valid signatures; it is up to the caller to make sure the key is not revoked, not expired, has a valid self-signature, has a subkey binding signature (if appropriate), has the signing capability, etc.

pub fn verify_userid_binding<R>(
    &self,
    signer: &Key<PublicParts, R>,
    pk: &PublicKey,
    userid: &UserID
) -> Result<bool> where
    R: KeyRole
[src]

Verifies the user id binding.

self is the user id binding signature, signer is the key that allegedly made the signature, pk is the primary key, and userid is the user id.

For a self-signature, signer and pk will be the same.

Note: This only verifies the cryptographic signature. Constraints on the signature, like creation and expiration time, or signature revocations must be checked by the caller.

Likewise, this function does not check whether signer can made valid signatures; it is up to the caller to make sure the key is not revoked, not expired, has a valid self-signature, has a subkey binding signature (if appropriate), has the signing capability, etc.

pub fn verify_userid_revocation<R>(
    &self,
    signer: &Key<PublicParts, R>,
    pk: &PublicKey,
    userid: &UserID
) -> Result<bool> where
    R: KeyRole
[src]

Verifies the user id revocation certificate.

self is the revocation certificate, signer is the key that allegedly made the signature, pk is the primary key, and userid is the user id.

For a self-signature, signer and pk will be the same.

Note: This only verifies the cryptographic signature. Constraints on the signature, like creation and expiration time, or signature revocations must be checked by the caller.

Likewise, this function does not check whether signer can made valid signatures; it is up to the caller to make sure the key is not revoked, not expired, has a valid self-signature, has a subkey binding signature (if appropriate), has the signing capability, etc.

pub fn verify_user_attribute_binding<R>(
    &self,
    signer: &Key<PublicParts, R>,
    pk: &PublicKey,
    ua: &UserAttribute
) -> Result<bool> where
    R: KeyRole
[src]

Verifies the user attribute binding.

self is the user attribute binding signature, signer is the key that allegedly made the signature, pk is the primary key, and ua is the user attribute.

For a self-signature, signer and pk will be the same.

Note: This only verifies the cryptographic signature. Constraints on the signature, like creation and expiration time, or signature revocations must be checked by the caller.

Likewise, this function does not check whether signer can made valid signatures; it is up to the caller to make sure the key is not revoked, not expired, has a valid self-signature, has a subkey binding signature (if appropriate), has the signing capability, etc.

pub fn verify_user_attribute_revocation<R>(
    &self,
    signer: &Key<PublicParts, R>,
    pk: &PublicKey,
    ua: &UserAttribute
) -> Result<bool> where
    R: KeyRole
[src]

Verifies the user attribute revocation certificate.

self is the user attribute binding signature, signer is the key that allegedly made the signature, pk is the primary key, and ua is the user attribute.

For a self-signature, signer and pk will be the same.

Note: This only verifies the cryptographic signature. Constraints on the signature, like creation and expiration time, or signature revocations must be checked by the caller.

Likewise, this function does not check whether signer can made valid signatures; it is up to the caller to make sure the key is not revoked, not expired, has a valid self-signature, has a subkey binding signature (if appropriate), has the signing capability, etc.

pub fn verify_message<R>(
    &self,
    signer: &Key<PublicParts, R>,
    msg: &[u8]
) -> Result<bool> where
    R: KeyRole
[src]

Verifies a signature of a message.

self is the message signature, signer is the key that allegedly made the signature and msg is the message.

This function is for short messages, if you want to verify larger files use Verifier.

Note: This only verifies the cryptographic signature. Constraints on the signature, like creation and expiration time, or signature revocations must be checked by the caller.

Likewise, this function does not check whether signer can made valid signatures; it is up to the caller to make sure the key is not revoked, not expired, has a valid self-signature, has a subkey binding signature (if appropriate), has the signing capability, etc.

Methods from Deref<Target = Builder>

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

Gets the version.

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

Gets the signature type.

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

Gets the public key algorithm.

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

Gets the hash algorithm.

Trait Implementations

impl Hash for Signature4[src]

fn hash(&self, hash: &mut Context)[src]

Adds the Signature to the provided hash context.

impl Serialize 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 SerializeInto for Signature4[src]

fn to_vec(&self) -> Result<Vec<u8>>[src]

Serializes the packet to a vector.

impl From<Signature4> for Builder[src]

impl<'a> From<&'a Signature4> for &'a Builder[src]

impl From<Signature4> for Packet[src]

impl From<Signature4> for Signature[src]

impl Eq 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 ==.

Note: We ignore the unhashed subpacket area when comparing signatures. This prevents a malicious party to take valid signatures, add subpackets to the unhashed area, yielding valid but distinct signatures.

The problem we are trying to avoid here is signature spamming. Ignoring the unhashed subpackets means that we can deduplicate signatures using this predicate.

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0
[src]

This method tests for !=.

impl Clone for Signature4[src]

fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

impl Deref for Signature4[src]

type Target = Builder

The resulting type after dereferencing.

impl Hash for Signature4[src]

fn hash_slice<H>(data: &[Self], state: &mut H) where
    H: Hasher
1.3.0
[src]

Feeds a slice of this type into the given [Hasher]. Read more

impl DerefMut for Signature4[src]

impl Debug for Signature4[src]

Auto Trait Implementations

impl Send for Signature4

impl Sync for Signature4

Blanket Implementations

impl<T> From for T[src]

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

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

type Owned = T

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

type Error = Infallible

The type returned in the event of a conversion error.

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

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

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

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

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

The type returned in the event of a conversion error.

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