use crate::{
content_info::CmsVersion,
enveloped_data::{EncryptedKey, RecipientIdentifier, UserKeyingMaterial},
};
use const_oid::ObjectIdentifier;
use der::{Sequence, asn1::OctetString};
use spki::AlgorithmIdentifierOwned;
pub const ID_ORI_KEM: ObjectIdentifier = ObjectIdentifier::new_unwrap("1.2.840.113549.1.9.16.13.3");
#[derive(Clone, Debug, Eq, PartialEq, Sequence)]
#[allow(missing_docs)]
pub struct KemRecipientInfo {
pub version: CmsVersion,
pub rid: RecipientIdentifier,
pub kem: AlgorithmIdentifierOwned,
pub kem_ct: OctetString,
pub kdf: AlgorithmIdentifierOwned,
pub kek_length: u16,
#[asn1(context_specific = "0", tag_mode = "EXPLICIT", optional = "true")]
pub ukm: Option<UserKeyingMaterial>,
pub wrap: AlgorithmIdentifierOwned,
pub encrypted_key: EncryptedKey,
}
#[derive(Clone, Debug, Eq, PartialEq, Sequence)]
#[allow(missing_docs)]
pub struct CmsOriForKemOtherInfo {
pub wrap: AlgorithmIdentifierOwned,
pub kek_length: u16,
#[asn1(context_specific = "0", tag_mode = "EXPLICIT", optional = "true")]
pub ukm: Option<UserKeyingMaterial>,
}