From f8e551cf088bff08de95132ed40d5850f8547fef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A5rten=20Nordheim?= Date: Thu, 1 Feb 2018 16:25:49 +0100 Subject: [PATCH] Fix loading pkcs#8 encrypted DER-encoded keys in openssl When we load DER-encoded keys in the openssl-backend we always turn it into PEM-encoded keys (essentially we prepend and append a header and footer and use 'toBase64' on the DER data). The problem comes from the header and footer which is simply chosen based on which key algorithm was chosen by the user. Which would be wrong when the key is a PKCS#8 key. This caused OpenSSL to fail when trying to read it. Surprisingly it still loads correctly for unencrypted keys with the wrong header, but not for encrypted keys. This patch adds a small function which checks if a key is an encrypted PKCS#8 key and then uses this function to figure out if a PKCS#8 header and footer should be used (note that I only do this for encrypted PKCS#8 keys since, as previously mentioned, unencrypted keys are read correctly by openssl). The passphrase is now also passed to the QSslKeyPrivate::decodeDer function so DER-encoded files can actually be decrypted. [ChangeLog][QtNetwork][QSslKey] The openssl backend can now load encrypted PKCS#8 DER-encoded keys. Task-number: QTBUG-17718 Change-Id: I52eedf19bde297c9aa7fb050e835b3fc0db724e2 Reviewed-by: Edward Welbourne --- src/network/ssl/qasn1element_p.h | 25 ++++- src/network/ssl/qsslkey_openssl.cpp | 4 +- src/network/ssl/qsslkey_p.cpp | 92 +++++++++++++++--- src/network/ssl/qsslkey_p.h | 7 +- src/network/ssl/qsslkey_qt.cpp | 5 +- .../keys/dsa-pri-512-pkcs8-PBE-MD5-DES.der | Bin 0 -> 243 bytes .../keys/dsa-pri-512-pkcs8-PBE-MD5-DES.pem | 8 ++ .../keys/dsa-pri-512-pkcs8-PBE-MD5-RC2-64.der | Bin 0 -> 243 bytes .../keys/dsa-pri-512-pkcs8-PBE-MD5-RC2-64.pem | 8 ++ .../keys/dsa-pri-512-pkcs8-PBE-SHA1-DES.der | Bin 0 -> 243 bytes .../keys/dsa-pri-512-pkcs8-PBE-SHA1-DES.pem | 8 ++ .../dsa-pri-512-pkcs8-PBE-SHA1-RC2-64.der | Bin 0 -> 243 bytes .../dsa-pri-512-pkcs8-PBE-SHA1-RC2-64.pem | 8 ++ .../dsa-pri-512-pkcs8-aes128-hmacWithSHA1.der | Bin 0 -> 290 bytes .../dsa-pri-512-pkcs8-aes128-hmacWithSHA1.pem | 9 ++ ...sa-pri-512-pkcs8-aes128-hmacWithSHA256.der | Bin 0 -> 304 bytes ...sa-pri-512-pkcs8-aes128-hmacWithSHA256.pem | 9 ++ .../dsa-pri-512-pkcs8-aes256-hmacWithSHA1.der | Bin 0 -> 290 bytes .../dsa-pri-512-pkcs8-aes256-hmacWithSHA1.pem | 9 ++ ...sa-pri-512-pkcs8-aes256-hmacWithSHA256.der | Bin 0 -> 304 bytes ...sa-pri-512-pkcs8-aes256-hmacWithSHA256.pem | 9 ++ .../dsa-pri-512-pkcs8-des3-hmacWithSHA1.der | Bin 0 -> 281 bytes .../dsa-pri-512-pkcs8-des3-hmacWithSHA1.pem | 8 ++ .../dsa-pri-512-pkcs8-des3-hmacWithSHA256.der | Bin 0 -> 295 bytes .../dsa-pri-512-pkcs8-des3-hmacWithSHA256.pem | 9 ++ ...dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-2DES.der | Bin 0 -> 244 bytes ...dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-2DES.pem | 8 ++ ...dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-3DES.der | Bin 0 -> 244 bytes ...dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-3DES.pem | 8 ++ ...-pri-512-pkcs8-pkcs12-PBE-SHA1-RC2-128.der | Bin 0 -> 244 bytes ...-pri-512-pkcs8-pkcs12-PBE-SHA1-RC2-128.pem | 8 ++ ...a-pri-512-pkcs8-pkcs12-PBE-SHA1-RC2-40.der | Bin 0 -> 244 bytes ...a-pri-512-pkcs8-pkcs12-PBE-SHA1-RC2-40.pem | 8 ++ ...-pri-512-pkcs8-pkcs12-PBE-SHA1-RC4-128.der | Bin 0 -> 237 bytes ...-pri-512-pkcs8-pkcs12-PBE-SHA1-RC4-128.pem | 7 ++ ...a-pri-512-pkcs8-pkcs12-PBE-SHA1-RC4-40.der | Bin 0 -> 237 bytes ...a-pri-512-pkcs8-pkcs12-PBE-SHA1-RC4-40.pem | 7 ++ .../dsa-pri-512-pkcs8-rc2-hmacWithSHA1.der | Bin 0 -> 289 bytes .../dsa-pri-512-pkcs8-rc2-hmacWithSHA1.pem | 9 ++ .../dsa-pri-512-pkcs8-rc2-hmacWithSHA256.der | Bin 0 -> 303 bytes .../dsa-pri-512-pkcs8-rc2-hmacWithSHA256.pem | 9 ++ .../ssl/qsslkey/keys/dsa-pri-512-pkcs8.der | Bin 0 -> 201 bytes .../ssl/qsslkey/keys/dsa-pri-512-pkcs8.pem | 7 ++ ...ec-pri-224-secp224r1-pkcs8-PBE-MD5-DES.der | Bin 0 -> 163 bytes ...ec-pri-224-secp224r1-pkcs8-PBE-MD5-DES.pem | 6 ++ ...pri-224-secp224r1-pkcs8-PBE-MD5-RC2-64.der | Bin 0 -> 163 bytes ...pri-224-secp224r1-pkcs8-PBE-MD5-RC2-64.pem | 6 ++ ...c-pri-224-secp224r1-pkcs8-PBE-SHA1-DES.der | Bin 0 -> 163 bytes ...c-pri-224-secp224r1-pkcs8-PBE-SHA1-DES.pem | 6 ++ ...ri-224-secp224r1-pkcs8-PBE-SHA1-RC2-64.der | Bin 0 -> 163 bytes ...ri-224-secp224r1-pkcs8-PBE-SHA1-RC2-64.pem | 6 ++ ...24-secp224r1-pkcs8-aes128-hmacWithSHA1.der | Bin 0 -> 209 bytes ...24-secp224r1-pkcs8-aes128-hmacWithSHA1.pem | 7 ++ ...-secp224r1-pkcs8-aes128-hmacWithSHA256.der | Bin 0 -> 223 bytes ...-secp224r1-pkcs8-aes128-hmacWithSHA256.pem | 7 ++ ...24-secp224r1-pkcs8-aes256-hmacWithSHA1.der | Bin 0 -> 209 bytes ...24-secp224r1-pkcs8-aes256-hmacWithSHA1.pem | 7 ++ ...-secp224r1-pkcs8-aes256-hmacWithSHA256.der | Bin 0 -> 223 bytes ...-secp224r1-pkcs8-aes256-hmacWithSHA256.pem | 7 ++ ...-224-secp224r1-pkcs8-des3-hmacWithSHA1.der | Bin 0 -> 200 bytes ...-224-secp224r1-pkcs8-des3-hmacWithSHA1.pem | 7 ++ ...24-secp224r1-pkcs8-des3-hmacWithSHA256.der | Bin 0 -> 214 bytes ...24-secp224r1-pkcs8-des3-hmacWithSHA256.pem | 7 ++ ...4-secp224r1-pkcs8-pkcs12-PBE-SHA1-2DES.der | Bin 0 -> 164 bytes ...4-secp224r1-pkcs8-pkcs12-PBE-SHA1-2DES.pem | 6 ++ ...4-secp224r1-pkcs8-pkcs12-PBE-SHA1-3DES.der | Bin 0 -> 164 bytes ...4-secp224r1-pkcs8-pkcs12-PBE-SHA1-3DES.pem | 6 ++ ...ecp224r1-pkcs8-pkcs12-PBE-SHA1-RC2-128.der | Bin 0 -> 164 bytes ...ecp224r1-pkcs8-pkcs12-PBE-SHA1-RC2-128.pem | 6 ++ ...secp224r1-pkcs8-pkcs12-PBE-SHA1-RC2-40.der | Bin 0 -> 164 bytes ...secp224r1-pkcs8-pkcs12-PBE-SHA1-RC2-40.pem | 6 ++ ...ecp224r1-pkcs8-pkcs12-PBE-SHA1-RC4-128.der | Bin 0 -> 157 bytes ...ecp224r1-pkcs8-pkcs12-PBE-SHA1-RC4-128.pem | 6 ++ ...secp224r1-pkcs8-pkcs12-PBE-SHA1-RC4-40.der | Bin 0 -> 157 bytes ...secp224r1-pkcs8-pkcs12-PBE-SHA1-RC4-40.pem | 6 ++ ...i-224-secp224r1-pkcs8-rc2-hmacWithSHA1.der | Bin 0 -> 208 bytes ...i-224-secp224r1-pkcs8-rc2-hmacWithSHA1.pem | 7 ++ ...224-secp224r1-pkcs8-rc2-hmacWithSHA256.der | Bin 0 -> 222 bytes ...224-secp224r1-pkcs8-rc2-hmacWithSHA256.pem | 7 ++ .../keys/ec-pri-224-secp224r1-pkcs8.der | Bin 0 -> 122 bytes .../keys/ec-pri-224-secp224r1-pkcs8.pem | 5 + .../auto/network/ssl/qsslkey/keys/genkeys.sh | 55 +++++++++++ .../keys/rsa-pri-512-pkcs8-PBE-MD5-DES.der | Bin 0 -> 389 bytes .../keys/rsa-pri-512-pkcs8-PBE-MD5-DES.pem | 11 +++ .../keys/rsa-pri-512-pkcs8-PBE-MD5-RC2-64.der | Bin 0 -> 389 bytes .../keys/rsa-pri-512-pkcs8-PBE-MD5-RC2-64.pem | 11 +++ .../keys/rsa-pri-512-pkcs8-PBE-SHA1-DES.der | Bin 0 -> 389 bytes .../keys/rsa-pri-512-pkcs8-PBE-SHA1-DES.pem | 11 +++ .../rsa-pri-512-pkcs8-PBE-SHA1-RC2-64.der | Bin 0 -> 389 bytes .../rsa-pri-512-pkcs8-PBE-SHA1-RC2-64.pem | 11 +++ .../rsa-pri-512-pkcs8-aes128-hmacWithSHA1.der | Bin 0 -> 435 bytes .../rsa-pri-512-pkcs8-aes128-hmacWithSHA1.pem | 12 +++ ...sa-pri-512-pkcs8-aes128-hmacWithSHA256.der | Bin 0 -> 449 bytes ...sa-pri-512-pkcs8-aes128-hmacWithSHA256.pem | 12 +++ .../rsa-pri-512-pkcs8-aes256-hmacWithSHA1.der | Bin 0 -> 435 bytes .../rsa-pri-512-pkcs8-aes256-hmacWithSHA1.pem | 12 +++ ...sa-pri-512-pkcs8-aes256-hmacWithSHA256.der | Bin 0 -> 449 bytes ...sa-pri-512-pkcs8-aes256-hmacWithSHA256.pem | 12 +++ .../rsa-pri-512-pkcs8-des3-hmacWithSHA1.der | Bin 0 -> 426 bytes .../rsa-pri-512-pkcs8-des3-hmacWithSHA1.pem | 11 +++ .../rsa-pri-512-pkcs8-des3-hmacWithSHA256.der | Bin 0 -> 440 bytes .../rsa-pri-512-pkcs8-des3-hmacWithSHA256.pem | 12 +++ ...rsa-pri-512-pkcs8-pkcs12-PBE-SHA1-2DES.der | Bin 0 -> 390 bytes ...rsa-pri-512-pkcs8-pkcs12-PBE-SHA1-2DES.pem | 11 +++ ...rsa-pri-512-pkcs8-pkcs12-PBE-SHA1-3DES.der | Bin 0 -> 390 bytes ...rsa-pri-512-pkcs8-pkcs12-PBE-SHA1-3DES.pem | 11 +++ ...-pri-512-pkcs8-pkcs12-PBE-SHA1-RC2-128.der | Bin 0 -> 390 bytes ...-pri-512-pkcs8-pkcs12-PBE-SHA1-RC2-128.pem | 11 +++ ...a-pri-512-pkcs8-pkcs12-PBE-SHA1-RC2-40.der | Bin 0 -> 390 bytes ...a-pri-512-pkcs8-pkcs12-PBE-SHA1-RC2-40.pem | 11 +++ ...-pri-512-pkcs8-pkcs12-PBE-SHA1-RC4-128.der | Bin 0 -> 384 bytes ...-pri-512-pkcs8-pkcs12-PBE-SHA1-RC4-128.pem | 10 ++ ...a-pri-512-pkcs8-pkcs12-PBE-SHA1-RC4-40.der | Bin 0 -> 384 bytes ...a-pri-512-pkcs8-pkcs12-PBE-SHA1-RC4-40.pem | 10 ++ .../rsa-pri-512-pkcs8-rc2-hmacWithSHA1.der | Bin 0 -> 426 bytes .../rsa-pri-512-pkcs8-rc2-hmacWithSHA1.pem | 11 +++ .../rsa-pri-512-pkcs8-rc2-hmacWithSHA256.der | Bin 0 -> 440 bytes .../rsa-pri-512-pkcs8-rc2-hmacWithSHA256.pem | 12 +++ .../ssl/qsslkey/keys/rsa-pri-512-pkcs8.der | Bin 0 -> 345 bytes .../ssl/qsslkey/keys/rsa-pri-512-pkcs8.pem | 10 ++ .../auto/network/ssl/qsslkey/tst_qsslkey.cpp | 43 ++++++-- 121 files changed, 692 insertions(+), 28 deletions(-) create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-PBE-MD5-DES.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-PBE-MD5-DES.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-PBE-MD5-RC2-64.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-PBE-MD5-RC2-64.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-PBE-SHA1-DES.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-PBE-SHA1-DES.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-PBE-SHA1-RC2-64.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-PBE-SHA1-RC2-64.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-aes128-hmacWithSHA1.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-aes128-hmacWithSHA1.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-aes128-hmacWithSHA256.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-aes128-hmacWithSHA256.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-aes256-hmacWithSHA1.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-aes256-hmacWithSHA1.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-aes256-hmacWithSHA256.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-aes256-hmacWithSHA256.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-des3-hmacWithSHA1.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-des3-hmacWithSHA1.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-des3-hmacWithSHA256.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-des3-hmacWithSHA256.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-2DES.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-2DES.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-3DES.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-3DES.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC2-128.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC2-128.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC2-40.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC2-40.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC4-128.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC4-128.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC4-40.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC4-40.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-rc2-hmacWithSHA1.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-rc2-hmacWithSHA1.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-rc2-hmacWithSHA256.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-rc2-hmacWithSHA256.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-PBE-MD5-DES.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-PBE-MD5-DES.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-PBE-MD5-RC2-64.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-PBE-MD5-RC2-64.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-PBE-SHA1-DES.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-PBE-SHA1-DES.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-PBE-SHA1-RC2-64.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-PBE-SHA1-RC2-64.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-aes128-hmacWithSHA1.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-aes128-hmacWithSHA1.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-aes128-hmacWithSHA256.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-aes128-hmacWithSHA256.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-aes256-hmacWithSHA1.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-aes256-hmacWithSHA1.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-aes256-hmacWithSHA256.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-aes256-hmacWithSHA256.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-des3-hmacWithSHA1.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-des3-hmacWithSHA1.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-des3-hmacWithSHA256.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-des3-hmacWithSHA256.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-pkcs12-PBE-SHA1-2DES.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-pkcs12-PBE-SHA1-2DES.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-pkcs12-PBE-SHA1-3DES.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-pkcs12-PBE-SHA1-3DES.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-pkcs12-PBE-SHA1-RC2-128.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-pkcs12-PBE-SHA1-RC2-128.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-pkcs12-PBE-SHA1-RC2-40.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-pkcs12-PBE-SHA1-RC2-40.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-pkcs12-PBE-SHA1-RC4-128.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-pkcs12-PBE-SHA1-RC4-128.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-pkcs12-PBE-SHA1-RC4-40.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-pkcs12-PBE-SHA1-RC4-40.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-rc2-hmacWithSHA1.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-rc2-hmacWithSHA1.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-rc2-hmacWithSHA256.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-rc2-hmacWithSHA256.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-PBE-MD5-DES.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-PBE-MD5-DES.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-PBE-MD5-RC2-64.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-PBE-MD5-RC2-64.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-PBE-SHA1-DES.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-PBE-SHA1-DES.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-PBE-SHA1-RC2-64.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-PBE-SHA1-RC2-64.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-aes128-hmacWithSHA1.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-aes128-hmacWithSHA1.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-aes128-hmacWithSHA256.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-aes128-hmacWithSHA256.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-aes256-hmacWithSHA1.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-aes256-hmacWithSHA1.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-aes256-hmacWithSHA256.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-aes256-hmacWithSHA256.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-des3-hmacWithSHA1.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-des3-hmacWithSHA1.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-des3-hmacWithSHA256.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-des3-hmacWithSHA256.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-pkcs12-PBE-SHA1-2DES.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-pkcs12-PBE-SHA1-2DES.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-pkcs12-PBE-SHA1-3DES.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-pkcs12-PBE-SHA1-3DES.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC2-128.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC2-128.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC2-40.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC2-40.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC4-128.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC4-128.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC4-40.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC4-40.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-rc2-hmacWithSHA1.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-rc2-hmacWithSHA1.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-rc2-hmacWithSHA256.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-rc2-hmacWithSHA256.pem create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8.der create mode 100644 tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8.pem diff --git a/src/network/ssl/qasn1element_p.h b/src/network/ssl/qasn1element_p.h index 2c5019b4f7..c706c1f321 100644 --- a/src/network/ssl/qasn1element_p.h +++ b/src/network/ssl/qasn1element_p.h @@ -58,10 +58,33 @@ QT_BEGIN_NAMESPACE -#define RSA_ENCRYPTION_OID QByteArrayLiteral("1.2.840.113549.1.1.1") +// General +#define RSADSI_OID "1.2.840.113549." + +#define RSA_ENCRYPTION_OID QByteArrayLiteral(RSADSI_OID "1.1.1") #define DSA_ENCRYPTION_OID QByteArrayLiteral("1.2.840.10040.4.1") #define EC_ENCRYPTION_OID QByteArrayLiteral("1.2.840.10045.2.1") +// These are mostly from the RFC for PKCS#5 +// PKCS#5: https://tools.ietf.org/html/rfc8018#appendix-B +#define PKCS5_OID RSADSI_OID "1.5." +// PKCS#12: https://tools.ietf.org/html/rfc7292#appendix-D) +#define PKCS12_OID RSADSI_OID "1.12." + +// -PBES1 +#define PKCS5_MD2_DES_CBC_OID QByteArrayLiteral(PKCS5_OID "1") +#define PKCS5_MD2_RC2_CBC_OID QByteArrayLiteral(PKCS5_OID "4") +#define PKCS5_MD5_DES_CBC_OID QByteArrayLiteral(PKCS5_OID "3") +#define PKCS5_MD5_RC2_CBC_OID QByteArrayLiteral(PKCS5_OID "6") +#define PKCS5_SHA1_DES_CBC_OID QByteArrayLiteral(PKCS5_OID "10") +#define PKCS5_SHA1_RC2_CBC_OID QByteArrayLiteral(PKCS5_OID "11") + +// -PBKDF2 +#define PKCS5_PBKDF2_ENCRYPTION_OID QByteArrayLiteral(PKCS5_OID "12") + +// -PBES2 +#define PKCS5_PBES2_ENCRYPTION_OID QByteArrayLiteral(PKCS5_OID "13") + class Q_AUTOTEST_EXPORT QAsn1Element { public: diff --git a/src/network/ssl/qsslkey_openssl.cpp b/src/network/ssl/qsslkey_openssl.cpp index aa81b735b9..7c77f5a910 100644 --- a/src/network/ssl/qsslkey_openssl.cpp +++ b/src/network/ssl/qsslkey_openssl.cpp @@ -125,10 +125,10 @@ bool QSslKeyPrivate::fromEVP_PKEY(EVP_PKEY *pkey) return false; } -void QSslKeyPrivate::decodeDer(const QByteArray &der, bool deepClear) +void QSslKeyPrivate::decodeDer(const QByteArray &der, const QByteArray &passPhrase, bool deepClear) { QMap headers; - decodePem(pemFromDer(der, headers), QByteArray(), deepClear); + decodePem(pemFromDer(der, headers), passPhrase, deepClear); } void QSslKeyPrivate::decodePem(const QByteArray &pem, const QByteArray &passPhrase, diff --git a/src/network/ssl/qsslkey_p.cpp b/src/network/ssl/qsslkey_p.cpp index e66ec953a0..2957633348 100644 --- a/src/network/ssl/qsslkey_p.cpp +++ b/src/network/ssl/qsslkey_p.cpp @@ -61,6 +61,7 @@ #endif #include "qsslsocket.h" #include "qsslsocket_p.h" +#include "qasn1element_p.h" #include #include @@ -120,6 +121,13 @@ QByteArray QSslKeyPrivate::pemHeader() const return QByteArray(); } +static QByteArray pkcs8Header(bool encrypted) +{ + return encrypted + ? QByteArrayLiteral("-----BEGIN ENCRYPTED PRIVATE KEY-----") + : QByteArrayLiteral("-----BEGIN PRIVATE KEY-----"); +} + /*! \internal */ @@ -138,6 +146,13 @@ QByteArray QSslKeyPrivate::pemFooter() const return QByteArray(); } +static QByteArray pkcs8Footer(bool encrypted) +{ + return encrypted + ? QByteArrayLiteral("-----END ENCRYPTED PRIVATE KEY-----") + : QByteArrayLiteral("-----END PRIVATE KEY-----"); +} + /*! \internal @@ -166,8 +181,14 @@ QByteArray QSslKeyPrivate::pemFromDer(const QByteArray &der, const QMap *headers) const { - const QByteArray header = pemHeader(); - const QByteArray footer = pemFooter(); + QByteArray header = pemHeader(); + QByteArray footer = pemFooter(); QByteArray der(pem); - const int headerIndex = der.indexOf(header); - const int footerIndex = der.indexOf(footer); + int headerIndex = der.indexOf(header); + int footerIndex = der.indexOf(footer, headerIndex + header.length()); + if (type != QSsl::PublicKey) { + if (headerIndex == -1 || footerIndex == -1) { + header = pkcs8Header(true); + footer = pkcs8Footer(true); + headerIndex = der.indexOf(header); + footerIndex = der.indexOf(footer, headerIndex + header.length()); + } + if (headerIndex == -1 || footerIndex == -1) { + header = pkcs8Header(false); + footer = pkcs8Footer(false); + headerIndex = der.indexOf(header); + footerIndex = der.indexOf(footer, headerIndex + header.length()); + } + } if (headerIndex == -1 || footerIndex == -1) return QByteArray(); @@ -225,13 +260,47 @@ QByteArray QSslKeyPrivate::derFromPem(const QByteArray &pem, QMap pbes1OIds { + // PKCS5 + {PKCS5_MD2_DES_CBC_OID}, + {PKCS5_MD2_RC2_CBC_OID}, + {PKCS5_MD5_DES_CBC_OID}, + {PKCS5_MD5_RC2_CBC_OID}, + {PKCS5_SHA1_DES_CBC_OID}, + {PKCS5_SHA1_RC2_CBC_OID}, + }; + QAsn1Element elem; + if (!elem.read(der) || elem.type() != QAsn1Element::SequenceType) + return false; + + const QVector items = elem.toVector(); + if (items.size() != 2 + || items[0].type() != QAsn1Element::SequenceType + || items[1].type() != QAsn1Element::OctetStringType) { + return false; + } + + const QVector encryptionSchemeContainer = items[0].toVector(); + if (encryptionSchemeContainer.size() != 2 + || encryptionSchemeContainer[0].type() != QAsn1Element::ObjectIdentifierType + || encryptionSchemeContainer[1].type() != QAsn1Element::SequenceType) { + return false; + } + + const QByteArray encryptionScheme = encryptionSchemeContainer[0].toObjectId(); + return encryptionScheme == PKCS5_PBES2_ENCRYPTION_OID + || pbes1OIds.contains(encryptionScheme) + || encryptionScheme.startsWith(PKCS12_OID); +} + /*! Constructs a QSslKey by decoding the string in the byte array \a encoded using a specified \a algorithm and \a encoding format. \a type specifies whether the key is public or private. - If the key is encoded as PEM and encrypted, \a passPhrase is used - to decrypt it. + If the key is encrypted then \a passPhrase is used to decrypt it. After construction, use isNull() to check if \a encoded contained a valid key. @@ -243,7 +312,7 @@ QSslKey::QSslKey(const QByteArray &encoded, QSsl::KeyAlgorithm algorithm, d->type = type; d->algorithm = algorithm; if (encoding == QSsl::Der) - d->decodeDer(encoded); + d->decodeDer(encoded, passPhrase); else d->decodePem(encoded, passPhrase); } @@ -253,8 +322,7 @@ QSslKey::QSslKey(const QByteArray &encoded, QSsl::KeyAlgorithm algorithm, \a device using a specified \a algorithm and \a encoding format. \a type specifies whether the key is public or private. - If the key is encoded as PEM and encrypted, \a passPhrase is used - to decrypt it. + If the key is encrypted then \a passPhrase is used to decrypt it. After construction, use isNull() to check if \a device provided a valid key. @@ -269,7 +337,7 @@ QSslKey::QSslKey(QIODevice *device, QSsl::KeyAlgorithm algorithm, QSsl::Encoding d->type = type; d->algorithm = algorithm; if (encoding == QSsl::Der) - d->decodeDer(encoded); + d->decodeDer(encoded, passPhrase); else d->decodePem(encoded, passPhrase); } diff --git a/src/network/ssl/qsslkey_p.h b/src/network/ssl/qsslkey_p.h index c93941c198..d6c5af9d47 100644 --- a/src/network/ssl/qsslkey_p.h +++ b/src/network/ssl/qsslkey_p.h @@ -81,9 +81,8 @@ public: #ifndef QT_NO_OPENSSL bool fromEVP_PKEY(EVP_PKEY *pkey); #endif - void decodeDer(const QByteArray &der, bool deepClear = true); - void decodePem(const QByteArray &pem, const QByteArray &passPhrase, - bool deepClear = true); + void decodeDer(const QByteArray &der, const QByteArray &passPhrase = {}, bool deepClear = true); + void decodePem(const QByteArray &pem, const QByteArray &passPhrase, bool deepClear = true); QByteArray pemHeader() const; QByteArray pemFooter() const; QByteArray pemFromDer(const QByteArray &der, const QMap &headers) const; @@ -93,6 +92,8 @@ public: QByteArray toPem(const QByteArray &passPhrase) const; Qt::HANDLE handle() const; + bool isEncryptedPkcs8(const QByteArray &der) const; + bool isNull; QSsl::KeyType type; QSsl::KeyAlgorithm algorithm; diff --git a/src/network/ssl/qsslkey_qt.cpp b/src/network/ssl/qsslkey_qt.cpp index a85fed21ed..0e7702bbeb 100644 --- a/src/network/ssl/qsslkey_qt.cpp +++ b/src/network/ssl/qsslkey_qt.cpp @@ -154,8 +154,9 @@ void QSslKeyPrivate::clear(bool deep) keyLength = -1; } -void QSslKeyPrivate::decodeDer(const QByteArray &der, bool deepClear) +void QSslKeyPrivate::decodeDer(const QByteArray &der, const QByteArray &passPhrase, bool deepClear) { + Q_UNUSED(passPhrase); clear(deepClear); if (der.isEmpty()) @@ -272,7 +273,7 @@ void QSslKeyPrivate::decodePem(const QByteArray &pem, const QByteArray &passPhra const QByteArray key = deriveKey(cipher, passPhrase, iv); data = decrypt(cipher, data, key, iv); } - decodeDer(data, deepClear); + decodeDer(data, passPhrase, deepClear); } int QSslKeyPrivate::length() const diff --git a/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-PBE-MD5-DES.der b/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-PBE-MD5-DES.der new file mode 100644 index 0000000000000000000000000000000000000000..e70bde58206b819a6b6d031e8f34b84063759db4 GIT binary patch literal 243 zcmVyf$%UJ1_>&LNQU|IU*0tf&EfzY_N>Q=g4k2aTN z&&6wBM|k3|fVuTe1Dl1b>_sZW&~MK>$!ezCiI!U#+zdpT=}>M>a!L_+oO7$}OAmvK zgIkp>ql$<_Lq;>GY0!zP2@c`HlRJ%tRDr@eD!jAH7~vVV+_K&fc)16BUhZg@D>lY2 z7QX0YN{3T1nJ&F*jfE_-qQWF~Or>ZOk9PdlW_KTW0(E#{CPtxNu5kIZy`AhoP*+7A tcQ+t&awH(q=X|$6H%{eIlE4^C9L2-)5A%f`*kzR}jn>2WDYerHhT^PPaMAz( literal 0 HcmV?d00001 diff --git a/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-PBE-MD5-DES.pem b/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-PBE-MD5-DES.pem new file mode 100644 index 0000000000..fd62743d94 --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-PBE-MD5-DES.pem @@ -0,0 +1,8 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIHwMBsGCSqGSIb3DQEFAzAOBAiBYHv8jvBwMQICCAAEgdCwfamafrN1nvpdnF5t +KCPgBvRGfV9zStK+XItBAe72CZdAy1Jjr2UJHc8Rl3OEo2hmCr+892/lhK7GIugj +oLOvON3VEqrUvrvmH0Qtm+/A/ypq14Lr4sBfq7bViM44bv/DUwHMD5/xmLtSzXlC +AjjioBJ/k4K+6DzD3+eMDNr6Z9rCUcvJP6q8+PPhpIXEJquA3RYuyuDhdIbazO5A +iMts7PbzBzW/4YhENPWaUdviuRZo/ap+WDJ/SdwiNxOxx7KrWgj3y2dAtNnVAv5T +njE4 +-----END ENCRYPTED PRIVATE KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-PBE-MD5-RC2-64.der b/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-PBE-MD5-RC2-64.der new file mode 100644 index 0000000000000000000000000000000000000000..40bbe6a441511eed35d9fb74df1c693ae332ca94 GIT binary patch literal 243 zcmVyf$%UJ1_>&LNQUppYV;^BuxKTRe?D9tTRuUm0M=O&NjKV^EEQ#Y@(e#F$ot7tsitS! tUrz*CoTG=SrwBkyElMAdH}!PjWwqU9YICXRCAf~wq@--R#IA-ubF^APXf6N% literal 0 HcmV?d00001 diff --git a/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-PBE-MD5-RC2-64.pem b/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-PBE-MD5-RC2-64.pem new file mode 100644 index 0000000000..6a8a8484e0 --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-PBE-MD5-RC2-64.pem @@ -0,0 +1,8 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIHwMBsGCSqGSIb3DQEFBjAOBAga2K6FvYk1ygICCAAEgdCV9m57p+DrBrVafXUq +8pgdr+1FEX9YaFXNRMKyPZ5Ca6t5RsPpWC3RdGlieH4iVp03/rlTttx0rLUWx3IG +gsrd2adrP6Bl/lbEJnZ6lIeZz2KvPbbhfmRMCIhr/h24JSi5lmGl5KzxQXSm9ujb +/5jtN/QtoQ3cLWpNn1SwMNdIAYgEpnCghwqITbBwMovD8yd2YNbNbejG/T+q6bwl +GJE46OSX+IAWQ/wJejdq//ozD3m2PxjK6nktWeqAeoqcycYGYGKvta27lNqyuE3M +BdGT +-----END ENCRYPTED PRIVATE KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-PBE-SHA1-DES.der b/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-PBE-SHA1-DES.der new file mode 100644 index 0000000000000000000000000000000000000000..6ebe9c40113ded31f2629189f3239200d3cd0ba9 GIT binary patch literal 243 zcmVyf$%UJ1_>&LNQURub)iW8(4>W|-+gOCuF65|?t!QYBb-(cVMO+%LDridL}$KsOPY(#np}MX6(BGI zA;@ob!U+|OyW%tpX%ANAT&B?YgKt0AQegHgnWD2mn`6wdNTr{v(UvpLJb1RQC~zoh tB+S^U%W-6^l`w6WtSpO2cUe7VoxO}7P6N!OV87E*W@+oS(Mk_}^ZDJYa*O}~ literal 0 HcmV?d00001 diff --git a/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-PBE-SHA1-DES.pem b/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-PBE-SHA1-DES.pem new file mode 100644 index 0000000000..3422931606 --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-PBE-SHA1-DES.pem @@ -0,0 +1,8 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIHwMBsGCSqGSIb3DQEFCjAOBAjj2EIj8WAOWwICCAAEgdB4G1oLnLtLAGaZtpGb +vU2g4g3pJtQLJX1H0a/cmXO1OrX7YRcESvw8nocZjNKKWCehfQqinRBpVUsoaGUw +QssIDKlWkW3LbM11F6YMI5GCzN5bpWcJazQRyHEnIk/OTQN3aeKjnYQXep1nt7tN +INKsCAVyx1cYfr3izxGRwN2hTraz5fBdeBpEye+Essn5KziwET32EbW+kt+wsule +k4tvnKgCOvbvVzqIdafH/FfP04KRv39O+HR3evoBjhGudUxXJ0OLp8IZkG+34f3P +ZQxC +-----END ENCRYPTED PRIVATE KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-PBE-SHA1-RC2-64.der b/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-PBE-SHA1-RC2-64.der new file mode 100644 index 0000000000000000000000000000000000000000..c8ae94c4f8553c8e288cc18969b68f6f07252fd5 GIT binary patch literal 243 zcmVyf$%UJ1_>&LNQUqUwh8;37O~v()Mmcu!Wlj th54QBKu0;8sRZPvPtFSvD;q6`bRrU^2Hj-VhW1B^qlzJSRQ#*_*h+01afko_ literal 0 HcmV?d00001 diff --git a/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-PBE-SHA1-RC2-64.pem b/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-PBE-SHA1-RC2-64.pem new file mode 100644 index 0000000000..93857f010b --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-PBE-SHA1-RC2-64.pem @@ -0,0 +1,8 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIHwMBsGCSqGSIb3DQEFCzAOBAgrv/kKBXNFAwICCAAEgdAFpWxMmQygufWZpeAI +heJ3uqyb5bnahW75t2HWQZTb1qEqp62/iLr1IlbHmZAQbJc0+VLhXz/2QtK3q/BB +bHpa9cWGFi2HVgO4dFjSI7X68QrM93GPGHqwtnVZnlo2aPHgA6BzotEEwklXl4Db +BbPKo0vBUVA9ZKaN0lH+Pzj/Rb37kC6xRWBjNd87jaszykcNFYkTNrrG8nESHJAw +fTeHwrsGsmIz8FfOxRfqXrPwOiA5AZZ/S/8Jt2gtoOW5ydY6/Bfp0aEwAIhwxjFJ +cy6N +-----END ENCRYPTED PRIVATE KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-aes128-hmacWithSHA1.der b/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-aes128-hmacWithSHA1.der new file mode 100644 index 0000000000000000000000000000000000000000..2c2caa06651438e9606dc430dad23785314f69fe GIT binary patch literal 290 zcmV+-0p0#Ef&m^dNd^fjhDe6@4FLrWFg!3D1_>&LNQU&4g?4_#6}+thDZTr0|WsA1Q1K$kIWZ&+oUxmZLkh|%l`y{(8JjF(VxB_3L$v*8U>(3 zXgOn$$y?xhc`kI=5CWY(@mrK^_oOKoQAyQHD%}FDkFD|*;0A|IfF9;MWKy~zywxX= z(TldvP&LNQU&4g?689y9Cdk^RsD z0tf&w9R>+thDZTr0|Wso1Q2&L?rLZHjjX?kZ{b`tlLiEV(38%&L$!U~6(eo7-oS#~ z3;{F9fOC09>VzordvtkA7PG`7t&m3v@@z?NC>$a}pXT-(mj+nYJOn|xcM}}H?GpEk zR@7Nd@0_E7MMJ3IN}_UpG|&D!#3bVIo3Vd9zrE%bo?*LTqlW4&5uiHnL%A+IobbI8h5JsUNzzdNzw(>=8ZTb$$;6n^Jx3d%gD-W;Ao(U;PM#AuyC9)vlULAbDfomiG#s_hm8ZGmWh*< z!9WDYV`gXJ_~~-nsn^cvJWJz+*`Iz-tZ{Ct5S2ZdwPTy((`YrzniBKEqHu1# z5H;xser#9rf6Vt?uzd3#%Rq~YPqJ^!EwbzK+iyA5DYxgl2Q&P<<>0bi)-~LEPea0* i`BlPCue46mo^$=+#0fV}S-OdaDxdqoZ8LLAqaXkXQF!_Q literal 0 HcmV?d00001 diff --git a/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-des3-hmacWithSHA256.pem b/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-des3-hmacWithSHA256.pem new file mode 100644 index 0000000000..f33f0dc4c4 --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-des3-hmacWithSHA256.pem @@ -0,0 +1,9 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIIBIzBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQI584onGZg/sMCAggA +MAwGCCqGSIb3DQIJBQAwFAYIKoZIhvcNAwcECMEvKBdjD2B+BIHQlCNsdhKhN8ce +l73RzS4AUNbPamaLPV+l+vy8F4jjziCux0RwS/83ju/XlD/TntSYH4RYx/2vNHo5 +/YVGinOSTHZD7BqHHOxTjMqlVY4uFU2oJcGQ2VIsbVuPiL78Tq6XcuaIy5ElXjte +g/qa8y9/cJM9wm6O1XMfIIL6AboBdbVloStvij3HOOOOlZp6161+QlmADdo2yJJ2 +byP7SoC4I6fLDrKZub8+AEcPFCjvLZ6a9HmCF8aw/rvVqOZ91YJOxgsPYYmOXJtG +sYzN48y81w== +-----END ENCRYPTED PRIVATE KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-2DES.der b/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-2DES.der new file mode 100644 index 0000000000000000000000000000000000000000..f195c03e3bc43bd1250ebd3ddfeb52a47c50fc4b GIT binary patch literal 244 zcmVC+mkcgzt zsI6Bx24dwcZi7or@Jm(f2noC|=6!R#qPLpvQ=vIzDlrq?pHB@iH7r92uNTY2czo#9 zOW>b42;K-y^FT6{@@`bO{OxA-poGFY$BP}Y4i(oI-?Xbcx45oq;uSE8G4G~Z%+&$W zRXM=YAa8aBpV5TY@;OJ{_Fj<9MR1NB^(e$r3~^6*7UV}C;mp}zSO6-q$O02QohjOg ud&&iT$F8LNO4bI%*-WYuEwU!o>5XSud^DlAAY1TL%A7ix>7;e4I=LysbaIUV literal 0 HcmV?d00001 diff --git a/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-2DES.pem b/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-2DES.pem new file mode 100644 index 0000000000..d317c53836 --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-2DES.pem @@ -0,0 +1,8 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIHxMBwGCiqGSIb3DQEMAQQwDgQIcCYglgSeP+sCAggABIHQXnZlcc/CDvsT/3aQ +o2E6AgnJgaq6P2l41yQ6BuomXRSI+KoP+nYWC2fAtb/URgdoNstrflNjTGysSdyl +CU7A1FnrQkoSvvLElcy25/ttuH9LE4adbhCiKgv2NQXXY/2Lzeeq1e3iqLg7/5wx +7B2XmgQvMV3EHN1uJWVDKuevOOJ5ULKYONELDaicrlm8IumdhWMvp3ypUrHe6hSD +i2YYZf8eXfCY0NIRFeXluEgK4MFz/iEkl7aYpNDSA9F7Uk6TC3IRQu3yFs0GR37b +4fDtpg== +-----END ENCRYPTED PRIVATE KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-3DES.der b/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-3DES.der new file mode 100644 index 0000000000000000000000000000000000000000..96b54c3f5dde8eee7706ca5f8285704ffe591c8e GIT binary patch literal 244 zcmV_d~>`Tu|i;;-QTjF$B(oIs1{{W}H(yV?~XjpE}6_4m&NMFF(;Ndq+`E z!z}kqYOOe7oDes_JO~v!8>9XeCjZY?vHDrG)U6d>ux+?>bX8=iLnR3*r@(kJV|1qE zmknqNQtJZJdNak{Nsct7S_nX%)6GQ1nOgQxZYN;9wi9tFnyzbxEvDJen!^VZOuZO- u7Rt{>KK+v6{p-aV0E01|Vu_a;qTO_Y=1s8^`7zYL20dU)xi7|!TXRAAzHaRR literal 0 HcmV?d00001 diff --git a/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-3DES.pem b/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-3DES.pem new file mode 100644 index 0000000000..2fe8300613 --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-3DES.pem @@ -0,0 +1,8 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIHxMBwGCiqGSIb3DQEMAQMwDgQIwZ3Xa+/tptsCAggABIHQmdPeV+Zd96TBIGM+ +kYRNqxckxWbVWE8EBWzJOwjlvrOxhVi3hbSl4QM3cMyNFv0ssyuJiXGQQ7+6/dkp +UxPWigaSJkemDMtDTQNpHcK/4Ekao+PlAvzgi6wG0lUfL4ioSiEqrE5DlcdfctdR +Nj9mF4u0rekPWthXhfHcmDxQKSORDi8gYfyQUaV59niKQGIYMsVz4Bu2fwrrTLFn +NjzyHhYsva2GLAfEWNB13/VtIv4gJaB5mZpzLf81VWe52rR7rZWb3R/rWEz9FFQm +vrgagw== +-----END ENCRYPTED PRIVATE KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC2-128.der b/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC2-128.der new file mode 100644 index 0000000000000000000000000000000000000000..7fd85f55db3352d42b2b31a8fc446b9a6f23b38e GIT binary patch literal 244 zcmV%sKL(BX}Y*jT;%o+begyS?bzl8taW0TtZ) zXs{B;4Q>nzO7SgUck^+f7-b?0qXwAAmkpOO!I+&kOp0UMW%aXaScvmtTR|&hBAXN_ zS6JD(*;F0+*pJ-FFY=i)p2&j;a$1*8D*dNz5#KI3k_u8|W+^O?geUuN ui43N@{TGxPYL59Itv}81rmWC}9za+%FBbhv+8!licN0HJ4Xs(FGk%-(gl}d5 literal 0 HcmV?d00001 diff --git a/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC2-128.pem b/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC2-128.pem new file mode 100644 index 0000000000..e9faf30e61 --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC2-128.pem @@ -0,0 +1,8 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIHxMBwGCiqGSIb3DQEMAQUwDgQIMLBXkL2mR68CAggABIHQkquhoK6Ep0EtnjC7 +V2FbRzYrFSvOakBOGuU6U6p+JeStbTRp4gLQ9hY/8xG7l0GrzM8dlcrO5QnI9Ypk +zw6a/9FTE+ROpQYGiRjnhdegRguIn6aaCdejfu5s4g09kz/Y6saM1LBkA/hby0m9 +YWB8IFg+/B8qLScjnhn7UOBm4HAW/UywXGH7IFH87ml1g87xlDu88GhcP8iqenco +TrfPCQDoa+C0EBLV8yTR5aG66kK6BrWXNkyZgUiuhUF1TYmZhZDaiUJ4Er4gMlgA +C8o6qw== +-----END ENCRYPTED PRIVATE KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC2-40.der b/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC2-40.der new file mode 100644 index 0000000000000000000000000000000000000000..c0d8b9bb3fb821319225e7db99e4968658029811 GIT binary patch literal 244 zcmV_3RjFG39xI9_t1qh*r u)9sIQMLE_v97Xo3I6vUNpT8&|F6DBqXMJJ~#bAyH<#WbV@)~@#T%={l-fXKIzloQx-zw%uIiMbwCNH0UUEq=4V6X7cSW zSLu>`x8WONBm~scfB0X}vTUI literal 0 HcmV?d00001 diff --git a/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC4-128.pem b/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC4-128.pem new file mode 100644 index 0000000000..29da203ac1 --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC4-128.pem @@ -0,0 +1,7 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIHqMBwGCiqGSIb3DQEMAQEwDgQIS1fq1s4wBy4CAggABIHJsEjsk3aow+m3DXPe +1KCnwl0qXzzh96JCrtAa+2pWytp52+mZphUgnNXYkIoj0rdqJbr1y4/3t73ffVFG +TU/4401k2QTSKo2mObTxY811fnWImBbNG3BJVmoq8zvJuHrctfVQuKBQb9UFA7RF +E5WrYwkNXfRxgSsuUgtMvklHyxeAjxdZ0vWennUuPkJIa4XQhIY5gqMiume8dCGl +mDujTHUPhBjRKifaGQv2hvc8l7FgjUlUY1DcZIl0AapzF3jEXS/Se90FOE2M +-----END ENCRYPTED PRIVATE KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC4-40.der b/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC4-40.der new file mode 100644 index 0000000000000000000000000000000000000000..f185d58b513debaff74fcd8899b1e28c1874b2dd GIT binary patch literal 237 zcmVA?;Y2) zSPQ(HjU^(28tUH9`LTzIQ0k}csENb;4kJ&|yjVW-8dbaA5BAXvJ$uS zhU410JZhoKT5B1}M6?vIxzC(o7NdPy=NEjjClyKr~L literal 0 HcmV?d00001 diff --git a/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC4-40.pem b/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC4-40.pem new file mode 100644 index 0000000000..3dd08fd969 --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC4-40.pem @@ -0,0 +1,7 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIHqMBwGCiqGSIb3DQEMAQIwDgQICCPn/nJOcwECAggABIHJY1EqBsfnKkOsytQR +ujblH/MciuYQ5PIkhS+rfEyYvNaQAM4ELbZjBOhqhPxpWgV/nwzl5lbjGHGaBojp +uH6Tm9L/J/DUVXt5U6i0bmuJ3vUQL9t8WlLwWKEUbszMOJfzgn+q7pr2AViOwcgA +kL9JD3fTL7KspScIvYo8JD5YomwzDTMyhJFtkvKpjDtBsBkZxvmDRtBnjYYDAvie +ICGKQ5ojeZD2p2v69ra9bhAOXi/wz+AMotLVWa8myrOb7B+X/b0xEnoOqxKL +-----END ENCRYPTED PRIVATE KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-rc2-hmacWithSHA1.der b/tests/auto/network/ssl/qsslkey/keys/dsa-pri-512-pkcs8-rc2-hmacWithSHA1.der new file mode 100644 index 0000000000000000000000000000000000000000..a3d1fa4c9bd9a31332c261006d2e89a6604760d7 GIT binary patch literal 289 zcmXqLVw5%TVB^$k^Jx3d%gD-WU~M3W;PMyW+N_~&rN}g-1LaRhiigPo1 zzCN6Oz)@cK-8D~zZ2}zUeF_dA+jfW}Te;ljXDxsATW9a7KX=wm73_GYex>8coYmVE z1FKejP3n(kca36n^Jx3d%gD-W;AxRHoP4PUTZ`h~fPx zyX1e({B?rPNux^zg=u**CW>)JQk7xzEPBn$>XSJ1_mvV+m2khXS3=Z&uh(T3Knb zG~o%3s+_OturQ6fW1wP_wCbU+Nj(aQcBBbN5HNMSYxw+U<|#tKXP;dj~U5 rXPV04jEZ%$05E~51_vsJNX|F}0Wg7_0zm-t8`4<$Sbdv3)}TUFuUka43rv|_ zW>YTD4A!snxNIOg`z+IMHA&N#kNnu_6N4#A&LNQU<^8d=(+iw;b$*1Wt6xw-s**tr? RZ`6uJ5(K%Wi|a4(V2O2^NF@LO literal 0 HcmV?d00001 diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-PBE-MD5-DES.pem b/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-PBE-MD5-DES.pem new file mode 100644 index 0000000000..91874a9b29 --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-PBE-MD5-DES.pem @@ -0,0 +1,6 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIGgMBsGCSqGSIb3DQEFAzAOBAihGk2iurZE8wICCAAEgYCaneaK9dlMsDGD11jl +F5etfmvAbUbpzVmooM4ORHweCnP/DiwJVyQ02dU3PlB0teLCG6DyJCl6CaOhZjRc +cDE4fYIBBVtLlcqwr8oc73DWi3azJ+/KdkuUQyHZEkzNo9Thi1owDI6XMlWbFZwd +wSlfuk9AghDAN8/n3iMu87veSQ== +-----END ENCRYPTED PRIVATE KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-PBE-MD5-RC2-64.der b/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-PBE-MD5-RC2-64.der new file mode 100644 index 0000000000000000000000000000000000000000..14bb01d10d3f39067809f14847e845f0933919b6 GIT binary patch literal 163 zcmV;U09^ktfuJxO1_>&LNQUW2uW~cm1y&gC+_rWh&LNQUCmTY+df4~=22 zzp##e#iv7)cdBE{AFtnzM6I{QxOx0|R;1DaH(ze3lORy4K&elq&cpH{r3yX?ob%L{ z#2y|d#>J=i;Vzr{{wbDL&3^=hHA`YMg^*l)OW1$A=32b1QY2Kw@NPD}FviH^d2F|} RdfjW=oX4;^fnxDZMt66RO`HG# literal 0 HcmV?d00001 diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-PBE-SHA1-DES.pem b/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-PBE-SHA1-DES.pem new file mode 100644 index 0000000000..1f737d9803 --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-PBE-SHA1-DES.pem @@ -0,0 +1,6 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIGgMBsGCSqGSIb3DQEFCjAOBAjruvWW+JZt7wICCAAEgYAgvrADpBoAMNrS8uYX +9FTnHUsGr5Sg3e2ueEwMUGsnGliJJTa58r9634RffN6uyB8jBihCdQw5iBbzLkC2 +ltEVcOR8pNQvprGXX4X/jwOY4RhyKrb89YdZ2BZ4orzY5cL+6nGYQKEm3WlrXW+a +Ncq6UvRpVmHqQ0OW+zuCbi5/nA== +-----END ENCRYPTED PRIVATE KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-PBE-SHA1-RC2-64.der b/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-PBE-SHA1-RC2-64.der new file mode 100644 index 0000000000000000000000000000000000000000..a06790a2544e06646578610b1959f8b869378f7f GIT binary patch literal 163 zcmV;U09^ktfuJxO1_>&LNQUI!aum!nex0tf&Efq+uN|CK=}oXMv? z_MxDnERnwOtozuL)jBEfi5Agay!T?!b20=C>53%z!Zl}lS@e<-bx>5}bjr(r(VT`n zi7YUNWAt#dTY$Oqmv?R4u3+l-(8LFIJIMWJigRFothuRdm?b^pm Rq9I?f@SzZi3lVPad4_*k@P%UyUwbZXo5X)Egn>EApm+!O zO=*sRKO$Fu7@u0|!^(3yiF;}#i`(hh-;WnY=2YC7c1!yBa(|IXnOM!WQ-VGvI%)dmjBiX#91I3LY#b1^Oq{F? z2C{6N32h#Xsmv^lOe_NIPu44xhV6RCH`B1@*sAWIER789- z_<_narza)m@gLpq{O|ud>`Y*;Shx7ZMW00R>*XyE SROVfM7;s{XS#gjxOX0kLkSbe^kE4NL&d3%@Q3xTYMWvz*OA2dH8&&KKcq;+dIm_^8Fja>wnG5~a&i7p>ebu9+|at?T(p!O^XU2E;;6V TnPoQY literal 0 HcmV?d00001 diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-aes256-hmacWithSHA256.pem b/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-aes256-hmacWithSHA256.pem new file mode 100644 index 0000000000..90ab751415 --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-aes256-hmacWithSHA256.pem @@ -0,0 +1,7 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIHcMFcGCSqGSIb3DQEFDTBKMCkGCSqGSIb3DQEFDDAcBAg+0vyp4rA5hgICCAAw +DAYIKoZIhvcNAgkFADAdBglghkgBZQMEASoEEDlKgIIcdKfiQcsZLfQt97cEgYAD +TrjldhQKT8SjAnmChT/knsUeJzThLxKpdpRwbr8qYTZbCmngbb2oYBkrNzAwGoVM ++cj+6p3EgP7T/zjJYj7EArRvs7FM0spxqre2bQY3GG5E3PDGyR/h4nwdVTzorqNw +/35Dtl8ifbnVI4SCwTtifnCDsz9TjIXszixrCm354g== +-----END ENCRYPTED PRIVATE KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-des3-hmacWithSHA1.der b/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-des3-hmacWithSHA1.der new file mode 100644 index 0000000000000000000000000000000000000000..669cb1f9cc142b900420a54e0b5d110c691fa89b GIT binary patch literal 200 zcmXqLJZj*;#;Mij(e|B}k(JlL*gzV=_M4}#=@TyhUcL4w)#!+to literal 0 HcmV?d00001 diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-des3-hmacWithSHA1.pem b/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-des3-hmacWithSHA1.pem new file mode 100644 index 0000000000..233dd94a18 --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-des3-hmacWithSHA1.pem @@ -0,0 +1,7 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIHFMEAGCSqGSIb3DQEFDTAzMBsGCSqGSIb3DQEFDDAOBAjU9TMJNWzzUAICCAAw +FAYIKoZIhvcNAwcECEd8I4R+1rlZBIGABNupNKmIR5j2lAyQAbDjXX2PtpOGH0+k +KXnS7i6rmseQFjwDiF+xMefhj9ZamEgypDjyWaYz/EwV7dP0dUzZuQpzGsN/JLZS +i1IhRV9sVABs4SbCn/KZsy8bLW/7/3e5qloRkXskB6dR4nVrq4kz1qMmQVO+9Ojo +Td+SUeCdhd0= +-----END ENCRYPTED PRIVATE KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-des3-hmacWithSHA256.der b/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-des3-hmacWithSHA256.der new file mode 100644 index 0000000000000000000000000000000000000000..9f444d635063156a2de9ea2d2eedab6dad6bedae GIT binary patch literal 214 zcmXqLylmjd#;Mij(e|B}k(JlL(LfWyOJhT5)}!y=kDb((_TP6<+@yJ8(>K9eXM+3L($_IwuiGDy z?HhJ*N+GO{~A~DZeISY?4a~Z-MWj00@W;jepyp(o_2m*?)b`VMnT@B+jRg8 Cq*yxu literal 0 HcmV?d00001 diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-des3-hmacWithSHA256.pem b/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-des3-hmacWithSHA256.pem new file mode 100644 index 0000000000..29f17933bd --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-des3-hmacWithSHA256.pem @@ -0,0 +1,7 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIHTME4GCSqGSIb3DQEFDTBBMCkGCSqGSIb3DQEFDDAcBAgf2AMm0URGvQICCAAw +DAYIKoZIhvcNAgkFADAUBggqhkiG9w0DBwQI/4fa6rbvznsEgYBImRLhwGbEgcLm ++yHcsohX1uQyqPfP8PVHGtM6ITaAJ16djxQKfXRoffS4DSTnhFgHnXm42V7epgJO +ZHRe0dVbKynbp1ZCnNIXsvsgyP4ghfw70j2u+45fiBK2ZqhVaQns/1t02eIa7Kud +308ffy9xR8xbCV9H1hu978sWDPRgmA== +-----END ENCRYPTED PRIVATE KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-pkcs12-PBE-SHA1-2DES.der b/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-pkcs12-PBE-SHA1-2DES.der new file mode 100644 index 0000000000000000000000000000000000000000..e7939899c8b7a0ef3ece03efd5a51812ffa0e597 GIT binary patch literal 164 zcmV;V09*esfuS%Q1_~;MNQUcP=IG+@1v9XA9_u7M2$Nu=1+` zDK0Wu>C&ACN+{!mt~*dM5Kb;rnT%c%yOPP?c)o)tpqM|FQu4I#mn)JynRha&z;MVB S4VfAIsU%e7d7uA8Ei-?gVMX}> literal 0 HcmV?d00001 diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-pkcs12-PBE-SHA1-RC2-128.pem b/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-pkcs12-PBE-SHA1-RC2-128.pem new file mode 100644 index 0000000000..fdddcfb02c --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-pkcs12-PBE-SHA1-RC2-128.pem @@ -0,0 +1,6 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIGhMBwGCiqGSIb3DQEMAQUwDgQIBOJoKaHoCH8CAggABIGA5ekhEhokinZUh8Su +FU9XT9TmpJI6+uSUnV6dCI5F7jxUC4BKYUDLQ/wjassasP/z7NYgIUFXiSsx8+u9 +rIOd83qJly/QL3MI8HA/gwrUOK1mcQCdHM7WcDxgTDfA8iXvE7ipxkqWWh+vjWVg +QIBy+Mik4f8m6qRJtHvkn1+QVUQ= +-----END ENCRYPTED PRIVATE KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-pkcs12-PBE-SHA1-RC2-40.der b/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-pkcs12-PBE-SHA1-RC2-40.der new file mode 100644 index 0000000000000000000000000000000000000000..f8a47e112796c76938acb7413e5e9eff80b62fae GIT binary patch literal 164 zcmV;V09*esfuS%Q1_~;MNQU9Dh; SW!R2}POM#7tSHRedD=_c^GO8& literal 0 HcmV?d00001 diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-pkcs12-PBE-SHA1-RC2-40.pem b/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-pkcs12-PBE-SHA1-RC2-40.pem new file mode 100644 index 0000000000..368b1d9fd7 --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-pkcs12-PBE-SHA1-RC2-40.pem @@ -0,0 +1,6 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIGhMBwGCiqGSIb3DQEMAQYwDgQIYoqh4a7jy44CAggABIGAhOjw9xEXhMSaBJM6 +Opu29QK4+h7/RJJ+NcrzFBPV5p6t0bjqONRxdq8LwXA5nimlUq3ZbRqjhu0BCKh5 ++jvfjs0R9qD2cAv3QXjk6eh2YEx+wuDbc50SSL1Y826sLD06V4KThrQwfaLHE7r1 +mjx5N5Jg5rPFdTGe4umThyGlGPo= +-----END ENCRYPTED PRIVATE KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-pkcs12-PBE-SHA1-RC4-128.der b/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-pkcs12-PBE-SHA1-RC4-128.der new file mode 100644 index 0000000000000000000000000000000000000000..a2e71ed488b3fdf1b402921022426cea6b0a8ae2 GIT binary patch literal 157 zcmV;O0Al|zftoNJ1_~;MNQU=#;Mij(e|B}k(JlL+CUD$a$t(0?LntpY{ zG#eeQJE4bPSlHVc8_)EzQeOA%#j3a^UcM@;R+;ZUCh$0G`PZYS6-zH4a%Ni~dTr_H L^ZwZfSJVLj>E>4? literal 0 HcmV?d00001 diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-rc2-hmacWithSHA256.pem b/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-rc2-hmacWithSHA256.pem new file mode 100644 index 0000000000..67931bbbac --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8-rc2-hmacWithSHA256.pem @@ -0,0 +1,7 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIHbMFYGCSqGSIb3DQEFDTBJMCwGCSqGSIb3DQEFDDAfBAhdjCzod22WFQICCAAC +ARAwDAYIKoZIhvcNAgkFADAZBggqhkiG9w0DAjANAgE6BAj2j6TpIIho6QSBgK4/ +Kgspc57C+rWNbf3c0+o/bJ7ga3tTfq0iw8TYqZ8jV9+FZGjS4NVvh9EK8+L6f2w1 +NuyiGbKfsq7Lf1O1dlHNu2TagxYAWbJUwzoy0uUkfpRnfe5M/dl/l5Gx0cR4y9SH +yKOhuX3YxUvOtkwxEb6iyNg8vaq0yRG/1F5O2jI3 +-----END ENCRYPTED PRIVATE KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8.der b/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8.der new file mode 100644 index 0000000000000000000000000000000000000000..c8e51cc01b8e3d9790b61f0715bf9c03760937aa GIT binary patch literal 122 zcmV-=0EPcBcme?cFc1a@DuzhTJpus+1uKCB03ifnFkb=z0R$YRZ9;&ZwH1#>b7xf- zs)X~)mnWykR456Y#Z&{KJOera1ja~m7wwuZcHy$;I1>m#+bXE+;xWXap7;WhT*VnD c;|ZF|w|B**Ur4CF(mrUGL4AQ80b;jGM^xZ0F8}}l literal 0 HcmV?d00001 diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8.pem b/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8.pem new file mode 100644 index 0000000000..741f007304 --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1-pkcs8.pem @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MHgCAQAwEAYHKoZIzj0CAQYFK4EEACEEYTBfAgEBBBxr31AB6pNVnFUfX9rNKpZc +Ps+RbUj5PYdpHLtIoTwDOgAEg7Qj4reRDs3ot/r/rp2orzU/g07BIYsZCsLLrf8j +8wq50FHUIdwDRZEfpfGBPBXGgd/9DS9T7hU= +-----END PRIVATE KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/genkeys.sh b/tests/auto/network/ssl/qsslkey/keys/genkeys.sh index 7fb15e91ee..6210b42ab4 100755 --- a/tests/auto/network/ssl/qsslkey/keys/genkeys.sh +++ b/tests/auto/network/ssl/qsslkey/keys/genkeys.sh @@ -87,3 +87,58 @@ do echo -e "\ngenerating EC public key to DER file ..." openssl ec -in ec-pri-$size-$curve.pem -pubout -out ec-pub-$size-$curve.der -outform DER done + +#--- PKCS#8 ------------------------------------------------------------------------ +# Note: We'll just grab some of the keys generated earlier and convert those +# https://www.openssl.org/docs/manmaster/man1/pkcs8.html#PKCS-5-v1.5-and-PKCS-12-algorithms +echo -e "\ngenerating unencrypted PKCS#8-format RSA PEM file ..." +openssl pkcs8 -topk8 -nocrypt -in rsa-pri-512.pem -out rsa-pri-512-pkcs8.pem +echo -e "\ngenerating unencrypted PKCS#8-format RSA DER file ..." +openssl pkcs8 -topk8 -nocrypt -in rsa-pri-512.pem -outform DER -out rsa-pri-512-pkcs8.der + +echo -e "\ngenerating unencrypted PKCS#8-format DSA PEM file ..." +openssl pkcs8 -topk8 -nocrypt -in dsa-pri-512.pem -out dsa-pri-512-pkcs8.pem +echo -e "\ngenerating unencrypted PKCS#8-format DSA DER file ..." +openssl pkcs8 -topk8 -nocrypt -in dsa-pri-512.pem -outform DER -out dsa-pri-512-pkcs8.der + +echo -e "\ngenerating unencrypted PKCS#8-format EC PEM file ..." +openssl pkcs8 -topk8 -nocrypt -in ec-pri-224-secp224r1.pem -out ec-pri-224-secp224r1-pkcs8.pem +echo -e "\ngenerating unencrypted PKCS#8-format EC DER file ..." +openssl pkcs8 -topk8 -nocrypt -in ec-pri-224-secp224r1.pem -outform DER -out ec-pri-224-secp224r1-pkcs8.der + +for pkey in rsa-pri-512 dsa-pri-512 ec-pri-224-secp224r1 +do + pkeystem=`echo "$pkey" | cut -d- -f 1` + # List: https://www.openssl.org/docs/manmaster/man1/pkcs8.html#PKCS-5-v1.5-and-PKCS-12-algorithms + # These are technically supported, but fail to generate. Probably because MD2 is deprecated/removed + # PBE-MD2-DES PBE-MD2-RC2-64 + for algorithm in PBE-MD5-DES PBE-SHA1-RC2-64 PBE-MD5-RC2-64 PBE-SHA1-DES + do + echo -e "\ngenerating encrypted PKCS#8-format (v1) PEM-encoded $pkeystem key using $algorithm ..." + openssl pkcs8 -topk8 -in $pkey.pem -v1 $algorithm -out $pkey-pkcs8-$algorithm.pem -passout pass:1234 + + echo -e "\ngenerating encrypted PKCS#8-format (v1) DER-encoded $pkeystem key using $algorithm ..." + openssl pkcs8 -topk8 -in $pkey.pem -v1 $algorithm -outform DER -out $pkey-pkcs8-$algorithm.der -passout pass:1234 + done + + for algorithm in PBE-SHA1-RC4-128 PBE-SHA1-RC4-40 PBE-SHA1-3DES PBE-SHA1-2DES PBE-SHA1-RC2-128 PBE-SHA1-RC2-40 + do + echo -e "\ngenerating encrypted PKCS#8-format (v1 PKCS#12) PEM-encoded $pkeystem key using $algorithm ..." + openssl pkcs8 -topk8 -in $pkey.pem -v1 $algorithm -out $pkey-pkcs8-pkcs12-$algorithm.pem -passout pass:1234 + + echo -e "\ngenerating encrypted PKCS#8-format (v1 PKCS#12) DER-encoded $pkeystem key using $algorithm ..." + openssl pkcs8 -topk8 -in $pkey.pem -v1 $algorithm -outform DER -out $pkey-pkcs8-pkcs12-$algorithm.der -passout pass:1234 + done + + for algorithm in des3 aes128 aes256 rc2 + do + for prf in hmacWithSHA1 hmacWithSHA256 + do + echo -e "\ngenerating encrypted PKCS#8-format (v2) PEM-encoded $pkeystem key using $algorithm and $prf ..." + openssl pkcs8 -topk8 -in $pkey.pem -v2 $algorithm -v2prf $prf -out $pkey-pkcs8-$algorithm-$prf.pem -passout pass:1234 + + echo -e "\ngenerating encrypted PKCS#8-format (v2) DER-encoded $pkeystem key using $algorithm and $prf ..." + openssl pkcs8 -topk8 -in $pkey.pem -v2 $algorithm -v2prf $prf -outform DER -out $pkey-pkcs8-$algorithm-$prf.der -passout pass:1234 + done + done +done diff --git a/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-PBE-MD5-DES.der b/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-PBE-MD5-DES.der new file mode 100644 index 0000000000000000000000000000000000000000..293001c629d76cf4303a092a500f6018e3673dc9 GIT binary patch literal 389 zcmV;00eb#0f&qar8wLp~hDe6@4FLrMFb)I=U}Lo~ci{NW0s;sC1cCuzi)Dgh_r%L$ zc?L%d^Bb3*`oI*IeHL4JxO~b4X6zW=M}j|~Lt=yUNy^T2a^aes$%ASMbX{3j3eze8 zQ5+y)dC*G;OuokIQ^KbWLPd*rGN?o>B(XD+!|$^~^)p5`GlL6b2) zD5Rm&+N^tmmx_9DRL~MYA0aL|z4^B`U9(hkvhYM}O0btdW@mX+n*6n3;m0+b`cJ6j7T(^So6crgSY%S_VN jz-nD5pQguw{SGq9&+fje0UoYQonDKZcQEO#&rp2;gvPK* literal 0 HcmV?d00001 diff --git a/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-PBE-MD5-DES.pem b/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-PBE-MD5-DES.pem new file mode 100644 index 0000000000..e9aa918a11 --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-PBE-MD5-DES.pem @@ -0,0 +1,11 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIIBgTAbBgkqhkiG9w0BBQMwDgQIbdPEAuKuoSgCAggABIIBYAo3BSb8H60g9eyM +2QajPdxRT5RJBQeSmlYCG4NEhiXYCXkGx2btS20w7yeX2ESqKPTSTMTB6XY1o44x +DLnDF2FEjvrk89ADZraMaOKnUxcZiawXOi9chNf+S6PclRC+ZRMRfbCxTnqb6y8q +42aD4oMmHv48f+/27/kFVwj4o/5ls6Hfwc6/YpXZXfT/8hIrkVaPd8QErhY+pAau +H/ObrYXu7Hm1deBLdZD1+u19yFv/uGRg7E7S7/Ku2GSe0i9DpYlYpsz1lydubAp1 +RfxAARfMjEoo0gwUfGCvP6drh16fnLcu9GnxuPKacUTCRd3Pk6hm59TXdcLtXB+W +tzQ/TpPY4u0oL2NU/aF9jqZuDWW89TAjvwekYpqrtq5cbU4VHpFLLc2yO1n4flRm +pfHP4BXjW8D9frPMyLiOSJAdKoJnHfM4y9bG8SHbukmTaJCOUD2MJ5uXW8pVejxU +gnYbceU= +-----END ENCRYPTED PRIVATE KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-PBE-MD5-RC2-64.der b/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-PBE-MD5-RC2-64.der new file mode 100644 index 0000000000000000000000000000000000000000..3bb492bc5e17e5e89b5e54779e55cd62d7582112 GIT binary patch literal 389 zcmV;00eb#0f&qar8wLp~hDe6@4FLrPFb)I=$?26{8CZIO0s;sC1cCuz+J}NHE;uUO zAe4)TKl|rENwKVM!U;)#5x}%u+0ujhqvYBIyjh3#9uhdaLH|0viN0SANuzLK_z#lnq$o7!d}1Y)lvhKWlz%v!ER;gx5$uUDLh3d) zhgx-hJJ!&tW(eLVg8JY^y{r_>BLi@@Nzt02masSkqc77h2D8B4(DI)TXQ18jRR(5M jJ2^30U^MSvRJ?zI`+1!xbh>EWgqEaf4sOWlYBy;r9+|my literal 0 HcmV?d00001 diff --git a/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-PBE-MD5-RC2-64.pem b/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-PBE-MD5-RC2-64.pem new file mode 100644 index 0000000000..08115431df --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-PBE-MD5-RC2-64.pem @@ -0,0 +1,11 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIIBgTAbBgkqhkiG9w0BBQYwDgQIHQKYle7B6TECAggABIIBYP7M3ZLd+cmLd7HG +avwLJdK7dq1hUxdpDMYIIHXQMqR7yhrr271v6Sqlkq8i97CrdlmzWgWNiv8uok88 +z9CxT79Y6/sLcvKVfCkoI7Z/p86Pc2/P7otvhoc9GlRNIvU8r/nMtigf3FZDQWrp +3XmBSabIERSQZxNwVjmSQzAVFd+SgfcqrNpKD0kErrphcySF7M4SfyTm3/dfFbrO +gUdg0ULs0rbKbTpYyBgVhrdCXYFAQLajHlE6UVIAK21Ifq2EvJ3LQDUEXg6RADbf +s2easyTlKfssoRzTDkBo60J2OsgmS5ls7fxOBndjxMZYPJI55k/ct4FPJraXPIsj +j5iBIOJBdW7Fi42O/ezaLtSFC/TUwZf+rgsVQaqpz67ynp3V7K/wJqdR0P3WmO3T +XkL3quUX+GFtm1htiqT9EGX6c1UZFfqmTJ3juLP4YpgOgUVLSIrOPauk2txH9E/R +JATHbjg= +-----END ENCRYPTED PRIVATE KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-PBE-SHA1-DES.der b/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-PBE-SHA1-DES.der new file mode 100644 index 0000000000000000000000000000000000000000..82e2f79cd89386246fdcda8a0ffe8ff9e93972b0 GIT binary patch literal 389 zcmV;00eb#0f&qar8wLp~hDe6@4FLrTFb)I=TS=k?B;(As0s;sC1cCuz0vd7to8C4+ zs}ncdrO3mGl`S#S<5{@R&mhF5YWT|yq5L}RV>x&wca3#*58jm!b$2eVDSJp+%w@?& zOlqp$DwPl2i8VtB@S&7%smnYOCPx{=Q&nfDqvy#_6kD4`U7AacLm0;F37NIk`j5C3 zERyE=J5JTo`hS1rN#_)MVI^qOPP{k{JTI6PcUZ93b?SzCa`)~GULkZL8pg~YanD8` zV@(RyL!M{DKCOq9h>z jAt+qQQ{QsG{2@0H*ZjlHiyZeOKjHd4a0A*QUkV5@nUc4Q literal 0 HcmV?d00001 diff --git a/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-PBE-SHA1-DES.pem b/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-PBE-SHA1-DES.pem new file mode 100644 index 0000000000..82b997804a --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-PBE-SHA1-DES.pem @@ -0,0 +1,11 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIIBgTAbBgkqhkiG9w0BBQowDgQIQPSp44KDjkUCAggABIIBYLdDgiRyUnAkUhLW +pqaNMqrK0iaSKpwHvsw1S4PhOQdFclVUEZKs+2oBedtrr3VysWRg/ZKNBdBAnzLi +E3nw7RubL4WH2y3QNx6eLsMJsI1thF9pK0yWWfy+zQP3+oZVG+JTmctCLQDAToCa +1OoRGnaHrZxcGzg/B1yI2hRSDdcuFCelMTIG4fGJ3dyrQHR/Gyxr4m27kV25H4t2 +Vxc6DSb1qWmSgauvUKLMlnvqtFVJ/OxjTz3BWPKUJqOyDd80PdfX8t5ttdK9Ebca +DwIUHvAmblES9mknhUwJUym/JGQFd3GXPc7WNyTsqwV4x9xp/8WTmJvM8qPk8fNz +x5kj3+VZgcAIh0ePKdF0TBAaAz5nKg611UwIOI/ShdMeyc1B3iWA71Y+uPElPEf+ +6+Zp8DwJNaOZ1SEqfNyB6aNMuYlTmbwctEKjokaIvyakSI6nFs63ycq5/s+HrMHT +KHF9A4Q= +-----END ENCRYPTED PRIVATE KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-PBE-SHA1-RC2-64.der b/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-PBE-SHA1-RC2-64.der new file mode 100644 index 0000000000000000000000000000000000000000..ea6b0d613468036d730dc7d56971832d1e2f8dc6 GIT binary patch literal 389 zcmV;00eb#0f&qar8wLp~hDe6@4FLrUFb)I=)@ol4I3X=c0s;sC1cCuz2ZWt%7LM^e zRI2S5;_3Lq!&RnalWCDvtTyKwA0VfLfxwt>po%&#r91)=vsEd#Up|(%V??&GqxXs*(k31r@zw zI_nR}=az|=gSvOe+D(iePPjG^bBF|lTpLBc7a%Y+ap~3<$9=el7x-gg2Fi-CL!nSQlFv}fsU$UUOru-!Am@63_WYIjzKu)fx zg}-&k%}tHNJM-tmA#ru5aV#CitRBT_*Qmhk?32oKPFNEKj7L$A30m-mrq&MZoVXPH z3h>ZPr6*&&LNQU&4g?4)n#V+vscRPk z0tf&w9R>+thDZTr0|WsA1Q73<%&b*&l)tPNBL3338ao7n0bs3BXEx~T67goZLG!lD zmRlP&+-P~boI1k=&^LV*p=6Wlnrqim#5QNy<3}9!!DDIU6^1;6ch&S?bA%J;I4vS8 zG}Y2us&{zNJoB0Hlwfa1+jD|pyhCgZpW^-&Z|d|O>ie4dd_PIZr=NzOGZm8~Yf6A+ zDP{D1DN!X|f6W)#0TC~IwPz_&kgOFk!{3NO8f-k%0+9Q~W{0^pACD)d>LlhvZw5{- zZKt}uAlIDwKVKbg6NFWkVhK~-SAL59;4}X;rO@jfVO&LNQU&90Uk>oPis4zhjyL z0tf&w3RcS4!gxnb1cCuz zpc#WdQE7Ii@X}cSh8<;VLgHw5bKzur_lQ~O%OOyT0t%dT$f9g$%Rr~g5RiQwyga@j zuaxtMqhKfj3#nX+g7-T2-wcLncwtqxTJ*^Mvi{J3Fc(Z#<7lqiK+#W>4mDgrF=)V@ z$b%$;ucbs)BuER9H3SpZ9~C7vL^V_0W3rCh*A+|dOAg?fo;vZF=zI8I*Vsqj zWHWZD_InYsUQ|Un4y}LdZq&R2&8b9u(X{epqzKASMDAD>)`7kkguQ>@`ZCzr+BDwl zQIY+7a1I%K%r5=!jf+{>$QMtBaPD3vun#hqd21eVTtKE`aN-UP5|;wM5WiWsJQm~5 zWNxg^$wEOk2W0H4>+2WgV5NC$-&-eHEW~i-ua3E&%v@Kkg}SPjeBk*qm&6HN$FLm! r74Z~(FJX7Y-bFH5lfSc&LNQU&4g?4f_gH|G?sBXG z0tf&w9R>+thDZTr0|Wso1Q6f_(KI8)`+u~L8xm@k#^eNo0brKovsD{9DrQMP+3NX+ z-5Bj*Z20U;VrY=WVp#sq#7Az`d*a5@$}=Dolj7Oa zGs@g$wQ*{Z*kHLH1}9i8L&=^241e!r9ROC)7~$aMQyF5g^tIR{>#oeuwxyy_bi09k zTOpdx*hkv5TSD^f@&x4r5W>r^m;fRczZ;P)y3J(!Lhw8LQ*J>_sflliPNqSfa@S`t zd>%GumZdKRJ{B?DJJM1}B*+R+Px&*f5?L64$ZuQ*TUnga%5G}c$RG`>FhgQwmf`3g#+=7{A>z}70#uBx|bn~4O5GYH_ zhAJLf>M?Rq$1m?4cWbFUfdQ3xZuevNzl4X`Yl3m?hm^141b80)vYV?@yPOfEeLT9H dQWqm+47zP)ry8fa#Lx&;@J4ww+PVfsqs`k}$$kI; literal 0 HcmV?d00001 diff --git a/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-aes256-hmacWithSHA1.pem b/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-aes256-hmacWithSHA1.pem new file mode 100644 index 0000000000..74aa2eb50a --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-aes256-hmacWithSHA1.pem @@ -0,0 +1,12 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIIBrzBJBgkqhkiG9w0BBQ0wPDAbBgkqhkiG9w0BBQwwDgQILWdaWkH3cTMCAggA +MB0GCWCGSAFlAwQBKgQQSj7y41B6JDjCn6mV9g3/EgSCAWBipZOOZk5C6IuwElK6 +1aGy8r4cmh6hbJ+IJIj5pNphE3IeLXfBQAUzJCD2wKKzgkL4bofdZYndIGqdBU/1 +0P27kCYKDIN0iixPr+gW6N0yEmD+R0v8fUFyQF+RiiZ0lCznAmKhc5d8C5r4zE5y +QN4E6RTAoiaTGM85jEpb2qP0Ju/2lhFJ85z0Dn2xXtH/y4O2UYQklufYpPxDX9xQ +DdgDPgdBXj7nH2a165CqFhA5b9PXCVjzSG8+u/PlWkO0UOCobL7YTlg0z88iAkWx +VWX6DG7UJovp8boqJ6CL8AeroSKDsNRzO5inROWeanj8t00vsSadXUtKTlFRBSaM +1Gzn81X5EZnhPzCkrmOmmK8+DZwgncRhLk6voFBfga9lSt9PZaDNEeNrVLixQvbc +fc5nAIp4SwkFbo/n11YRjHyBZsYqm1ugQIaEW0jGsQxGxKAzeN342emBm0KHBqr6 +liGH +-----END ENCRYPTED PRIVATE KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-aes256-hmacWithSHA256.der b/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-aes256-hmacWithSHA256.der new file mode 100644 index 0000000000000000000000000000000000000000..45ebba1975935de32f20e68863e115edb08617a8 GIT binary patch literal 449 zcmV;y0Y3gPf&slSR|W|xhDe6@4FLrWFiJ2f1_>&LNQU&90UmSUR!Dptf}P! z0tf&w3ybpfzKnHBj{C~sYp@DO(#8zFufZl(lRr#gZ zp*#a2$UyC?H?N({u%3+y5+35zMbfkP;Tlj)MW)?Kk8E4)$C2wQ*rbN&@8YWzDmk&|Eqyw3heP3R0EycN6rTX z5eoJ{{E(jaMoJk<_lb+8xI3(E`$HmR+Av9M}M!(5vnz+H5fK&dXEc?xd17!)_w86cI75ds?m(@5B?$FXVEe&$+*+dd2(#(d>+Pz2^o#W z&3bk2;0peYKaW&o!d;)f%))iQb>FF-qP{lCZw1q^FN29YwY{{^Z4(KyyHbqL`)fAj reAzk<$?vz~{(4rFjpMnxEein4tMKv#eG^&t&LNQU&4g?6I$f5a%sPH}l z0tf&w6b1+?hDe6@4Fd-R2;(Y*J{%$32?T-xV72R8_{i9)v80j~{?N!~u#ZGT4DXMU z5M)&2x>Sa!Av#BGn-d#7)=jfZm4+33MKOAOO<9pKvzVm*t(n~&@NLCTHQ@bcmFfqM zAypCz{={n-EhW~OfCCuj#r{Rc%%s#<`wbQF9GH0s$!9up!Myqlw70bkjL%_S+L8Hq&nwH339U`7~ ziq#&?;{IgVH?84uDU*#Pg_o);LnN4X;;gKK0r#p9;3M-bjR4lv{Q@Glvpr%aFW2>C zAh$J5-yx&QzG literal 0 HcmV?d00001 diff --git a/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-des3-hmacWithSHA1.pem b/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-des3-hmacWithSHA1.pem new file mode 100644 index 0000000000..8040f68152 --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-des3-hmacWithSHA1.pem @@ -0,0 +1,11 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIIBpjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIjA3V6epUyL4CAggA +MBQGCCqGSIb3DQMHBAin4GYIwaJohQSCAWC1BTA4MHvRL83mHd6lFsC/UgvGf5/4 +csPetxLj+foMBL9A6rspxB07WxB929Ayxy5rRWq4jeYhPCAg46PL+Ne5MYp9PnDm +OjYIJjLNPk8wDuDYMDyMYH8+U4o+WaSz612YpcHIM5GEJ2TD0ngx6LctBNRtyWsR +9Ehn2/NLxrBI0MS93gUxFA/8XkYsQp569kITAfomEjvlsJaNVI+h98cNYdD8Oi0d +tveEPLh3xHYhNCRYpx34a/RaoAAP7KTGXXR6rjVjPWnNzG9sICBvLOve8Ro/c1cs +EFynJ56Xd2UJCS/yMnIhlRehVl9IhN5XJ+7Dv0JKHx2BG6N+ME7YZMM9jDZb0WzH +2+YJqPx99ERnDsRTIdQYgShWsTbMHTdz7MNzox/Zz6l4p7kipQOZLrknoNMb2hy8 +xh1f4SPT9kHwCV/obKSYzv7bGCYjBraetyBavIwl5LjlUySKQ+HC4zFS +-----END ENCRYPTED PRIVATE KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-des3-hmacWithSHA256.der b/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-des3-hmacWithSHA256.der new file mode 100644 index 0000000000000000000000000000000000000000..764d2f68ca464e3929441a434a40ab65073e59b6 GIT binary patch literal 440 zcmV;p0Z0BYf&sKJP6i1ohDe6@4FLrWFhMXW1_>&LNQU&90Ul-Ecay>p8hZb z0tf&w3J7HBiIY*vgERhHh#9Tp}pM`Xb;6Qs}73M8xZ& z*KP`ktF&&*gv@i{z*Qyl3=3*y+TGdi=e+prppoMjVJ@B7QvuKcl{1t+1hbNMw&rS zI?)}s%R5*EX1`Z1iz(d~#-LX{K2w;Qd0`?^mByF4@J+bxTe#8?8d+Uad~*v1$T9eV iCJuxk2WEL53;VIDuGQBX8qw%{uMZ3lWpoBx$~@a8=EIf% literal 0 HcmV?d00001 diff --git a/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-des3-hmacWithSHA256.pem b/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-des3-hmacWithSHA256.pem new file mode 100644 index 0000000000..4327d31f43 --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-des3-hmacWithSHA256.pem @@ -0,0 +1,12 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIIBtDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQIFcxat+WIQSYCAggA +MAwGCCqGSIb3DQIJBQAwFAYIKoZIhvcNAwcECHOnq5nGmYd0BIIBYNxOhizI4irA +fq63+fV0k/C2HYCN7TEexoU+PiJlIm2/vlusPrTl6LnJqXTA6Y+iVelTWynnkKws +c13oHCPMTx702JwzNntsLlQo+w8cShjc02SdbJrPUxE/RCtqWo85sEZTYteGk/Lr +8GnPR3iDhB+m456PgdatqdpEsmy5EGcL3UT0kWmM5knVZfqHkx03kNxtMLV4rkcO +SPsnezcI2MjyfC4DhXGBBaso48RYZ/905INvmLIRbBX1MHeYtRDpKQlyGQZiSyew +TqyougDnYqSUs8yKhSsdHqUwltnZmIuJXEtcvtiA/Wmpt4fxxiPtJ8XYWyHreEMf +w1CevyEbkUdOWsa7zsW10337Lr8DY4Ax/tOTqtARioOBSYdRwlhluBuh91bK5eBt +ABidgQolNZ3SqIaBV+sEOX+gBDtpu/Lg4jAUO4eokKbhOlKL5YwueiSVrj/cWuKe +6Js/MZGBcX0= +-----END ENCRYPTED PRIVATE KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-pkcs12-PBE-SHA1-2DES.der b/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-pkcs12-PBE-SHA1-2DES.der new file mode 100644 index 0000000000000000000000000000000000000000..c89a60b8efe9f6504f7116fb889ec62712eb1e99 GIT binary patch literal 390 zcmV;10eSu~f&qds90m$1hDe6@4FL=R1TYQ+2t!Dsvsl1g5&{AU00e>oU;^>~#zCN# zNXIf`bxZ`Wl|uY}Ij zHRfTSvqvHQWs(M}g%E8O1gz{Z7Mq3hf)AUTGY_eXXLu_)zbFe9OOYkR%1ow_8?xyY zf>LVty+J~1p({y_4_t)n|Ij)MkA>Lz{2sCn+KUcjEV6YUFqDO2iAA4YSE+m)E`Oyh zsmpixXaGaqZdFUN01YkZFN?-gy5u*aMqQweT20nb+EhH3f@m`Uy#zjl<0M23(Li{Y zNh#sP>g4@^gGOE|g(B2S5RlDg%1DiQ@CLHe?fR2<^{9(aV6tNmzOajKHH^{|nJI@b k31s&IuycoU<;*y4>QFV_P_iWF@Ey;xJw?LfrKnCFs!=y2vRMJnd9R9)U?~6O1wD($ zRl7*bezSFq!5#(ah8zF)fNIKX4~sJC6WvY48JUR>Q$9;QYDg-M?j?9~2xINC5Hf{~ zJ%TgsI$B64v3{f04B3(}4yk_sbIU0LX5uwJM?)HdIOp!6De zhWw5`4;`GdRt%w$IIZh?-}KMHe*z(FC>-sAJ(tIpE($91YoVCTWR!2bE6 zpx-by`$?=|G}a?Rr~^#eVzgeGd|1kLJKbkmJ;A>!aFLE%47} z8m+<)c%&jg!HrhZWy%c~S@h4e=$ZO`cauna>Gn3K&(3uFBw7t>&}B=> zEux(MC9(L#eS8nHllNJU^Au?E0Wi~WVY(A(Wk1#qsWerwFOkD^fd%IQ`<24WKO^0+_ z@J8}CMP9BxsrXH|+b)PDzlN k=h_)vsa7EW2qgohF6QV8r$+WFEwv~Yo+OrVj$!C&dJmhuB>(^b literal 0 HcmV?d00001 diff --git a/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC2-128.pem b/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC2-128.pem new file mode 100644 index 0000000000..e74b99eb29 --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC2-128.pem @@ -0,0 +1,11 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIIBgjAcBgoqhkiG9w0BDAEFMA4ECC8vkmUmfY3WAgIIAASCAWDzODlrgQ+L8c/5 +YMHk8uVGYRK2cmFRVUIgHz8pnxx7BPnR3mb2igUVk55fi74bIgmk+KGnoRhG2jsq +dXV2rfTHGZ/AdjwgwA1yLNinhy0BUObMQ4QOrtkNpq4K2MUK8fcvLNRvEhMni0dx +r41Q4C+bnnx70td2iT7/0efgs4YfT2uxQq//MvI5vfyvCSx71GY6xJdc1wwGbqT7 +KoY5ARvL78Tb1wi6UmdsJza+DU1yO5z1TPAu+a0bawT4LWWAOj2+x/cglsq/La0g +lJ797NBFWI0Uq5YCMBGzwv3RY2fHtVbt/TSav2Q4oIuaoxLkYRZ2HwUDseMJ4O5A +46QZqHZyKSQX25pm/gq7kr6bbX/JrGVoWD5ynlaUiVBxyoKHaHRojlbyQTASxjMb +XZG7jUDpcM4JQ1LKtrNmU72YYGyfrNZhr1TFmSw5ayVfw8vgO4U3Y+JeHXKZOqW/ +QTisuu3L +-----END ENCRYPTED PRIVATE KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC2-40.der b/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC2-40.der new file mode 100644 index 0000000000000000000000000000000000000000..404b59306843e84a5d64c94d140dea94b43feecc GIT binary patch literal 390 zcmV;10eSu~f&qds90m$1hDe6@4FL=R1~3i;2-}oS7Ah+?2Lb{J00e>oV6TN1%-ycA zB)NPSlJy5{*+0~WV~N-s_G8fgpwIu%5!yxQu%FC!4TbS&kRjkmol%AL-sVDpZH=aW zul2&)d3bohL|y{$bKn7H8%RGz_)z(57+qoLSj(kP6u$OQy&D9jF;Sq_X1n%YFEBLK z6@6Atp9p)uHHov%pQzyA)AKK^@iY5fIC9ljsCi==I>lgq^VrcQAjHe*VyEsfUM;1vf zX06i3>oj|vXccW$M}3J?s35qM&@{|Jd%d4G3{5_oEg;B>a7oDFL+C5$#bClS kTk6AH6y!z$oiS9yYj4H}b>m!TTEKsHOp&2H1K{i{%j;RVWB>pF literal 0 HcmV?d00001 diff --git a/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC2-40.pem b/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC2-40.pem new file mode 100644 index 0000000000..ddd0106a71 --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC2-40.pem @@ -0,0 +1,11 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIIBgjAcBgoqhkiG9w0BDAEGMA4ECAicFoXG2QPWAgIIAASCAWB0Uk5k6u0IoN6G +CB6y4EpIc8lgEGIxO0iAMGYdQd/b/yYVSH5yWBJTM/WJCtIx0GPSYQUjnFh9IQOr +AAimL90mlzCfdYHAJ7kS2rNCTWJeqXwPeOJmFpmI8oySUE6uflu16ZHXLuZoDIrZ +O8JZnKF7KlQLIgFn5qiqRuuQrDKiildLChXtsU8nW1B+xBy89qkqWekw7nyN4J68 +3wsm7gzrT7PUNFl9XnWFw+FmSZag8sdqgvDZ0RiFdMAYeFWfTx70KY3PnSYOzoSw +kYVgviMhcLFxulMsvIsVPaG4cr9JX/eNZfVFH8jnkm3Nqtdl647oO3LfwkXPKz/W +1JNyd3/p2IOPnkMi8KMFvuhce3zoD77wZJ85PhbsW4YEsB+hxfk8N5ILJysrMf7J +4BDxc4yYmV4mWna6aUiWnn4gD5ux1qxTUUGWf3tgnyHRGYS0d0xQUQzbCffeW7vj +PDGpGqbl +-----END ENCRYPTED PRIVATE KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC4-128.der b/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-pkcs12-PBE-SHA1-RC4-128.der new file mode 100644 index 0000000000000000000000000000000000000000..4d13899e1ba2609452e8b083f79e32ab90ffac10 GIT binary patch literal 384 zcmV-`0e}85f&qLm90m$1hDe6@4FL=R0Wb~(2n_1*Ae@q6#R38d00e>oTJcO+7JUH^ z3NP+Fb>k!L>Q0xRvSXxTEML8;oZsFXH(Cvk6a{5X*eBi;~fG$Ch2h&UV6_GMJC4|H5W+;)Tgk&>d&oTA3xuwzr%! zhah2g?q|Xs3;~D)-4JUCa-}ra#~2w~q$d5J14xmfA5%706%@2~(e(oBd}E8cr%HAb zd&Mi^{WkcI55+ixOWCOTQF`_ZpZ6!jcKt@DfnxXt-c-=4mnIzJ8Nsc9Rg`)6YyZcy zNyKlN3mCe*-3LqleT7odpPh34@i?kF&~z7CfXp`a@FDi{AlKK4>H3UlYjj)?V7@UR z=fqD(8k5YUwL#gLn4M^7HdO%zeZne$8;_c|R;+sF!p7h4b7826I&m@VOK>EpR^zyi z4aJV{%@7*ahG85%?;TnsUDC$z&t~KHj+as*-^hy zbANh;6+9WRJ&GxY3)CZH&L~&e+jdr>LpXZ&s;f~zzh0btl2rUD90H*CBUnk&LNQU&5d;X+<`(=!nES8- z0tf&C0T3`51_&yKNQU6h-r6rl%kQo%m8$Nqry#H$edKOuNdKbrJP-ryg^6%OgQ_#l1C90n^#R;&N(K17b!4zD%D6$v zyE?U@FFpB&?$#v>iH@DtMQCG>!Sx8{Imgn?MH(vK-lhp)P?;WPp#{!h#F430qT1D=F#?@mywm%z|%kn!R0ZKXW?iyzVNkn>*c*nOdJeMi~{e^8&?53}IKzU#7gbr$TXEmD%Y-R{`b|5hO8 zZ~s4ScKi2RE9;&{{_O26RgNwYuXKHWPpUoFul1W7ANNuZPvgMNC(pMFym_&2?nIdh z?koQMisP`llNQ6Y>i2%9rddvUBC}q`xlZ@y{ga$&x~VkA`1lG3hPunM!!|!{51P4f zo$AW}mpNTinvHkxKGRYQi&2!6WqkOshg0uEihuB#l&-3e5%0|x>o$I#zj0?s_q3wI gb(sRsLwWT|R^F|+_vx+j%TnDNjd5!Kq`vb20LOX3g8%>k literal 0 HcmV?d00001 diff --git a/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-rc2-hmacWithSHA256.pem b/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-rc2-hmacWithSHA256.pem new file mode 100644 index 0000000000..c09da71121 --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8-rc2-hmacWithSHA256.pem @@ -0,0 +1,12 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIIBtDBWBgkqhkiG9w0BBQ0wSTAsBgkqhkiG9w0BBQwwHwQIi1jllb1PqZcCAggA +AgEQMAwGCCqGSIb3DQIJBQAwGQYIKoZIhvcNAwIwDQIBOgQIQDijmMtzY+UEggFY +gItLu4+5cGLUWeqbt9L7tKBoLpMSYGScvjcPwiKX1tygqg1lD9saeOqSZFx3AEyd +3AlEpZSPaQpAqp61zrKV1cSYzafRyYV2R6NArgWpSZP3LggquoQHnZN/8hRtbidC +7KgB/kXP7sCWKiUj4Smh/HhkS/w0K5doxt34VicijP4q29NZ0UDQDGABC1gA7L5l +FvZrZJi6laawHJbZDb6zaHVbvL2OMclXrzLpHF269H/NYwE+3/xtUa8AhTYVRRq/ +oOByi++ap2QL32IyHbdgNEj7a9WGM58iWVW+jS9G45ChylIDG9oCg4KeHp+5sjPv +rkDsXdzXeCwFQuJ1nj/pRVR6aI3qUMM1jjQFoOQ/XrPWIBvVzXC8eYRud/rHaOdV +IH7B9kFFqwSAzzi9GtTNj1hfQ8adm54N+qq2c4JRKN/a6cSRAlwtoI344OO20ejv +2RO9QGJkkSU= +-----END ENCRYPTED PRIVATE KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8.der b/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8.der new file mode 100644 index 0000000000000000000000000000000000000000..b6ef9a15a2d469068c8ba2b120101e49ca0b42c3 GIT binary patch literal 345 zcmV-f0jB;if&o&LNQUoKQMv;I|2a!0zm-0XwIO+@EYC7rc)-ibTxTb!n6eBhJ`n;T0QTt+D*22?`yFOv*xz%3|8?3)du}0s=52S_ z{<^Pi=K>)B!&qwn26j)1OMu8rjvXfEDSgj43(TvL7_D=)N?JNq0wDn2CwQun`AY05 z*|jGGb<-nUkXXq(pWSeFQT*k^W{*VzAS$aSd)xwjuRMIc!&@L+{mV2`&G0SVkIe5L rCJa889ReW$+Oo;4WGjt-AO+d^R|%hZQDKnhNmFZQDe*JK78yjNKWCT# literal 0 HcmV?d00001 diff --git a/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8.pem b/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8.pem new file mode 100644 index 0000000000..2a71a861bf --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/rsa-pri-512-pkcs8.pem @@ -0,0 +1,10 @@ +-----BEGIN PRIVATE KEY----- +MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAwDsb+Kv6gzwj4qqN +kD5pZigHwVq+TgsAua++RsXnaWGiOWA2m2a5vM+TC9trcIAHHU2xaGjxt2UGi9b9 +mPNMoQIDAQABAkB64062Yfr7+m5WcQGevMdUbzLGAOS3r4D/M8JILCwLySrni0rV +sti1UF1X2ypna24tsRKN0CD/a8111k+yZXeBAiEA4ats1RjWHIA9tIimdi3Qj9LO +BtBs5wBaaryExZyQDFUCIQDaESne8AcqQ08gst1Ykyj0bKwl+ybSWxAzSb/52fFL +HQIgKFX9s/EmhB2f6d7q8gCqYKqrTKiAbqGvh5h+mturG6kCIQDYAeRt92nBjYcW +JtdnY+5PoE4uGUhtWtMDWuyVfDOuaQIgU9/flj81ZByBxXk5sULHUa3+eqfQKSgi +xYZorAtL3xg= +-----END PRIVATE KEY----- diff --git a/tests/auto/network/ssl/qsslkey/tst_qsslkey.cpp b/tests/auto/network/ssl/qsslkey/tst_qsslkey.cpp index 27d92db3bf..e39bcd30e5 100644 --- a/tests/auto/network/ssl/qsslkey/tst_qsslkey.cpp +++ b/tests/auto/network/ssl/qsslkey/tst_qsslkey.cpp @@ -110,10 +110,10 @@ void tst_QSslKey::initTestCase() testDataDir += QLatin1String("/"); QDir dir(testDataDir + "keys"); - QFileInfoList fileInfoList = dir.entryInfoList(QDir::Files | QDir::Readable); - QRegExp rx(QLatin1String("^(rsa|dsa|ec)-(pub|pri)-(\\d+)-?\\w*\\.(pem|der)$")); - foreach (QFileInfo fileInfo, fileInfoList) { - if (rx.indexIn(fileInfo.fileName()) >= 0) + const QFileInfoList fileInfoList = dir.entryInfoList(QDir::Files | QDir::Readable); + QRegExp rx(QLatin1String("^(rsa|dsa|ec)-(pub|pri)-(\\d+)-?[\\w-]*\\.(pem|der)$")); + for (const QFileInfo &fileInfo : fileInfoList) { + if (rx.indexIn(fileInfo.fileName()) >= 0) { keyInfoList << KeyInfo( fileInfo, rx.cap(1) == QLatin1String("rsa") ? QSsl::Rsa : @@ -121,6 +121,7 @@ void tst_QSslKey::initTestCase() rx.cap(2) == QLatin1String("pub") ? QSsl::PublicKey : QSsl::PrivateKey, rx.cap(3).toInt(), rx.cap(4) == QLatin1String("pem") ? QSsl::Pem : QSsl::Der); + } } } @@ -164,6 +165,11 @@ void tst_QSslKey::createPlainTestRows(bool filter, QSsl::EncodingFormat format) if (filter && keyInfo.format != format) continue; +#if !defined(QT_NO_SSL) && defined(QT_NO_OPENSSL) // generic backend + if (keyInfo.fileInfo.fileName().contains("pkcs8")) + continue; // The generic backend does not support pkcs8 (yet) +#endif + QTest::newRow(keyInfo.fileInfo.fileName().toLatin1()) << keyInfo.fileInfo.absoluteFilePath() << keyInfo.algorithm << keyInfo.type << keyInfo.length << keyInfo.format; @@ -186,7 +192,10 @@ void tst_QSslKey::constructor() QFETCH(QSsl::EncodingFormat, format); QByteArray encoded = readFile(absFilePath); - QSslKey key(encoded, algorithm, format, type); + QByteArray passphrase; + if (QByteArray(QTest::currentDataTag()).contains("-pkcs8-")) + passphrase = QByteArray("1234"); + QSslKey key(encoded, algorithm, format, type, passphrase); QVERIFY(!key.isNull()); } @@ -215,9 +224,12 @@ void tst_QSslKey::constructorHandle() ? q_PEM_read_bio_PUBKEY : q_PEM_read_bio_PrivateKey); + QByteArray passphrase; + if (QByteArray(QTest::currentDataTag()).contains("-pkcs8-")) + passphrase = "1234"; BIO* bio = q_BIO_new(q_BIO_s_mem()); q_BIO_write(bio, pem.constData(), pem.length()); - QSslKey key(func(bio, nullptr, nullptr, nullptr), type); + QSslKey key(func(bio, nullptr, nullptr, static_cast(passphrase.data())), type); q_BIO_free(bio); QVERIFY(!key.isNull()); @@ -245,7 +257,10 @@ void tst_QSslKey::copyAndAssign() QFETCH(QSsl::EncodingFormat, format); QByteArray encoded = readFile(absFilePath); - QSslKey key(encoded, algorithm, format, type); + QByteArray passphrase; + if (QByteArray(QTest::currentDataTag()).contains("-pkcs8-")) + passphrase = QByteArray("1234"); + QSslKey key(encoded, algorithm, format, type, passphrase); QSslKey copied(key); QCOMPARE(key, copied); @@ -286,7 +301,10 @@ void tst_QSslKey::length() QFETCH(QSsl::EncodingFormat, format); QByteArray encoded = readFile(absFilePath); - QSslKey key(encoded, algorithm, format, type); + QByteArray passphrase; + if (QByteArray(QTest::currentDataTag()).contains("-pkcs8-")) + passphrase = QByteArray("1234"); + QSslKey key(encoded, algorithm, format, type, passphrase); QVERIFY(!key.isNull()); QCOMPARE(key.length(), length); } @@ -306,6 +324,13 @@ void tst_QSslKey::toPemOrDer() QFETCH(QSsl::KeyType, type); QFETCH(QSsl::EncodingFormat, format); + if (QByteArray(QTest::currentDataTag()).contains("-pkcs8-")) // these are encrypted + QSKIP("Encrypted PKCS#8 keys gets decrypted when loaded. So we can't compare it to the encrypted version."); +#ifndef QT_NO_OPENSSL + if (QByteArray(QTest::currentDataTag()).contains("pkcs8")) + QSKIP("OpenSSL converts PKCS#8 keys to other formats, invalidating comparisons."); +#endif // openssl + QByteArray encoded = readFile(absFilePath); QSslKey key(encoded, algorithm, format, type); QVERIFY(!key.isNull()); @@ -326,6 +351,8 @@ void tst_QSslKey::toEncryptedPemOrDer_data() passwords << " " << "foobar" << "foo bar" << "aAzZ`1234567890-=~!@#$%^&*()_+[]{}\\|;:'\",.<>/?"; // ### add more (?) foreach (KeyInfo keyInfo, keyInfoList) { + if (keyInfo.fileInfo.fileName().contains("pkcs8")) + continue; // pkcs8 keys are encrypted in a different way than the other keys foreach (QString password, passwords) { const QByteArray testName = keyInfo.fileInfo.fileName().toLatin1() + '-' + (keyInfo.algorithm == QSsl::Rsa ? "RSA" :