Enum sequoia_openpgp::packet::Packet[][src]

#[non_exhaustive]
pub enum Packet {
Show 18 variants Unknown(Unknown), Signature(Signature), OnePassSig(OnePassSig), PublicKey(Key<PublicParts, PrimaryRole>), PublicSubkey(Key<PublicParts, SubordinateRole>), SecretKey(Key<SecretParts, PrimaryRole>), SecretSubkey(Key<SecretParts, SubordinateRole>), Marker(Marker), Trust(Trust), UserID(UserID), UserAttribute(UserAttribute), Literal(Literal), CompressedData(CompressedData), PKESK(PKESK), SKESK(SKESK), SEIP(SEIP), MDC(MDC), AED(AED),
}
Expand description

Enumeration of packet types.

The different OpenPGP packets are detailed in Section 5 of RFC 4880.

The Unknown packet allows Sequoia to deal with packets that it doesn’t understand. It is basically a binary blob that includes the packet’s tag. See the module-level documentation for details.

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

A note on equality

We define equality on Packet as the equality of the serialized form of their packet bodies as defined by RFC 4880. That is, two packets are considered equal if and only if their serialized forms are equal, modulo the OpenPGP framing (CTB and length style, potential partial body encoding).

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(Unknown)

Unknown packet.

Tuple Fields of Unknown

0: Unknown
Signature(Signature)

Signature packet.

Tuple Fields of Signature

0: Signature
OnePassSig(OnePassSig)

One pass signature packet.

Tuple Fields of OnePassSig

0: OnePassSig

Public key packet.

Tuple Fields of PublicKey

0: Key<PublicParts, PrimaryRole>

Public subkey packet.

Tuple Fields of PublicSubkey

0: Key<PublicParts, SubordinateRole>

Public/Secret key pair.

Tuple Fields of SecretKey

0: Key<SecretParts, PrimaryRole>

Public/Secret subkey pair.

Tuple Fields of SecretSubkey

0: Key<SecretParts, SubordinateRole>
Marker(Marker)

Marker packet.

Tuple Fields of Marker

0: Marker
Trust(Trust)

Trust packet.

Tuple Fields of Trust

0: Trust
UserID(UserID)

User ID packet.

Tuple Fields of UserID

0: UserID
UserAttribute(UserAttribute)

User attribute packet.

Tuple Fields of UserAttribute

0: UserAttribute
Literal(Literal)

Literal data packet.

Tuple Fields of Literal

0: Literal
CompressedData(CompressedData)

Compressed literal data packet.

Tuple Fields of CompressedData

0: CompressedData
PKESK(PKESK)

Public key encrypted data packet.

Tuple Fields of PKESK

0: PKESK
SKESK(SKESK)

Symmetric key encrypted data packet.

Tuple Fields of SKESK

0: SKESK
SEIP(SEIP)

Symmetric key encrypted, integrity protected data packet.

Tuple Fields of SEIP

0: SEIP
MDC(MDC)

Modification detection code packet.

Tuple Fields of MDC

0: MDC
AED(AED)

AEAD Encrypted Data Packet.

Tuple Fields of AED

0: AED

Implementations

Returns the Packet's corresponding OpenPGP tag.

Tags are explained in Section 4.3 of RFC 4880.

Returns the parsed Packet's corresponding OpenPGP tag.

Returns the packets tag, but only if it was successfully parsed into the corresponding packet type. If e.g. a Signature Packet uses some unsupported methods, it is parsed into an Packet::Unknown. tag() returns Tag::Signature, whereas kind() returns None.

Hashes most everything into state.

This is an alternate implementation of Hash, which does not hash:

  • The unhashed subpacket area of Signature packets.
  • Secret key material.

Unlike Signature::normalize, this method ignores authenticated packets in the unhashed subpacket area.

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

The resulting type after dereferencing.

Dereferences the value.

Mutably dereferences the value.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Convert the Key struct to a Packet.

Convert the Key struct to a Packet.

Convert the Key struct to a Packet.

Convert the Key struct to a Packet.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Creates a value from an iterator. Read more

Feeds this value into the given Hasher. Read more

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

Implement IntoIterator so that cert::insert_packets(sig) just works.

The type of the elements being iterated over.

Which kind of iterator are we turning this into?

Creates an iterator from a value. Read more

Writes a serialized version of the specified Packet to o.

This function works recursively: if the packet contains any packets, they are also serialized.

Exports a serialized version of the specified Packet to o.

This function works recursively: if the packet contains any packets, they are also serialized.

Computes the maximal length of the serialized representation. Read more

Serializes into the given buffer. Read more

Exports into the given buffer. Read more

Serializes the packet to a vector.

Exports to a vector. Read more

Reads from the given reader.

Reads from the given file. Read more

Reads from the given slice. Read more

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

This method tests for !=.

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

The type returned in the event of a conversion error.

Performs the conversion.

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)

recently added

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.