Expand description
§facet-asn1-legacy
§facet-asn1
A #![no_std] ASN.1 serializer and deserializer based on facet
Currently supports Distinguished Encoding Rules (DER) only
§Basic Types
| ASN.1 Type | Rust |
|---|---|
| BOOLEAN | bool |
| INTEGER | i8, i16, i32, or i64 |
| OCTET STRING | Vec<u8> |
| NULL | Any unit struct |
| REAL | f32 or f64 |
| UTF8String | String |
| CHOICE | enum |
| SEQUENCE | struct |
§Other ASN.1 Types
Newtype structs using the facet::Shape::type_tag property can be used to create other basic types without any content validation:
use facet::Facet;
#[derive(Debug, Clone, Facet, PartialEq, Eq)]
#[facet(type_tag = "IA5String", transparent)]
struct IA5String(String);§Context Specific Type Tags
You can also set context specific BER/DER tags to a given number. Implicit tags must be set as transparent.
use facet::Facet;
// ImplicitString ::= [5] IMPLICIT UTF8String
#[derive(Debug, Facet, PartialEq, Eq)]
#[facet(type_tag = "5", transparent)]
struct ImplicitString(String);
// ExplciitString ::= [5] EXPLICIT UTF8String
#[derive(Debug, Facet, PartialEq, Eq)]
#[facet(type_tag = "5")]
struct ExplicitString(String);The tag classes UNIVERSAL, APPLICATION, and PRIVATE are also supported in type_tags for greater flexibility.
§Sponsors
Thanks to all individual sponsors:
…along with corporate sponsors:
…without whom this work could not exist.
§Special thanks
The facet logo was drawn by Misiasart.
§License
Licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Enums§
- Asn1
Deser Error - Errors when deserializing from ASN.1 BER or DER bytes
- Asn1
SerError - Errors when serializing to an ASN.1 format
Traits§
- Asn1
Write no_stdcompatible Write trait used by the ASN.1 serializer.
Functions§
- deserialize_
der - Deserialize a slice of ASN.1 DER bytes into a Facet type
- deserialize_
der_ wip - Deserialize an ASN.1 DER slice given some some
Partialinto aHeapValue - to_
vec_ der - Serialize a Facet type to ASN.1 DER bytes