#[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 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 for Tag
impl PartialOrd for Tag
impl Copy for Tag
impl Eq for Tag
impl StructuralPartialEq for Tag
Auto Trait Implementations§
impl Freeze for Tag
impl RefUnwindSafe for Tag
impl Send for Tag
impl Sync for Tag
impl Unpin for Tag
impl UnwindSafe for Tag
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)