diff --git a/pkcs7/tests/content_tests.rs b/pkcs7/tests/content_tests.rs index 406e4cf73..86be1b3ee 100644 --- a/pkcs7/tests/content_tests.rs +++ b/pkcs7/tests/content_tests.rs @@ -140,3 +140,49 @@ fn decode_signed_scep_example() { _ => panic!("expected ContentInfo::SignedData(Some(_))"), } } + +// TODO(tarcieri): BER support +#[test] +#[ignore] +fn decode_signed_ber() { + let bytes = include_bytes!("examples/cms_ber.bin"); + + let content = match ContentInfo::from_der(bytes) { + Ok(ContentInfo::SignedData(Some(data))) => data, + other => panic!("unexpected result: {:?}", other), + }; + + assert_eq!( + content + .encap_content_info + .e_content + .unwrap() + .decode_as::() + .unwrap() + .as_bytes() + .len(), + 10034 + ); +} + +#[test] +fn decode_signed_der() { + let bytes = include_bytes!("examples/cms_der.bin"); + + let content = match ContentInfo::from_der(bytes) { + Ok(ContentInfo::SignedData(Some(data))) => data, + other => panic!("unexpected result: {:?}", other), + }; + + assert_eq!( + content + .encap_content_info + .e_content + .unwrap() + .decode_as::() + .unwrap() + .as_bytes() + .len(), + 10034 + ); +} diff --git a/pkcs7/tests/examples/cms_ber.bin b/pkcs7/tests/examples/cms_ber.bin new file mode 100644 index 000000000..57057fc6d Binary files /dev/null and b/pkcs7/tests/examples/cms_ber.bin differ diff --git a/pkcs7/tests/examples/cms_der.bin b/pkcs7/tests/examples/cms_der.bin new file mode 100644 index 000000000..2a1a3ae48 Binary files /dev/null and b/pkcs7/tests/examples/cms_der.bin differ