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 <edward.welbourne@qt.io>bb10
parent
a0ab7c6e29
commit
f8e551cf08
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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<QByteArray, QByteArray> headers;
|
||||
decodePem(pemFromDer(der, headers), QByteArray(), deepClear);
|
||||
decodePem(pemFromDer(der, headers), passPhrase, deepClear);
|
||||
}
|
||||
|
||||
void QSslKeyPrivate::decodePem(const QByteArray &pem, const QByteArray &passPhrase,
|
||||
|
|
|
|||
|
|
@ -61,6 +61,7 @@
|
|||
#endif
|
||||
#include "qsslsocket.h"
|
||||
#include "qsslsocket_p.h"
|
||||
#include "qasn1element_p.h"
|
||||
|
||||
#include <QtCore/qatomic.h>
|
||||
#include <QtCore/qbytearray.h>
|
||||
|
|
@ -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<QByteArr
|
|||
} while (it != headers.constBegin());
|
||||
extra += '\n';
|
||||
}
|
||||
pem.prepend(pemHeader() + '\n' + extra);
|
||||
pem.append(pemFooter() + '\n');
|
||||
|
||||
if (isEncryptedPkcs8(der)) {
|
||||
pem.prepend(pkcs8Header(true) + '\n' + extra);
|
||||
pem.append(pkcs8Footer(true) + '\n');
|
||||
} else {
|
||||
pem.prepend(pemHeader() + '\n' + extra);
|
||||
pem.append(pemFooter() + '\n');
|
||||
}
|
||||
|
||||
return pem;
|
||||
}
|
||||
|
|
@ -179,13 +200,27 @@ QByteArray QSslKeyPrivate::pemFromDer(const QByteArray &der, const QMap<QByteArr
|
|||
*/
|
||||
QByteArray QSslKeyPrivate::derFromPem(const QByteArray &pem, QMap<QByteArray, QByteArray> *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<QByteArray, QB
|
|||
return QByteArray::fromBase64(der); // ignores newlines
|
||||
}
|
||||
|
||||
bool QSslKeyPrivate::isEncryptedPkcs8(const QByteArray &der) const
|
||||
{
|
||||
static const QVector<QByteArray> 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<QAsn1Element> items = elem.toVector();
|
||||
if (items.size() != 2
|
||||
|| items[0].type() != QAsn1Element::SequenceType
|
||||
|| items[1].type() != QAsn1Element::OctetStringType) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const QVector<QAsn1Element> 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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<QByteArray, QByteArray> &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;
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -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-----
|
||||
Binary file not shown.
|
|
@ -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-----
|
||||
Binary file not shown.
|
|
@ -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-----
|
||||
Binary file not shown.
|
|
@ -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-----
|
||||
Binary file not shown.
|
|
@ -0,0 +1,9 @@
|
|||
-----BEGIN ENCRYPTED PRIVATE KEY-----
|
||||
MIIBHjBJBgkqhkiG9w0BBQ0wPDAbBgkqhkiG9w0BBQwwDgQI8mhki8A7ijgCAggA
|
||||
MB0GCWCGSAFlAwQBAgQQbVjLreAybYGwsnk4ZMQUIgSB0Ozr2DfP+rkb58tT748m
|
||||
+7xe+bhpT3xrrSpUsB2RXUH/6M7hVjb+XZ/JSAegqkuZq08df+ezpHjWX/W+IVL4
|
||||
Sx0wZWNW51TiwGymNFuBwSVliqCvndAaY+EIY3bsME5RFik86R4iAbtrxalWPFoR
|
||||
jscLkGtNstQR5JQCOccTN7h5jRBwEFrArqfPv+XZb5ysy9FjFnVDuspFg/CysIJD
|
||||
V7WEJcxOzEIk2bbxY4UEpLhfFv8RHrV8M7jmjVRC+mN094zMnzBVSv8KIjk0Ljff
|
||||
ysY=
|
||||
-----END ENCRYPTED PRIVATE KEY-----
|
||||
Binary file not shown.
|
|
@ -0,0 +1,9 @@
|
|||
-----BEGIN ENCRYPTED PRIVATE KEY-----
|
||||
MIIBLDBXBgkqhkiG9w0BBQ0wSjApBgkqhkiG9w0BBQwwHAQICIPD0G0X/sECAggA
|
||||
MAwGCCqGSIb3DQIJBQAwHQYJYIZIAWUDBAECBBDSrIv/kITtQ/RL5j675WqsBIHQ
|
||||
oSiQJLyXPOmnNYmWLw4Biom8Utn/I8109mUujVPhUA63njp0I/jGwNn4FcdilZlO
|
||||
TTCKIxlzG3zhztS5xqxQFuzWNQdTgfqzO7DSi/ZtGErvZi+ShaiQU7ri7LYRIw8C
|
||||
7YtXiPrfPSKpfyU0adD2socAa1OlnvinoaHYd/QNs4EEv3hahIiq/nHpzRkb2qdX
|
||||
XIruJhlvF4B07aYfmRvMK4CVd6VGXfGfGXECFqMk5b7HwJzkMTbtB2bsMTNguGxK
|
||||
o1+Hf3PHRst6q1776z8ENw==
|
||||
-----END ENCRYPTED PRIVATE KEY-----
|
||||
Binary file not shown.
|
|
@ -0,0 +1,9 @@
|
|||
-----BEGIN ENCRYPTED PRIVATE KEY-----
|
||||
MIIBHjBJBgkqhkiG9w0BBQ0wPDAbBgkqhkiG9w0BBQwwDgQIdlQB+08q40gCAggA
|
||||
MB0GCWCGSAFlAwQBKgQQ3dY2cSZfdPyeYlHRO+M63wSB0DjoR/cQ2rLkW1Ur8V1q
|
||||
LG/0nv0O1mVK8Sj+BcOje/nqMU67lRdkXVI1yICmpwrwFEkwIV6zHIx+Dwriliel
|
||||
h0yXsTLaBmMQeJo17J6kOyuW+C0Mr8CqlnAVEoEQI7FPes7rtw6W0wkuuPPw3vEs
|
||||
RKB8xwdfS5t5ot5DtKZ5rN+6XbtRA/jdfi1O6ekKzeT0fpRGP+ppTEmCh77+8Ity
|
||||
/BwPKGXepZpHkOcDOvWGdDiuy7vhA5gaYyzpXPD2Fo3V5cobFzgLzT3in+b6YtV4
|
||||
s/4=
|
||||
-----END ENCRYPTED PRIVATE KEY-----
|
||||
Binary file not shown.
|
|
@ -0,0 +1,9 @@
|
|||
-----BEGIN ENCRYPTED PRIVATE KEY-----
|
||||
MIIBLDBXBgkqhkiG9w0BBQ0wSjApBgkqhkiG9w0BBQwwHAQIVsIsQ3kPm5gCAggA
|
||||
MAwGCCqGSIb3DQIJBQAwHQYJYIZIAWUDBAEqBBAOdrxyNKYeoKCTuDXeYiwpBIHQ
|
||||
DheVgnsmJ7bYb5Y02qOdCjfYEUje8bvendhIsG41recaNjdHcWQB1JOV8anmZPJ+
|
||||
4buMQhE9Lfw5Hvg2x0pqkvQCV0aUWUwwybnoQ9T8z0z67WJG6f03m9eE+Mzw9Q0D
|
||||
wavghqO/lnh9uGd4Tdfzuj0NWHbrey7ags81fZ9jWOdX/M5LywFr7oThokfq6LlH
|
||||
rpnK13j9MUVrmmSvsjVXGjWErEaTXbJOpCeyDn1510iI5pyGRZpicmfHzE6YNHvF
|
||||
dKSlxRWO+cOxE9Ax9dm5mg==
|
||||
-----END ENCRYPTED PRIVATE KEY-----
|
||||
Binary file not shown.
|
|
@ -0,0 +1,8 @@
|
|||
-----BEGIN ENCRYPTED PRIVATE KEY-----
|
||||
MIIBFTBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIwE9ZHpXAOK8CAggA
|
||||
MBQGCCqGSIb3DQMHBAgOtF6y98HdvQSB0KtvnVtpFqjG8OLzPyZrugisgiYBgvoU
|
||||
62D+rfO5Ji4cbWwuQEeS3ywI7rHH6BG8+mxcVeQHSmGZi336M/j0erO/yo6MnkrU
|
||||
a8pfrqfPvLJPa+2FPSWlM/+ppj+kcaZa0B8pF/mioBThID8KhDFm8CG4UwP4P2Kn
|
||||
GUUGmM9cyNdPFWuVg8PyY1zHcx2GNiL4XZcKp1qsGf75uso8DmgrvI+c9yDD+5ag
|
||||
rPmsgFSy3XtlNmYGyLq1pW4rQ6ivLknZc5oweqjISVT3jKjJqowgJYo=
|
||||
-----END ENCRYPTED PRIVATE KEY-----
|
||||
Binary file not shown.
|
|
@ -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-----
|
||||
Binary file not shown.
|
|
@ -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-----
|
||||
Binary file not shown.
|
|
@ -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-----
|
||||
Binary file not shown.
|
|
@ -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-----
|
||||
Binary file not shown.
|
|
@ -0,0 +1,8 @@
|
|||
-----BEGIN ENCRYPTED PRIVATE KEY-----
|
||||
MIHxMBwGCiqGSIb3DQEMAQYwDgQI3y3PINAU1csCAggABIHQEPD8M7YheSdikqwW
|
||||
tem/Oz+CZxAXWCBYokpxSeGexFR85Ni2bd/wr8tT4Mv5nNrPLlcNMrKLYCTWryEu
|
||||
PtW1XtMp881xmPM9QMgrFRfhiGeVfveEmKZzdGrXN5RRqa20Xa0ufEqaJpvfJHIz
|
||||
meWfNkAUtr0RhwK1tMfjxg3CvnSXG1l/cegvUgsc5Nq4VfCOwLYAPY24ltYIZrAp
|
||||
JKuc9XkbBx+Uow4kOVpOBTA28giB9gywSbpn1/bCgrm1iBltlrC1bOI2UEYLXAK8
|
||||
S8kOew==
|
||||
-----END ENCRYPTED PRIVATE KEY-----
|
||||
Binary file not shown.
|
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN ENCRYPTED PRIVATE KEY-----
|
||||
MIHqMBwGCiqGSIb3DQEMAQEwDgQIS1fq1s4wBy4CAggABIHJsEjsk3aow+m3DXPe
|
||||
1KCnwl0qXzzh96JCrtAa+2pWytp52+mZphUgnNXYkIoj0rdqJbr1y4/3t73ffVFG
|
||||
TU/4401k2QTSKo2mObTxY811fnWImBbNG3BJVmoq8zvJuHrctfVQuKBQb9UFA7RF
|
||||
E5WrYwkNXfRxgSsuUgtMvklHyxeAjxdZ0vWennUuPkJIa4XQhIY5gqMiume8dCGl
|
||||
mDujTHUPhBjRKifaGQv2hvc8l7FgjUlUY1DcZIl0AapzF3jEXS/Se90FOE2M
|
||||
-----END ENCRYPTED PRIVATE KEY-----
|
||||
Binary file not shown.
|
|
@ -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-----
|
||||
Binary file not shown.
|
|
@ -0,0 +1,9 @@
|
|||
-----BEGIN ENCRYPTED PRIVATE KEY-----
|
||||
MIIBHTBIBgkqhkiG9w0BBQ0wOzAeBgkqhkiG9w0BBQwwEQQI7hWoVS10HvICAggA
|
||||
AgEQMBkGCCqGSIb3DQMCMA0CAToECLPHM3qUvtYPBIHQl36zBfnW7J89+Kl+tLa4
|
||||
rm9Iu8KpMNJm2bnuLptltF/e5Vyp92xRvuCoaAVQka0dq4jKOVOkruMfHHHOf22g
|
||||
mxpwtJfYvKqqjW2KH2FE0Y3l1XPV6o4Of5FbhvcULDmNtCoFlme0hoAoHm1kUUzS
|
||||
Ed4CJqc6VpYpHGCv8X6k+0j274XnPqRJaY8KizrD0+/i6vS/nu/srxLqt9COT9nS
|
||||
tVTQL/CRmmXf8/jSdVLDMKjjboFU1FtVZnOq4yAAuJiBZFtfmIF5+EI1dbXMbMdF
|
||||
MA==
|
||||
-----END ENCRYPTED PRIVATE KEY-----
|
||||
Binary file not shown.
|
|
@ -0,0 +1,9 @@
|
|||
-----BEGIN ENCRYPTED PRIVATE KEY-----
|
||||
MIIBKzBWBgkqhkiG9w0BBQ0wSTAsBgkqhkiG9w0BBQwwHwQIysmtT0sgtmsCAggA
|
||||
AgEQMAwGCCqGSIb3DQIJBQAwGQYIKoZIhvcNAwIwDQIBOgQI3Lf5sOaUEmsEgdDE
|
||||
0UkzkZdDMLBn9gGk9plFNb+2QKT2l0M1byplj92l8+eSv9stLTSf3v9STP7c/plJ
|
||||
PMj4RUym4W7URvFhIEicyLDYNL7nD9JELC2i7E6S3NaSAZVeOxSl4gxEVtOPC00i
|
||||
Dy/AISKSeNNBJkdUwT+m7as8Uc4+M1eitfMBQFUjRWQONpzw/2NtIeqI14VKPAM0
|
||||
1kVQTsO7TLEAwj7Jd1iscGakz+Ib7zMl1pCbVHrlh6nHrKvF+gvMDw5eC952CbpD
|
||||
XCcPq3tU2j6KGGzK3ksd
|
||||
-----END ENCRYPTED PRIVATE KEY-----
|
||||
Binary file not shown.
|
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN PRIVATE KEY-----
|
||||
MIHIAgEAMIGpBgcqhkjOOAQBMIGdAkEA+7WshnhYKUIf+71hYgDUGQcSk2JxzOw6
|
||||
rpKt3fkIafnkm6KnXeTIPrWlSLAhtHpsCX56HDzYu69BRyVjuYiFxwIVAJljwa1Y
|
||||
uxEZ/+w73/UFLgvb0juZAkEAhk+R4vDxKY6w78hLyCfhSwnT4L3BWn6pINaAM4NU
|
||||
lVzsYP6ye4R9vCvc2h+254GszhsjvKrCzl1RDI3UyJenAgQXAhUAl95kGzNYPVm5
|
||||
Y+2jpGA9N2PkcCU=
|
||||
-----END PRIVATE KEY-----
|
||||
Binary file not shown.
|
|
@ -0,0 +1,6 @@
|
|||
-----BEGIN ENCRYPTED PRIVATE KEY-----
|
||||
MIGgMBsGCSqGSIb3DQEFAzAOBAihGk2iurZE8wICCAAEgYCaneaK9dlMsDGD11jl
|
||||
F5etfmvAbUbpzVmooM4ORHweCnP/DiwJVyQ02dU3PlB0teLCG6DyJCl6CaOhZjRc
|
||||
cDE4fYIBBVtLlcqwr8oc73DWi3azJ+/KdkuUQyHZEkzNo9Thi1owDI6XMlWbFZwd
|
||||
wSlfuk9AghDAN8/n3iMu87veSQ==
|
||||
-----END ENCRYPTED PRIVATE KEY-----
|
||||
Binary file not shown.
|
|
@ -0,0 +1,6 @@
|
|||
-----BEGIN ENCRYPTED PRIVATE KEY-----
|
||||
MIGgMBsGCSqGSIb3DQEFBjAOBAgQKZdqJ6i7cQICCAAEgYCfJQJakYch640S/EA0
|
||||
tLuO7xxLgeI9gxeooy0GM9FeHiDencz9BXJrFFpXLs8J5IgVuj2zjfMDOuf/3zCa
|
||||
gn1itwByKWPLXHx5vRUAT5zds2F3uBo7RCQj+FlR3xv4Xuqwx34qfYJpafORpi7/
|
||||
eO6M4V2BnAkws1b5UK0WDjFfSQ==
|
||||
-----END ENCRYPTED PRIVATE KEY-----
|
||||
Binary file not shown.
|
|
@ -0,0 +1,6 @@
|
|||
-----BEGIN ENCRYPTED PRIVATE KEY-----
|
||||
MIGgMBsGCSqGSIb3DQEFCjAOBAjruvWW+JZt7wICCAAEgYAgvrADpBoAMNrS8uYX
|
||||
9FTnHUsGr5Sg3e2ueEwMUGsnGliJJTa58r9634RffN6uyB8jBihCdQw5iBbzLkC2
|
||||
ltEVcOR8pNQvprGXX4X/jwOY4RhyKrb89YdZ2BZ4orzY5cL+6nGYQKEm3WlrXW+a
|
||||
Ncq6UvRpVmHqQ0OW+zuCbi5/nA==
|
||||
-----END ENCRYPTED PRIVATE KEY-----
|
||||
Binary file not shown.
|
|
@ -0,0 +1,6 @@
|
|||
-----BEGIN ENCRYPTED PRIVATE KEY-----
|
||||
MIGgMBsGCSqGSIb3DQEFCzAOBAg95ivo7up6egICCAAEgYDAMawlX0a61+iLgab0
|
||||
Zi62Ef7g0Jdj0KG4NeKmWrmuCXI3HBiAVv878vWkL8cMx5DqhBDw8A14aOxCkIm9
|
||||
uZ5twNwunINclMQtYxL7mtQLjUr50sFFY/Dd2PH669Qb6dqZC6efO7y31n93+fUI
|
||||
gyntTIXfeuUSg8uw/qG9Vfa6oQ==
|
||||
-----END ENCRYPTED PRIVATE KEY-----
|
||||
Binary file not shown.
|
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN ENCRYPTED PRIVATE KEY-----
|
||||
MIHOMEkGCSqGSIb3DQEFDTA8MBsGCSqGSIb3DQEFDDAOBAhC3xITYW8eRQICCAAw
|
||||
HQYJYIZIAWUDBAECBBDUQa3ddOnliyQ/qIYEFmK2BIGASDcmbEFHEwmV9uJzQEI4
|
||||
hfZTOVaR0lYHCTTnJjEsbM8oyvVvMxJkefNqPVkBF1Oc4nHaN6LEPIZRpHYJxjDH
|
||||
tk7RFlcvSlS2Dcv41y+2Bcj1dMtocXM1t6jxo5nioeBnHCUQr3VsDT9+eJvithY9
|
||||
UyUqUt+P5f1H1LCpqD3BYcc=
|
||||
-----END ENCRYPTED PRIVATE KEY-----
|
||||
Binary file not shown.
|
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN ENCRYPTED PRIVATE KEY-----
|
||||
MIHcMFcGCSqGSIb3DQEFDTBKMCkGCSqGSIb3DQEFDDAcBAjv/NQpQZwZbgICCAAw
|
||||
DAYIKoZIhvcNAgkFADAdBglghkgBZQMEAQIEEPMGCKos4+H6cwxOhDR8UbQEgYC6
|
||||
01v9qHJnnFkHBbQ7L4xpWY3RVHTalKfCfLQErqwPx1akV7BPdCZmjd4rAdIGLImy
|
||||
kaaAPVrJ3GVjF6fW+E9UIGoDEbFeZ1hlnTzhOTqUwGiBrCM0SY3XDyBxSdqv/Pk/
|
||||
M4Ibk/lDycV/kWm26j2I9OYPxedj4vdPgXPxEi7FeQ==
|
||||
-----END ENCRYPTED PRIVATE KEY-----
|
||||
Binary file not shown.
|
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN ENCRYPTED PRIVATE KEY-----
|
||||
MIHOMEkGCSqGSIb3DQEFDTA8MBsGCSqGSIb3DQEFDDAOBAgYx6Cuor4IHQICCAAw
|
||||
HQYJYIZIAWUDBAEqBBDc1FODsp0BBJI/EOjU/nA1BIGAUIe6lzmR2cWVQUAW6gF8
|
||||
UdykIWS5E4AnbPtaiVdFNmhyjtUq10gf67jX3/hfA3QXwDCTT1aot+5Vjrb57M8S
|
||||
hjxrs871w0UvzBmrTLJA2/BWPz5gni72fj1N5JGYUKI4MFKHGhv53iUzW/E8KiRW
|
||||
ab4KY+hUF9zFcXOBwOGvG7E=
|
||||
-----END ENCRYPTED PRIVATE KEY-----
|
||||
Binary file not shown.
|
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN ENCRYPTED PRIVATE KEY-----
|
||||
MIHcMFcGCSqGSIb3DQEFDTBKMCkGCSqGSIb3DQEFDDAcBAg+0vyp4rA5hgICCAAw
|
||||
DAYIKoZIhvcNAgkFADAdBglghkgBZQMEASoEEDlKgIIcdKfiQcsZLfQt97cEgYAD
|
||||
TrjldhQKT8SjAnmChT/knsUeJzThLxKpdpRwbr8qYTZbCmngbb2oYBkrNzAwGoVM
|
||||
+cj+6p3EgP7T/zjJYj7EArRvs7FM0spxqre2bQY3GG5E3PDGyR/h4nwdVTzorqNw
|
||||
/35Dtl8ifbnVI4SCwTtifnCDsz9TjIXszixrCm354g==
|
||||
-----END ENCRYPTED PRIVATE KEY-----
|
||||
Binary file not shown.
|
|
@ -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-----
|
||||
Binary file not shown.
|
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN ENCRYPTED PRIVATE KEY-----
|
||||
MIHTME4GCSqGSIb3DQEFDTBBMCkGCSqGSIb3DQEFDDAcBAgf2AMm0URGvQICCAAw
|
||||
DAYIKoZIhvcNAgkFADAUBggqhkiG9w0DBwQI/4fa6rbvznsEgYBImRLhwGbEgcLm
|
||||
+yHcsohX1uQyqPfP8PVHGtM6ITaAJ16djxQKfXRoffS4DSTnhFgHnXm42V7epgJO
|
||||
ZHRe0dVbKynbp1ZCnNIXsvsgyP4ghfw70j2u+45fiBK2ZqhVaQns/1t02eIa7Kud
|
||||
308ffy9xR8xbCV9H1hu978sWDPRgmA==
|
||||
-----END ENCRYPTED PRIVATE KEY-----
|
||||
Binary file not shown.
|
|
@ -0,0 +1,6 @@
|
|||
-----BEGIN ENCRYPTED PRIVATE KEY-----
|
||||
MIGhMBwGCiqGSIb3DQEMAQQwDgQIASNN5nArudcCAggABIGAsi5Ta25v+vkS7qc0
|
||||
b10/Hv1H2SVhhOA4iYMdjB2XgpRFXBduYIFfROdAT8pJvspZ2EIJGu975H+SKeJ3
|
||||
ndULrOFmaDknlsAyVW8HslnOiuQVpNE0vTWWJYVg1xq9Hwg5YU7C1PsCMy8f5g4O
|
||||
gbsHxVy7AGF2FSrJqy2PVdoEADI=
|
||||
-----END ENCRYPTED PRIVATE KEY-----
|
||||
Binary file not shown.
|
|
@ -0,0 +1,6 @@
|
|||
-----BEGIN ENCRYPTED PRIVATE KEY-----
|
||||
MIGhMBwGCiqGSIb3DQEMAQMwDgQINArkfLom3CoCAggABIGAaqrWHE+VgTLr/TQk
|
||||
x86KYu88/eiO5jxGUxbFwUCOtTbw8g40MY4tuXNhhm9lQ5zVSrC7fdjagqr6Flz5
|
||||
YV8NWpURbA4CKXgX+JKUMzZclHUwfe/M/CI5tKIU8vu7O2jl8gL5mOAFagLmFUld
|
||||
iS5+KYtWvuOy1jQd9Cn4pOrF0yA=
|
||||
-----END ENCRYPTED PRIVATE KEY-----
|
||||
Binary file not shown.
|
|
@ -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-----
|
||||
Binary file not shown.
|
|
@ -0,0 +1,6 @@
|
|||
-----BEGIN ENCRYPTED PRIVATE KEY-----
|
||||
MIGhMBwGCiqGSIb3DQEMAQYwDgQIYoqh4a7jy44CAggABIGAhOjw9xEXhMSaBJM6
|
||||
Opu29QK4+h7/RJJ+NcrzFBPV5p6t0bjqONRxdq8LwXA5nimlUq3ZbRqjhu0BCKh5
|
||||
+jvfjs0R9qD2cAv3QXjk6eh2YEx+wuDbc50SSL1Y826sLD06V4KThrQwfaLHE7r1
|
||||
mjx5N5Jg5rPFdTGe4umThyGlGPo=
|
||||
-----END ENCRYPTED PRIVATE KEY-----
|
||||
Binary file not shown.
|
|
@ -0,0 +1,6 @@
|
|||
-----BEGIN ENCRYPTED PRIVATE KEY-----
|
||||
MIGaMBwGCiqGSIb3DQEMAQEwDgQIvutMegO9IYICAggABHoRfn/sZK/NRxF7jwF2
|
||||
+/0zh3Y/8cCm4xeGaCP7NOcJoJXOisXXxT05tgQEa5mfymOFK1PYjnHHVVLGs6CQ
|
||||
TDPI2kb6XteXjkzR8Q0WQUtLSgAQ9/uEMmr43jAabaw+qnIcJrjaTt3rlbezZioR
|
||||
Q3xbb38W5QBFcUIpCg==
|
||||
-----END ENCRYPTED PRIVATE KEY-----
|
||||
Binary file not shown.
|
|
@ -0,0 +1,6 @@
|
|||
-----BEGIN ENCRYPTED PRIVATE KEY-----
|
||||
MIGaMBwGCiqGSIb3DQEMAQIwDgQIGgo8eWJg23YCAggABHp/EXYSQmp35zzgLl8l
|
||||
paNqOjR3Ku19rhrN9QiW1dagTztFuqzezlZC7WjbycWz9qRZeQFLLAEi/DIipIAf
|
||||
sLsnbtfBypqcUCoO2AysmI31hPSaXSsHDH4cJ5LH+1DK6KVeQoVGJw/xTvrmaBD8
|
||||
lD9zOO313VgMIGe7wg==
|
||||
-----END ENCRYPTED PRIVATE KEY-----
|
||||
Binary file not shown.
|
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN ENCRYPTED PRIVATE KEY-----
|
||||
MIHNMEgGCSqGSIb3DQEFDTA7MB4GCSqGSIb3DQEFDDARBAjwbKdmEddIYQICCAAC
|
||||
ARAwGQYIKoZIhvcNAwIwDQIBOgQIvopesgNCATUEgYDQ7uOTZ+cUnxDAVh3z845L
|
||||
QyZ2KkSbna0NmiKZGy9e1kh5iAQ1RhZ2iKaTTyGlpCi4i2mlZo3gvJbEHp+Do2vc
|
||||
nq9g57AP6dU9+1LsLsTeVFbdJ7OymlcwUoSfF723g9IGlQa0D5K4RTR3y34lHMNC
|
||||
NmrOwaAH4DPKDyC5EWYV0Q==
|
||||
-----END ENCRYPTED PRIVATE KEY-----
|
||||
Binary file not shown.
|
|
@ -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-----
|
||||
Binary file not shown.
|
|
@ -0,0 +1,5 @@
|
|||
-----BEGIN PRIVATE KEY-----
|
||||
MHgCAQAwEAYHKoZIzj0CAQYFK4EEACEEYTBfAgEBBBxr31AB6pNVnFUfX9rNKpZc
|
||||
Ps+RbUj5PYdpHLtIoTwDOgAEg7Qj4reRDs3ot/r/rp2orzU/g07BIYsZCsLLrf8j
|
||||
8wq50FHUIdwDRZEfpfGBPBXGgd/9DS9T7hU=
|
||||
-----END PRIVATE KEY-----
|
||||
|
|
@ -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
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -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-----
|
||||
Binary file not shown.
|
|
@ -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-----
|
||||
Binary file not shown.
|
|
@ -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-----
|
||||
Binary file not shown.
|
|
@ -0,0 +1,11 @@
|
|||
-----BEGIN ENCRYPTED PRIVATE KEY-----
|
||||
MIIBgTAbBgkqhkiG9w0BBQswDgQI+m9oVxROlkYCAggABIIBYBRYVJdSaW3fR2zh
|
||||
t/s5PFJ+9ebZUxhSRoc7lxk5LU76xJIH6EUa5k2sPH2WnWfu/V0Hi6t7FC0wkPLZ
|
||||
QUNcr8VPESfjDkzqmU9H+37mfrUG63P5hGgyoWzMEaok2uFfjt1e1XVfVLe8P1Z+
|
||||
zxy4+BNoLzWQ/Wb/gTwVVc0kkttmjUiRIqSQLCEh8ntWF2ws0JS+ihiR9NUdPdEe
|
||||
niQWskeAxWvO758m6kfTQeRY7WnVWPaqoosH1+uC8UZ2TmuWqTxJlHTvqEJzjPTK
|
||||
n7EzwIFHhZVJ+p+IT/6SvwL5i1h0dtlNwOfTlcU6W//U76cYmwwtrzjwVsKJNbBw
|
||||
vuPboJ2asZSzXa8887zI8O3+5ClkTCvJpk46QJHuNTQhJc1/R7aXgWbpiGu8CBCo
|
||||
PNB1OEbs+lTU8DYp8cIxdc/aTKnSxPm4d73jCaOEJ1Sj4tA97rPQVEFu0w/HLtP+
|
||||
6MxHjI0=
|
||||
-----END ENCRYPTED PRIVATE KEY-----
|
||||
Binary file not shown.
|
|
@ -0,0 +1,12 @@
|
|||
-----BEGIN ENCRYPTED PRIVATE KEY-----
|
||||
MIIBrzBJBgkqhkiG9w0BBQ0wPDAbBgkqhkiG9w0BBQwwDgQINZqXAZw29eMCAggA
|
||||
MB0GCWCGSAFlAwQBAgQQMN7uviOQj5Hdt8Zb9sCtrQSCAWCsMtmLiGbnaleRuRh5
|
||||
mRWDqJ0PYXNaaTwQ24WKjl8dquPPJZz0QU2hDZGtuhBL90A2lqvG9oHJmFBpMg4E
|
||||
RPHS33R04BtCTdpfCUziKcBomHbrh8ttQ/Y1UA9OgSgob3GQIDxwNS+0p0wApyWC
|
||||
InPBE4DXByp9o1lQxNZj2wkmWLfkXCT75aMxevM30lf33SOCXDPTvtHlz/YcB6Yh
|
||||
i/b31YUAEOilXaqaCu427BMPKCanshJAjX3wwOROQ+yh8R8HiSPu+x55gJlU+yCn
|
||||
9S/oNwtTMimpI21cZTUIOkIRYyKJhgvUxjlQ0CjcMOjJvDms2rRgNhD6IFZrXoks
|
||||
FRF/Z9pUH0n/m3208uckyPkilwoFNoYLec0lq1SdtBq2LOBV0hgCmR0J0Fokpo/p
|
||||
8T/rzlb48JowOfZLnLqMtC6uqccQWmiEY3691exhFf5muUYsd8uOVkeWgMTfVnua
|
||||
jwVr
|
||||
-----END ENCRYPTED PRIVATE KEY-----
|
||||
Binary file not shown.
|
|
@ -0,0 +1,12 @@
|
|||
-----BEGIN ENCRYPTED PRIVATE KEY-----
|
||||
MIIBvTBXBgkqhkiG9w0BBQ0wSjApBgkqhkiG9w0BBQwwHAQIadJLdxsx0GsCAggA
|
||||
MAwGCCqGSIb3DQIJBQAwHQYJYIZIAWUDBAECBBDc7IW9CVmuaaYtM4KFXpsUBIIB
|
||||
YC1qJ4WQa6f2uxeaojvzpgYHmrh4gR9gXa2cNwCNQir557amVsPqiXEiSYmqrCy/
|
||||
Y9tN5ubLxu3z5TtscC1Y9bqP8oY3bQj+AleqzmywVI7dJhwGoTaM9lD574cknKVo
|
||||
Fn5oe6a4dTTg8wxcic+zWFc5EPi3g3swu3jqmjrLaOM8gd0RlWkAFmM60F8LX9G1
|
||||
mxnNZXHcRmkpugpICwaNYhROlzVfvLQvqtlJNccGc6QvYq/zY0nX6R3ISkbW/Bzn
|
||||
kadVaA4hNrao9RA9TT61v4H95+BGF6CLDTyU1z3jtaEvm4ihygeA5mS/pjBd7lAi
|
||||
V9YCNazgfMlgNv1ynwU67e8to89SFvzrv2sjUEDEAx1cN6zLGl42dz7ZDk1ytmsO
|
||||
grVc9vON+HhwrVIZiu8bMjj4lSD6E1XqsffpNzEhOAy2INp9ArvakCVP4mE06dv4
|
||||
4LHAAqaYj8jIHSBDPYw3F7w=
|
||||
-----END ENCRYPTED PRIVATE KEY-----
|
||||
Binary file not shown.
|
|
@ -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-----
|
||||
Binary file not shown.
|
|
@ -0,0 +1,12 @@
|
|||
-----BEGIN ENCRYPTED PRIVATE KEY-----
|
||||
MIIBvTBXBgkqhkiG9w0BBQ0wSjApBgkqhkiG9w0BBQwwHAQINZe2ZZmkA6ECAggA
|
||||
MAwGCCqGSIb3DQIJBQAwHQYJYIZIAWUDBAEqBBBrqs2JUotuTr374kCzYAyoBIIB
|
||||
YDqyE1zTjItA+UhQ2jZ53NnaTCWTccqSVtb11jizZCOSvVEN0vayyr2OoQKsOw1y
|
||||
Uane3niV4MX8H98u5Vz+ijHuebBTiSbtSAlEqeeWTtzNfsQa4PN633n4ov1Ybn2+
|
||||
ZiW2n5d3cbC+bqPGs5cjTA6GPxLsojx6ZZEQBAyiUZ8Ikn2UsLxBV7RMiS1MK+wg
|
||||
1cvtOzDuA1SbAtLbv4GOFTYrZZrzrmtIJvxD9C0Nlsa4ci9PkVclE/tzTQxqHOq6
|
||||
DLC7LErqrWfZI3KNlw4c33CV3VaXiB1dFHcTohlYhYbrJZPz6wiKN5c1IxxD0fj8
|
||||
2BseKG3iV3jrp0yt9zSgquJL3OOAHk1rG4zvjQySJ29SVEH0TyvsLSPiV87U5u64
|
||||
rpHC8yRNz3ut//ZVPQKnz/dftFw5b80vXT2UT0BZQTzj4HHDkIBKDc8USteag91O
|
||||
SBmhwK5Vuuph6o8ILY3YoUA=
|
||||
-----END ENCRYPTED PRIVATE KEY-----
|
||||
Binary file not shown.
|
|
@ -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-----
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue