Enum sequoia_openpgp::packet::signature::subpacket::SubpacketValue[][src]

#[non_exhaustive]
pub enum SubpacketValue {
Show 28 variants Unknown { tag: SubpacketTag, body: Vec<u8>, }, SignatureCreationTime(Timestamp), SignatureExpirationTime(Duration), ExportableCertification(bool), TrustSignature { level: u8, trust: u8, }, RegularExpression(Vec<u8>), Revocable(bool), KeyExpirationTime(Duration), PreferredSymmetricAlgorithms(Vec<SymmetricAlgorithm>), RevocationKey(RevocationKey), Issuer(KeyID), NotationData(NotationData), PreferredHashAlgorithms(Vec<HashAlgorithm>), PreferredCompressionAlgorithms(Vec<CompressionAlgorithm>), KeyServerPreferences(KeyServerPreferences), PreferredKeyServer(Vec<u8>), PrimaryUserID(bool), PolicyURI(Vec<u8>), KeyFlags(KeyFlags), SignersUserID(Vec<u8>), ReasonForRevocation { code: ReasonForRevocation, reason: Vec<u8>, }, Features(Features), SignatureTarget { pk_algo: PublicKeyAlgorithm, hash_algo: HashAlgorithm, digest: Vec<u8>, }, EmbeddedSignature(Signature), IssuerFingerprint(Fingerprint), PreferredAEADAlgorithms(Vec<AEADAlgorithm>), IntendedRecipient(Fingerprint), AttestedCertifications(Vec<Box<[u8]>>),
}
Expand description

Holds an arbitrary, well-structured subpacket.

The SubpacketValue enum holds a Subpacket’s value. The values are well structured in the sense that they have been parsed into Sequoia’s native data types rather than just holding the raw byte vector. For instance, the Issuer variant holds a KeyID.

Note: This enum cannot be exhaustively matched to allow future extensions.

Variants (Non-exhaustive)

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.

Unknown

Fields

tag: SubpacketTag

The unknown subpacket’s tag.

body: Vec<u8>

The unknown subpacket’s uninterpreted body.

An unknown subpacket.

SignatureCreationTime(Timestamp)

Tuple Fields

The time the signature was made.

See Section 5.2.3.4 of RFC 4880 for details.

SignatureExpirationTime(Duration)

Tuple Fields

The validity period of the signature.

The validity is relative to the time stored in the signature’s Signature Creation Time subpacket.

See Section 5.2.3.10 of RFC 4880 for details.

ExportableCertification(bool)

Tuple Fields

0: bool

Whether a signature should be published.

See Section 5.2.3.11 of RFC 4880 for details.

TrustSignature

Fields

level: u8

Trust level, or depth.

Level 0 has the same meaning as an ordinary validity signature. Level 1 means that the signed key is asserted to be a valid trusted introducer, with the 2nd octet of the body specifying the degree of trust. Level 2 means that the signed key is asserted to be trusted to issue level 1 trust signatures, i.e., that it is a “meta introducer”.

trust: u8

Trust amount.

This is interpreted such that values less than 120 indicate partial trust and values of 120 or greater indicate complete trust. Implementations SHOULD emit values of 60 for partial trust and 120 for complete trust.

Signer asserts that the key is not only valid but also trustworthy at the specified level.

See Section 5.2.3.13 of RFC 4880 for details.

RegularExpression(Vec<u8>)

Tuple Fields

0: Vec<u8>

Used in conjunction with Trust Signature packets (of level > 0) to limit the scope of trust that is extended.

See Section 5.2.3.14 of RFC 4880 for details.

Note: The RFC requires that the serialized form includes a trailing NUL byte. When Sequoia parses the regular expression subpacket, it strips the trailing NUL. (If it doesn’t include a NUL, then parsing fails.) Likewise, when it serializes a regular expression subpacket, it unconditionally adds a NUL.

Revocable(bool)

Tuple Fields

0: bool

Whether a signature can later be revoked.

See Section 5.2.3.12 of RFC 4880 for details.

KeyExpirationTime(Duration)

Tuple Fields

The validity period of the key.

The validity period is relative to the key’s (not the signature’s) creation time.

See Section 5.2.3.6 of RFC 4880 for details.

PreferredSymmetricAlgorithms(Vec<SymmetricAlgorithm>)

Tuple Fields

The Symmetric algorithms that the certificate holder prefers.

See Section 5.2.3.7 of RFC 4880 for details.

RevocationKey(RevocationKey)

Tuple Fields

Authorizes the specified key to issue revocation signatures for this certificate.

See Section 5.2.3.15 of RFC 4880 for details.

Issuer(KeyID)

Tuple Fields

0: KeyID

The OpenPGP Key ID of the key issuing the signature.

See Section 5.2.3.5 of RFC 4880 for details.

NotationData(NotationData)

Tuple Fields

A “notation” on the signature.

See Section 5.2.3.16 of RFC 4880 for details.

PreferredHashAlgorithms(Vec<HashAlgorithm>)

Tuple Fields

The Hash algorithms that the certificate holder prefers.

See Section 5.2.3.8 of RFC 4880 for details.

PreferredCompressionAlgorithms(Vec<CompressionAlgorithm>)

Tuple Fields

The compression algorithms that the certificate holder prefers.

See Section 5.2.3.9 of RFC 4880 for details.

KeyServerPreferences(KeyServerPreferences)

Tuple Fields

A list of flags that indicate preferences that the certificate holder has about how the key is handled by a key server.

See Section 5.2.3.17 of RFC 4880 for details.

PreferredKeyServer(Vec<u8>)

Tuple Fields

0: Vec<u8>

The URI of a key server where the certificate holder keeps their certificate up to date.

See Section 5.2.3.18 of RFC 4880 for details.

PrimaryUserID(bool)

Tuple Fields

0: bool

A flag in a User ID’s self-signature that states whether this User ID is the primary User ID for this certificate.

See Section 5.2.3.19 of RFC 4880 for details.

PolicyURI(Vec<u8>)

Tuple Fields

0: Vec<u8>

The URI of a document that describes the policy under which the signature was issued.

See Section 5.2.3.20 of RFC 4880 for details.

KeyFlags(KeyFlags)

Tuple Fields

A list of flags that hold information about a key.

See Section 5.2.3.21 of RFC 4880 for details.

SignersUserID(Vec<u8>)

Tuple Fields

0: Vec<u8>

The User ID that is responsible for the signature.

See Section 5.2.3.22 of RFC 4880 for details.

ReasonForRevocation

Fields

code: ReasonForRevocation

Machine-readable reason for revocation.

reason: Vec<u8>

Human-readable reason for revocation.

The reason for a revocation, used in key revocations and certification revocation signatures.

See Section 5.2.3.23 of RFC 4880 for details.

Features(Features)

Tuple Fields

The OpenPGP features a user’s implementation supports.

See Section 5.2.3.24 of RFC 4880 for details.

SignatureTarget

Fields

pk_algo: PublicKeyAlgorithm

Public-key algorithm of the target signature.

hash_algo: HashAlgorithm

Hash algorithm of the target signature.

digest: Vec<u8>

Hash digest of the target signature.

A signature to which this signature refers.

See Section 5.2.3.25 of RFC 4880 for details.

EmbeddedSignature(Signature)

Tuple Fields

A complete Signature packet body.

This is used to store a backsig in a subkey binding signature.

See Section 5.2.3.26 of RFC 4880 for details.

IssuerFingerprint(Fingerprint)

Tuple Fields

The Fingerprint of the key that issued the signature (proposed).

See Section 5.2.3.28 of RFC 4880bis for details.

PreferredAEADAlgorithms(Vec<AEADAlgorithm>)

Tuple Fields

The AEAD algorithms that the certificate holder prefers (proposed).

See Section 5.2.3.8 of RFC 4880bis for details.

IntendedRecipient(Fingerprint)

Tuple Fields

Who the signed message was intended for (proposed).

See Section 5.2.3.29 of RFC 4880bis for details.

AttestedCertifications(Vec<Box<[u8]>>)

Tuple Fields

0: Vec<Box<[u8]>>

The Attested Certifications subpacket (proposed).

Allows the certificate holder to attest to third party certifications, allowing them to be distributed with the certificate. This can be used to address certificate flooding concerns.

See Section 5.2.3.30 of RFC 4880bis for details.

Implementations

Returns the subpacket tag for this value.

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Feeds this value into the given Hasher. Read more

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

Writes a serialized version of the object to o.

Exports a serialized version of the object to o. Read more

Computes the maximal length of the serialized representation. Read more

Serializes into the given buffer. Read more

Serializes the packet to a vector.

Exports into the given buffer. Read more

Exports to a vector. Read more

This method returns an Ordering between self and other. Read more

Compares and returns the maximum of two values. Read more

Compares and returns the minimum of two values. Read more

Restrict a value to a certain interval. Read more

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

This method tests for !=.

This method returns an ordering between self and other values if one exists. Read more

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

Should always be Self

The resulting type after obtaining ownership.

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

🔬 This is a nightly-only experimental API. (toowned_clone_into)

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

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.