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
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).skip(state.pos as int) }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@.take(state.len as int) == 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§proof fn lemma_serialize_equiv(&self, v: Self::SVal, obuf: Seq<u8>)
proof fn lemma_serialize_equiv(&self, v: Self::SVal, obuf: Seq<u8>)
Source§fn equiv_general_inv(&self) -> bool
fn equiv_general_inv(&self) -> bool
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§proof fn lemma_parse_non_malleable(&self, buf1: Seq<u8>, buf2: Seq<u8>)
proof fn lemma_parse_non_malleable(&self, buf1: Seq<u8>, buf2: Seq<u8>)
Source§fn nonmal_inv(&self) -> bool
fn nonmal_inv(&self) -> bool
Source§impl NonTailFmt for TagFmt
impl NonTailFmt for TagFmt
Source§proof fn lemma_serialize_dps_prepend(&self, v: Self::SValue, obuf: Seq<u8>)
proof fn lemma_serialize_dps_prepend(&self, v: Self::SValue, obuf: Seq<u8>)
Source§proof fn lemma_serialize_dps_len(&self, v: Self::SValue, obuf: Seq<u8>)
proof fn lemma_serialize_dps_len(&self, v: Self::SValue, obuf: Seq<u8>)
Source§fn serialize_dps_inv(&self) -> bool
fn serialize_dps_inv(&self) -> bool
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§proof fn theorem_serialize_dps_parse_roundtrip(&self, v: Self::T, obuf: Seq<u8>)
proof fn theorem_serialize_dps_parse_roundtrip(&self, v: Self::T, obuf: Seq<u8>)
Source§fn unambiguous(&self) -> bool
fn unambiguous(&self) -> bool
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
Source§impl SpecSerializerDps for TagFmt
impl SpecSerializerDps for TagFmt
impl Copy 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§open spec fn ps_roundtrip_inv(&self) -> bool
open spec fn ps_roundtrip_inv(&self) -> bool
{ self.safe_inv() && self.sound_inv() && self.nonmal_inv() && self.sp_roundtrip_inv() }Source§proof fn theorem_parse_serialize_roundtrip(&self, ibuf: Seq<u8>)
proof fn theorem_parse_serialize_roundtrip(&self, ibuf: Seq<u8>)
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() }