summaryrefslogtreecommitdiffstats
path: root/vendor/pem-rfc7468/tests
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 12:41:41 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 12:41:41 +0000
commit10ee2acdd26a7f1298c6f6d6b7af9b469fe29b87 (patch)
treebdffd5d80c26cf4a7a518281a204be1ace85b4c1 /vendor/pem-rfc7468/tests
parentReleasing progress-linux version 1.70.0+dfsg1-9~progress7.99u1. (diff)
downloadrustc-10ee2acdd26a7f1298c6f6d6b7af9b469fe29b87.tar.xz
rustc-10ee2acdd26a7f1298c6f6d6b7af9b469fe29b87.zip
Merging upstream version 1.70.0+dfsg2.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/pem-rfc7468/tests')
-rw-r--r--vendor/pem-rfc7468/tests/decode.rs112
-rw-r--r--vendor/pem-rfc7468/tests/encode.rs21
-rw-r--r--vendor/pem-rfc7468/tests/examples/chosen_header.pem31
-rw-r--r--vendor/pem-rfc7468/tests/examples/ed25519_id.pem5
-rw-r--r--vendor/pem-rfc7468/tests/examples/pkcs1.derbin0 -> 1191 bytes
-rw-r--r--vendor/pem-rfc7468/tests/examples/pkcs1.pem27
-rw-r--r--vendor/pem-rfc7468/tests/examples/pkcs1_with_preceeding_junk.pem44
-rw-r--r--vendor/pem-rfc7468/tests/examples/pkcs8-enc.derbin0 -> 158 bytes
-rw-r--r--vendor/pem-rfc7468/tests/examples/pkcs8-enc.pem6
-rw-r--r--vendor/pem-rfc7468/tests/examples/pkcs8.derbin0 -> 48 bytes
-rw-r--r--vendor/pem-rfc7468/tests/examples/pkcs8.pem3
-rw-r--r--vendor/pem-rfc7468/tests/examples/ssh_rsa_pem_password.pem30
12 files changed, 279 insertions, 0 deletions
diff --git a/vendor/pem-rfc7468/tests/decode.rs b/vendor/pem-rfc7468/tests/decode.rs
new file mode 100644
index 000000000..dc51528b3
--- /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");
+}
diff --git a/vendor/pem-rfc7468/tests/encode.rs b/vendor/pem-rfc7468/tests/encode.rs
new file mode 100644
index 000000000..8f2ac94c6
--- /dev/null
+++ b/vendor/pem-rfc7468/tests/encode.rs
@@ -0,0 +1,21 @@
+//! PEM decoding tests
+
+#![cfg(feature = "alloc")]
+
+use pem_rfc7468::LineEnding;
+
+#[test]
+fn pkcs1_example() {
+ let label = "RSA PRIVATE KEY";
+ let bytes = include_bytes!("examples/pkcs1.der");
+ let encoded = pem_rfc7468::encode_string(label, LineEnding::LF, bytes).unwrap();
+ assert_eq!(&encoded, include_str!("examples/pkcs1.pem"));
+}
+
+#[test]
+fn pkcs8_example() {
+ let label = "PRIVATE KEY";
+ let bytes = include_bytes!("examples/pkcs8.der");
+ let encoded = pem_rfc7468::encode_string(label, LineEnding::LF, bytes).unwrap();
+ assert_eq!(&encoded, include_str!("examples/pkcs8.pem"));
+}
diff --git a/vendor/pem-rfc7468/tests/examples/chosen_header.pem b/vendor/pem-rfc7468/tests/examples/chosen_header.pem
new file mode 100644
index 000000000..f49307443
--- /dev/null
+++ b/vendor/pem-rfc7468/tests/examples/chosen_header.pem
@@ -0,0 +1,31 @@
+-----BEGIN RSA PRIVATE KEY-----
+A-Header-That-Happens-To-Be-Exactly: 64 characters long.........
+Proc-Type: 4,ENCRYPTED
+DEK-Info: AES-128-CBC,15670D76FD184D46C40C971733E0543F
+
+/lVaZdZ2a6x5d3b96F6XpFzcnP35pUrwpKxEB07nF15Jc81jwEAg72OpFTp5QRMu
+WXbbZ/dKF7ucGHvLQ/VvCNkbl6oqowSme94fzFsa/xuKRHAGDHVi/TQylIOBBJFv
+vru/3EZkO8mAQRDTNfuSl0Y5Ir7uqAQy0E/xKfOdY73BO4//KEDEIshRwBxbOm3K
+D2sU1Kp8RnnBgSNydG8AH/LrtBnFs9HWrb9JD0Nj5bIxZDzil5CYmTB8PRgb2Qy7
+bckVc+0Y/h8Ai+NjSc/rJVw0smKJbmNSoPyJH1WjDPW8wWtngCFQWaVCTubm08N1
+nqrzIclT3fnq8YFSbFJYZVPaADxjv2HW7dLH7grYqXx/5FTE34ixXTcwQ1KR0ZQX
+uaGZhkiDVWf/q82JPREqH5hwbeGL9QwZHF4/74vKIsddEuVFp8EW7jn9INRoVBtK
+/OBiVXmVELFhmVBqvQU7GSci7+fCntXIx6W3hGiJL2WyXfuP16u9BhF5kd+c3pAm
+tOZ3Lc5XsceBIYq0rKhy7rDhEg0V8wF1jHeeiW0VKDt2cFePSAd4CIbHiRWbvwh+
+zIoNAB34k4cYShmjOHKem9FMHVHSwfRE39Vrwssj0HWVOp7KdXYv64w4Ywmn6wvA
+r6p8IZWg7KqA5UApPpiBVs0BAx1KtZk3o1dvXAazklw23icnnZF6XqaH6EmnVsf9
+gbyK1NcH3lIalTYhs+hMwizkw/XDb1uU8G7Rz1QFKBiL56J8ePIA2NWRUwvdMEAv
+rZXSq4Icwy566GIqdtMRNLcz6LthNEg9qg+fD5aGLrtTk8ACSQpb/ELMMzqDVTkI
+07dB1Nhzx9nd9mUlIuA030I5w7f//5pS6/lGmmPZblygY1PBludl+p/P9OKJ+Jr0
+HTAI4SVxoYdp6YHDBJ9J7Wt6UnIe+/3WarY9d9X1XNGOE4K+nRFihSShtKHDtMY6
+eBEV1sBTXJ1KANG683CU+uDx2XpOVAwDGl5hyRdzOovNC1iWjSu+CvppDvZLuIMj
+zIllu5E8PR2Zd1wIT1gnU/7HiVdM0m4jf6ptkGSWNSCLA0ipii0YYarXoyu0kbMY
+BKKpp5QRXv6OwmSDMwQTPuRIWyk839X1ABE1XeTKt43Ns+Wtdboi8Cu/aO/Z5AoA
+gbJ+CdyKJIJxDXA11cPq9SF2daYmqHV3agrrKmAwWBRwpCKvotv0Hxw2M1+91ZoU
+NY52RraoNVQPOAEfhYNS0ltVPzxcDU5bA2WczO6QzmMl7So6dysw+fxtxaEUGt4m
+Fj+p+rE64Okq4wWDlEQya/xu4KMZwzyDncgJHHyYahs+vCv9KbQLW8R0iHTbxQzX
+Vhomq++Cm8kg5aA/UsLas/l6ZyfNIcA99U8shFFA5urOKMl/jSRd9v1c7H3nOPZ7
++eN10E7hcRruwOkoBlpd2It3Y2M+1qBDWXLVSHSXmIuzdE+MZ8CZfvxe+FcfpvJU
+BFsZbSEF2PQC+zhd1HjV6DUe3jCz88/rjUnXQCvEJ7z7Tuz3C7kKdR3OYYYLwuLW
+LTy2VS0p3QuUeMnNRl0HxpB16BZax9mzFr0UvFKp2QQYzOkIghg2sLNEbtaJvHNh
+-----END RSA PRIVATE KEY-----
diff --git a/vendor/pem-rfc7468/tests/examples/ed25519_id.pem b/vendor/pem-rfc7468/tests/examples/ed25519_id.pem
new file mode 100644
index 000000000..0e5989996
--- /dev/null
+++ b/vendor/pem-rfc7468/tests/examples/ed25519_id.pem
@@ -0,0 +1,5 @@
+-----BEGIN ED25519 CERT-----
+AQQABrknAdj5BeHBAd0mq1KD3ABvDzpBvUD0zU88DASbkRuV0WiaAQAgBADPc8aR
+rUUolIsrKFMKy7SVCxKvpGrcdFAni+Bah1WZHnac5JP3LnPc2/0G7dTSlSTeBk5k
+XqIySdIqtfYbW0kQinA0PaxDzzX5g1q3CclY9lNTAglR5fP71kunXh7ntwk=
+-----END ED25519 CERT-----
diff --git a/vendor/pem-rfc7468/tests/examples/pkcs1.der b/vendor/pem-rfc7468/tests/examples/pkcs1.der
new file mode 100644
index 000000000..bbf18768c
--- /dev/null
+++ b/vendor/pem-rfc7468/tests/examples/pkcs1.der
Binary files differ
diff --git a/vendor/pem-rfc7468/tests/examples/pkcs1.pem b/vendor/pem-rfc7468/tests/examples/pkcs1.pem
new file mode 100644
index 000000000..3b924f5fa
--- /dev/null
+++ b/vendor/pem-rfc7468/tests/examples/pkcs1.pem
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAtsQsUV8QpqrygsY+2+JCQ6Fw8/omM71IM2N/R8pPbzbgOl0p
+78MZGsgPOQ2HSznjD0FPzsH8oO2B5Uftws04LHb2HJAYlz25+lN5cqfHAfa3fgmC
+38FfwBkn7l582UtPWZ/wcBOnyCgb3yLcvJrXyrt8QxHJgvWO23ITrUVYszImbXQ6
+7YGS0YhMrbixRzmo2tpm3JcIBtnHrEUMsT0NfFdfsZhTT8YbxBvA8FdODgEwx7u/
+vf3J9qbi4+Kv8cvqyJuleIRSjVXPsIMnoejIn04APPKIjpMyQdnWlby7rNyQtE4+
+CV+jcFjqJbE/Xilcvqxt6DirjFCvYeKYl1uHLwIDAQABAoIBAH7Mg2LA7bB0EWQh
+XiL3SrnZG6BpAHAM9jaQ5RFNjua9z7suP5YUaSpnegg/FopeUuWWjmQHudl8bg5A
+ZPgtoLdYoU8XubfUH19I4o1lUXBPVuaeeqn6Yw/HZCjAbSXkVdz8VbesK092ZD/e
+0/4V/3irsn5lrMSq0L322yfvYKaRDFxKCF7UMnWrGcHZl6Msbv/OffLRk19uYB7t
+4WGhK1zCfKIfgdLJnD0eoI6Q4wU6sJvvpyTe8NDDo8HpdAwNn3YSahSewKp9gHgg
+VIQlTZUdsHxM+R+2RUwJZYj9WSTbq+s1nKICUmjQBPnWbrPW963BE5utQPFt3mOe
+EWRzdsECgYEA3MBhJC1Okq+u5yrFE8plufdwNvm9fg5uYUYafvdlQiXsFTx+XDGm
+FXpuWhP/bheOh1jByzPZ1rvjF57xiZjkIuzcvtePTs/b5fT82K7CydDchkc8qb0W
+2dI40h+13e++sUPKYdC9aqjZHzOgl3kOlkDbyRCF3F8mNDujE49rLWcCgYEA0/MU
+dX5A6VSDb5K+JCNq8vDaBKNGU8GAr2fpYAhtk/3mXLI+/Z0JN0di9ZgeNhhJr2jN
+11OU/2pOButpsgnkIo2y36cOQPf5dQpSgXZke3iNDld3osuLIuPNJn/3C087AtOq
++w4YxZClZLAxiLCqX8SBVrB2IiFCQ70SJ++n8vkCgYEAzmi3rBsNEA1jblVIh1PF
+wJhD/bOQ4nBd92iUV8m9jZdl4wl4YX4u/IBI9MMkIG24YIe2VOl7s9Rk5+4/jNg/
+4QQ2998Y6aljxOZJEdZ+3jQELy4m49OhrTRq2ta5t/Z3CMsJTmLe6f9NXWZpr5iK
+8iVdHOjtMXxqfYaR2jVNEtsCgYAl9uWUQiAoa037v0I1wO5YQ9IZgJGJUSDWynsg
+C4JtPs5zji4ASY+sCipsqWnH8MPKGrC8QClxMr51ONe+30yw78a5jvfbpU9Wqpmq
+vOU0xJwnlH1GeMUcY8eMfOFocjG0yOtYeubvBIDLr0/AFzz9WHp+Z69RX7m53nUR
+GDlyKQKBgDGZVAbUBiB8rerqNbONBAxfipoa4IJ+ntBrFT2DtoIZNbSzaoK+nVbH
+kbWMJycaV5PVOh1lfAiZeWCxQz5RcZh/RS8USnxyMG1j4dP/wLcbdasI8uRaSC6Y
+hFHL5HjhLrIo0HRWySS2b2ztBI2FP1M+MaaGFPHDzm2OyZg85yr3
+-----END RSA PRIVATE KEY-----
diff --git a/vendor/pem-rfc7468/tests/examples/pkcs1_with_preceeding_junk.pem b/vendor/pem-rfc7468/tests/examples/pkcs1_with_preceeding_junk.pem
new file mode 100644
index 000000000..ae229e18f
--- /dev/null
+++ b/vendor/pem-rfc7468/tests/examples/pkcs1_with_preceeding_junk.pem
@@ -0,0 +1,44 @@
+Lorem ipsum dolor sit amet, consectetur adipiscing elit.
+Vestibulum lacinia euismod gravida.
+Sed non suscipit mauris.
+Sed ac purus sem.
+Cras ipsum velit, egestas eu lorem at, viverra pellentesque nulla.
+Cras posuere commodo tortor, id viverra velit pellentesque sit amet.
+Suspendisse bibendum eleifend lacus, ac venenatis elit commodo vulputate.
+Maecenas dapibus libero a nulla aliquet pulvinar.
+Vivamus scelerisque elit ac ex rhoncus, ac lacinia enim iaculis.
+Vivamus ultrices, sapien vel sodales rhoncus, augue turpis congue turpis, ut laoreet orci tellus sed augue.
+Mauris mi tellus, sollicitudin at placerat eu, malesuada nec est.
+Curabitur semper ex massa, et laoreet mauris scelerisque non.
+In posuere mauris non urna efficitur, id mattis nisi consectetur.
+Sed dapibus, ante eget laoreet cursus, risus ante mattis neque, a convallis urna lorem eu tortor.
+Curabitur tincidunt justo vitae eros venenatis tincidunt semper vel tellus.
+
+
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAtsQsUV8QpqrygsY+2+JCQ6Fw8/omM71IM2N/R8pPbzbgOl0p
+78MZGsgPOQ2HSznjD0FPzsH8oO2B5Uftws04LHb2HJAYlz25+lN5cqfHAfa3fgmC
+38FfwBkn7l582UtPWZ/wcBOnyCgb3yLcvJrXyrt8QxHJgvWO23ITrUVYszImbXQ6
+7YGS0YhMrbixRzmo2tpm3JcIBtnHrEUMsT0NfFdfsZhTT8YbxBvA8FdODgEwx7u/
+vf3J9qbi4+Kv8cvqyJuleIRSjVXPsIMnoejIn04APPKIjpMyQdnWlby7rNyQtE4+
+CV+jcFjqJbE/Xilcvqxt6DirjFCvYeKYl1uHLwIDAQABAoIBAH7Mg2LA7bB0EWQh
+XiL3SrnZG6BpAHAM9jaQ5RFNjua9z7suP5YUaSpnegg/FopeUuWWjmQHudl8bg5A
+ZPgtoLdYoU8XubfUH19I4o1lUXBPVuaeeqn6Yw/HZCjAbSXkVdz8VbesK092ZD/e
+0/4V/3irsn5lrMSq0L322yfvYKaRDFxKCF7UMnWrGcHZl6Msbv/OffLRk19uYB7t
+4WGhK1zCfKIfgdLJnD0eoI6Q4wU6sJvvpyTe8NDDo8HpdAwNn3YSahSewKp9gHgg
+VIQlTZUdsHxM+R+2RUwJZYj9WSTbq+s1nKICUmjQBPnWbrPW963BE5utQPFt3mOe
+EWRzdsECgYEA3MBhJC1Okq+u5yrFE8plufdwNvm9fg5uYUYafvdlQiXsFTx+XDGm
+FXpuWhP/bheOh1jByzPZ1rvjF57xiZjkIuzcvtePTs/b5fT82K7CydDchkc8qb0W
+2dI40h+13e++sUPKYdC9aqjZHzOgl3kOlkDbyRCF3F8mNDujE49rLWcCgYEA0/MU
+dX5A6VSDb5K+JCNq8vDaBKNGU8GAr2fpYAhtk/3mXLI+/Z0JN0di9ZgeNhhJr2jN
+11OU/2pOButpsgnkIo2y36cOQPf5dQpSgXZke3iNDld3osuLIuPNJn/3C087AtOq
++w4YxZClZLAxiLCqX8SBVrB2IiFCQ70SJ++n8vkCgYEAzmi3rBsNEA1jblVIh1PF
+wJhD/bOQ4nBd92iUV8m9jZdl4wl4YX4u/IBI9MMkIG24YIe2VOl7s9Rk5+4/jNg/
+4QQ2998Y6aljxOZJEdZ+3jQELy4m49OhrTRq2ta5t/Z3CMsJTmLe6f9NXWZpr5iK
+8iVdHOjtMXxqfYaR2jVNEtsCgYAl9uWUQiAoa037v0I1wO5YQ9IZgJGJUSDWynsg
+C4JtPs5zji4ASY+sCipsqWnH8MPKGrC8QClxMr51ONe+30yw78a5jvfbpU9Wqpmq
+vOU0xJwnlH1GeMUcY8eMfOFocjG0yOtYeubvBIDLr0/AFzz9WHp+Z69RX7m53nUR
+GDlyKQKBgDGZVAbUBiB8rerqNbONBAxfipoa4IJ+ntBrFT2DtoIZNbSzaoK+nVbH
+kbWMJycaV5PVOh1lfAiZeWCxQz5RcZh/RS8USnxyMG1j4dP/wLcbdasI8uRaSC6Y
+hFHL5HjhLrIo0HRWySS2b2ztBI2FP1M+MaaGFPHDzm2OyZg85yr3
+-----END RSA PRIVATE KEY-----
diff --git a/vendor/pem-rfc7468/tests/examples/pkcs8-enc.der b/vendor/pem-rfc7468/tests/examples/pkcs8-enc.der
new file mode 100644
index 000000000..5170c06e4
--- /dev/null
+++ b/vendor/pem-rfc7468/tests/examples/pkcs8-enc.der
Binary files differ
diff --git a/vendor/pem-rfc7468/tests/examples/pkcs8-enc.pem b/vendor/pem-rfc7468/tests/examples/pkcs8-enc.pem
new file mode 100644
index 000000000..e5d3207a6
--- /dev/null
+++ b/vendor/pem-rfc7468/tests/examples/pkcs8-enc.pem
@@ -0,0 +1,6 @@
+-----BEGIN ENCRYPTED PRIVATE KEY-----
+MIGbMFcGCSqGSIb3DQEFDTBKMCkGCSqGSIb3DQEFDDAcBAh52YLnDfkaiAICCAAw
+DAYIKoZIhvcNAgkFADAdBglghkgBZQMEASoEELLQLXiy79nf9pTPjgr0CSUEQNDN
+bHcPS7hxdkIjBcF0AYCeImZ0znQYXSIb/aqVBpiQyIgvzgKwXUG8v1SwNVlbzUFU
+syWTcIRpuGqs+IFaeys=
+-----END ENCRYPTED PRIVATE KEY-----
diff --git a/vendor/pem-rfc7468/tests/examples/pkcs8.der b/vendor/pem-rfc7468/tests/examples/pkcs8.der
new file mode 100644
index 000000000..0cfccc399
--- /dev/null
+++ b/vendor/pem-rfc7468/tests/examples/pkcs8.der
Binary files differ
diff --git a/vendor/pem-rfc7468/tests/examples/pkcs8.pem b/vendor/pem-rfc7468/tests/examples/pkcs8.pem
new file mode 100644
index 000000000..0c0ee10b4
--- /dev/null
+++ b/vendor/pem-rfc7468/tests/examples/pkcs8.pem
@@ -0,0 +1,3 @@
+-----BEGIN PRIVATE KEY-----
+MC4CAQAwBQYDK2VwBCIEIBftnHPp22SewYmmEoMcX8VwI4IHwaqd+9LFPj/15eqF
+-----END PRIVATE KEY-----
diff --git a/vendor/pem-rfc7468/tests/examples/ssh_rsa_pem_password.pem b/vendor/pem-rfc7468/tests/examples/ssh_rsa_pem_password.pem
new file mode 100644
index 000000000..92084bd4d
--- /dev/null
+++ b/vendor/pem-rfc7468/tests/examples/ssh_rsa_pem_password.pem
@@ -0,0 +1,30 @@
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: AES-128-CBC,15670D76FD184D46C40C971733E0543F
+
+/lVaZdZ2a6x5d3b96F6XpFzcnP35pUrwpKxEB07nF15Jc81jwEAg72OpFTp5QRMu
+WXbbZ/dKF7ucGHvLQ/VvCNkbl6oqowSme94fzFsa/xuKRHAGDHVi/TQylIOBBJFv
+vru/3EZkO8mAQRDTNfuSl0Y5Ir7uqAQy0E/xKfOdY73BO4//KEDEIshRwBxbOm3K
+D2sU1Kp8RnnBgSNydG8AH/LrtBnFs9HWrb9JD0Nj5bIxZDzil5CYmTB8PRgb2Qy7
+bckVc+0Y/h8Ai+NjSc/rJVw0smKJbmNSoPyJH1WjDPW8wWtngCFQWaVCTubm08N1
+nqrzIclT3fnq8YFSbFJYZVPaADxjv2HW7dLH7grYqXx/5FTE34ixXTcwQ1KR0ZQX
+uaGZhkiDVWf/q82JPREqH5hwbeGL9QwZHF4/74vKIsddEuVFp8EW7jn9INRoVBtK
+/OBiVXmVELFhmVBqvQU7GSci7+fCntXIx6W3hGiJL2WyXfuP16u9BhF5kd+c3pAm
+tOZ3Lc5XsceBIYq0rKhy7rDhEg0V8wF1jHeeiW0VKDt2cFePSAd4CIbHiRWbvwh+
+zIoNAB34k4cYShmjOHKem9FMHVHSwfRE39Vrwssj0HWVOp7KdXYv64w4Ywmn6wvA
+r6p8IZWg7KqA5UApPpiBVs0BAx1KtZk3o1dvXAazklw23icnnZF6XqaH6EmnVsf9
+gbyK1NcH3lIalTYhs+hMwizkw/XDb1uU8G7Rz1QFKBiL56J8ePIA2NWRUwvdMEAv
+rZXSq4Icwy566GIqdtMRNLcz6LthNEg9qg+fD5aGLrtTk8ACSQpb/ELMMzqDVTkI
+07dB1Nhzx9nd9mUlIuA030I5w7f//5pS6/lGmmPZblygY1PBludl+p/P9OKJ+Jr0
+HTAI4SVxoYdp6YHDBJ9J7Wt6UnIe+/3WarY9d9X1XNGOE4K+nRFihSShtKHDtMY6
+eBEV1sBTXJ1KANG683CU+uDx2XpOVAwDGl5hyRdzOovNC1iWjSu+CvppDvZLuIMj
+zIllu5E8PR2Zd1wIT1gnU/7HiVdM0m4jf6ptkGSWNSCLA0ipii0YYarXoyu0kbMY
+BKKpp5QRXv6OwmSDMwQTPuRIWyk839X1ABE1XeTKt43Ns+Wtdboi8Cu/aO/Z5AoA
+gbJ+CdyKJIJxDXA11cPq9SF2daYmqHV3agrrKmAwWBRwpCKvotv0Hxw2M1+91ZoU
+NY52RraoNVQPOAEfhYNS0ltVPzxcDU5bA2WczO6QzmMl7So6dysw+fxtxaEUGt4m
+Fj+p+rE64Okq4wWDlEQya/xu4KMZwzyDncgJHHyYahs+vCv9KbQLW8R0iHTbxQzX
+Vhomq++Cm8kg5aA/UsLas/l6ZyfNIcA99U8shFFA5urOKMl/jSRd9v1c7H3nOPZ7
++eN10E7hcRruwOkoBlpd2It3Y2M+1qBDWXLVSHSXmIuzdE+MZ8CZfvxe+FcfpvJU
+BFsZbSEF2PQC+zhd1HjV6DUe3jCz88/rjUnXQCvEJ7z7Tuz3C7kKdR3OYYYLwuLW
+LTy2VS0p3QuUeMnNRl0HxpB16BZax9mzFr0UvFKp2QQYzOkIghg2sLNEbtaJvHNh
+-----END RSA PRIVATE KEY-----