Skip to main content

PkiHeader

Struct PkiHeader 

Source
pub struct PkiHeader<'a> {
    pub pvno: Pvno,
    pub sender: GeneralName<'a>,
    pub recipient: GeneralName<'a>,
    pub message_time: Option<GeneralizedTime>,
    pub protection_alg: Option<AlgorithmIdentifierOwned>,
    pub sender_kid: Option<OctetString>,
    pub recip_kid: Option<OctetString>,
    pub trans_id: Option<OctetString>,
    pub sender_nonce: Option<OctetString>,
    pub recip_nonce: Option<OctetString>,
    pub free_text: Option<PkiFreeText>,
    pub general_info: Option<GeneralInfo>,
}
Expand description

The PKIHeader type is defined in RFC 4210 Section 5.1.1.

    PKIHeader ::= SEQUENCE {
    pvno                INTEGER     { cmp1999(1), cmp2000(2) },
    sender              GeneralName,
    -- identifies the sender
    recipient           GeneralName,
    -- identifies the intended recipient
    messageTime     [0] GeneralizedTime         OPTIONAL,
    -- time of production of this message (used when sender
    -- believes that the transport will be "suitable"; i.e.,
    -- that the time will still be meaningful upon receipt)
    protectionAlg   [1] AlgorithmIdentifier{ALGORITHM, {...}}
    OPTIONAL,
    -- algorithm used for calculation of protection bits
    senderKID       [2] KeyIdentifier           OPTIONAL,
    recipKID        [3] KeyIdentifier           OPTIONAL,
    -- to identify specific keys used for protection
    transactionID   [4] OCTET STRING            OPTIONAL,
    -- identifies the transaction; i.e., this will be the same in
    -- corresponding request, response, certConf, and PKIConf
    -- messages
    senderNonce     [5] OCTET STRING            OPTIONAL,
    recipNonce      [6] OCTET STRING            OPTIONAL,
    -- nonces used to provide replay protection, senderNonce
    -- is inserted by the creator of this message; recipNonce
    -- is a nonce previously inserted in a related message by
    -- the intended recipient of this message
    freeText        [7] PKIFreeText             OPTIONAL,
    -- this may be used to indicate context-specific instructions
    -- (this field is intended for human consumption)
    generalInfo     [8] SEQUENCE SIZE (1..MAX) OF
    InfoTypeAndValue     OPTIONAL
    -- this may be used to convey context-specific information
    -- (this field not primarily intended for human consumption)
    }

Tags are EXPLICIT TAG in default according to rfc4210#appendix-F.

Fields§

§pvno: Pvno§sender: GeneralName<'a>§recipient: GeneralName<'a>§message_time: Option<GeneralizedTime>§protection_alg: Option<AlgorithmIdentifierOwned>§sender_kid: Option<OctetString>§recip_kid: Option<OctetString>§trans_id: Option<OctetString>§sender_nonce: Option<OctetString>§recip_nonce: Option<OctetString>§free_text: Option<PkiFreeText>§general_info: Option<GeneralInfo>

Trait Implementations§

Source§

impl<'a> BERDecodable for PkiHeader<'a>

Source§

fn decode_ber(reader: BERReader<'_, '_>) -> ASN1Result<Self>

Reads an ASN.1 value from BERReader and converts it to Self. Read more
Source§

impl<'a> Clone for PkiHeader<'a>

Source§

fn clone(&self) -> PkiHeader<'a>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'a> Debug for PkiHeader<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'a> DerWrite for PkiHeader<'a>

Source§

fn write(&self, writer: DERWriter<'_>)

Source§

impl<'a> Eq for PkiHeader<'a>

Source§

impl<'a> Hash for PkiHeader<'a>

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

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

impl<'a> PartialEq for PkiHeader<'a>

Source§

fn eq(&self, other: &PkiHeader<'a>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<'a> StructuralPartialEq for PkiHeader<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for PkiHeader<'a>

§

impl<'a> RefUnwindSafe for PkiHeader<'a>

§

impl<'a> Send for PkiHeader<'a>

§

impl<'a> Sync for PkiHeader<'a>

§

impl<'a> Unpin for PkiHeader<'a>

§

impl<'a> UnsafeUnpin for PkiHeader<'a>

§

impl<'a> UnwindSafe for PkiHeader<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromBer for T
where T: BERDecodable,

Source§

fn from_ber<T: ?Sized + AsRef<[u8]>>(ber: &T) -> ASN1Result<Self>

Source§

impl<T> FromDer for T
where T: BERDecodable,

Source§

fn from_der<T: ?Sized + AsRef<[u8]>>(der: &T) -> ASN1Result<Self>

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToDer for T
where T: DerWrite + ?Sized,

Source§

fn to_der(&self) -> Vec<u8>

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.