Red ASN1
A little library to build/parse ASN1 DER
Examples
Parsing and building bool
:
use Asn1Object;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
Parsing and building Integer
:
use ;
assert_eq!;
assert_eq!;
Parsing and building String
:
use Asn1Object;
assert_eq!;
assert_eq!;
Creating custom sequences:
/*
Person ::= [APPLICATION 1] SEQUENCE {
name: [0] GeneralString,
age: [1] Integer,
address: [2] GeneralString OPTIONAL,
}
*/
use *;
use Sequence;
let john = Person;
assert_eq!;
let = parse.unwrap;
assert_eq!;
assert_eq!;
assert_eq!;
Implemented types
ASN1 | red_asn1 type | Rust type |
---|---|---|
BOOLEAN | Boolean | bool |
INTEGER | Integer | i128, i64, i32, i16, u32 |
BIT STRING | BitSring | |
OCTET STRING | OctetString | Vec<u8> |
GeneralString | GeneralString | String |
IA5String | IA5String | ascii::AsciiString |
GeneralizedTime | GeneralizedTime | |
SEQUENCE OF | SequenceOf | Vec<T: Asn1Object> |
SEQUENCE | struct with #[derive(Sequence, Default)] | |
OPTIONAL | Optional | Option |