1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
use asn1_rs::*;
use hex_literal::hex;
#[derive(Debug, PartialEq, DerSequence, ToDerSequence)]
//#[debug_derive]
pub struct T1<'a> {
a: u32,
b: u16,
c: u16,
d: &'a str,
}
#[cfg(feature = "std")]
fn main() {
let input = &hex!("300f0201 01020102 020103 0c0461626364");
let (rem, t1) = T1::from_der(input).expect("parsing failed");
assert!(rem.is_empty());
assert_eq!(
t1,
T1 {
a: 1,
b: 2,
c: 3,
d: "abcd"
}
);
// serialize back data
let output = t1.to_der_vec().expect("serialization failed");
assert_eq!(&input[..], output);
}
#[cfg(not(feature = "std"))]
fn main() {}
|