pub struct TagFmt;Expand description
ASN.1 tag format combinator.
Only the canonical DER form is accepted:
- Tag numbers 0–30 must use the short (1-byte) form.
- High tag numbers must have no leading zero in the base-128 encoding.
Implementations§
Source§impl TagFmt
impl TagFmt
pub const EOC: Tag
pub const BOOLEAN: Tag
pub const INTEGER: Tag
pub const NULL: Tag
pub const OBJECT_IDENTIFIER: Tag
pub const REAL: Tag
pub const ENUMERATED: Tag
pub const RELATIVE_OID: Tag
pub const BIT_STRING: Tag
pub const OCTET_STRING: Tag
pub const UTF8_STRING: Tag
pub const NUMERIC_STRING: Tag
pub const PRINTABLE_STRING: Tag
pub const TELETEX_STRING: Tag
pub const VIDEOTEX_STRING: Tag
pub const IA5_STRING: Tag
pub const UTC_TIME: Tag
pub const GENERALIZED_TIME: Tag
pub const VISIBLE_STRING: Tag
pub const GENERAL_STRING: Tag
pub const UNIVERSAL_STRING: Tag
pub const BMP_STRING: Tag
pub const BIT_STRING_CONSTRUCTED: Tag
pub const OCTET_STRING_CONSTRUCTED: Tag
pub const UTF8_STRING_CONSTRUCTED: Tag
pub const NUMERIC_STRING_CONSTRUCTED: Tag
pub const PRINTABLE_STRING_CONSTRUCTED: Tag
pub const TELETEX_STRING_CONSTRUCTED: Tag
pub const VIDEOTEX_STRING_CONSTRUCTED: Tag
pub const IA5_STRING_CONSTRUCTED: Tag
pub const UTC_TIME_CONSTRUCTED: Tag
pub const GENERALIZED_TIME_CONSTRUCTED: Tag
pub const VISIBLE_STRING_CONSTRUCTED: Tag
pub const GENERAL_STRING_CONSTRUCTED: Tag
pub const UNIVERSAL_STRING_CONSTRUCTED: Tag
pub const BMP_STRING_CONSTRUCTED: Tag
pub const SEQUENCE: Tag
pub const SET: Tag
Trait Implementations§
Source§impl Consistency for TagFmt
impl Consistency for TagFmt
impl Copy for TagFmt
Source§impl DerOrd<Tag> for TagFmt
impl DerOrd<Tag> for TagFmt
Source§proof fn lemma_der_serialize_len(&self, tag: Tag)
proof fn lemma_der_serialize_len(&self, tag: Tag)
Source§open spec fn der_remaining(&self, tag: Tag, state: TagDerState) -> Seq<u8>
open spec fn der_remaining(&self, tag: Tag, state: TagDerState) -> Seq<u8>
{ self.spec_serialize(tag)[state.pos..] }Source§open spec fn der_state_valid(&self, tag: Tag, state: TagDerState) -> bool
open spec fn der_state_valid(&self, tag: Tag, state: TagDerState) -> bool
{
&&& state.pos <= state.len
&&& state.len <= state.bytes@.len()
&&& state.len == self.spec_serialize(tag).len()
&&& state.bytes@[0..state.len] == self.spec_serialize(tag)
}Source§exec fn der_start(&self, t: &Tag) -> state : TagDerState
exec fn der_start(&self, t: &Tag) -> state : TagDerState
Source§impl EquivSerializers for TagFmt
impl EquivSerializers for TagFmt
Source§impl EquivSerializersGeneral for TagFmt
impl EquivSerializersGeneral for TagFmt
Source§impl GoodSerializer for TagFmt
impl GoodSerializer for TagFmt
Source§proof fn lemma_serialize_len(&self, v: Self::SVal)
proof fn lemma_serialize_len(&self, v: Self::SVal)
Source§fn serialize_inv(&self) -> bool
fn serialize_inv(&self) -> bool
Source§impl NoLookAhead for TagFmt
impl NoLookAhead for TagFmt
Source§impl NonMalleable for TagFmt
impl NonMalleable for TagFmt
Source§impl NonTailFmt for TagFmt
impl NonTailFmt for TagFmt
Source§impl Productive for TagFmt
impl Productive for TagFmt
Source§proof fn lemma_productive(&self, s: Seq<u8>)
proof fn lemma_productive(&self, s: Seq<u8>)
Source§fn productive_inv(&self) -> bool
fn productive_inv(&self) -> bool
Source§impl SPRoundTripDps for TagFmt
impl SPRoundTripDps for TagFmt
Source§impl SafeParser for TagFmt
impl SafeParser for TagFmt
Source§impl<Output: OutputBuf> Serializer<Output, Tag> for TagFmt
impl<Output: OutputBuf> Serializer<Output, Tag> for TagFmt
Source§exec fn serialize_into(&self, v: &Tag, obuf: &mut Output)
exec fn serialize_into(&self, v: &Tag, obuf: &mut Output)
Source§impl SoundParser for TagFmt
impl SoundParser for TagFmt
Source§impl SpecByteLen for TagFmt
impl SpecByteLen for TagFmt
Source§impl SpecParser for TagFmt
impl SpecParser for TagFmt
Source§impl SpecSerializer for TagFmt
impl SpecSerializer for TagFmt
Auto Trait Implementations§
impl Freeze for TagFmt
impl RefUnwindSafe for TagFmt
impl Send for TagFmt
impl Sync for TagFmt
impl Unpin for TagFmt
impl UnsafeUnpin for TagFmt
impl UnwindSafe for TagFmt
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,
§impl<T, VERUS_SPEC__A> FromSpec<T> for VERUS_SPEC__Awhere
VERUS_SPEC__A: From<T>,
impl<T, VERUS_SPEC__A> FromSpec<T> for VERUS_SPEC__Awhere
VERUS_SPEC__A: From<T>,
fn obeys_from_spec() -> bool
fn from_spec(v: T) -> VERUS_SPEC__A
§impl<T, VERUS_SPEC__A> IntoSpec<T> for VERUS_SPEC__Awhere
VERUS_SPEC__A: Into<T>,
impl<T, VERUS_SPEC__A> IntoSpec<T> for VERUS_SPEC__Awhere
VERUS_SPEC__A: Into<T>,
fn obeys_into_spec() -> bool
fn into_spec(self) -> T
§impl<T, U> IntoSpecImpl<U> for Twhere
U: From<T>,
impl<T, U> IntoSpecImpl<U> for Twhere
U: From<T>,
fn obeys_into_spec() -> bool
fn into_spec(self) -> U
Source§impl<C> NonAmbiguous for Cwhere
C: SPRoundTrip,
impl<C> NonAmbiguous for Cwhere
C: SPRoundTrip,
Source§open spec fn nonamb_inv(&self) -> bool
open spec fn nonamb_inv(&self) -> bool
{ self.sp_roundtrip_inv() }Source§proof fn lemma_serialize_injective(
&self,
v1: <C as Consistency>::Val,
v2: <C as Consistency>::Val,
)
proof fn lemma_serialize_injective( &self, v1: <C as Consistency>::Val, v2: <C as Consistency>::Val, )
Source§impl<C> PSRoundTrip for C
impl<C> PSRoundTrip for C
Source§impl<C> SPRoundTrip for C
impl<C> SPRoundTrip for C
Source§open spec fn sp_roundtrip_inv(&self) -> bool
open spec fn sp_roundtrip_inv(&self) -> bool
{ self.serialize_inv() && self.equiv_inv() && self.unambiguous() }