pub enum Recipient<'a> {
Transport {
version: u64,
identifier: SignerIdentifier<'a>,
algorithm: AlgorithmIdentifier<'a>,
encrypted: Octets<'a>,
},
Agreement {
originator: Originator<'a>,
ukm: Option<Octets<'a>>,
algorithm: AlgorithmIdentifier<'a>,
keys: OwnedVec<RecipientKey<'a>>,
},
Kek {
identifier: KeyIdentifier<'a>,
algorithm: AlgorithmIdentifier<'a>,
encrypted: Octets<'a>,
},
Password {
derivation: Option<AlgorithmIdentifier<'a>>,
algorithm: AlgorithmIdentifier<'a>,
encrypted: Octets<'a>,
},
Other {
kind: Oid<'a>,
value: EncodedValue<'a>,
},
}Expand description
All five CMS RecipientInfo alternatives, without engine dispatch or key lookup.
Variants§
Transport
Public-key transport (§6.2.1); version is 0 for issuer/serial, 2 for SKI.
Fields
identifier: SignerIdentifier<'a>Original selected recipient identity; never an implicit key hint.
algorithm: AlgorithmIdentifier<'a>Actual key-encryption algorithm and original parameters.
Agreement
Key agreement (§6.2.2), always version3.
Fields
originator: Originator<'a>Original sender-key alternative.
algorithm: AlgorithmIdentifier<'a>Original key-encryption algorithm.
keys: OwnedVec<RecipientKey<'a>>All original recipient encrypted keys, not just the first.
Kek
Pre-distributed symmetric KEK (§6.2.3), always version4.
Fields
identifier: KeyIdentifier<'a>Original KEK identifier, date and additional open value.
algorithm: AlgorithmIdentifier<'a>Original key-encryption algorithm.
Password
Password/shared-secret recipient (§6.2.4), always version0.
Fields
derivation: Option<AlgorithmIdentifier<'a>>Optional original [0] IMPLICIT key derivation algorithm. Absence
means externally supplied KEK, not an invented default KDF.
algorithm: AlgorithmIdentifier<'a>Original key-encryption algorithm.
Other
Named open key-management format (§6.2.5), including RFC9629 KEM.
Fields
value: EncodedValue<'a>Whole original open value, to be interpreted by its actual owner.