facet-asn1
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;
;
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;
// ImplicitString ::= [5] IMPLICIT UTF8String
;
// ExplciitString ::= [5] EXPLICIT UTF8String
;
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.