1#![doc = include_str!("../README.md")]
2#![no_std]
3
4pub mod ess;
5pub mod skd;
6
7use rasn::prelude::*;
8
9#[doc(inline)]
10pub use rasn_cms::{IssuerAndSerialNumber, RecipientKeyIdentifier, SubjectKeyIdentifier};
11
12pub const CAPABILITIES: &Oid = Oid::ISO_MEMBER_BODY_US_RSADSI_PKCS9_CAPABILITIES;
16
17pub const ENCRYPTION_KEY_PREFERENCE: &Oid =
20 Oid::ISO_MEMBER_BODY_US_RSADSI_PKCS9_SMIME_AA_ENCRYPTION_KEY_PREFERENCE;
21
22pub const PREFER_BINARY_INSIDE: &Oid =
25 Oid::ISO_MEMBER_BODY_US_RSADSI_PKCS9_SMIME_CAPABILITY_PREFER_BINARY_INSIDE;
26
27pub type CapabilitiesParametersForRc2Cbc = Integer;
29pub type Capabilities = SequenceOf<Capability>;
30
31#[derive(AsnType, Clone, Debug, Decode, Encode, PartialEq, Eq, PartialOrd, Ord, Hash)]
32pub struct Capability {
33 pub capability_id: ObjectIdentifier,
34 pub parameters: Option<Any>,
35}
36
37#[derive(AsnType, Clone, Debug, Decode, Encode, PartialEq, Eq, Hash)]
38#[rasn(choice)]
39pub enum EncryptionKeyPreference {
40 #[rasn(tag(0))]
41 IssuerAndSerialNumber(IssuerAndSerialNumber),
42 #[rasn(tag(1))]
43 ReceipentKeyId(RecipientKeyIdentifier),
44 #[rasn(tag(2))]
45 SubjectAltKeyIdentifier(SubjectKeyIdentifier),
46}