From b414834c623db057c15d16a6b0180d16115e1523 Mon Sep 17 00:00:00 2001 From: Scott Sadler Date: Thu, 2 Apr 2020 13:59:15 -0300 Subject: [PATCH 1/2] test for encoding of unknown with one child --- src/lib.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index ca5fb9c..c52d5c1 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1642,4 +1642,21 @@ mod tests { assert_eq!(raw_oid, &expected[6..(expected.len() - 4)]); } } + + #[test] + fn encode_unknowns() { + fn encode_structure(bufs: &[Vec]) -> Vec { + let mut body = Vec::new(); + for (i, buf) in bufs.iter().enumerate() { + let mut der = to_der(&ASN1Block::Unknown(ASN1Class::ContextSpecific, false, 0, BigUint::from_usize(i).unwrap(), buf.to_vec())).unwrap(); + body.append(&mut der); + } + let block = ASN1Block::Unknown(ASN1Class::ContextSpecific, true, 0, BigUint::from_u8(0).unwrap(), body); + to_der(&block).unwrap() + } + + let decoded = from_der(&encode_structure(&vec![vec![0]])).unwrap(); + let expected = [ASN1Block::Unknown(ASN1Class::ContextSpecific, true, 0, BigUint::from_u8(0).unwrap(), vec![128, 1, 0])]; + assert_eq!(decoded, expected); + } } From 924f79f6a3c61d83f9caf56759b62ccec2b920a5 Mon Sep 17 00:00:00 2001 From: Scott Sadler Date: Thu, 2 Apr 2020 13:59:38 -0300 Subject: [PATCH 2/2] fix warning --- src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index c52d5c1..04ed16a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -401,7 +401,7 @@ pub enum ASN1EncodeErr { impl fmt::Display for ASN1EncodeErr { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.write_str(self.description()) + f.write_str(&self.to_string()) } }