summaryrefslogtreecommitdiff
path: root/tests/cert-tests/data
diff options
context:
space:
mode:
Diffstat (limited to 'tests/cert-tests/data')
-rw-r--r--tests/cert-tests/data/bad-key.pem25
-rw-r--r--tests/cert-tests/data/ca-gnutls-keyid.pem43
-rw-r--r--tests/cert-tests/data/ca-no-keyid.pem40
-rw-r--r--tests/cert-tests/data/ca-weird-keyid.pem49
-rw-r--r--tests/cert-tests/data/cert.dsa.1024.pem20
-rw-r--r--tests/cert-tests/data/cert.dsa.2048.pem29
-rw-r--r--tests/cert-tests/data/cert.dsa.3072.pem37
-rw-r--r--tests/cert-tests/data/dsa-pubkey-1018.pem19
-rw-r--r--tests/cert-tests/data/dsa.1024.pem12
-rw-r--r--tests/cert-tests/data/dsa.2048.pem20
-rw-r--r--tests/cert-tests/data/dsa.3072.pem28
-rw-r--r--tests/cert-tests/data/enc2pkcs8.pem40
-rw-r--r--tests/cert-tests/data/encpkcs8.pem38
-rw-r--r--tests/cert-tests/data/key-ca-1234.p810
-rw-r--r--tests/cert-tests/data/key-ca-empty.p810
-rw-r--r--tests/cert-tests/data/key-ca-null.p810
-rw-r--r--tests/cert-tests/data/key-ecc.p88
-rw-r--r--tests/cert-tests/data/key-ecc.pem7
-rw-r--r--tests/cert-tests/data/key-illegal-rsa-pss.pem138
-rw-r--r--tests/cert-tests/data/key-illegal.pem97
-rw-r--r--tests/cert-tests/data/key-invalid1.derbin0 -> 118 bytes
-rw-r--r--tests/cert-tests/data/key-invalid2.derbin0 -> 335 bytes
-rw-r--r--tests/cert-tests/data/key-invalid3.derbin0 -> 70 bytes
-rw-r--r--tests/cert-tests/data/key-invalid4.der1
-rw-r--r--tests/cert-tests/data/key-invalid5.derbin0 -> 24 bytes
-rw-r--r--tests/cert-tests/data/key-invalid6.derbin0 -> 633 bytes
-rw-r--r--tests/cert-tests/data/openssl-3des.p817
-rw-r--r--tests/cert-tests/data/openssl-3des.p8.txt7
-rw-r--r--tests/cert-tests/data/openssl-aes128.p818
-rw-r--r--tests/cert-tests/data/openssl-aes128.p8.txt7
-rw-r--r--tests/cert-tests/data/openssl-aes256.p818
-rw-r--r--tests/cert-tests/data/openssl-aes256.p8.txt7
-rw-r--r--tests/cert-tests/data/openssl-key-ecc.p88
-rw-r--r--tests/cert-tests/data/p8key-illegal.pem17
-rw-r--r--tests/cert-tests/data/pkcs8-eddsa.pem3
-rw-r--r--tests/cert-tests/data/pkcs8-eddsa.pem.txt25
-rw-r--r--tests/cert-tests/data/pkcs8-invalid1.derbin0 -> 735 bytes
-rw-r--r--tests/cert-tests/data/pkcs8-invalid10.derbin0 -> 36 bytes
-rw-r--r--tests/cert-tests/data/pkcs8-invalid11.derbin0 -> 100 bytes
-rw-r--r--tests/cert-tests/data/pkcs8-invalid2.derbin0 -> 674 bytes
-rw-r--r--tests/cert-tests/data/pkcs8-invalid3.derbin0 -> 674 bytes
-rw-r--r--tests/cert-tests/data/pkcs8-invalid4.derbin0 -> 735 bytes
-rw-r--r--tests/cert-tests/data/pkcs8-invalid5.derbin0 -> 674 bytes
-rw-r--r--tests/cert-tests/data/pkcs8-invalid6.derbin0 -> 674 bytes
-rw-r--r--tests/cert-tests/data/pkcs8-invalid7.derbin0 -> 735 bytes
-rw-r--r--tests/cert-tests/data/pkcs8-invalid8.derbin0 -> 596 bytes
-rw-r--r--tests/cert-tests/data/pkcs8-invalid9.derbin0 -> 186 bytes
-rw-r--r--tests/cert-tests/data/pkcs8-pbes1-des-md5.pem33
-rw-r--r--tests/cert-tests/data/pkcs8-pbes2-sha256.pem35
-rw-r--r--tests/cert-tests/data/unencpkcs8.pem79
50 files changed, 955 insertions, 0 deletions
diff --git a/tests/cert-tests/data/bad-key.pem b/tests/cert-tests/data/bad-key.pem
new file mode 100644
index 0000000000..6dfb622dab
--- /dev/null
+++ b/tests/cert-tests/data/bad-key.pem
@@ -0,0 +1,25 @@
+Public Key Info:
+ Public Key Algorithm: ECC
+ Key Security Level: High
+
+curve: SECP256R1
+private key:
+ 00:f4:fa:5f:3e:48:39:dd:4c:d1:24:3f:a1:f5:51:
+ 49:36:74:c3:2c:ae:ad:d9:96:91:93:da:ec:03:25:
+ 1f:aa:0b:
+x:
+ 56:d1:7e:b2:c4:f6:bb:02:e2:4a:76:63:14:8c:1a:
+ c1:eb:12:56:bd:3d:08:66:2f:dc:eb:e5:b9:32:15:
+ 1e:e7:
+y:
+ 00:88:27:c8:52:8f:a5:9a:3a:bb:20:e6:54:ef:a8:
+ 7c:50:39:db:af:cf:e4:5e:69:7a:25:20:6d:63:60:
+ af:29:d5:
+
+Public Key ID: 5A:37:9C:B2:B2:BA:33:AC:8E:87:7B:63:18:15:99:3F:DF:3A:F3:A3
+
+-----BEGIN EC PRIVATE KEY-----
+MHgCAQEEIQCIJ8hSj6WaOrsg5lTvqHxQOduvz+ReaXolIG1jYK8p1aAKBggqhkjO
+PQMBB6FEA0IABFbRfrLE9rsC4kp2YxSMGsHrEla9PQhmL9zr5bkyFR7niCfIUo+l
+mjq7IOZU76h8UDnbr8/kXml6JSBtY2CvKdU=
+-----END EC PRIVATE KEY-----
diff --git a/tests/cert-tests/data/ca-gnutls-keyid.pem b/tests/cert-tests/data/ca-gnutls-keyid.pem
new file mode 100644
index 0000000000..fdb7520a48
--- /dev/null
+++ b/tests/cert-tests/data/ca-gnutls-keyid.pem
@@ -0,0 +1,43 @@
+X.509 certificate info:
+
+Version: 3
+Serial Number (hex): 00
+Subject: C=SE,CN=GnuTLS Test
+Issuer: C=SE,CN=GnuTLS Test
+Signature Algorithm: RSA-SHA
+Validity:
+ Not Before: Wed Jan 31 10:23:47 2007
+ Not After: Wed Mar 14 10:23:51 2007
+Subject Public Key Info:
+ Public Key Algorithm: RSA (512 bits)
+modulus:
+ c6:94:06:28:a7:51:24:39:b1:5a:01:54:9b:50:d4:
+ 17:0c:4d:df:ac:42:00:07:e5:72:30:dc:88:2d:82:
+ 16:80:da:23:47:a8:46:7c:c8:88:4f:0f:6a:d2:b4:
+ 86:97:db:94:87:85:35:2f:51:e7:1c:33:7e:6b:1c:
+ 00:07:1b:bb:
+public exponent:
+ 01:00:01:
+
+X.509 Extensions:
+ Basic Constraints: (critical)
+ CA:TRUE
+ Subject Key ID:
+ BA:E4:6F:63:51:90:6C:38:1B:DF:DA:89:B5:92:87:D3:29:E7:D7:41
+
+Other information:
+ MD5 Fingerprint: 49:4C:5E:02:10:16:82:5E:18:86:74:DF:51:56:EF:CC
+ SHA1 Fingerprint: B9:29:A0:CD:D1:B2:8F:C8:89:EB:87:E6:B5:9B:13:62:1C:D4:36:BF
+ Public Key ID: BA:E4:6F:63:51:90:6C:38:1B:DF:DA:89:B5:92:87:D3:29:E7:D7:41
+
+
+-----BEGIN CERTIFICATE-----
+MIIBYjCCAQ6gAwIBAgIBADALBgkqhkiG9w0BAQUwIzELMAkGA1UEBhMCU0UxFDAS
+BgNVBAMTC0dudVRMUyBUZXN0MB4XDTA3MDEzMTA5MjM0N1oXDTA3MDMxNDA5MjM1
+MVowIzELMAkGA1UEBhMCU0UxFDASBgNVBAMTC0dudVRMUyBUZXN0MFkwCwYJKoZI
+hvcNAQEBA0oAMEcCQMaUBiinUSQ5sVoBVJtQ1BcMTd+sQgAH5XIw3IgtghaA2iNH
+qEZ8yIhPD2rStIaX25SHhTUvUeccM35rHAAHG7sCAwEAAaMyMDAwDwYDVR0TAQH/
+BAUwAwEB/zAdBgNVHQ4EFgQUuuRvY1GQbDgb39qJtZKH0ynn10EwCwYJKoZIhvcN
+AQEFA0EAMIM/ZIai49eKHg/Hb/LoKPtY8bLIf+oRw+0ifZghudZPokwIukVRoRw3
+rvJSTitBJGH9uyNWn8bbackkkg4otA==
+-----END CERTIFICATE-----
diff --git a/tests/cert-tests/data/ca-no-keyid.pem b/tests/cert-tests/data/ca-no-keyid.pem
new file mode 100644
index 0000000000..50675e420b
--- /dev/null
+++ b/tests/cert-tests/data/ca-no-keyid.pem
@@ -0,0 +1,40 @@
+X.509 certificate info:
+
+Version: 3
+Serial Number (hex): 2A
+Subject: CN=GnuTLS test2
+Issuer: CN=GnuTLS test2
+Signature Algorithm: RSA-SHA
+Validity:
+ Not Before: Wed Jan 31 10:34:15 2007
+ Not After: Wed Mar 14 10:34:18 2007
+Subject Public Key Info:
+ Public Key Algorithm: RSA (512 bits)
+modulus:
+ c6:94:06:28:a7:51:24:39:b1:5a:01:54:9b:50:d4:
+ 17:0c:4d:df:ac:42:00:07:e5:72:30:dc:88:2d:82:
+ 16:80:da:23:47:a8:46:7c:c8:88:4f:0f:6a:d2:b4:
+ 86:97:db:94:87:85:35:2f:51:e7:1c:33:7e:6b:1c:
+ 00:07:1b:bb:
+public exponent:
+ 01:00:01:
+
+X.509 Extensions:
+ Basic Constraints: (critical)
+ CA:TRUE
+
+Other information:
+ MD5 Fingerprint: 0F:AF:52:29:F4:17:B4:28:8E:FA:7D:F1:76:F3:81:FF
+ SHA1 Fingerprint: 93:8D:80:22:77:17:0D:12:51:56:32:61:9F:12:BA:B7:66:D9:38:77
+ Public Key ID: BA:E4:6F:63:51:90:6C:38:1B:DF:DA:89:B5:92:87:D3:29:E7:D7:41
+
+
+-----BEGIN CERTIFICATE-----
+MIIBKjCB16ADAgECAgEqMAsGCSqGSIb3DQEBBTAXMRUwEwYDVQQDEwxHbnVUTFMg
+dGVzdDIwHhcNMDcwMTMxMDkzNDE1WhcNMDcwMzE0MDkzNDE4WjAXMRUwEwYDVQQD
+EwxHbnVUTFMgdGVzdDIwWTALBgkqhkiG9w0BAQEDSgAwRwJAxpQGKKdRJDmxWgFU
+m1DUFwxN36xCAAflcjDciC2CFoDaI0eoRnzIiE8PatK0hpfblIeFNS9R5xwzfmsc
+AAcbuwIDAQABoxMwETAPBgNVHRMBAf8EBTADAQH/MAsGCSqGSIb3DQEBBQNBAI6O
+9GReGvX7vMcZxjMOua6mIOViqOPeMzJRNEFqUAo4aHy/ad17nHZhy3WsWm2GkrTk
+AiKsBcgbwyu2d/Fg6js=
+-----END CERTIFICATE-----
diff --git a/tests/cert-tests/data/ca-weird-keyid.pem b/tests/cert-tests/data/ca-weird-keyid.pem
new file mode 100644
index 0000000000..6ecfef4231
--- /dev/null
+++ b/tests/cert-tests/data/ca-weird-keyid.pem
@@ -0,0 +1,49 @@
+X.509 certificate info:
+
+Version: 3
+Serial Number (hex): 00:D2:08:1A:82:A4:27:85:2B
+Subject: C=AU,ST=Some-State,O=Internet Widgits Pty Ltd
+Issuer: C=AU,ST=Some-State,O=Internet Widgits Pty Ltd
+Signature Algorithm: RSA-SHA
+Validity:
+ Not Before: Wed Jan 31 10:23:01 2007
+ Not After: Sat Jan 28 10:23:01 2017
+Subject Public Key Info:
+ Public Key Algorithm: RSA (512 bits)
+modulus:
+ c6:94:06:28:a7:51:24:39:b1:5a:01:54:9b:50:d4:
+ 17:0c:4d:df:ac:42:00:07:e5:72:30:dc:88:2d:82:
+ 16:80:da:23:47:a8:46:7c:c8:88:4f:0f:6a:d2:b4:
+ 86:97:db:94:87:85:35:2f:51:e7:1c:33:7e:6b:1c:
+ 00:07:1b:bb:
+public exponent:
+ 01:00:01:
+
+X.509 Extensions:
+ Basic Constraints:
+ CA:TRUE
+ Subject Key ID:
+ 7A:2C:7A:60:97:46:06:03:CB:FB:28:E8:E2:19:DF:18:DE:EB:4E:0D
+ Authority Key ID:
+ 7A:2C:7A:60:97:46:06:03:CB:FB:28:E8:E2:19:DF:18:DE:EB:4E:0D
+
+Other information:
+ MD5 Fingerprint: EF:6B:8B:10:03:E4:5F:5E:76:AA:A9:88:8A:6E:03:14
+ SHA1 Fingerprint: 7C:7C:88:BD:34:5A:EC:F1:3C:6A:70:92:76:73:1B:59:32:DA:5E:74
+ Public Key ID: BA:E4:6F:63:51:90:6C:38:1B:DF:DA:89:B5:92:87:D3:29:E7:D7:41
+
+
+-----BEGIN CERTIFICATE-----
+MIICKzCCAdWgAwIBAgIJANIIGoKkJ4UrMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV
+BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX
+aWRnaXRzIFB0eSBMdGQwHhcNMDcwMTMxMDkyMzAxWhcNMTcwMTI4MDkyMzAxWjBF
+MQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50
+ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMaU
+BiinUSQ5sVoBVJtQ1BcMTd+sQgAH5XIw3IgtghaA2iNHqEZ8yIhPD2rStIaX25SH
+hTUvUeccM35rHAAHG7sCAwEAAaOBpzCBpDAdBgNVHQ4EFgQUeix6YJdGBgPL+yjo
+4hnfGN7rTg0wdQYDVR0jBG4wbIAUeix6YJdGBgPL+yjo4hnfGN7rTg2hSaRHMEUx
+CzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRl
+cm5ldCBXaWRnaXRzIFB0eSBMdGSCCQDSCBqCpCeFKzAMBgNVHRMEBTADAQH/MA0G
+CSqGSIb3DQEBBQUAA0EAv5CpU4DykkfMcy1BLbsowb/7YritEudYemW3cOMg6q92
+tc8eEDBjIYcVccHJMM27fTKt7AIDUiHUysFFxclcww==
+-----END CERTIFICATE-----
diff --git a/tests/cert-tests/data/cert.dsa.1024.pem b/tests/cert-tests/data/cert.dsa.1024.pem
new file mode 100644
index 0000000000..ffde3b69e4
--- /dev/null
+++ b/tests/cert-tests/data/cert.dsa.1024.pem
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDUTCCAxGgAwIBAgIBBzAJBgcqhkjOOAQDMGIxCzAJBgNVBAYTAkdSMRIwEAYD
+VQQKEwlLb2tvIGluYy4xFzAVBgNVBAsTDnNsZWVwaW5nIGRlcHQuMQ8wDQYDVQQI
+EwZBdHRpa2kxFTATBgNVBAMTDENpbmR5IExhdXBlcjAeFw0xMTAzMTkwOTM2NDVa
+Fw0xMzAyMTYwOTM2NDVaMGIxCzAJBgNVBAYTAkdSMRIwEAYDVQQKEwlLb2tvIGlu
+Yy4xFzAVBgNVBAsTDnNsZWVwaW5nIGRlcHQuMQ8wDQYDVQQIEwZBdHRpa2kxFTAT
+BgNVBAMTDENpbmR5IExhdXBlcjCCAbYwggErBgcqhkjOOAQBMIIBHgKBgQCHc0on
+PSpqqR3lE69+wLgJJ4LISkPPLwxbPnO1mSJNnjhvucXCNjmetDFkPSO2R3MkruD4
+MCLkKlvIEnIhH8pG32R7GNHLubIp/qcjRJ7NXtS5cG6pLU4I1NWlekKUBAjQP2pl
+M3U81Ut3JM39qGYZTM8NPGH0uWTIFn8PpVEzUwIVAIW0sPS7m+gJzXCJ6brM/y4i
+SyzxAoGAZOMeOwOLp3iOcd5AjbXkdDIBSggMQeHbkD9fztMLhhxLaMvygncP6DOI
+xpmC1LU+APB+DSqyIwhm2ag0Fuo7QYpF4nzZGeX7VWemWnGgcKSzkMStlGueW1ln
+FkrUcRk8H8IksuZtxiNSgDMvPsxRxLx9m1pulbNI9IzhQDkxDAADgYQAAoGAD9H2
+GeDcrWnvl5vO9ENTwupJCNwxyi8ZyRLnSqkc7jL2muQ2rlwt9C9iH2/dxgXIkyj3
+fywCuhHFZ14iIKf1NXk6s4DY8ygIyUSEQYO9GtrW2Ce9XURzlhanRsN7iK9R7vSG
+UJNKs8ktFj+wA15oQrAKhzIgoMKx8vwmCKPedBOjWjBYMAwGA1UdEwEB/wQCMAAw
+GAYDVR0RBBEwD4ENbm9uZUBub25lLm9yZzAPBgNVHQ8BAf8EBQMDB4AAMB0GA1Ud
+DgQWBBSnoCL+rwEPOv1vhYgslR+kUMSL+DAJBgcqhkjOOAQDAy8AMCwCFB3lEUnN
+aj8lo32cDbzEpW57/AQoAhRTSD7Wa9deWKRjLgfMlG8C3S9fkw==
+-----END CERTIFICATE-----
diff --git a/tests/cert-tests/data/cert.dsa.2048.pem b/tests/cert-tests/data/cert.dsa.2048.pem
new file mode 100644
index 0000000000..2fa5a5f404
--- /dev/null
+++ b/tests/cert-tests/data/cert.dsa.2048.pem
@@ -0,0 +1,29 @@
+-----BEGIN CERTIFICATE-----
+MIIE/zCCBKSgAwIBAgIBBzALBglghkgBZQMEAwIwYjELMAkGA1UEBhMCR1IxEjAQ
+BgNVBAoTCUtva28gaW5jLjEXMBUGA1UECxMOc2xlZXBpbmcgZGVwdC4xDzANBgNV
+BAgTBkF0dGlraTEVMBMGA1UEAxMMQ2luZHkgTGF1cGVyMB4XDTExMDMxOTA5MzY1
+NloXDTEzMDIxNjA5MzY1NlowYjELMAkGA1UEBhMCR1IxEjAQBgNVBAoTCUtva28g
+aW5jLjEXMBUGA1UECxMOc2xlZXBpbmcgZGVwdC4xDzANBgNVBAgTBkF0dGlraTEV
+MBMGA1UEAxMMQ2luZHkgTGF1cGVyMIIDRzCCAjkGByqGSM44BAEwggIsAoIBAQCi
+UUKxOjIvSH80td9feC2nJ4/LHxHRMluH+VVyoNeUV9nNEPw/bXgyb4PurCeeV58U
+NZdgykYpGlQnEuCwysewpUrt+XCbQvfeBAGDCj53Hof+9eHNEpMuS0hC5dzfG8CI
+0aycUPP11Z9GteTPa2Z/c6R6ZviPAhowowNoIoXFcEeX1ga2BZ2nhwDWvNwuMbVB
+4tWXdvDWGc8gD4NZp0UcWu9Wf79VBVdQ/EuItW3qCbsepjSTmMIq3BdQ78GNZVBk
+7TWsDZ03RvWqUU7iSa4gnjEvvckxjaWvLHyR+XmU2QHl0iiG46YgBdOHWh28H71f
+bkOkk18cQhvnI0JeGe6pAiEAo3fbOghNRsds7ncGGUYdO7ZraQI4jaRO4hWUAQXv
+nu8CggEAXVxEUmcY5RbFFraJEnDB8UXZCpT3MTiH+hFMs3gS0uFLRBoB3VPtOWVv
+N2qryoiCJTdfcqe61NYBPsCuHid9Iq50uLW+3Jp/No66usJOAA0moEh2ZvTZD0ge
+uvb+BAKkeC0EuGIdfaPMY2FemZTS5GHD/JemxVC0TeB/1uxqS0dzp0ThCv1hBSQv
+8ZHA7RP7NUV2do5AZouVZCOsbObva2G3L7nDhZ4as5b0r6UFEtljTngLds47otFU
+uXXyS2/9CJQTMRRmqPlJb01QkIKvI/UUS7THcOEZopvcnkGgddEImauqxWmNkEf2
+UwuLug6VCJxDhxbinQgjjqdKbSiKqQOCAQYAAoIBAQCdXxaMhARPsbV2l4tC7hTW
+WFK7bPnWoQ8s8Lj+3qQMbPdoFQ1DFoqvzmHHvrkz4RUVcVvEj7sfOWCJc1Ns9uV9
+rNxLaPD4ws4k12UXc4rTWtTlhE0NNm7yE9bskcMnse2qrfAXUjOGupsSIpfGfD02
+VY61DK1W4fUSiszy1W4aDQFFXM8w2GJXr74ElOqZmfwZr7jZCl/9ngond82NgC8g
+r9Nd6wb1EFogAlFJPyOE9lCbTL2TSfD77Q7odWPvuJzux9sxBeGloT3AZoOPJVbw
+QoOwOztZlkxaQj5TC3DLiOSy/xLXc8KEkYcoKDnpx5O0Hu+y6zfpggEHrgkcCB9t
+o1owWDAMBgNVHRMBAf8EAjAAMBgGA1UdEQQRMA+BDW5vbmVAbm9uZS5vcmcwDwYD
+VR0PAQH/BAUDAweAADAdBgNVHQ4EFgQU0yaxv0sPrcQamskx4unRfhuHJl0wCwYJ
+YIZIAWUDBAMCA0gAMEUCIQCZDVfyCOZ/suQ//O05ym+CF8zeeopQzTk8BeRhVsGE
+MwIgHlxKUXTEtVjS9TVQXGAy7udUJM03YP1Bj7eAQXaHiP0=
+-----END CERTIFICATE-----
diff --git a/tests/cert-tests/data/cert.dsa.3072.pem b/tests/cert-tests/data/cert.dsa.3072.pem
new file mode 100644
index 0000000000..d7f89e6de3
--- /dev/null
+++ b/tests/cert-tests/data/cert.dsa.3072.pem
@@ -0,0 +1,37 @@
+-----BEGIN CERTIFICATE-----
+MIIGfTCCBiOgAwIBAgIBBzALBglghkgBZQMEAwIwYjELMAkGA1UEBhMCR1IxEjAQ
+BgNVBAoTCUtva28gaW5jLjEXMBUGA1UECxMOc2xlZXBpbmcgZGVwdC4xDzANBgNV
+BAgTBkF0dGlraTEVMBMGA1UEAxMMQ2luZHkgTGF1cGVyMB4XDTExMDMxOTA5Mzcx
+MVoXDTEzMDIxNjA5MzcxMVowYjELMAkGA1UEBhMCR1IxEjAQBgNVBAoTCUtva28g
+aW5jLjEXMBUGA1UECxMOc2xlZXBpbmcgZGVwdC4xDzANBgNVBAgTBkF0dGlraTEV
+MBMGA1UEAxMMQ2luZHkgTGF1cGVyMIIExjCCAzkGByqGSM44BAEwggMsAoIBgQCE
+H2+8EXX8Bs8D50phIndqugwyxZJusN3luAhf7Bkc5YCH8klfBan6zB5c+XC/CCWx
+QpsDE7rhbG/zOXO6Jk2Z9DKSisbheFRW0IpISPXqFrwwXLC1ZRiAfNR0nluLprnN
+6SCWIMV/PyHVHrPOMYMpV03PBkNURU8iwP3mTD06ilI0AQBkcflw709Ljj7V1ayz
+UAvYMTJ8wxsq7OqTKXUr14XaziP+Wbhk5kaj1jDuEbUNpHjdifYkD7IrO7Sxxd1t
+lrOJLJ4U9IFTzQ+CUzBrD5IqC5A4QZlhTfVupe3rxLxtGqu24W+p54AtJrLzOayR
+6invsnNYS7hHxISRZm948d+GcxqXHLhF1dEKKxQiKonW7wzVE/3pHu372czJ8P3V
+/BLCoaRFZKvt061gziluFJU4d8FpO4O3u0aUYqBf99LTImvv7VNaZ/EHHccSUb/S
+Ti/YLrit1848wP89ouDKdJyWWTJLAxuNfc3s4DPkv4xrbpBMMnPX57DkQiGNmhUC
+IQCSfYDnitbQRwMDhEKqqWMc5k364ppkUTGaaeA+o4DMCQKCAYBlbDF8CN9LIO2D
+fVAGBAZeYN4yJZuACJTXD56ZFgRMATXt6vhOIJDEWIo0+9Zl9wIlKOVDQnubzwI2
+li5xSvgmu9/qpksDU3Yd9OAw/Ni5qFelbU7aqfkczAsDPZkWleo1zNTKX2S64jmn
+jkY/Cxst1VCpmei7kcu1nllxUNCz5dAjHE5vkDNdfXzYU68MpBoEqmkO1jRIRIjk
+cNqMJd2te28pRcLS+uWXaUDYLayOEJNVCUmTo0FaxOvG3rRgQXUtw9BQJrRte6ig
+R3vdOT4WeqlhF0KJKZ46h3Mm6aiDgmQftRl7ml0gjrpOjmbDI/ettbGV3WBJ2ib+
+WDsGmkRjozpj7bwhffwpZEdSD7Wpeqemf8f4KQsacOwnYxqojScZ+g9y1P3TeCyd
+6+TFe7zE/a8a52129Dm85jmUWEkZ+L+3PwE0yccaaNCenK0Yjxv414OM4AMZZ/AN
+vBJK1rX3aFcwWaPvmuyU0j6gu6uhFwlvbw1U2mj8/fTOdO/vhxQDggGFAAKCAYAU
+qnAgGuLNJxfdcIBhP0flKntaaVZdC9BlMUjkU4na0knvxLlGvTFVbre6Pxzh28Er
+Qn0MXkL9Nim1aLoN0Qf2OKKtdPyUqsItKbxp11oJkKdfypFB7hTY31vfzwyJvMY5
+h8bVERDCBbAeIC8K22YhC8Z8beObBO2Cq6akxoOaFMK9CSB1tfD8R1kwWIdAU6XT
+Le6IYlIT+/eO2cgirdKqZAU+wfIYzGOc+ssZlPB8celicXUMWEcNJzyof1UBuJtQ
+nFOHp5jzt3k+L82OgcixJheizkRgIsEFo6whgEAgZgltelkaX34N0U1QOlmaBjk7
+Ra23tSg5IrcxOGojB9AEnLLWbfs+LYOmOugwRNTFTLXHIQaCyI08gs9hOytLrto0
+emzb1u64QmSkpIVl2cESmhqI54dwkFAPnBDSISBfhPw8ya9TPMxZXj60+MNfxN8k
+B4AjS6wwBk6dBkD/dAVVbWksfcvLoR2rVcp6ZLzqJw6NngQPL94++bJ1r2OxzQmj
+WjBYMAwGA1UdEwEB/wQCMAAwGAYDVR0RBBEwD4ENbm9uZUBub25lLm9yZzAPBgNV
+HQ8BAf8EBQMDB4AAMB0GA1UdDgQWBBQxegyJIDYgadVaqBrO81tT291/mzALBglg
+hkgBZQMEAwIDRwAwRAIgepYDoITa8WjRzLdTd0TXI+Q3ZXnU4jw41twfr6qrOgsC
+IGhtDkXsPybKVFTuRt1I3b84xbBeDFKj1H6n3UByZx5M
+-----END CERTIFICATE-----
diff --git a/tests/cert-tests/data/dsa-pubkey-1018.pem b/tests/cert-tests/data/dsa-pubkey-1018.pem
new file mode 100644
index 0000000000..b0fafd6c55
--- /dev/null
+++ b/tests/cert-tests/data/dsa-pubkey-1018.pem
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIC5DCCAqSgAwIBAgIBATAJBgcqhkjOOAQDMBExDzANBgNVBAMMBkRTQSBDQTAi
+GA8yMDE1MDcwMTEzMDU0NloYDzIwMTYwNzAxMTMwNTQ2WjAUMRIwEAYDVQQDDAls
+b2NhbGhvc3QwggG3MIIBLAYHKoZIzjgEATCCAR8CgYEAm6i5p3hTcFOg+nVQ/7Bc
+HL+UT3FBNlgUZp1Wm1eVyGyMmdFwqcV9oHaUnXUJTTDycmMHneMH311tNlEjn9Z1
+ShzzIkyeL1eDDcFnPaGsJUbSg9qfP1v4en045bAqS/ZdnEctoh8lZoMXWdJ36QbB
+V5zpmVouoUALk9EtGvt/tEsCFQDYWrX1itme+B04lrEBlvH3j9/a5wKBgQCAqU4g
+E+6pMDgrz0p6jvkdhJ4mssWSgwgN8fQ5572f/LciJk+LTwbKfjnTaf51YauYQMD9
+noBz4FBwoKXuhfx6mTGBgHYSaR7H02VS7CloiKBsUeTNV4714fzjPSKNQpGf4bla
+BWVRF7Ywb2GPnanq45sEAtCbNr2/nB+QLB1w9QOBhAACgYADWsX3E/0KCl8mqhBJ
+twjE/Nf/BW97dGqfRVPNmnUaymLpj5rmT5nXG4Z7Q8ZaZhlAcHyUp7UauhBZDtYO
+dHl9o+lFRHV/1gk9MaoQwtQmPtIqWL+1rQG+pQLgqcLaLCYr8RF58ZPjWNW1ryj/
+17b8ttxCkCIW+e1Pw4zJQ+uOmqOBhjCBgzAOBgNVHQ8BAf8EBAMCA6gwEwYDVR0l
+BAwwCgYIKwYBBQUHAwEwHQYDVR0OBBYEFJK96czanXgxIBYP32KJ4ewRWKZiMD0G
+A1UdIwQ2MDSAFNjkn7e/GsLzUAcBBiPuHP53FkocoRmkFzAVMRMwEQYDVQQKDApF
+eGFtcGxlIENBggECMAkGByqGSM44BAMDLwAwLAIUWEXonU0yFwRZlwe+fRO5mdOr
+w8UCFClvc68uKa2bUAcOyuIEgt8x2nv9
+-----END CERTIFICATE-----
+
diff --git a/tests/cert-tests/data/dsa.1024.pem b/tests/cert-tests/data/dsa.1024.pem
new file mode 100644
index 0000000000..3e0c103b95
--- /dev/null
+++ b/tests/cert-tests/data/dsa.1024.pem
@@ -0,0 +1,12 @@
+-----BEGIN DSA PRIVATE KEY-----
+MIIBugIBAAKBgQCHc0onPSpqqR3lE69+wLgJJ4LISkPPLwxbPnO1mSJNnjhvucXC
+NjmetDFkPSO2R3MkruD4MCLkKlvIEnIhH8pG32R7GNHLubIp/qcjRJ7NXtS5cG6p
+LU4I1NWlekKUBAjQP2plM3U81Ut3JM39qGYZTM8NPGH0uWTIFn8PpVEzUwIVAIW0
+sPS7m+gJzXCJ6brM/y4iSyzxAoGAZOMeOwOLp3iOcd5AjbXkdDIBSggMQeHbkD9f
+ztMLhhxLaMvygncP6DOIxpmC1LU+APB+DSqyIwhm2ag0Fuo7QYpF4nzZGeX7VWem
+WnGgcKSzkMStlGueW1lnFkrUcRk8H8IksuZtxiNSgDMvPsxRxLx9m1pulbNI9Izh
+QDkxDAACgYAP0fYZ4Nytae+Xm870Q1PC6kkI3DHKLxnJEudKqRzuMvaa5DauXC30
+L2Ifb93GBciTKPd/LAK6EcVnXiIgp/U1eTqzgNjzKAjJRIRBg70a2tbYJ71dRHOW
+FqdGw3uIr1Hu9IZQk0qzyS0WP7ADXmhCsAqHMiCgwrHy/CYIo950EwIUErkN0hjz
+Mf7Jz8+drwf9tboRi44=
+-----END DSA PRIVATE KEY-----
diff --git a/tests/cert-tests/data/dsa.2048.pem b/tests/cert-tests/data/dsa.2048.pem
new file mode 100644
index 0000000000..12d8e0e58a
--- /dev/null
+++ b/tests/cert-tests/data/dsa.2048.pem
@@ -0,0 +1,20 @@
+-----BEGIN DSA PRIVATE KEY-----
+MIIDVgIBAAKCAQEAolFCsToyL0h/NLXfX3gtpyePyx8R0TJbh/lVcqDXlFfZzRD8
+P214Mm+D7qwnnlefFDWXYMpGKRpUJxLgsMrHsKVK7flwm0L33gQBgwo+dx6H/vXh
+zRKTLktIQuXc3xvAiNGsnFDz9dWfRrXkz2tmf3Okemb4jwIaMKMDaCKFxXBHl9YG
+tgWdp4cA1rzcLjG1QeLVl3bw1hnPIA+DWadFHFrvVn+/VQVXUPxLiLVt6gm7HqY0
+k5jCKtwXUO/BjWVQZO01rA2dN0b1qlFO4kmuIJ4xL73JMY2lryx8kfl5lNkB5dIo
+huOmIAXTh1odvB+9X25DpJNfHEIb5yNCXhnuqQIhAKN32zoITUbHbO53BhlGHTu2
+a2kCOI2kTuIVlAEF757vAoIBAF1cRFJnGOUWxRa2iRJwwfFF2QqU9zE4h/oRTLN4
+EtLhS0QaAd1T7Tllbzdqq8qIgiU3X3KnutTWAT7Arh4nfSKudLi1vtyafzaOurrC
+TgANJqBIdmb02Q9IHrr2/gQCpHgtBLhiHX2jzGNhXpmU0uRhw/yXpsVQtE3gf9bs
+aktHc6dE4Qr9YQUkL/GRwO0T+zVFdnaOQGaLlWQjrGzm72thty+5w4WeGrOW9K+l
+BRLZY054C3bOO6LRVLl18ktv/QiUEzEUZqj5SW9NUJCCryP1FEu0x3DhGaKb3J5B
+oHXRCJmrqsVpjZBH9lMLi7oOlQicQ4cW4p0II46nSm0oiqkCggEBAJ1fFoyEBE+x
+tXaXi0LuFNZYUrts+dahDyzwuP7epAxs92gVDUMWiq/OYce+uTPhFRVxW8SPux85
+YIlzU2z25X2s3Eto8PjCziTXZRdzitNa1OWETQ02bvIT1uyRwyex7aqt8BdSM4a6
+mxIil8Z8PTZVjrUMrVbh9RKKzPLVbhoNAUVczzDYYlevvgSU6pmZ/BmvuNkKX/2e
+Cid3zY2ALyCv013rBvUQWiACUUk/I4T2UJtMvZNJ8PvtDuh1Y++4nO7H2zEF4aWh
+PcBmg48lVvBCg7A7O1mWTFpCPlMLcMuI5LL/EtdzwoSRhygoOenHk7Qe77LrN+mC
+AQeuCRwIH20CIAXRwOQ8I5w/YrXm/RqrMIKyQVBT7qNtaSs10TDDFMp6
+-----END DSA PRIVATE KEY-----
diff --git a/tests/cert-tests/data/dsa.3072.pem b/tests/cert-tests/data/dsa.3072.pem
new file mode 100644
index 0000000000..103e4c11d5
--- /dev/null
+++ b/tests/cert-tests/data/dsa.3072.pem
@@ -0,0 +1,28 @@
+-----BEGIN DSA PRIVATE KEY-----
+MIIE1QIBAAKCAYEAhB9vvBF1/AbPA+dKYSJ3aroMMsWSbrDd5bgIX+wZHOWAh/JJ
+XwWp+sweXPlwvwglsUKbAxO64Wxv8zlzuiZNmfQykorG4XhUVtCKSEj16ha8MFyw
+tWUYgHzUdJ5bi6a5zekgliDFfz8h1R6zzjGDKVdNzwZDVEVPIsD95kw9OopSNAEA
+ZHH5cO9PS44+1dWss1AL2DEyfMMbKuzqkyl1K9eF2s4j/lm4ZOZGo9Yw7hG1DaR4
+3Yn2JA+yKzu0scXdbZaziSyeFPSBU80PglMwaw+SKguQOEGZYU31bqXt68S8bRqr
+tuFvqeeALSay8zmskeop77JzWEu4R8SEkWZvePHfhnMalxy4RdXRCisUIiqJ1u8M
+1RP96R7t+9nMyfD91fwSwqGkRWSr7dOtYM4pbhSVOHfBaTuDt7tGlGKgX/fS0yJr
+7+1TWmfxBx3HElG/0k4v2C64rdfOPMD/PaLgynScllkySwMbjX3N7OAz5L+Ma26Q
+TDJz1+ew5EIhjZoVAiEAkn2A54rW0EcDA4RCqqljHOZN+uKaZFExmmngPqOAzAkC
+ggGAZWwxfAjfSyDtg31QBgQGXmDeMiWbgAiU1w+emRYETAE17er4TiCQxFiKNPvW
+ZfcCJSjlQ0J7m88CNpYucUr4Jrvf6qZLA1N2HfTgMPzYuahXpW1O2qn5HMwLAz2Z
+FpXqNczUyl9kuuI5p45GPwsbLdVQqZnou5HLtZ5ZcVDQs+XQIxxOb5AzXX182FOv
+DKQaBKppDtY0SESI5HDajCXdrXtvKUXC0vrll2lA2C2sjhCTVQlJk6NBWsTrxt60
+YEF1LcPQUCa0bXuooEd73Tk+FnqpYRdCiSmeOodzJumog4JkH7UZe5pdII66To5m
+wyP3rbWxld1gSdom/lg7BppEY6M6Y+28IX38KWRHUg+1qXqnpn/H+CkLGnDsJ2Ma
+qI0nGfoPctT903gsnevkxXu8xP2vGudtdvQ5vOY5lFhJGfi/tz8BNMnHGmjQnpyt
+GI8b+NeDjOADGWfwDbwSSta192hXMFmj75rslNI+oLuroRcJb28NVNpo/P30znTv
+74cUAoIBgBSqcCAa4s0nF91wgGE/R+Uqe1ppVl0L0GUxSORTidrSSe/EuUa9MVVu
+t7o/HOHbwStCfQxeQv02KbVoug3RB/Y4oq10/JSqwi0pvGnXWgmQp1/KkUHuFNjf
+W9/PDIm8xjmHxtUREMIFsB4gLwrbZiELxnxt45sE7YKrpqTGg5oUwr0JIHW18PxH
+WTBYh0BTpdMt7ohiUhP7947ZyCKt0qpkBT7B8hjMY5z6yxmU8Hxx6WJxdQxYRw0n
+PKh/VQG4m1CcU4enmPO3eT4vzY6ByLEmF6LORGAiwQWjrCGAQCBmCW16WRpffg3R
+TVA6WZoGOTtFrbe1KDkitzE4aiMH0AScstZt+z4tg6Y66DBE1MVMtcchBoLIjTyC
+z2E7K0uu2jR6bNvW7rhCZKSkhWXZwRKaGojnh3CQUA+cENIhIF+E/DzJr1M8zFle
+PrT4w1/E3yQHgCNLrDAGTp0GQP90BVVtaSx9y8uhHatVynpkvOonDo2eBA8v3j75
+snWvY7HNCQIgZCJrP4CDBTRT9pNL4+Gc/wfiKVEF55YcG09uT77u30M=
+-----END DSA PRIVATE KEY-----
diff --git a/tests/cert-tests/data/enc2pkcs8.pem b/tests/cert-tests/data/enc2pkcs8.pem
new file mode 100644
index 0000000000..4ec8ddc10d
--- /dev/null
+++ b/tests/cert-tests/data/enc2pkcs8.pem
@@ -0,0 +1,40 @@
+ 0 674: SEQUENCE {
+ 4 28: SEQUENCE {
+ 6 10: OBJECT IDENTIFIER
+ : pbeWithSHAAnd40BitRC2-CBC (1 2 840 113549 1 12 1 6)
+ 18 14: SEQUENCE {
+ 20 8: OCTET STRING 1F 40 71 AC 00 42 69 77
+ 30 2: INTEGER 484
+ : }
+ : }
+ 34 640: OCTET STRING
+ : FB 8A B3 5D 5F 16 A4 51 52 F4 E6 2E FB CF 19 1C
+ : A1 14 97 4E 16 1F 33 05 A1 A7 6D 2F 88 78 3E 8C
+ : E9 FA B4 B4 01 F9 93 83 4A F1 AE 47 6D 62 0C 07
+ : 0A DE 53 DB C5 80 6B 0F 3D E1 BE 00 1C 2C 93 E6
+ : 6D 34 0F AA 67 2F 90 D5 ED 70 DD 9B F3 A3 4C 6A
+ : 53 A6 DB 84 89 CE 32 91 BF 5F FC 81 10 B8 C3 65
+ : BD 05 8F 4E 39 A8 2E 81 3C EC 95 77 D7 34 47 F6
+ : 79 3C 74 3A 24 D5 D0 DB A0 86 DE 23 E9 5B 78 A4
+ : [ Another 512 bytes skipped ]
+ : }
+
+0 warnings, 0 errors.
+
+-----BEGIN ENCRYPTED PRIVATE KEY-----
+MIICojAcBgoqhkiG9w0BDAEGMA4ECB9AcawAQml3AgIB5ASCAoD7irNdXxakUVL0
+5i77zxkcoRSXThYfMwWhp20viHg+jOn6tLQB+ZODSvGuR21iDAcK3lPbxYBrDz3h
+vgAcLJPmbTQPqmcvkNXtcN2b86NMalOm24SJzjKRv1/8gRC4w2W9BY9OOagugTzs
+lXfXNEf2eTx0OiTV0Nught4j6Vt4pEA4ZvLBer6a3k4/BTjm9uvwq4oRGsfeixkn
+VJ27dz5ZyUmwVyzfCQww1gAAMQIX/LAPQKfkAiBuYfHHP3H/tiOIGj7Xmt3Ktknu
+j1uAoNUX6/IYQwrS87HQ1txTl19p6HMqnIBncalVRk1VfkckNCILw3c9P8xzxSB0
+sRep7f0sh/JAai2CF+nSLlLsfRoPNwBO0kvJZDeXRxKCOwmjK3DdwWuKHpar3ccF
+4cgS7dVK0tYur6XoqR/AqfqG8PuP6bbwZWB+i+irmPI24v+177AOYVkrUngeYWOP
+VKkX8Yupl9f3jTBVP1/YSlOaXZ3zXn6BV52mPjJHGY1GkTuWJ7ZCLzSruhBVsauG
+mhoVAp8AaYoIHfJHGvcZHCZvMMjINVjkkpQBq4sl/OQ+K1E30Q4Amfc8s12T+yWJ
+ypn8BhmxeAy4NbAYp4gc/u61rh22nSz8nswPNyR/mMpK60Wp61oFWr7QL9ABAoQJ
+09jPzumO/B9WQ6CQvZ0fNNvBfVSg3/OzhY0quznHGalJqahORtP1lcV1m5mrCd1Z
+8NWf7hIA/paMntlrkgRXAB36K/AqvS563TMDPWn71Jj7bErPw+8WlIeuEs6I8265
+sQpvNvpamuxunxRTnjeXyC1x4ZU+LDZT2ZG1y1G/mGYm9nRVPkvdgn0OHzQEgD9Q
+R1QRZL+9
+-----END ENCRYPTED PRIVATE KEY-----
diff --git a/tests/cert-tests/data/encpkcs8.pem b/tests/cert-tests/data/encpkcs8.pem
new file mode 100644
index 0000000000..69417b85d8
--- /dev/null
+++ b/tests/cert-tests/data/encpkcs8.pem
@@ -0,0 +1,38 @@
+ 0 674: SEQUENCE {
+ 4 28: SEQUENCE {
+ 6 10: OBJECT IDENTIFIER
+ : pbeWithSHAAnd3-KeyTripleDES-CBC (1 2 840 113549 1 12 1 3)
+ 18 14: SEQUENCE {
+ 20 8: OCTET STRING 72 B4 33 4F 90 B8 42 FD
+ 30 2: INTEGER 290
+ : }
+ : }
+ 34 640: OCTET STRING
+ : D1 AB E2 91 63 ED 17 3F 4B 4E 97 00 53 CD 58 A2
+ : 5D 25 E8 C8 D9 CA 01 92 AD E6 BE 4A FD F1 8D 9E
+ : DB F6 DA 0F F5 B3 F6 4D 09 EB 6B AA C2 43 0B 97
+ : 8C 50 F3 DA 73 3D 3A 8C 5A BF 22 9B 1E A7 8F CE
+ : 82 34 3D 50 03 B3 5C DA D6 12 83 72 AC 79 D6 0E
+ : 8E EE B2 00 F7 09 6D 26 2B 2A 84 47 8F B0 1B 46
+ : 5D 54 C6 ED DC DF 82 24 71 81 F3 98 F3 46 64 13
+ : 7E 47 71 D6 B4 96 79 2C 7E 5F 2B 30 1E 7F 04 47
+ : [ Another 512 bytes skipped ]
+ : }
+
+-----BEGIN ENCRYPTED PRIVATE KEY-----
+MIICojAcBgoqhkiG9w0BDAEDMA4ECHK0M0+QuEL9AgIBIgSCAoDRq+KRY+0XP0tO
+lwBTzViiXSXoyNnKAZKt5r5K/fGNntv22g/1s/ZNCetrqsJDC5eMUPPacz06jFq/
+Ipsep4/OgjQ9UAOzXNrWEoNyrHnWDo7usgD3CW0mKyqER4+wG0ZdVMbt3N+CJHGB
+85jzRmQTfkdx1rSWeSx+XyswHn8ER4+hQ+omKWMVm7AFkjjmP/KmhUnLT98J8rhU
+ArQoFPHz/6HVkypFccNaPPNg6IA4aS2A+TU9vJYOaXSVfFB2yf99hfYYzC+ukmuU
+5Lun0cysK5s/5uSwDueUmDQKspnaNyiaMGDxvw8hilJc7vg0fGObfnbIpizhxJwq
+gKBfR7Zt0Hv8OYi1He4MehfMGdbHskztF+yQ40LplBGXQrvAqpU4zShga1BoQ98T
+0ekbBmqj7hg47VFsppXR7DKhx7G7rpMmdKbFhAZVCjae7rRGpUtD52cpFdPhMyAX
+huhMkoczwUW8B/rM4272lkHo6Br0yk/TQfTEGkvryflNVu6lniPTV151WV5U1M3o
+3G3a44eDyt7Ln+WSOpWtbPQMTrpKhur6WXgJvrpa/m02oOGdvOlDsoOCgavgQMWg
+7xKKL7620pHl7p7f/8tlE8q6vLXVvyNtAOgt/JAr2rgvrHaZSzDE0DwgCjBXEm+7
+cVMVNkHod7bLQefVanVtWqPzbmr8f7gKeuGwWSG9oew/lN2hxcLEPJHAQlnLgx3P
+0GdGjK9NvwA0EP2gYIeE4+UtSder7xQ7bVh25VB20R4TTIIs4aXXCVOoQPagnzaT
+6JLgl8FrvdfjHwIvmSOO1YMNmILBq000Q8WDqyErBDs4hsvtO6VQ4LeqJj6gClX3
+qeJNaJFu
+-----END ENCRYPTED PRIVATE KEY-----
diff --git a/tests/cert-tests/data/key-ca-1234.p8 b/tests/cert-tests/data/key-ca-1234.p8
new file mode 100644
index 0000000000..dc6b1daf9a
--- /dev/null
+++ b/tests/cert-tests/data/key-ca-1234.p8
@@ -0,0 +1,10 @@
+-----BEGIN ENCRYPTED PRIVATE KEY-----
+MIIBfDAcBgoqhkiG9w0BDAEBMA4ECPvbksad11k/AgIBYASCAVqpBTCoK88VT4i2
+SP14VJrMGLz/QfnwH0MYpfPqCfYKy7GF7mF0LOV4KIG98J0l14R0sgS7666CAxvV
+ByvdGafE77C2NdxoIzVwdC+wXISj8weztvOu8rkHizzouw0UYeoZgvcRg1TO1EUq
+CnFRf4Ksmo47n6Pkz0OsyNFqXZEgC0E5ymu8frQtTlV30UPgzSMiPbP1aK45H7uc
+7ccpXL+bZ1ycYyyVv1WLxHl8G65CUtEcDMMGSnSbSkId4EE2Obmwhy00FfvS4w8o
+BugeBJhFpF8TnyyChoBDzXKerpiY934zNhUuk3B3Ayz2JHLJ6tSCwvdMEKaLDLl5
+4iLxuVNPpavBlIvsq9zHELfVjuYV4ZPEv2eHzEzgyUgtGRdmuL1TvsM3kOG4Beo3
+/9MAiJDmvY3CuzkqfFqdeJd6VzO3Z66Cqydvy3NnlmfpQarE2+6qi7CcQ5tvhW/I
+-----END ENCRYPTED PRIVATE KEY-----
diff --git a/tests/cert-tests/data/key-ca-empty.p8 b/tests/cert-tests/data/key-ca-empty.p8
new file mode 100644
index 0000000000..f86433fa65
--- /dev/null
+++ b/tests/cert-tests/data/key-ca-empty.p8
@@ -0,0 +1,10 @@
+-----BEGIN PRIVATE KEY-----
+MIIBVgIBADANBgkqhkiG9w0BAQEFAASCAUAwggE8AgEAAkEAxpQGKKdRJDmxWgFU
+m1DUFwxN36xCAAflcjDciC2CFoDaI0eoRnzIiE8PatK0hpfblIeFNS9R5xwzfmsc
+AAcbuwIDAQABAkA/9SUWqu0jccGBb7REYgAtfDUIuX54bBKmeL5Ozfl8LWoRgKyN
+LADN425xXm6tedNOaxugc0iKDngyfBsvVKdhAiEAy12kK1sWKVx2J1gF6AJrcAyu
+TFB82yLyTV+6FhcRhmUCIQD5+SyPI0fK26dGOfBboQhE0JZ+LKd89aiJmFtg4Kpn
+nwIhAKQL+5xFs9DVlzIRnWIUYZpXgFprKuySeibUK4YaQbbJAiEAqdMq/qPNZngM
+EJ3UOawRXg8H7viPYUnUEoa7rfl0S6kCIQC2sU2pHtU6b2S36aNyx6dTMldpqsWd
+GiD8T2oCOC5T9Q==
+-----END PRIVATE KEY-----
diff --git a/tests/cert-tests/data/key-ca-null.p8 b/tests/cert-tests/data/key-ca-null.p8
new file mode 100644
index 0000000000..e58483e952
--- /dev/null
+++ b/tests/cert-tests/data/key-ca-null.p8
@@ -0,0 +1,10 @@
+-----BEGIN ENCRYPTED PRIVATE KEY-----
+MIIBfDAcBgoqhkiG9w0BDAEBMA4ECOxO+XewS2/+AgIBBQSCAVqE1UFN8VmjMRbS
+BNL/J+bUCtOy/4i14m5MBzCTlPqx/Fs2ecD1VoaLJof0qO/v6YBhGEJeTi2v9Xld
+5mXzUBjCKC7ETdfWkUhzdX2rGc1pe9sMMpNFD3UK92QG5KUBFZ32MBdBmb/RGmNW
+Z3zM6JEZwkTP9drrZRyQSsCTkjRcRODsv6sS+ftWljDteeQaWFDQhxz+kKN7BDpa
+jxYLBoM330OB8wwa4NxPNa9GhtASpxgHuE0crViXh3rR30VF5HNcyQwT3jZW69CB
+szFuV2n53WowjhgkUAXx+EQCxlTREoIX7FxZofl/IVtZNkfzXTZ9MT3yZxW1EDkO
+B2RhEDbEEv1A4k073xmmFZMEP0lDgy+ufLFfDjJZoacq1lcWpySQBbIDCta3s1Tz
+GbPRkJGGAIVa8O+T6O++rcI7o/kRZMr9B3/hvOemFcWxx0RZzMP870x83xLBmcyM
+-----END ENCRYPTED PRIVATE KEY-----
diff --git a/tests/cert-tests/data/key-ecc.p8 b/tests/cert-tests/data/key-ecc.p8
new file mode 100644
index 0000000000..189ab0144f
--- /dev/null
+++ b/tests/cert-tests/data/key-ecc.p8
@@ -0,0 +1,8 @@
+-----BEGIN PRIVATE KEY-----
+MIH3AgEAMBAGByqGSM49AgEGBSuBBAAjBIHfMIHcAgEBBEIB0Q4ImmR/QzaLTcoL
+uzq0vVA28hRlQKGLWq9g6yJgG7dCSWiCHFEiJTWjost5d/FeH32SsIUv/3b23sf6
+JObBbdmgBwYFK4EEACOhgYkDgYYABAFnPgQpDICaoXXeWB2Fh3QOiwm4BQSkZzC5
+JKwwbfTDIX+rS1TyZVjgZtt+twmmL+nOxMtpdsW+9OFmy2kVjy1a3gGIZjei/XsK
+d84XH/9pdIdyUaaaevaFL3Hnjgw+nsPK40Ii0j2b91oZ6+qnIV7hkA4g+pCL33h7
+AZtfTYAktAKdyw==
+-----END PRIVATE KEY-----
diff --git a/tests/cert-tests/data/key-ecc.pem b/tests/cert-tests/data/key-ecc.pem
new file mode 100644
index 0000000000..57e40c7e5b
--- /dev/null
+++ b/tests/cert-tests/data/key-ecc.pem
@@ -0,0 +1,7 @@
+-----BEGIN EC PRIVATE KEY-----
+MIHcAgEBBEIB0Q4ImmR/QzaLTcoLuzq0vVA28hRlQKGLWq9g6yJgG7dCSWiCHFEi
+JTWjost5d/FeH32SsIUv/3b23sf6JObBbdmgBwYFK4EEACOhgYkDgYYABAFnPgQp
+DICaoXXeWB2Fh3QOiwm4BQSkZzC5JKwwbfTDIX+rS1TyZVjgZtt+twmmL+nOxMtp
+dsW+9OFmy2kVjy1a3gGIZjei/XsKd84XH/9pdIdyUaaaevaFL3Hnjgw+nsPK40Ii
+0j2b91oZ6+qnIV7hkA4g+pCL33h7AZtfTYAktAKdyw==
+-----END EC PRIVATE KEY-----
diff --git a/tests/cert-tests/data/key-illegal-rsa-pss.pem b/tests/cert-tests/data/key-illegal-rsa-pss.pem
new file mode 100644
index 0000000000..7fe2f1c55c
--- /dev/null
+++ b/tests/cert-tests/data/key-illegal-rsa-pss.pem
@@ -0,0 +1,138 @@
+Public Key Info:
+ Public Key Algorithm: RSA-PSS
+ Hash Algorithm: SHA256
+ Salt Length: 1024
+ Key Security Level: Medium (2048 bits)
+
+modulus:
+ 00:bc:84:37:48:41:7e:20:3b:4c:c5:ce:2a:f4:40:cc
+ d0:83:04:5a:00:e6:fa:b4:dd:a2:6f:36:c4:f9:8d:ab
+ 03:52:f5:b1:e6:2c:7d:26:2d:8a:39:ce:28:9a:c9:80
+ 0a:d1:b8:a3:c3:ac:64:e5:f8:5d:5a:dd:06:5d:59:15
+ e2:d1:e8:5a:e9:46:b8:67:82:27:4e:d5:26:25:58:f3
+ 38:a5:25:6a:8f:be:a2:ff:37:aa:5c:8b:e4:74:ea:70
+ bc:88:e8:9a:d4:ea:be:cf:fb:78:7c:89:4b:8d:7c:cf
+ 6c:0b:a9:da:2a:53:21:1b:f6:81:29:36:af:5a:90:4c
+ 40:a0:0b:fa:b0:1e:a1:76:7a:15:96:31:64:9b:4a:df
+ 48:71:ff:f5:e4:e0:31:98:3a:49:68:a9:a6:22:34:25
+ 43:18:c0:5f:2c:b9:16:8e:14:5c:19:4e:0e:fe:17:c5
+ f5:bc:f1:ca:67:ff:76:97:0e:98:3e:e3:08:09:79:a8
+ 77:84:fe:92:a4:8f:8e:ed:b2:38:e1:f6:08:40:c4:db
+ 8e:a6:d5:e2:4e:4f:25:10:df:e4:0e:82:56:93:3c:de
+ 72:e2:da:20:2d:5b:36:f2:93:97:58:88:c0:b5:8f:d3
+ 4d:f7:0d:bf:b5:33:65:bb:bb:83:e9:d5:24:2c:94:f2
+ 5d:
+
+public exponent:
+ 01:00:01:
+
+private exponent:
+ 4d:19:f6:52:43:17:06:af:ba:32:9c:a3:cc:ca:43:fa
+ 73:db:6f:c4:36:b4:0b:0d:2a:c6:39:ac:4e:34:b6:e0
+ e1:29:43:dd:54:0c:cb:74:8c:b8:1f:ad:53:c1:5d:f1
+ 0e:dd:69:7d:3a:20:fa:3d:9e:50:ef:5d:0f:08:c4:7e
+ c4:43:38:0b:78:b5:2b:00:7c:7b:2d:8a:30:74:34:e5
+ d2:05:7f:93:d2:f0:6f:59:a0:ff:c0:e7:6b:3a:07:69
+ d4:c4:ed:ae:6f:64:23:44:42:7f:0c:d8:2d:c2:02:43
+ ba:71:79:9d:1d:ea:c8:b9:05:12:8a:1f:25:f7:26:78
+ 04:11:7c:ed:26:ab:71:37:f2:ca:19:fa:d2:24:df:91
+ 75:35:8f:da:00:41:79:4f:4d:ba:2f:f2:66:a9:83:51
+ 43:ac:bf:b1:26:e4:16:d7:a2:56:9f:57:19:ce:26:a1
+ 80:e2:b8:f5:b9:af:ee:e2:ec:3b:04:0f:8b:87:a1:41
+ bb:58:d0:28:a7:ef:05:48:83:29:2d:b4:f9:e3:b7:e3
+ 36:5c:e4:df:42:43:19:2d:2b:f8:87:64:2b:00:90:42
+ 1b:9c:5e:7a:ac:82:b1:5b:95:de:0a:35:43:83:77:fd
+ 3a:4f:9d:49:55:0c:56:c1:9d:79:08:a3:86:28:e5:31
+
+
+prime1:
+ 00:d1:01:9c:e2:64:8a:cf:58:46:e9:21:2f:e1:20:20
+ d5:98:24:5c:31:8e:5f:1f:cf:83:52:da:67:d5:60:1e
+ a0:52:b9:03:10:a3:27:95:23:bd:8e:d9:49:5e:4f:fa
+ 51:28:13:cd:bb:07:8a:34:fd:5a:8e:fd:cf:19:79:48
+ c0:a4:52:4d:c0:b0:2c:8d:03:3b:2d:fa:51:e9:61:dc
+ 66:fe:b5:5f:d5:dd:f3:51:5a:ca:3f:3c:84:79:cf:c4
+ ab:82:63:2c:ba:94:ff:8d:c0:04:33:64:14:4c:6b:e1
+ 88:74:2f:83:78:75:2e:be:ac:86:f6:fb:b6:b7:5a:30
+ 6f:
+
+prime2:
+ 00:e6:e7:35:bd:cc:cd:6b:15:15:e7:d0:04:04:52:89
+ 0e:72:07:de:2a:35:05:9c:0d:a4:b8:32:11:ce:7d:aa
+ eb:e7:79:bf:13:80:e4:07:9c:d4:0a:c3:cc:4c:7c:43
+ 73:9c:0c:14:a9:bb:ed:ad:2f:95:31:35:eb:e2:ad:28
+ e1:33:79:28:6a:27:f9:3b:0e:cc:f0:86:f1:4a:f6:c9
+ c1:c9:0e:a3:49:1d:d9:bb:b2:6f:e7:4f:05:62:28:7e
+ a5:e9:79:df:66:98:db:27:42:5f:22:8b:72:66:d7:5a
+ 05:84:94:47:13:f5:36:26:60:34:bd:00:32:d3:d1:17
+ f3:
+
+coefficient:
+ 2b:01:49:bd:b6:77:88:06:c8:71:79:44:b5:8b:5c:4f
+ 7b:42:95:be:e9:2a:65:3b:f3:0b:7b:85:43:4f:df:c0
+ 9d:96:41:a8:d7:34:e6:74:39:1b:af:54:2d:6a:37:a9
+ 5b:e6:ab:9c:39:52:d3:4a:95:19:7b:80:b6:fa:a6:ff
+ 12:10:17:a1:10:8c:da:dc:b6:e1:b7:d9:03:77:97:a3
+ bf:28:a6:ff:34:04:53:15:5c:da:25:5d:49:0b:84:2a
+ e6:18:19:50:73:0a:53:53:6e:cb:bc:21:08:06:b1:11
+ be:bf:6d:c9:12:ad:fe:a6:8a:5b:87:72:f7:92:d0:94
+
+
+exp1:
+ 00:96:67:ec:b8:56:d6:35:a4:37:53:69:58:85:4f:93
+ 91:62:2d:38:53:49:3b:57:2f:04:38:49:87:d3:5b:9a
+ 6e:91:59:26:c5:80:43:e9:e5:90:72:0e:17:e8:50:f1
+ b8:19:79:36:e1:d2:e9:38:7c:e2:00:68:d1:f2:68:ff
+ 5b:f2:64:70:23:ac:24:43:4e:01:f6:72:5f:23:ee:12
+ a7:e3:c0:2e:39:3f:c1:eb:d7:c4:17:81:bb:6b:d5:82
+ 98:51:fa:80:a3:bc:b9:b3:0e:6d:77:76:1b:cd:6b:0d
+ 20:1f:4c:59:f6:03:8e:22:15:12:03:06:dd:54:51:08
+ ed:
+
+exp2:
+ 00:e3:3d:2e:1d:81:5d:b4:01:c7:52:20:dc:a3:28:5a
+ eb:d5:7b:3a:c0:4c:f8:1d:51:2c:07:7e:77:19:c1:81
+ 21:b2:e7:95:0d:6b:ae:7e:73:70:16:bc:04:e6:4c:f0
+ d0:e9:04:d6:9d:08:6e:eb:1e:c5:f3:ed:3e:1d:12:0f
+ 06:3a:73:05:3c:1b:e4:e2:a3:39:3b:89:82:14:25:75
+ ff:79:90:27:50:40:c9:54:38:52:7a:d0:c0:da:8e:41
+ bd:a4:5d:a5:67:42:0d:83:c0:85:01:e9:3c:88:4b:6d
+ b3:ba:7b:76:cc:04:69:eb:30:89:16:6c:08:99:7e:d0
+ d3:
+
+
+Public Key PIN:
+ pin-sha256:PpGrje0ZA5tMhx/WQRCuwVH5n+yaVcAvC5Ddg7J5Gl4=
+Public Key ID:
+ sha256:3e91ab8ded19039b4c871fd64110aec151f99fec9a55c02f0b90dd83b2791a5e
+ sha1:c9fdf3e23c095aed38a2a48da03657dc1374ac91
+
+-----BEGIN PRIVATE KEY-----
+MIIE7wIBADA+BgkqhkiG9w0BAQowMaANMAsGCWCGSAFlAwQCAaEaMBgGCSqGSIb3
+DQEBCDALBglghkgBZQMEAgGiBAICBAAEggSoMIIEpAIBAAKCAQEAvIQ3SEF+IDtM
+xc4q9EDM0IMEWgDm+rTdom82xPmNqwNS9bHmLH0mLYo5ziiayYAK0bijw6xk5fhd
+Wt0GXVkV4tHoWulGuGeCJ07VJiVY8zilJWqPvqL/N6pci+R06nC8iOia1Oq+z/t4
+fIlLjXzPbAup2ipTIRv2gSk2r1qQTECgC/qwHqF2ehWWMWSbSt9Icf/15OAxmDpJ
+aKmmIjQlQxjAXyy5Fo4UXBlODv4XxfW88cpn/3aXDpg+4wgJeah3hP6SpI+O7bI4
+4fYIQMTbjqbV4k5PJRDf5A6CVpM83nLi2iAtWzbyk5dYiMC1j9NN9w2/tTNlu7uD
+6dUkLJTyXQIDAQABAoIBAE0Z9lJDFwavujKco8zKQ/pz22/ENrQLDSrGOaxONLbg
+4SlD3VQMy3SMuB+tU8Fd8Q7daX06IPo9nlDvXQ8IxH7EQzgLeLUrAHx7LYowdDTl
+0gV/k9Lwb1mg/8DnazoHadTE7a5vZCNEQn8M2C3CAkO6cXmdHerIuQUSih8l9yZ4
+BBF87SarcTfyyhn60iTfkXU1j9oAQXlPTbov8mapg1FDrL+xJuQW16JWn1cZziah
+gOK49bmv7uLsOwQPi4ehQbtY0Cin7wVIgykttPnjt+M2XOTfQkMZLSv4h2QrAJBC
+G5xeeqyCsVuV3go1Q4N3/TpPnUlVDFbBnXkIo4Yo5TECgYEA0QGc4mSKz1hG6SEv
+4SAg1ZgkXDGOXx/Pg1LaZ9VgHqBSuQMQoyeVI72O2UleT/pRKBPNuweKNP1ajv3P
+GXlIwKRSTcCwLI0DOy36Uelh3Gb+tV/V3fNRWso/PIR5z8SrgmMsupT/jcAEM2QU
+TGvhiHQvg3h1Lr6shvb7trdaMG8CgYEA5uc1vczNaxUV59AEBFKJDnIH3io1BZwN
+pLgyEc59quvneb8TgOQHnNQKw8xMfENznAwUqbvtrS+VMTXr4q0o4TN5KGon+TsO
+zPCG8Ur2ycHJDqNJHdm7sm/nTwViKH6l6XnfZpjbJ0JfIotyZtdaBYSURxP1NiZg
+NL0AMtPRF/MCgYEAlmfsuFbWNaQ3U2lYhU+TkWItOFNJO1cvBDhJh9Nbmm6RWSbF
+gEPp5ZByDhfoUPG4GXk24dLpOHziAGjR8mj/W/JkcCOsJENOAfZyXyPuEqfjwC45
+P8Hr18QXgbtr1YKYUfqAo7y5sw5td3YbzWsNIB9MWfYDjiIVEgMG3VRRCO0CgYEA
+4z0uHYFdtAHHUiDcoyha69V7OsBM+B1RLAd+dxnBgSGy55UNa65+c3AWvATmTPDQ
+6QTWnQhu6x7F8+0+HRIPBjpzBTwb5OKjOTuJghQldf95kCdQQMlUOFJ60MDajkG9
+pF2lZ0INg8CFAek8iEtts7p7dswEaeswiRZsCJl+0NMCgYArAUm9tneIBshxeUS1
+i1xPe0KVvukqZTvzC3uFQ0/fwJ2WQajXNOZ0ORuvVC1qN6lb5qucOVLTSpUZe4C2
++qb/EhAXoRCM2ty24bfZA3eXo78opv80BFMVXNolXUkLhCrmGBlQcwpTU27LvCEI
+BrERvr9tyRKt/qaKW4dy95LQlA==
+-----END PRIVATE KEY-----
diff --git a/tests/cert-tests/data/key-illegal.pem b/tests/cert-tests/data/key-illegal.pem
new file mode 100644
index 0000000000..75c7679d03
--- /dev/null
+++ b/tests/cert-tests/data/key-illegal.pem
@@ -0,0 +1,97 @@
+Public Key Info:
+ Public Key Algorithm: RSA
+ Key Security Level: Low (1024 bits)
+
+modulus:
+ 00:a9:4e:b1:2b:17:a2:9e:1d:f6:92:05:f4:17:2e:4c
+ 36:02:4a:ed:78:41:5c:6b:f8:db:5a:4d:92:d1:d7:f9
+ 71:1a:ec:b8:2f:91:9e:ba:47:9e:4e:29:ac:92:12:55
+ 06:73:17:eb:39:aa:0c:ee:96:f4:5a:30:3d:2f:9e:50
+ 83:28:f8:c3:81:12:e4:17:28:93:de:95:b9:25:92:6a
+ 4c:a8:88:2d:00:70:cf:aa:ea:95:03:bb:51:65:aa:7a
+ d7:3f:82:5f:52:1d:3a:bf:bd:7e:42:0d:b0:39:37:17
+ 3d:1c:92:e4:3d:7e:57:97:7c:00:d7:63:c0:62:6a:da
+ ba:
+
+public exponent:
+ 01:00:01:
+
+private exponent:
+ 04:c8:d0:80:e3:3e:19:31:c7:92:00:d1:11:06:a1:e8
+ b4:cf:e1:3e:10:ba:c7:e2:54:70:8c:d8:a5:4d:71:23
+ 1d:1b:ab:68:cc:b8:ab:92:f2:8a:4a:eb:31:85:8b:19
+ 8f:8f:11:7a:a3:af:91:de:7a:31:42:43:b8:60:c4:ed
+ a4:2a:86:ca:c3:9d:38:13:9e:86:07:ed:d1:52:63:a6
+ 9c:52:e7:23:e4:5e:b2:7a:2a:dc:16:d8:78:95:19:28
+ d3:d1:ca:67:91:5d:d6:78:2c:b4:f5:37:e4:6b:1e:91
+ 43:2a:f2:f6:87:0e:b4:73:95:ec:9d:a7:e6:79:94:c1
+
+
+prime1:
+ 00:cf:fd:cc:ba:f0:9b:7b:b4:c6:53:a1:04:0b:86:c7
+ 5d:ca:84:06:fb:62:62:5b:3d:cf:4f:d3:fd:77:95:9d
+ 90:ca:b3:39:8b:7a:00:36:76:9b:c1:e9:98:c7:2f:df
+ 62:d0:1e:da:e2:4b:1c:bb:26:a5:d6:de:e4:a7:a3:09
+ 04:
+
+prime2:
+ 00:d0:63:0e:5e:f5:7f:f1:09:d6:29:4d:bf:6f:2a:77
+ 1d:50:d0:3f:9e:d5:ab:f3:37:ec:18:4c:6f:1a:19:0c
+ 01:c2:68:8c:fb:bf:c9:36:0f:b5:01:41:d4:de:89:4b
+ 26:ea:01:49:d7:e1:3a:60:29:e6:4f:17:4f:45:5b:8d
+ e9:
+
+coefficient:
+ 12:67:c7:6f:f1:53:5c:46:de:2b:a8:5e:cb:99:0e:43
+ c6:b2:ec:bc:73:0a:f1:0c:7e:8a:80:ba:47:05:0a:a7
+ 2f:aa:2f:8e:41:0a:bb:8c:f8:da:4b:bd:ea:21:56:6d
+ 3d:0a:06:b5:78:fc:44:53:00:ef:8e:6d:f2:f6:b1:51
+
+
+exp1:
+ 00:ac:e7:b2:47:95:ef:f9:1e:d5:28:e1:f5:d4:4e:8b
+ c3:93:6b:b2:cc:8b:5f:bb:9d:e9:15:75:9c:7d:3c:39
+ e8:ce:2c:40:d2:81:09:54:25:1d:f4:69:93:24:c5:50
+ 25:c2:bf:b2:15:19:bd:31:b0:c3:46:c3:5d:e8:67:92
+ d4:
+
+exp2:
+ 1b:45:ab:7e:d0:00:63:8a:57:05:e6:cf:f3:fb:89:c5
+ 43:6b:4d:b8:3a:dc:9b:23:29:79:f0:9e:e5:ba:7b:70
+ cb:81:a5:59:d9:3a:bb:21:89:1d:d6:00:c6:f3:0e:eb
+ d3:da:41:50:c8:80:3c:4f:9f:7d:a0:5e:56:84:69:e9
+
+
+
+Public Key ID: 23:91:CE:75:3C:67:B5:29:2B:D9:F4:4E:3B:0A:40:4B:61:1D:2C:1A
+Public key's random art:
++--[ RSA 1024]----+
+| oo.. . |
+| Eo.oo . o |
+| oo+.+ = o |
+| o.= o B + |
+| + S o o o |
+| . o . o . |
+| . + |
+| . . . |
+| . |
++-----------------+
+
+
+** Private key parameters validation failed **
+
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQCpTrErF6KeHfaSBfQXLkw2AkrteEFca/jbWk2S0df5cRrsuC+R
+nrpHnk4prJISVQZzF+s5qgzulvRaMD0vnlCDKPjDgRLkFyiT3pW5JZJqTKiILQBw
+z6rqlQO7UWWqetc/gl9SHTq/vX5CDbA5Nxc9HJLkPX5Xl3wA12PAYmraugIDAQAB
+AoGABMjQgOM+GTHHkgDREQah6LTP4T4QusfiVHCM2KVNcSMdG6tozLirkvKKSusx
+hYsZj48ReqOvkd56MUJDuGDE7aQqhsrDnTgTnoYH7dFSY6acUucj5F6yeircFth4
+lRko09HKZ5Fd1ngstPU35GsekUMq8vaHDrRzleydp+Z5lMECQQDP/cy68Jt7tMZT
+oQQLhsddyoQG+2JiWz3PT9P9d5WdkMqzOYt6ADZ2m8HpmMcv32LQHtriSxy7JqXW
+3uSnowkEAkEA0GMOXvV/8QnWKU2/byp3HVDQP57Vq/M37BhMbxoZDAHCaIz7v8k2
+D7UBQdTeiUsm6gFJ1+E6YCnmTxdPRVuN6QJBALLLOQAGL5Jy/v4K7yA9dwpgOYiK
+9rMYPhUFSXWdI+cz/Zt9vzFcF3V0RYhaRfgYLqg7retTqFoVSgBg0OxuUSMCQBtF
+q37QAGOKVwXmz/P7icVDa024OtybIyl58J7luntwy4GlWdk6uyGJHdYAxvMO69Pa
+QVDIgDxPn32gXlaEaekCQQCVhXc3zc+VX3nM4iCpXhlET2N75ULzsR+r6CdvtwSB
+vXMBcuCE1aJHZDxqRx8XFZDZl+Ij/jrBMmtI15ebDuzH
+-----END RSA PRIVATE KEY-----
diff --git a/tests/cert-tests/data/key-invalid1.der b/tests/cert-tests/data/key-invalid1.der
new file mode 100644
index 0000000000..909ee82a7a
--- /dev/null
+++ b/tests/cert-tests/data/key-invalid1.der
Binary files differ
diff --git a/tests/cert-tests/data/key-invalid2.der b/tests/cert-tests/data/key-invalid2.der
new file mode 100644
index 0000000000..c4e90e2f7c
--- /dev/null
+++ b/tests/cert-tests/data/key-invalid2.der
Binary files differ
diff --git a/tests/cert-tests/data/key-invalid3.der b/tests/cert-tests/data/key-invalid3.der
new file mode 100644
index 0000000000..2700ef03c4
--- /dev/null
+++ b/tests/cert-tests/data/key-invalid3.der
Binary files differ
diff --git a/tests/cert-tests/data/key-invalid4.der b/tests/cert-tests/data/key-invalid4.der
new file mode 100644
index 0000000000..e66c74d6c0
--- /dev/null
+++ b/tests/cert-tests/data/key-invalid4.der
@@ -0,0 +1 @@
+0D 0+ep8 ÿ ÿÿ ÿÿ \ No newline at end of file
diff --git a/tests/cert-tests/data/key-invalid5.der b/tests/cert-tests/data/key-invalid5.der
new file mode 100644
index 0000000000..e03829cb79
--- /dev/null
+++ b/tests/cert-tests/data/key-invalid5.der
Binary files differ
diff --git a/tests/cert-tests/data/key-invalid6.der b/tests/cert-tests/data/key-invalid6.der
new file mode 100644
index 0000000000..d4efbcb1ca
--- /dev/null
+++ b/tests/cert-tests/data/key-invalid6.der
Binary files differ
diff --git a/tests/cert-tests/data/openssl-3des.p8 b/tests/cert-tests/data/openssl-3des.p8
new file mode 100644
index 0000000000..4fdca7f29f
--- /dev/null
+++ b/tests/cert-tests/data/openssl-3des.p8
@@ -0,0 +1,17 @@
+-----BEGIN ENCRYPTED PRIVATE KEY-----
+MIICxjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQI74Maa7sl7SwCAggA
+MBQGCCqGSIb3DQMHBAiR/iOu5enQugSCAoAS8YqajT0ONExxCTJHFp0jnsGwC+mK
+jEJF5lJoGxKv3fXyrN3RRz57ka5R47dDF5cFy2qVY60xX6TxYzr4xsSrCpYyWtvM
+EGqWrfamAk6cy/yC7J6PENfR0VZCrRPZjmX9zquuu8Xy/ucFGV+vkuttKW9kBBT+
+XBPgPAXuR60b5ZEZ7XY8FfiILxMjKsm0dklb119vebvr4RjZ3sIt1iELnyjr22Hp
+/L7PLJ4yAzPJzvn3i8pIBMG8bWEisvbagWZlnMRX3y33uOJJu2UU0bCzBoQxHTSY
+C9KeToPfYDCFwiG5BKqj8+vLWSqH5jWBJf5h8ZJzEYifY0QJTuZDpEMVJ7qkaBLg
+7jJ3I2H3sr6S95bYz+azH9ypQYB4tQH9+RXoBvWOvcnSiW52iZBiBdA7N4X6AcNs
+l0IVPSA2dif29wAMWfOAOsgHSKmaWKeOhQsqZlYd0pcSMfFL35EZoSeheBQgly6L
++usuT/3PkhXr06G5fUKxi8nuM1qTnO52TJpX+XPduJ/Shc9tGZsI/YuXzjqAbXID
+iRDuh5YJ2dfIbOqAz1UglsBsOoTcahjwlkcf3clniS0iTq4VcMmrxv0hGrE+EKsb
+/i8SmNZxL6TbYxwzl8Xd3O/7CvzZhjtVWJcgK8cBecEXaRwwAUKPQHAC6K6Q9lmm
+5woEQ+QWvwEn5JbKXkLoQpcjrFcdC9MrIedvvwrGdm6FmW2D0UXQkWxQrE9pQDtA
+24V5gSI4yBqyVSNU4HS5Vva5bAjnyoxSGM6flqFFx+cInrC1YB6Xhp6hsi7gwlKP
+jhPSj6dYTgkCdS83ulNeQeuM5HE9mcEoeNtA8EK3J6s4KkGyA+4Gw0Jm
+-----END ENCRYPTED PRIVATE KEY-----
diff --git a/tests/cert-tests/data/openssl-3des.p8.txt b/tests/cert-tests/data/openssl-3des.p8.txt
new file mode 100644
index 0000000000..b2f20fa3bc
--- /dev/null
+++ b/tests/cert-tests/data/openssl-3des.p8.txt
@@ -0,0 +1,7 @@
+PKCS #8 information:
+ Cipher: 3DES-CBC
+ Schema: PBES2-3DES-CBC (1.2.840.113549.3.7)
+ Salt: ef831a6bbb25ed2c
+ Salt size: 8
+ Iteration count: 2048
+
diff --git a/tests/cert-tests/data/openssl-aes128.p8 b/tests/cert-tests/data/openssl-aes128.p8
new file mode 100644
index 0000000000..b138daa9d8
--- /dev/null
+++ b/tests/cert-tests/data/openssl-aes128.p8
@@ -0,0 +1,18 @@
+-----BEGIN ENCRYPTED PRIVATE KEY-----
+MIICzzBJBgkqhkiG9w0BBQ0wPDAbBgkqhkiG9w0BBQwwDgQIL+FZy8sFCGcCAggA
+MB0GCWCGSAFlAwQBAgQQNC7dlN7aA9H4Y+Prjc39dQSCAoCR4ka+Lp4AT9To4wlz
+4YEVcyRvhunU/kPLIxknIjDZv3FLBLNnEZA9cLH9yxYu8rGkwdFqyrurKo5s57YT
+cl7z8xnt/mZttn3muJXYyRs84qQEphbqQuKZZNVZitqawmE7A9UERsnFN1oxffQx
+v0hqwJc0qu8j1grTkY/HqvKSyR0aBwA9fGBS0imDnCyLVAjBSPBrENc4q61GwDu9
+jjJTu7kz3N7nHfnHjAiOvdmBcGKHiruPGiXAQROGmG2cT1N6cZdrYjYjZ6C0s993
+YXLcCBSkQraZPA5kYnOumHviDES/Bp5qG2LMkY8i6eirHbiSvA3G2w54AmwpeUEU
+0JRjtMCvbPw4cEshLCCKRhKXdjGDggCXZp1MJsVRU49aVc/j+WekQiLk6i23+dSR
+kiWqc8DR97IwPNMnDBvKvT3PBAspE+kZDXb5V+nozOyoiua298UwGkG/Xq2hbHqY
+8at6JG/vmf4OXN7XFUGFhHB/tToK1J31RZu9Woi9FC7n4u1pEfd4s5ciI+JheH6R
+cpyAxEnPx3SXoetGSXhbT/HhG4/JXq2EApamBLqdYmnFSFURGkzgEiENqAmOT9QV
+GlthuZOPGqVGPKXV02bmlBUSt3CoxM1zW0kUgjkKDiusF8Ycj8qdXiDPIEJ2N9mj
+X9zsneio14Qq+Rwq6slfqUci2aV9jjA9Nrm2V1J2cof0Jit1xedGbuqtRNup9nYF
+oGPvzubfl2KQ3jvSAqrvS5lj0FJErcey/3w+t7NBzn0aN/QDZUxnw9w+8QbZHxcC
+RGLmjrVPSunpuinB3nPOAey/6HxQ2ugZZuHX7EkgzUbIsG/ILuinCqZBPHRtIeHh
+Id06
+-----END ENCRYPTED PRIVATE KEY-----
diff --git a/tests/cert-tests/data/openssl-aes128.p8.txt b/tests/cert-tests/data/openssl-aes128.p8.txt
new file mode 100644
index 0000000000..a7fa89c477
--- /dev/null
+++ b/tests/cert-tests/data/openssl-aes128.p8.txt
@@ -0,0 +1,7 @@
+PKCS #8 information:
+ Cipher: AES-128-CBC
+ Schema: PBES2-AES128-CBC (2.16.840.1.101.3.4.1.2)
+ Salt: 2fe159cbcb050867
+ Salt size: 8
+ Iteration count: 2048
+
diff --git a/tests/cert-tests/data/openssl-aes256.p8 b/tests/cert-tests/data/openssl-aes256.p8
new file mode 100644
index 0000000000..73653954e3
--- /dev/null
+++ b/tests/cert-tests/data/openssl-aes256.p8
@@ -0,0 +1,18 @@
+-----BEGIN ENCRYPTED PRIVATE KEY-----
+MIICzzBJBgkqhkiG9w0BBQ0wPDAbBgkqhkiG9w0BBQwwDgQIiup1leqIYL0CAggA
+MB0GCWCGSAFlAwQBKgQQ7B20TiMFCbS9lAIOWDrz7gSCAoAxOlP1fSvar8ZuFlRG
+wuub8W9tOkTqUf79r2f2CR72N3o63yIxt1bjxBzF+w0hjLK+4O/Ph09NR9ml2cPo
+1AOXNfEzBDx0SYg04XTS9r96o+nQOZmMPbk1xBHmp3UU3FoAYdrBPSEOh73gN0IJ
+X72YVhNPGCZa7Aw9ngMZ4p8fMSeOghviOOUoUefr5k18ySHRzhJT947CFziF3qro
+w/O+Ze0DG6fbEQawb+5Knlk2fMxO8YldsO7cux0/fFOJ05snj4RCqI3ffPAUSE+A
+lx1aVRQDHzuZtaR1uMpIxrwoj2feu0X19TLXFQwRJcR7vQ5/2sWc1KaHOdlinfrC
+AIMWunqgS7O2Va4etY7NqqSzh28FeNAle4KGW2a4HEWgEhh2ASe/8eFTgl0MzWu4
+9bWL6SuL5TpaGJsxszp0ua6hazU33V3VSvYl1B4NNTQMB3G9dkASfocW3E6bu0Eh
+nXvw1utWZsnA3pxmsOwhipwP3yIwfyCuVcpkq15XNDDKOy3SvGNsurZW5xaj1cUs
+tqFtxjpKFcgniP16DV9st2HeeqpjOPTSUFgYAtJ+mORn+h1JgW7bh5AMr5h6Ol/7
+ewxUDHXH7uwMeESPE2TJa478Ayq0eSmcJKgVfzy2u1d2cNSaDGlj4B74HBaAc4j+
+MJ0ELepFKrbalIvicQNt+O1E0D9GoJVVMAnKzAFZd1s6tX5rZLOWeMIfHKeYjzQ/
+zIsKimsejvwgxfNe7IhsAjHQs9FaJ6Hq7FcMaV+vFaIcCt1SAdLJYA49qkYhE1Qf
+z2J64iP5TY5MJqbQ3X0fd5/cgRvoy8x2B58rDAF6F/5JTue+5vREd9qGjwA4KliR
++pQQ
+-----END ENCRYPTED PRIVATE KEY-----
diff --git a/tests/cert-tests/data/openssl-aes256.p8.txt b/tests/cert-tests/data/openssl-aes256.p8.txt
new file mode 100644
index 0000000000..5a1d3806f0
--- /dev/null
+++ b/tests/cert-tests/data/openssl-aes256.p8.txt
@@ -0,0 +1,7 @@
+PKCS #8 information:
+ Cipher: AES-256-CBC
+ Schema: PBES2-AES256-CBC (2.16.840.1.101.3.4.1.42)
+ Salt: 8aea7595ea8860bd
+ Salt size: 8
+ Iteration count: 2048
+
diff --git a/tests/cert-tests/data/openssl-key-ecc.p8 b/tests/cert-tests/data/openssl-key-ecc.p8
new file mode 100644
index 0000000000..4fc966f328
--- /dev/null
+++ b/tests/cert-tests/data/openssl-key-ecc.p8
@@ -0,0 +1,8 @@
+-----BEGIN PRIVATE KEY-----
+MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIBVy6SYAmhmSrS0E/0
+xhNiUAEFOz9dtEv0PTzP6H5aGBBBGOFi6304ubHZC95yWW/yXPPG9P81DLZFRePd
+JPNM3T+hgYkDgYYABAG3MNeg0jYQ0CNREIKTMo8v1AICBp25hpMK9UTFnUD6frEo
+jSfm1WR+ItaEDmP9pGOmIqOuSlBIIKGnMFj4Ye5MDACHdTwTV0K7uJ/Ls4j+yNKX
+8ATcC2dvM7+ihkHf/uZxP7N18bDVcfmJAJzZvu6/XiRI09XhXxd0fQ9RTh2IZeKz
+EQ==
+-----END PRIVATE KEY-----
diff --git a/tests/cert-tests/data/p8key-illegal.pem b/tests/cert-tests/data/p8key-illegal.pem
new file mode 100644
index 0000000000..a247c3c944
--- /dev/null
+++ b/tests/cert-tests/data/p8key-illegal.pem
@@ -0,0 +1,17 @@
+-----BEGIN ENCRYPTED PRIVATE KEY-----
+MIICojAcBgoqhkiG9w0BDAEDMA4ECDxZ1/EW+8XWAgIUYASCAoBR6R3Z341vSRvs
+/LMErKcKkAQ3THTZBpmYgR2mrJUjJBivzOuRTCRpgtjuQ4ht2Q7KV943mJXsqAFI
+Jly5fuVQ5YmRGLW+LE5sv+AGwmsii/PvGfGa9al56tHLDSeXV2VH4fly45bQ7ipr
+PZBiEgBToF/jqDFWleH2GTCnSLpc4B2cKkMO2c5RYrCCGNRK/jr1xVUDVzeiXZwE
+dbdDaV2UG/Oeo7F48UmvuWgS9YSFSUJ4fKG1KLlAQMKtAQKX+B4oL6Jbeb1jwSCX
+Q1H9hHXHTXbPGaIncPugotZNArwwrhesTszFE4NFMbg3QNKL1fabJJFIcOYIktwL
+7HG3pSiU2rqUZgS59OMJgL4jJm1lipo8ruNIl/YCpZTombOAV2Wbvq/I0SbRRXbX
+12lco8bQO1dgSkhhe58Vrs+ChaNajtNi8SjLS+Pi1tYYAVQjcQdxCGh4q8aZUhDv
+5yRp/TUOMaZqkY6YzRAlERb9jzVeh97EsOURzLu8pQgVjcNDOUAZF67KSqlSGMh7
+PdqknM/j8KaWmVMAUn4+PuWohkyjd1/1QhCnEtFZ1lbIfWrKXV76U7zyy0OTvFKw
+qemHUbryOJu0dQHziWmdtJpS7abSuhoMnrByZD+jDfQoSX7BzmdmCQGinltITYY1
+3iChqWC7jY02CiKZqTcdwkImvmDtDYOBr0uQSgBa4eh7nYmmcpdY4I6V5qAdo30w
+oXNEMqM53Syx36Fp70/Vmy0KmK8+2T4UgxGVJEgTDsEhiwJtTXxdzgxc5npbTePa
+abhFyIXIpqoUYZ9GPU8UjNEuF//wPY6klBp6VP0ixO6RqQKzbwr85EXbzoceBrLo
+eng1/Czj
+-----END ENCRYPTED PRIVATE KEY-----
diff --git a/tests/cert-tests/data/pkcs8-eddsa.pem b/tests/cert-tests/data/pkcs8-eddsa.pem
new file mode 100644
index 0000000000..e447080ae2
--- /dev/null
+++ b/tests/cert-tests/data/pkcs8-eddsa.pem
@@ -0,0 +1,3 @@
+-----BEGIN PRIVATE KEY-----
+MC4CAQAwBQYDK2VwBCIEINTuctv5E1hK1bbY8fdp+K06/nwoy/HU++CXqI9EdVhC
+-----END PRIVATE KEY-----
diff --git a/tests/cert-tests/data/pkcs8-eddsa.pem.txt b/tests/cert-tests/data/pkcs8-eddsa.pem.txt
new file mode 100644
index 0000000000..665124de2c
--- /dev/null
+++ b/tests/cert-tests/data/pkcs8-eddsa.pem.txt
@@ -0,0 +1,25 @@
+Public Key Info:
+ Public Key Algorithm: EdDSA (Ed25519)
+ Key Security Level: High (256 bits)
+
+curve: Ed25519
+private key:
+ d4:ee:72:db:f9:13:58:4a:d5:b6:d8:f1:f7:69:f8:ad
+ 3a:fe:7c:28:cb:f1:d4:fb:e0:97:a8:8f:44:75:58:42
+
+
+x:
+ 19:bf:44:09:69:84:cd:fe:85:41:ba:c1:67:dc:3b:96
+ c8:50:86:aa:30:b6:b6:cb:0c:5c:38:ad:70:31:66:e1
+
+
+
+Public Key PIN:
+ pin-sha256:oekVYFTgT6yJmunydRMs3Ael28TqLCrTof/G4NJTaB8=
+Public Key ID:
+ sha256:a1e9156054e04fac899ae9f275132cdc07a5dbc4ea2c2ad3a1ffc6e0d253681f
+ sha1:3a04967761a552db7e9e18c6dba4bd4aae119908
+
+-----BEGIN PRIVATE KEY-----
+MC4CAQAwBQYDK2VwBCIEINTuctv5E1hK1bbY8fdp+K06/nwoy/HU++CXqI9EdVhC
+-----END PRIVATE KEY-----
diff --git a/tests/cert-tests/data/pkcs8-invalid1.der b/tests/cert-tests/data/pkcs8-invalid1.der
new file mode 100644
index 0000000000..8d05984ddf
--- /dev/null
+++ b/tests/cert-tests/data/pkcs8-invalid1.der
Binary files differ
diff --git a/tests/cert-tests/data/pkcs8-invalid10.der b/tests/cert-tests/data/pkcs8-invalid10.der
new file mode 100644
index 0000000000..eb9c173eb0
--- /dev/null
+++ b/tests/cert-tests/data/pkcs8-invalid10.der
Binary files differ
diff --git a/tests/cert-tests/data/pkcs8-invalid11.der b/tests/cert-tests/data/pkcs8-invalid11.der
new file mode 100644
index 0000000000..7f4fda8df0
--- /dev/null
+++ b/tests/cert-tests/data/pkcs8-invalid11.der
Binary files differ
diff --git a/tests/cert-tests/data/pkcs8-invalid2.der b/tests/cert-tests/data/pkcs8-invalid2.der
new file mode 100644
index 0000000000..086a6613cb
--- /dev/null
+++ b/tests/cert-tests/data/pkcs8-invalid2.der
Binary files differ
diff --git a/tests/cert-tests/data/pkcs8-invalid3.der b/tests/cert-tests/data/pkcs8-invalid3.der
new file mode 100644
index 0000000000..39b821fe04
--- /dev/null
+++ b/tests/cert-tests/data/pkcs8-invalid3.der
Binary files differ
diff --git a/tests/cert-tests/data/pkcs8-invalid4.der b/tests/cert-tests/data/pkcs8-invalid4.der
new file mode 100644
index 0000000000..c8591a0b7c
--- /dev/null
+++ b/tests/cert-tests/data/pkcs8-invalid4.der
Binary files differ
diff --git a/tests/cert-tests/data/pkcs8-invalid5.der b/tests/cert-tests/data/pkcs8-invalid5.der
new file mode 100644
index 0000000000..3f234599f2
--- /dev/null
+++ b/tests/cert-tests/data/pkcs8-invalid5.der
Binary files differ
diff --git a/tests/cert-tests/data/pkcs8-invalid6.der b/tests/cert-tests/data/pkcs8-invalid6.der
new file mode 100644
index 0000000000..f1519feb84
--- /dev/null
+++ b/tests/cert-tests/data/pkcs8-invalid6.der
Binary files differ
diff --git a/tests/cert-tests/data/pkcs8-invalid7.der b/tests/cert-tests/data/pkcs8-invalid7.der
new file mode 100644
index 0000000000..85e1357962
--- /dev/null
+++ b/tests/cert-tests/data/pkcs8-invalid7.der
Binary files differ
diff --git a/tests/cert-tests/data/pkcs8-invalid8.der b/tests/cert-tests/data/pkcs8-invalid8.der
new file mode 100644
index 0000000000..4caa5281ed
--- /dev/null
+++ b/tests/cert-tests/data/pkcs8-invalid8.der
Binary files differ
diff --git a/tests/cert-tests/data/pkcs8-invalid9.der b/tests/cert-tests/data/pkcs8-invalid9.der
new file mode 100644
index 0000000000..ea3c772f0a
--- /dev/null
+++ b/tests/cert-tests/data/pkcs8-invalid9.der
Binary files differ
diff --git a/tests/cert-tests/data/pkcs8-pbes1-des-md5.pem b/tests/cert-tests/data/pkcs8-pbes1-des-md5.pem
new file mode 100644
index 0000000000..b37ea472fe
--- /dev/null
+++ b/tests/cert-tests/data/pkcs8-pbes1-des-md5.pem
@@ -0,0 +1,33 @@
+-----BEGIN ENCRYPTED PRIVATE KEY-----
+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
+-----END ENCRYPTED PRIVATE KEY-----
diff --git a/tests/cert-tests/data/pkcs8-pbes2-sha256.pem b/tests/cert-tests/data/pkcs8-pbes2-sha256.pem
new file mode 100644
index 0000000000..ba88d8eea3
--- /dev/null
+++ b/tests/cert-tests/data/pkcs8-pbes2-sha256.pem
@@ -0,0 +1,35 @@
+-----BEGIN ENCRYPTED PRIVATE KEY-----
+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
+1w==
+-----END ENCRYPTED PRIVATE KEY-----
diff --git a/tests/cert-tests/data/unencpkcs8.pem b/tests/cert-tests/data/unencpkcs8.pem
new file mode 100644
index 0000000000..794dfd7e7a
--- /dev/null
+++ b/tests/cert-tests/data/unencpkcs8.pem
@@ -0,0 +1,79 @@
+ 0 629: SEQUENCE {
+ 4 1: INTEGER 0
+ 7 11: SEQUENCE {
+ 9 9: OBJECT IDENTIFIER rsaEncryption (1 2 840 113549 1 1 1)
+ : }
+ 20 609: OCTET STRING, encapsulates {
+ 24 605: SEQUENCE {
+ 28 1: INTEGER 0
+ 31 129: INTEGER
+ : 00 BB 24 7A 09 7E 0E B2 37 32 CC 39 67 AD F1 9E
+ : 3D 6B 82 83 D1 D0 AC A4 C0 18 BE 8D 98 00 C0 7B
+ : FF 07 44 C9 CA 1C BA 36 E1 27 69 FF B1 E3 8D 8B
+ : EE 57 A9 3A AA 16 43 39 54 19 7C AE 69 24 14 F6
+ : 64 FF BC 74 C6 67 6C 4C F1 02 49 69 C7 2B E1 E1
+ : A1 A3 43 14 F4 77 8F C8 D0 85 5A 35 95 AC 62 A9
+ : C1 21 00 77 A0 8B 97 30 B4 5A 2C B8 90 2F 48 A0
+ : 05 28 4B F2 0F 8D EC 8B 4D 03 42 75 D6 AD 81 C0
+ : [ Another 1 bytes skipped ]
+ 163 3: INTEGER 65537
+ 168 128: INTEGER
+ : 00 FC B9 4A 26 07 89 51 2B 53 72 91 E0 18 3E A6
+ : 5E 31 EF 9C 0C 16 24 42 D0 28 33 F9 FA D0 3C 54
+ : 04 06 C0 15 F5 1B 9A B3 24 31 AB 3C 6B 47 43 B0
+ : D2 A9 DC 05 E1 81 59 B6 04 E9 66 61 AA D7 0B 00
+ : 8F 3D E5 BF A2 F8 5E 25 6C 1E 22 0F B4 FD 41 E2
+ : 03 31 5F DA 20 C5 C0 F3 55 0E E1 C9 EC D7 3E 2A
+ : 0C 01 CA 7B 22 CB AC F4 2B 27 F0 78 5F B5 C2 F9
+ : E8 14 5A 6E 7E 86 BD 6A 9B 20 0C BA CC 97 20 11
+ 299 65: INTEGER
+ : 00 C9 59 9F 29 8A 5B 9F E3 2A D8 7E C2 40 9F A8
+ : 45 E5 3E 11 8D 3C ED 6E AB CE D0 65 46 D8 C7 07
+ : 63 B5 23 34 F4 9F 7E 1C C7 C7 F9 65 D1 F4 04 42
+ : 38 BE 3A 0C 9D 08 25 FC A3 71 D9 AE 0C 39 61 F4
+ : 89
+ 366 65: INTEGER
+ : 00 ED EF AB A9 D5 39 9C EE 59 1B FF CF 48 44 1B
+ : B6 32 E7 46 24 F3 04 7F DE 95 08 6D 75 9E 67 17
+ : BA 5C A4 D4 E2 E2 4D 77 CE EB 66 29 C5 96 E0 62
+ : BB E5 AC DC 44 62 54 86 ED 64 0C CE D0 60 03 9D
+ : 49
+ 433 64: INTEGER
+ : 54 D9 18 72 27 E4 BE 76 BB 1A 6A 28 2F 95 58 12
+ : C4 2C A8 B6 CC E2 FD 0D 17 64 C8 18 D7 C6 DF 3D
+ : 4C 1A 9E F9 2A B0 B9 2E 12 FD EC C3 51 C1 ED A9
+ : FD B7 76 93 41 D8 C8 22 94 1A 77 F6 9C C3 C3 89
+ 499 65: INTEGER
+ : 00 8E F9 A7 08 AD B5 2A 04 DB 8D 04 A1 B5 06 20
+ : 34 D2 CF C0 89 B1 72 31 B8 39 8B CF E2 8E A5 DA
+ : 4F 45 1E 53 42 66 C4 30 4B 29 8E C1 69 17 29 8C
+ : 8A E6 0F 82 68 A1 41 B3 B6 70 99 75 A9 27 18 E4
+ : E9
+ 566 65: INTEGER
+ : 00 89 EA 6E 6D 70 DF 25 5F 18 3F 48 DA 63 10 8B
+ : FE A8 0C 94 0F DE 97 56 53 89 94 E2 1E 2C 74 3C
+ : 91 81 34 0B A6 40 F8 CB 2A 60 8C E0 02 B7 89 93
+ : CF 18 9F 49 54 FD 7D 3F 9A EF D4 A4 4F C1 45 99
+ : 91
+ : }
+ : }
+ : }
+
+0 warnings, 0 errors.
+
+-----BEGIN PRIVATE KEY-----
+MIICdQIBADALBgkqhkiG9w0BAQEEggJhMIICXQIBAAKBgQC7JHoJfg6yNzLMOWet
+8Z49a4KD0dCspMAYvo2YAMB7/wdEycocujbhJ2n/seONi+5XqTqqFkM5VBl8rmkk
+FPZk/7x0xmdsTPECSWnHK+HhoaNDFPR3j8jQhVo1laxiqcEhAHegi5cwtFosuJAv
+SKAFKEvyD43si00DQnXWrYHAEQIDAQABAoGAAPy5SiYHiVErU3KR4Bg+pl4x75wM
+FiRC0Cgz+frQPFQEBsAV9RuasyQxqzxrR0Ow0qncBeGBWbYE6WZhqtcLAI895b+i
++F4lbB4iD7T9QeIDMV/aIMXA81UO4cns1z4qDAHKeyLLrPQrJ/B4X7XC+egUWm5+
+hr1qmyAMusyXIBECQQDJWZ8piluf4yrYfsJAn6hF5T4RjTztbqvO0GVG2McHY7Uj
+NPSffhzHx/ll0fQEQji+OgydCCX8o3HZrgw5YfSJAkEA7e+rqdU5nO5ZG//PSEQb
+tjLnRiTzBH/elQhtdZ5nF7pcpNTi4k13zutmKcWW4GK75azcRGJUhu1kDM7QYAOd
+SQJAVNkYcifkvna7GmooL5VYEsQsqLbM4v0NF2TIGNfG3z1MGp75KrC5LhL97MNR
+we2p/bd2k0HYyCKUGnf2nMPDiQJBAI75pwittSoE240EobUGIDTSz8CJsXIxuDmL
+z+KOpdpPRR5TQmbEMEspjsFpFymMiuYPgmihQbO2cJl1qScY5OkCQQCJ6m5tcN8l
+Xxg/SNpjEIv+qAyUD96XVlOJlOIeLHQ8kYE0C6ZA+MsqYIzgAreJk88Yn0lU/X0/
+mu/UpE/BRZmR
+-----END PRIVATE KEY-----