#[non_exhaustive]pub enum SignerIdentifier {
digest(HashedId8),
certificate(SequenceOfCertificate),
R_self(()),
}Expand description
- @brief This structure allows the recipient of data to determine which
- keying material to use to authenticate the data. It also indicates the
- verification type to be used to generate the hash for verification, as
- specified in 5.3.1.
- @param digest: If the choice indicated is digest:
-
- The structure contains the HashedId8 of the relevant certificate. The
- HashedId8 is calculated with the whole-certificate hash algorithm,
- determined as described in 6.4.3.
-
- The verification type is certificate and the certificate data
- passed to the hash function as specified in 5.3.1 is the authorization
- certificate.
- @param certificate: If the choice indicated is certificate:
-
- The structure contains one or more Certificate structures, in order
- such that the first certificate is the authorization certificate and each
- subsequent certificate is the issuer of the one before it.
-
- The verification type is certificate and the certificate data
- passed to the hash function as specified in 5.3.1 is the authorization
- certificate.
- @param self: If the choice indicated is self:
-
- The structure does not contain any data beyond the indication that
- the choice value is self.
-
- The verification type is self-signed.
- @note Critical information fields:
-
- If present, this is a critical information field as defined in 5.2.6.
- An implementation that does not recognize the CHOICE value for this type
- when verifying a signed SPDU shall indicate that the signed SPDU is invalid.
-
- If present, certificate is a critical information field as defined in
- 5.2.6. An implementation that does not support the number of certificates
- in certificate when verifying a signed SPDU shall indicate that the signed
- SPDU is invalid. A compliant implementation shall support certificate
- fields containing at least one certificate.
- @note Canonicalization: This data structure is subject to canonicalization
- for the relevant operations specified in 6.1.2. The canonicalization
- applies to every Certificate in the certificate field.
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.
Trait Implementations§
Source§impl AsnType for SignerIdentifier
impl AsnType for SignerIdentifier
Source§const TAG_TREE: TagTree
const TAG_TREE: TagTree
The root of this type’s tree of tag’s if it a CHOICE type, otherwise its
Leaf that points Self::TAG.Source§const IDENTIFIER: Identifier
const IDENTIFIER: Identifier
Identifier of an ASN.1 type as specified in the original specification
if not identical with the identifier of
SelfSource§const CONSTRAINTS: Constraints
const CONSTRAINTS: Constraints
The set of constraints for values of the given type.
Source§fn is_present(&self) -> bool
fn is_present(&self) -> bool
Source§impl Choice for SignerIdentifier
impl Choice for SignerIdentifier
Source§const VARIANCE_CONSTRAINT: Constraints
const VARIANCE_CONSTRAINT: Constraints
Constraint for the choice type, based on the number of root components. Used for PER encoding.
Source§const EXTENDED_VARIANTS: Option<&'static [TagTree]>
const EXTENDED_VARIANTS: Option<&'static [TagTree]>
Variants contained in the list of extensions.
Source§const IDENTIFIERS: &'static [&'static str]
const IDENTIFIERS: &'static [&'static str]
Variant identifiers for text-based encoding rules
Source§impl Clone for SignerIdentifier
impl Clone for SignerIdentifier
Source§fn clone(&self) -> SignerIdentifier
fn clone(&self) -> SignerIdentifier
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SignerIdentifier
impl Debug for SignerIdentifier
Source§impl Decode for SignerIdentifier
impl Decode for SignerIdentifier
Source§fn decode_with_tag_and_constraints<D: Decoder>(
decoder: &mut D,
tag: Tag,
constraints: Constraints,
) -> Result<Self, D::Error>
fn decode_with_tag_and_constraints<D: Decoder>( decoder: &mut D, tag: Tag, constraints: Constraints, ) -> Result<Self, D::Error>
Decode this value implicitly tagged with
tag from a given ASN.1
decoder with a set of constraints on what values of that type are allowed. Read moreSource§fn decode<D: Decoder>(decoder: &mut D) -> Result<Self, D::Error>
fn decode<D: Decoder>(decoder: &mut D) -> Result<Self, D::Error>
Decode this value from a given ASN.1 decoder. Read more
Source§fn decode_with_tag<D>(
decoder: &mut D,
tag: Tag,
) -> Result<Self, <D as Decoder>::Error>where
D: Decoder,
fn decode_with_tag<D>(
decoder: &mut D,
tag: Tag,
) -> Result<Self, <D as Decoder>::Error>where
D: Decoder,
Decode this value implicitly tagged with
tag from a given ASN.1 decoder. Read moreSource§fn decode_with_constraints<D>(
decoder: &mut D,
constraints: Constraints,
) -> Result<Self, <D as Decoder>::Error>where
D: Decoder,
fn decode_with_constraints<D>(
decoder: &mut D,
constraints: Constraints,
) -> Result<Self, <D as Decoder>::Error>where
D: Decoder,
Decode this value from a given ASN.1 decoder with a set of constraints
on what values of that type are allowed. Read more
Source§impl DecodeChoice for SignerIdentifier
impl DecodeChoice for SignerIdentifier
Source§impl Encode for SignerIdentifier
impl Encode for SignerIdentifier
Source§fn encode_with_identifier<'encoder, E: Encoder<'encoder>>(
&self,
encoder: &mut E,
identifier: Identifier,
) -> Result<(), E::Error>
fn encode_with_identifier<'encoder, E: Encoder<'encoder>>( &self, encoder: &mut E, identifier: Identifier, ) -> Result<(), E::Error>
Source§fn encode_with_tag_and_constraints<'encoder, EN: Encoder<'encoder>>(
&self,
encoder: &mut EN,
tag: Tag,
constraints: Constraints,
identifier: Identifier,
) -> Result<(), EN::Error>
fn encode_with_tag_and_constraints<'encoder, EN: Encoder<'encoder>>( &self, encoder: &mut EN, tag: Tag, constraints: Constraints, identifier: Identifier, ) -> Result<(), EN::Error>
Encode this value with
tag into the given crate::Encoder with the
constraints the values this is allowed to encode into. Read moreSource§fn encode_with_tag<'b, E>(
&self,
encoder: &mut E,
tag: Tag,
) -> Result<(), <E as Encoder<'b>>::Error>where
E: Encoder<'b>,
fn encode_with_tag<'b, E>(
&self,
encoder: &mut E,
tag: Tag,
) -> Result<(), <E as Encoder<'b>>::Error>where
E: Encoder<'b>,
Source§fn encode_with_tag_and_identifier<'b, E>(
&self,
encoder: &mut E,
tag: Tag,
identifier: Identifier,
) -> Result<(), <E as Encoder<'b>>::Error>where
E: Encoder<'b>,
fn encode_with_tag_and_identifier<'b, E>(
&self,
encoder: &mut E,
tag: Tag,
identifier: Identifier,
) -> Result<(), <E as Encoder<'b>>::Error>where
E: Encoder<'b>,
Source§fn encode_with_constraints<'b, E>(
&self,
encoder: &mut E,
constraints: Constraints,
) -> Result<(), <E as Encoder<'b>>::Error>where
E: Encoder<'b>,
fn encode_with_constraints<'b, E>(
&self,
encoder: &mut E,
constraints: Constraints,
) -> Result<(), <E as Encoder<'b>>::Error>where
E: Encoder<'b>,
Encode this value into the given
crate::Encoder with the
constraints the values this is allowed to encode into. Read moreSource§fn encode_with_constraints_and_identifier<'b, E>(
&self,
encoder: &mut E,
constraints: Constraints,
identifier: Identifier,
) -> Result<(), <E as Encoder<'b>>::Error>where
E: Encoder<'b>,
fn encode_with_constraints_and_identifier<'b, E>(
&self,
encoder: &mut E,
constraints: Constraints,
identifier: Identifier,
) -> Result<(), <E as Encoder<'b>>::Error>where
E: Encoder<'b>,
Encode this value into the given
crate::Encoder with identifier and the
constraints the values this is allowed to encode into. Read moreSource§impl Hash for SignerIdentifier
impl Hash for SignerIdentifier
Source§impl PartialEq for SignerIdentifier
impl PartialEq for SignerIdentifier
impl Eq for SignerIdentifier
impl StructuralPartialEq for SignerIdentifier
Auto Trait Implementations§
impl Freeze for SignerIdentifier
impl RefUnwindSafe for SignerIdentifier
impl Send for SignerIdentifier
impl Sync for SignerIdentifier
impl Unpin for SignerIdentifier
impl UnsafeUnpin for SignerIdentifier
impl UnwindSafe for SignerIdentifier
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
Causes
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
Causes
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
Causes
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
Causes
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
Causes
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
Causes
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
Causes
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
Causes
self to use its UpperHex implementation when
Debug-formatted.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Pipes by value. This is generally the method you want to use. Read more
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
Borrows
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
Mutably borrows
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
Mutably borrows
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows
self, then passes self.deref() into the pipe function.Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls
.tap_deref() only in debug builds, and is erased in release
builds.