Skip to main content

Module asn1

Module asn1 

Source
Expand description

Verified ASN.1 contents, tag-length-value wrappers, and schema combinators.

der exposes notation-like constants and modifiers for canonical DER. ber provides specialized formats for BER alternatives such as constructed strings and indefinite-length containers. Shared modules define contents formats, tags, constraints, retagging, disjointness certificates, and allocation-free DER ordering.

The vest_asn1 frontend guide describes schema generation and the supported ASN.1 subset. Direct backend users should start with der or ber rather than assembling raw TLVs.

Re-exports§

pub use any::AnyOwned;
pub use any::Any;
pub use any::AnySpec;
pub use ber::BerAnyFmt;
pub use ber::BerBitStringFmt;
pub use ber::BerBmpStringFmt;
pub use ber::BerCharStringFmt;
pub use ber::BerIa5StringFmt;
pub use ber::BerOctetStringFmt;
pub use ber::BerPrintableStringFmt;
pub use ber::BerSequenceFmt;
pub use ber::BerSequenceOfFmt;
pub use ber::BerTeletexStringFmt;
pub use ber::BerUtf8StringFmt;
pub use ber::EocFmt;
pub use ber::EOC;
pub use bitstring::BitStringOwned;
pub use bitstring::BitString;
pub use bitstring::BitStringSpec;
pub use bmpstring::BmpString;
pub use bmpstring::BmpStringSpec;
pub use constraints::ConstraintAnd;
pub use constraints::ConstraintNot;
pub use constraints::ConstraintOr;
pub use constraints::IntegerRange;
pub use constraints::Size;
pub use datetime::DateTime;
pub use datetime::TimePrecision;
pub use datetime::TimeZone;
pub use der_ord::DeepViewIdentity;
pub use der_ord::DerOrd;
pub use enumerated::Enumerated;
pub use generalizedtime::GeneralizedTime;
pub use generalizedtime::GeneralizedTimeSpec;
pub use ia5string::Ia5StringOwned;
pub use ia5string::Ia5String;
pub use ia5string::Ia5StringSpec;
pub use integer::Integer;
pub use integer::Integer16Fmt;
pub use integer::Integer8Fmt;
pub use modifiers::DefaultedFmt;
pub use modifiers::ImplicitlyTaggedFmt;
pub use modifiers::Retaggable;
pub use numericstring::NumericStringOwned;
pub use numericstring::NumericString;
pub use numericstring::NumericStringFmt;
pub use numericstring::NumericStringFmt;
pub use numericstring::NumericStringSpec;
pub use oid::ObjectIdentifier;
pub use oid::ObjectIdentifierSpec;
pub use printablestring::PrintableStringOwned;
pub use printablestring::PrintableString;
pub use printablestring::PrintableStringSpec;
pub use real::Real;
pub use real::RealSpec;
pub use set_of::SetOfFmt;
pub use tag::constructed_tag;
pub use tag::primitive_tag;
pub use tag::Class;
pub use tag::Tag;
pub use teletexstring::TeletexStringOwned;
pub use teletexstring::TeletexString;
pub use teletexstring::TeletexStringSpec;
pub use universalstring::UniversalString;
pub use universalstring::UniversalStringSpec;
pub use utctime::UtcTime;
pub use utf8string::Utf8String;
pub use utf8string::Utf8StringOwned;
pub use der::*;

Modules§

any
ASN.1 ANY / open-type complete TLV format. ASN.1 ANY / open-type values.
ber
BER indefinite-length and constructed-value combinators. BER constructed-value formats and notation-style constructors.
bitstring
ASN.1 BIT STRING contents octets. ASN.1 BIT STRING contents values and primitive contents format.
bmpstring
ASN.1 BMPString contents. ASN.1 BMPString values and UCS-2 contents format.
boolean
ASN.1 BOOLEAN contents octet. ASN.1 BOOLEAN contents under DER and BER rules.
constraints
Reusable ASN.1 subtype-constraint predicates. Reusable executable and specification predicates for ASN.1 subtype constraints.
datetime
Shared semantic date/time values and calendar operations. Shared logical date, time, precision, and time-zone representations.
der
ASN.1 notation-style aliases for universal formats with DER encoding. Canonical DER universal formats and notation-style constructors.
der_ord
Allocation-free ordering of values by their DER encodings. Allocation-free comparison of values by their complete DER encodings.
disjoint
Disjointness proofs for complete ASN.1 formats. Compositional disjointness proofs for complete ASN.1 formats.
enumerated
ASN.1 ENUMERATED contents octets. ASN.1 ENUMERATED contents.
generalizedtime
ASN.1 GeneralizedTime contents. ASN.1 GeneralizedTime values and contents format.
ia5string
ASN.1 IA5String contents. ASN.1 IA5String borrowed and owned values and contents format.
integer
ASN.1 INTEGER contents octets. ASN.1 INTEGER values, general contents, and bounded integer formats.
length
ASN.1 definite length octets. ASN.1 definite and BER indefinite length octets.
macros
Macros for implementing verified nominal ASN.1 formats. Implementations for generated nominal ASN.1 format types.
modifiers
Shared ASN.1 tagging and component modifiers. Shared ASN.1 component modifiers and notation constructors.
numericstring
ASN.1 NumericString contents. ASN.1 NumericString contents.
oid
ASN.1 OBJECT IDENTIFIER contents octets. ASN.1 OBJECT IDENTIFIER contents.
printablestring
ASN.1 PrintableString contents. ASN.1 PrintableString borrowed and owned values and contents format.
real
ASN.1 REAL contents octets. ASN.1 BER/DER REAL contents.
set_of
ASN.1 DER SET OF contents. ASN.1 DER SET OF contents.
tag
ASN.1 tag octets. ASN.1 identifier octets, tag classes, and universal tag numbers.
teletexstring
ASN.1 TeletexString contents. ASN.1 TeletexString borrowed and owned values and contents format.
tlv
ASN.1 TLV wrapper. Generic ASN.1 tag-length-value wrappers for definite-length contents.
universalstring
ASN.1 UniversalString contents. ASN.1 UniversalString contents.
utctime
ASN.1 UTCTime contents. ASN.1 UTCTime values and contents format.
utf8string
ASN.1 UTF8String contents. ASN.1 UTF8String borrowed and owned values and contents format.

Structs§

ASN1Fmt
AnyFmt
ASN.1 ANY/open-type format.
BerLengthFmt
BER length determinant accepting both definite and indefinite encodings.
BitStringFmt
ASN.1 BIT STRING contents format.
BmpStringFmt
ASN.1 BMPString format.
BoolFmt
ASN.1 BOOLEAN format.
EnumeratedFmt
ASN.1 ENUMERATED contents format.
GeneralizedTimeFmt
ASN.1 GeneralizedTime format.
Ia5StringFmt
ASN.1 IA5String format.
IntegerFmt
ASN.1 INTEGER contents format.
LengthFmt
ASN.1 definite length format.
NatLengthFmt
ASN.1 definite length format whose codomain is nat
ObjectIdentifierFmt
ASN.1 OBJECT IDENTIFIER contents format.
PrintableStringFmt
ASN.1 PrintableString format.
RealFmt
ASN.1 REAL contents format.
TagFmt
ASN.1 tag format combinator.
TeletexStringFmt
ASN.1 TeletexString format.
UniversalStringFmt
ASN.1 UniversalString format.
UtcTimeFmt
ASN.1 UTCTime format.
Utf8StringFmt
ASN.1 UTF8String format.

Enums§

BerLength
BER length, including the indefinite form (0x80).

Constants§

BER
BerBoolFmt
Convenience value alias for the BER variant of ASN.1 BOOLEAN.
BerDefiniteAnyFmt
BerGeneralizedTimeFmt
BerUtcTimeFmt
DER
DerAnyFmt
DerBoolFmt
Convenience value alias for the DER variant of ASN.1 BOOLEAN.
DerGeneralizedTimeFmt
DerUtcTimeFmt
NullFmt
Convenience value alias for ASN.1 NULL format.
OctetStringFmt
Convenience value alias for ASN.1 OCTET STRING contents format.

Type Aliases§

BerBitStringContentFmt
Convenience type alias for primitive BER BIT STRING contents.
BerBoolFmt
Convenience type alias for the BER variant of ASN.1 BOOLEAN.
BerDefiniteAnyFmt
Definite-length-only BER ANY format.
BerGeneralizedTimeFmt
BerUtcTimeFmt
DerAnyFmt
DerBitStringFmt
Convenience type alias for the DER variant of ASN.1 BIT STRING.
DerBoolFmt
Convenience type alias for the DER variant of ASN.1 BOOLEAN.
DerGeneralizedTimeFmt
DerUtcTimeFmt
NullFmt
ASN.1 NULL format.
OctetStringFmt
ASN.1 OCTET STRING contents format (primitive).