summaryrefslogtreecommitdiffstats
path: root/vendor/pem-rfc7468/tests/decode.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/pem-rfc7468/tests/decode.rs')
-rw-r--r--vendor/pem-rfc7468/tests/decode.rs112
1 files changed, 112 insertions, 0 deletions
diff --git a/vendor/pem-rfc7468/tests/decode.rs b/vendor/pem-rfc7468/tests/decode.rs
new file mode 100644
index 0000000..dc51528
--- /dev/null
+++ b/vendor/pem-rfc7468/tests/decode.rs
@@ -0,0 +1,112 @@
+//! PEM decoding tests
+
+#[test]
+fn pkcs1_example() {
+ let pem = include_bytes!("examples/pkcs1.pem");
+ let mut buf = [0u8; 2048];
+ let (label, decoded) = pem_rfc7468::decode(pem, &mut buf).unwrap();
+ assert_eq!(label, "RSA PRIVATE KEY");
+ assert_eq!(decoded, include_bytes!("examples/pkcs1.der"));
+}
+
+#[test]
+fn binary_example() {
+ let der = include_bytes!("examples/pkcs1.der");
+ let mut buf = [0u8; 2048];
+ match pem_rfc7468::decode(der, &mut buf) {
+ Err(pem_rfc7468::Error::Preamble) => (),
+ _ => panic!("Expected Preamble error"),
+ }
+}
+
+#[test]
+fn pkcs1_example_with_preceeding_junk() {
+ let pem = include_bytes!("examples/pkcs1_with_preceeding_junk.pem");
+ let mut buf = [0u8; 2048];
+ let (label, decoded) = pem_rfc7468::decode(pem, &mut buf).unwrap();
+ assert_eq!(label, "RSA PRIVATE KEY");
+ assert_eq!(decoded, include_bytes!("examples/pkcs1.der"));
+}
+
+#[test]
+fn pkcs1_enc_example() {
+ let pem = include_bytes!("examples/ssh_rsa_pem_password.pem");
+ let mut buf = [0u8; 2048];
+ let result = pem_rfc7468::decode(pem, &mut buf);
+ assert_eq!(result, Err(pem_rfc7468::Error::HeaderDisallowed));
+
+ let label = pem_rfc7468::decode_label(pem).unwrap();
+ assert_eq!(label, "RSA PRIVATE KEY");
+}
+
+#[test]
+#[cfg(feature = "alloc")]
+fn pkcs1_enc_example_with_vec() {
+ let pem = include_bytes!("examples/ssh_rsa_pem_password.pem");
+ let result = pem_rfc7468::decode_vec(pem);
+ assert_eq!(result, Err(pem_rfc7468::Error::HeaderDisallowed));
+}
+
+#[test]
+fn header_of_length_64() {
+ let pem = include_bytes!("examples/chosen_header.pem");
+ let mut buf = [0u8; 2048];
+ let result = pem_rfc7468::decode(pem, &mut buf);
+ assert_eq!(result, Err(pem_rfc7468::Error::HeaderDisallowed));
+
+ let label = pem_rfc7468::decode_label(pem).unwrap();
+ assert_eq!(label, "RSA PRIVATE KEY");
+}
+
+#[test]
+#[cfg(feature = "alloc")]
+fn header_of_length_64_with_vec() {
+ let pem = include_bytes!("examples/chosen_header.pem");
+ match pem_rfc7468::decode_vec(pem) {
+ Err(pem_rfc7468::Error::HeaderDisallowed) => (),
+ res => panic!("Expected HeaderDisallowed error; Found {:?}", res),
+ }
+}
+
+#[test]
+fn pkcs8_example() {
+ let pem = include_bytes!("examples/pkcs8.pem");
+ let mut buf = [0u8; 2048];
+ let (label, decoded) = pem_rfc7468::decode(pem, &mut buf).unwrap();
+ assert_eq!(label, "PRIVATE KEY");
+ assert_eq!(decoded, include_bytes!("examples/pkcs8.der"));
+}
+
+#[test]
+fn pkcs8_enc_example() {
+ let pem = include_bytes!("examples/pkcs8-enc.pem");
+ let mut buf = [0u8; 2048];
+ let (label, decoded) = pem_rfc7468::decode(pem, &mut buf).unwrap();
+ assert_eq!(label, "ENCRYPTED PRIVATE KEY");
+ assert_eq!(decoded, include_bytes!("examples/pkcs8-enc.der"));
+}
+
+#[test]
+#[cfg(feature = "alloc")]
+fn pkcs1_example_with_vec() {
+ let pem = include_bytes!("examples/pkcs1.pem");
+ let (label, decoded) = pem_rfc7468::decode_vec(pem).unwrap();
+ assert_eq!(label, "RSA PRIVATE KEY");
+ assert_eq!(decoded, include_bytes!("examples/pkcs1.der"));
+}
+
+#[test]
+#[cfg(feature = "alloc")]
+fn pkcs8_enc_example_with_vec() {
+ let pem = include_bytes!("examples/pkcs8-enc.pem");
+ let (label, decoded) = pem_rfc7468::decode_vec(pem).unwrap();
+ assert_eq!(label, "ENCRYPTED PRIVATE KEY");
+ assert_eq!(decoded, include_bytes!("examples/pkcs8-enc.der"));
+}
+
+#[test]
+fn ed25519_example() {
+ let pem = include_bytes!("examples/ed25519_id.pem");
+ let label = pem_rfc7468::decode_label(pem).unwrap();
+ assert_eq!(label, "ED25519 CERT");
+}