A little library to encode/decode ASN1 DER
Encoding and decoding: ```rust /* Person ::= [APPLICATION 1] SEQUENCE { name: [0] GeneralString, age: [1] Integer, address: [2] GeneralString OPTIONAL, } */
use red_asn1::*;
struct Person {
#[seqfield(contexttag = 0)]
name: SeqField
let mut person = Person{ name: GeneralString::from("John").into(), age: Integer::from(18).into(), address: SeqField::default() };
assert_eq!( vec![ 0x61, 0xf, 0x30, 0xd, 0xa0, 0x6, 0x1b, 0x4, 0x4a, 0x6f, 0x68, 0x6e, // "John" 0xa1, 0x3, 0x2, 0x1, 0x12 // 18 ] , person.encode().unwrap() );
person.decode(&[ 0x61, 0x1b, 0x30, 0x19, 0xa0, 0x8, 0x1b, 0x6, 0x52, 0x61, 0x63, 0x68, 0x65, 0x6c, // "Rachel" 0xa1, 0x3, 0x2, 0x1, 0x1e, // 30 0xa2, 0x8, 0x1b, 0x6, 0x48, 0x61, 0x77, 0x61, 0x69, 0x69 // "Hawaii" ]).unwrap();
asserteq!("Rachel", person.getname().unwrap().value().unwrap()); asserteq!(30, person.getage().unwrap().value().unwrap()); asserteq!("Hawaii", person.getaddress().unwrap().value().unwrap());
```