#[non_exhaustive]pub enum Tag {
Show 23 variants
Boolean,
Integer,
BitString,
OctetString,
Null,
ObjectIdentifier,
Real,
Enumerated,
Utf8String,
Sequence,
Set,
NumericString,
PrintableString,
TeletexString,
VideotexString,
Ia5String,
UtcTime,
GeneralizedTime,
VisibleString,
BmpString,
Application {
constructed: bool,
number: TagNumber,
},
ContextSpecific {
constructed: bool,
number: TagNumber,
},
Private {
constructed: bool,
number: TagNumber,
},
}Expand description
ASN.1 tags.
Tags are the leading identifier octet of the Tag-Length-Value encoding used by ASN.1 DER and identify the type of the subsequent value.
They are described in X.690 Section 8.1.2: Identifier octets, and structured as follows:
| Class | P/C | Tag Number |
- Bits 8/7:
Class - Bit 6: primitive (0) or constructed (1)
- Bits 5-1: tag number
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Boolean
BOOLEAN tag: 1.
Integer
INTEGER tag: 2.
BitString
BIT STRING tag: 3.
OctetString
OCTET STRING tag: 4.
Null
NULL tag: 5.
ObjectIdentifier
OBJECT IDENTIFIER tag: 6.
Real
REAL tag: 9.
Enumerated
ENUMERATED tag: 10.
Utf8String
UTF8String tag: 12.
Sequence
SEQUENCE tag: 16.
Set
SET and SET OF tag: 17.
NumericString
NumericString tag: 18.
PrintableString
PrintableString tag: 19.
TeletexString
TeletexString tag: 20.
VideotexString
VideotexString tag: 21.
Ia5String
IA5String tag: 22.
UtcTime
UTCTime tag: 23.
GeneralizedTime
GeneralizedTime tag: 24.
VisibleString
VisibleString tag: 26.
BmpString
BMPString tag: 30.
Application
Application tag.
ContextSpecific
Context-specific tag.
Private
Private tag number.
Implementations§
source§impl Tag
impl Tag
sourcepub fn assert_eq(self, expected: Tag) -> Result<Tag>
pub fn assert_eq(self, expected: Tag) -> Result<Tag>
Assert that this Tag matches the provided expected tag.
On mismatch, returns an Error with ErrorKind::TagUnexpected.
sourcepub fn is_constructed(self) -> bool
pub fn is_constructed(self) -> bool
Does this tag represent a constructed (as opposed to primitive) field?
sourcepub fn is_application(self) -> bool
pub fn is_application(self) -> bool
Is this an application tag?
sourcepub fn is_context_specific(self) -> bool
pub fn is_context_specific(self) -> bool
Is this a context-specific tag?
sourcepub fn is_private(self) -> bool
pub fn is_private(self) -> bool
Is this a private tag?
sourcepub fn is_universal(self) -> bool
pub fn is_universal(self) -> bool
Is this a universal tag?
sourcepub fn length_error(self) -> Error
pub fn length_error(self) -> Error
sourcepub fn non_canonical_error(self) -> Error
pub fn non_canonical_error(self) -> Error
Create an Error for an non-canonical value with the ASN.1 type
identified by this tag.
sourcepub fn unexpected_error(self, expected: Option<Self>) -> Error
pub fn unexpected_error(self, expected: Option<Self>) -> Error
Create an Error because the current tag was unexpected, with an
optional expected tag.
sourcepub fn value_error(self) -> Error
pub fn value_error(self) -> Error
Create an Error for an invalid value with the ASN.1 type identified
by this tag.
Trait Implementations§
source§impl<'arbitrary> Arbitrary<'arbitrary> for Tag
impl<'arbitrary> Arbitrary<'arbitrary> for Tag
source§fn arbitrary(u: &mut Unstructured<'arbitrary>) -> Result<Self>
fn arbitrary(u: &mut Unstructured<'arbitrary>) -> Result<Self>
Self from the given unstructured data. Read moresource§fn arbitrary_take_rest(u: Unstructured<'arbitrary>) -> Result<Self>
fn arbitrary_take_rest(u: Unstructured<'arbitrary>) -> Result<Self>
Self from the entirety of the given
unstructured data. Read moresource§impl Encode for Tag
impl Encode for Tag
source§fn encoded_len(&self) -> Result<Length>
fn encoded_len(&self) -> Result<Length>
source§fn encode(&self, writer: &mut impl Writer) -> Result<()>
fn encode(&self, writer: &mut impl Writer) -> Result<()>
Writer.source§fn encode_to_slice<'a>(&self, buf: &'a mut [u8]) -> Result<&'a [u8]>
fn encode_to_slice<'a>(&self, buf: &'a mut [u8]) -> Result<&'a [u8]>
source§impl Ord for Tag
impl Ord for Tag
source§impl PartialOrd<Tag> for Tag
impl PartialOrd<Tag> for Tag
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self and other) and is used by the <=
operator. Read more