Skip to content

Commit 9d370eb

Browse files
amitabnmariz
authored andcommitted
BUG21947091: Add ssl_disabled option
Connections are now made in SSL by default. It quietly switches to unsecured if SSL is not available. The only time it complains is when `ssl_verify_cert` is set to `True` and SSL is not available. Tests have been added/updated for regression.
1 parent a067e17 commit 9d370eb

17 files changed

+387
-294
lines changed

lib/mysql/connector/abstracts.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ def __init__(self, **kwargs):
6060
self._client_host = ''
6161
self._client_port = 0
6262
self._ssl = {}
63+
self._ssl_disabled = DEFAULT_CONFIGURATION["ssl_disabled"]
6364
self._force_ipv6 = False
6465

6566
self._use_unicode = True
@@ -304,6 +305,9 @@ def config(self, **kwargs):
304305
raise errors.InterfaceError(
305306
"TCP/IP port number should be an integer")
306307

308+
if "ssl_disabled" in config:
309+
self._ssl_disabled = config.pop("ssl_disabled")
310+
307311
# Other configuration
308312
set_ssl_flag = False
309313
for key, value in config.items():
@@ -344,7 +348,6 @@ def config(self, **kwargs):
344348
"ssl_key and ssl_cert need to be both "
345349
"set, or neither."
346350
)
347-
self.set_client_flags([ClientFlag.SSL])
348351

349352
def _check_server_version(self, server_version):
350353
"""Check the MySQL version

lib/mysql/connector/connection.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,14 @@ def _do_handshake(self):
114114
self._server_version = self._check_server_version(
115115
handshake['server_version_original'])
116116

117+
if not handshake['capabilities'] & ClientFlag.SSL:
118+
self._client_flags &= ~ClientFlag.SSL
119+
if self._ssl.get('verify_cert'):
120+
raise errors.InterfaceError("SSL is required but the server "
121+
"doesn't support it", errno=2026)
122+
elif not self._ssl_disabled:
123+
self._client_flags |= ClientFlag.SSL
124+
117125
if handshake['capabilities'] & ClientFlag.PLUGIN_AUTH:
118126
self.set_client_flags([ClientFlag.PLUGIN_AUTH])
119127

@@ -131,11 +139,15 @@ def _do_auth(self, username=None, password=None, database=None,
131139
reply back. Raises any error coming from MySQL.
132140
"""
133141
self._ssl_active = False
134-
if client_flags & ClientFlag.SSL and ssl_options:
142+
if client_flags & ClientFlag.SSL:
135143
packet = self._protocol.make_auth_ssl(charset=charset,
136144
client_flags=client_flags)
137145
self._socket.send(packet)
138-
self._socket.switch_to_ssl(**ssl_options)
146+
self._socket.switch_to_ssl(ssl_options.get('ca'),
147+
ssl_options.get('cert'),
148+
ssl_options.get('key'),
149+
ssl_options.get('verify_cert') or False,
150+
ssl_options.get('cipher'))
139151
self._ssl_active = True
140152

141153
packet = self._protocol.make_auth(

lib/mysql/connector/connection_cext.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -158,12 +158,13 @@ def _open_connection(self):
158158
'compress': self.isset_client_flag(ClientFlag.COMPRESS)
159159
}
160160

161-
if self.isset_client_flag(ClientFlag.SSL):
161+
if not self._ssl_disabled:
162162
cnx_kwargs.update({
163-
'ssl_ca': self._ssl['ca'],
164-
'ssl_cert': self._ssl['cert'],
165-
'ssl_key': self._ssl['key'],
166-
'ssl_verify_cert': self._ssl['verify_cert']
163+
'ssl_ca': self._ssl.get('ca'),
164+
'ssl_cert': self._ssl.get('cert'),
165+
'ssl_key': self._ssl.get('key'),
166+
'ssl_verify_cert': self._ssl.get('verify_cert') or False,
167+
'ssl_disabled': self._ssl_disabled
167168
})
168169

169170
try:

lib/mysql/connector/constants.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757
'ssl_key': None,
5858
'ssl_verify_cert': False,
5959
'ssl_cipher': None,
60+
'ssl_disabled': False,
6061
'passwd': None,
6162
'db': None,
6263
'connect_timeout': None,

src/mysql_capi.c

Lines changed: 17 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1034,7 +1034,7 @@ MySQL_connect(MySQL *self, PyObject *args, PyObject *kwds)
10341034
{
10351035
char *host= NULL, *user= NULL, *database= NULL, *unix_socket= NULL;
10361036
char *ssl_ca= NULL, *ssl_cert= NULL, *ssl_key= NULL;
1037-
PyObject *charset_name, *compress, *ssl_verify_cert, *password;
1037+
PyObject *charset_name, *compress, *ssl_verify_cert, *password, *ssl_disabled;
10381038
const char* auth_plugin;
10391039
unsigned long client_flags= 0;
10401040
unsigned int port= 3306, tmp_uint;
@@ -1055,21 +1055,22 @@ MySQL_connect(MySQL *self, PyObject *args, PyObject *kwds)
10551055
{
10561056
"host", "user", "password", "database",
10571057
"port", "unix_socket", "client_flags",
1058-
"ssl_ca", "ssl_cert", "ssl_key", "ssl_verify_cert",
1058+
"ssl_ca", "ssl_cert", "ssl_key", "ssl_verify_cert", "ssl_disabled",
10591059
"compress",
10601060
NULL
10611061
};
10621062

10631063
#ifdef PY3
1064-
if (!PyArg_ParseTupleAndKeywords(args, kwds, "|zzzzkzkzzzO!O!", kwlist,
1064+
if (!PyArg_ParseTupleAndKeywords(args, kwds, "|zzzzkzkzzzO!O!O!", kwlist,
10651065
#else
1066-
if (!PyArg_ParseTupleAndKeywords(args, kwds, "|zzOzkzkzzzO!O!", kwlist,
1066+
if (!PyArg_ParseTupleAndKeywords(args, kwds, "|zzOzkzkzzzO!O!O!", kwlist,
10671067
#endif
10681068
&host, &user, &password, &database,
10691069
&port, &unix_socket,
10701070
&client_flags,
10711071
&ssl_ca, &ssl_cert, &ssl_key,
10721072
&PyBool_Type, &ssl_verify_cert,
1073+
&PyBool_Type, &ssl_disabled,
10731074
&PyBool_Type, &compress))
10741075
{
10751076
return NULL;
@@ -1124,39 +1125,26 @@ MySQL_connect(MySQL *self, PyObject *args, PyObject *kwds)
11241125
mysql_options(&self->session, MYSQL_OPT_READ_TIMEOUT, (char*)&tmp_uint);
11251126
mysql_options(&self->session, MYSQL_OPT_WRITE_TIMEOUT, (char*)&tmp_uint);
11261127

1127-
if (ssl_ca || ssl_cert || ssl_key) {
1128+
if (ssl_disabled && ssl_disabled == Py_False) {
11281129
ssl_enabled= 1;
1129-
#if MYSQL_VERSION_ID > 50703 && MYSQL_VERSION_ID < 50711
1130-
{
1131-
abool= 1;
1132-
mysql_options(&self->session, MYSQL_OPT_SSL_ENFORCE, (char*)&abool);
1133-
}
1134-
#endif
1135-
#if MYSQL_VERSION_ID >= 50711
1136-
{
1137-
ssl_mode= SSL_MODE_REQUIRED;
1138-
mysql_options(&self->session, MYSQL_OPT_SSL_MODE, &ssl_mode);
1139-
}
1140-
#endif
1141-
1130+
client_flags |= CLIENT_SSL;
11421131
if (ssl_verify_cert && ssl_verify_cert == Py_True)
11431132
{
11441133
#if MYSQL_VERSION_ID >= 50711
1145-
{
1146-
ssl_mode= SSL_MODE_VERIFY_IDENTITY;
1147-
mysql_options(&self->session, MYSQL_OPT_SSL_MODE, &ssl_mode);
1148-
}
1134+
ssl_mode= SSL_MODE_VERIFY_IDENTITY;
1135+
mysql_options(&self->session, MYSQL_OPT_SSL_MODE, &ssl_mode);
11491136
#else
1150-
{
1151-
abool= 1;
1152-
mysql_options(&self->session,
1153-
MYSQL_OPT_SSL_VERIFY_SERVER_CERT, (char*)&abool);
1154-
}
1137+
abool= 1;
1138+
#if MYSQL_VERSION_ID > 50703
1139+
mysql_options(&self->session, MYSQL_OPT_SSL_ENFORCE, (char*)&abool);
1140+
#endif
1141+
mysql_options(&self->session,
1142+
MYSQL_OPT_SSL_VERIFY_SERVER_CERT, (char*)&abool);
11551143
#endif
1156-
mysql_ssl_set(&self->session, ssl_key, ssl_cert, ssl_ca, NULL, NULL);
11571144
} else {
1158-
mysql_ssl_set(&self->session, ssl_key, ssl_cert, NULL, NULL, NULL);
1145+
ssl_ca= NULL;
11591146
}
1147+
mysql_ssl_set(&self->session, ssl_key, ssl_cert, ssl_ca, NULL, NULL);
11601148
} else {
11611149
// Make sure to not enforce SSL
11621150
#if MYSQL_VERSION_ID > 50703 && MYSQL_VERSION_ID < 50711

tests/data/ssl/generate.sh

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -125,25 +125,24 @@ if [ $? -ne 0 ]; then
125125
exit 3
126126
fi
127127

128-
# MySQL Expired Server Certificate: generate, remove passphrase, sign
128+
# MySQL Root Certificate: generate, remove passphrase, sign
129129
echo
130-
echo "Generating Expired Server Certificate"
130+
echo "Generating Another Root Certificate"
131131
echo
132-
SUBJ="/OU=$OU Expired Server Cert/CN=localhost"
133-
$OPENSSL genrsa -out $DESTDIR/tests_expired_server_key.pem 2048
132+
$OPENSSL genrsa -out $DESTDIR/tests_CA_key_1.pem 2048
134133
if [ $? -ne 0 ]; then
135134
exit 3
136135
fi
137-
$OPENSSL req -new -key $DESTDIR/tests_expired_server_key.pem \
138-
-out $DESTDIR/tests_expired_server_req.csr -subj "$SUBJ"
136+
SUBJ="/OU=$OU Root CA/CN=MyConnPy Root CA"
137+
$OPENSSL req -new -key $DESTDIR/tests_CA_key_1.pem \
138+
-out $DESTDIR/tests_CA_req_1.csr -subj "$SUBJ"
139139
if [ $? -ne 0 ]; then
140140
exit 3
141141
fi
142-
$OPENSSL ca -config $DESTDIR/ca.conf -in $DESTDIR/tests_expired_server_req.csr \
143-
-cert $DESTDIR/tests_CA_cert.pem \
144-
-keyfile $DESTDIR/tests_CA_key.pem \
145-
-out $DESTDIR/tests_expired_server_cert.pem -batch \
146-
-startdate 120815080000Z -enddate 120815090000Z
142+
$OPENSSL x509 -req -days $DAYS \
143+
-in $DESTDIR/tests_CA_req_1.csr \
144+
-out $DESTDIR/tests_CA_cert_1.pem \
145+
-signkey $DESTDIR/tests_CA_key_1.pem
147146
if [ $? -ne 0 ]; then
148147
exit 3
149148
fi
@@ -176,5 +175,5 @@ echo "Cleaning up"
176175
echo
177176
(cd $DESTDIR; rm -rf tests_server_req.pem tests_client_req.pem \
178177
ca.db.certs ca.db.index* ca.db.serial* ca.conf tests_CA_req.csr \
179-
tests_server_req.csr tests_expired_server_req.csr tests_client_req.csr)
178+
tests_server_req.csr tests_CA_req_1.csr tests_client_req.csr)
180179

tests/data/ssl/tests_CA_cert.pem

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
-----BEGIN CERTIFICATE-----
2-
MIIDADCCAegCCQDmOCndJJOWFjANBgkqhkiG9w0BAQsFADBCMSUwIwYDVQQLDBxN
2+
MIIDADCCAegCCQCZfblCD1izGzANBgkqhkiG9w0BAQsFADBCMSUwIwYDVQQLDBxN
33
eVNRTENvbm5lY3RvclB5dGhvbiBSb290IENBMRkwFwYDVQQDDBBNeUNvbm5QeSBS
4-
b290IENBMB4XDTE3MDMxNzE1NTAzNloXDTI2MDQwNTE1NTAzNlowQjElMCMGA1UE
4+
b290IENBMB4XDTE3MDcxMjA5NDIyOFoXDTI2MDczMTA5NDIyOFowQjElMCMGA1UE
55
CwwcTXlTUUxDb25uZWN0b3JQeXRob24gUm9vdCBDQTEZMBcGA1UEAwwQTXlDb25u
6-
UHkgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANex2fME
7-
DGfFk6KIIjsCpXQ6Rsv7nClZ+H7iT/xBMDHtQbqVYX1HIDYGRApWIi0Mmg3hosri
8-
6TO5wJIMMEwcSurVStyLXPpCT4Dg3iDuKToYfNNGtuH9DFWh1fnkeni0gbEh+/yT
9-
PIe3FLZCHD+F12ST1z88i4LXOG4NuozKI2cmQcHxdVkYYzknMX4IKdP4AniPgMq0
10-
9YmQJjXH6y7lPzDXeUuG8YrOSuvfl4W2bjht4mGP6YUUQkwZ5qbRQfrkduQB3+pa
11-
+7P6ckd3q91j1+H1kRCn4a1S28xzPOaey6cLQ/DRVKP9EwPVV9H3/Wm8BdTr0ZMs
12-
1s2VQtocmzcp35kCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAGvUp9Du79gpN/pBD
13-
8eG7ZX/YMpK1cbzUwD+TqmP7QnXItRrZalbmadzZ6P161ff0QOEQPxL181+EEXFe
14-
yC8f33EGu9n6ZlSnj/HrdMZ2sjv8QA8M4Vg2vn81qUT/EsJQOjJA6n30ybncZHWB
15-
ovmFgBlq9miX2gDCMRosiRkzm4HAETdWQhiQ/jU4RV+pgP3/sd/mk/u2D5nqMeuT
16-
Ni61ke1CfskuCar5knXTdw7PYfCVXrD1ndgpf7e+qdz534GMkHcFKQkEvWE+ZuWj
17-
CHx9t32JFekCSzJCYs5YuAfuIJc0aC+RmA/lF7UUGyj++wWFAMnkmVEf5MM3WGjM
18-
HRerEg==
6+
UHkgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOHbedXD
7+
M/g7KuSURqBOHo49S/9lGarUt/YOkTDjKlNhqNQ4YrG3Au/PlBi4v4sE+4ILgrrc
8+
19/Knj/+DI/jGIxmdheYiTacynDodfT4DVLZghI3bGqST+OG03KHtB0BMsovAdt+
9+
CiwDNU4M8OkM57D00ijEcSmVrQuEFoyrxm5EWE9E9F4Hc45TQKCP0ge8VVk1rzZi
10+
1z+Yjrvqu/m6T6r0jF+WpDNc3ZqMQNHkenMSmNdZelCIbwwZh8G3zLnIOrOEEfwx
11+
hNbMFJl1vdQjqZODrXmjCM34v0ZAjBfbwWOZGhOw+kFXFfIv6F46LMfabukgWLGU
12+
5/JO7bvxCpS32hkCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEA2Fq6Ll8dnmrTJXTu
13+
kC6qVomZ5J2zfjUWRGY1bOYCWzCwANnsgwhN5Q5AuSV4CwctXBhDYVunyyxTuJ9P
14+
Usz9FppKgdwAR4XPQq+Eh57PMZAl5l4LGskwzTwu+Ud94D0s23yBXdFReZgPtGM3
15+
T03pGKf8nGtt692CFdnQ+EtSFOtzt+VaaZy6SSg0MAGaRRLRpfAa1uzzTrlmEQ9w
16+
cUOemtIWKC1016gmtjU+N7suzqGPuDuVyfl6VqariGzpM5z10n5XFM9z9G7QCb2Q
17+
/5LnLll3R2caaa6QVmeW1Dpew4lUhoQ12mUpEELsJPIsSVxRxAVEzCFAMldeNgfw
18+
Fs9KxQ==
1919
-----END CERTIFICATE-----

tests/data/ssl/tests_CA_cert_1.pem

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIDADCCAegCCQClgkE5NPaTKTANBgkqhkiG9w0BAQsFADBCMSUwIwYDVQQLDBxN
3+
eVNRTENvbm5lY3RvclB5dGhvbiBSb290IENBMRkwFwYDVQQDDBBNeUNvbm5QeSBS
4+
b290IENBMB4XDTE3MDcxMjA5NDIyOVoXDTI2MDczMTA5NDIyOVowQjElMCMGA1UE
5+
CwwcTXlTUUxDb25uZWN0b3JQeXRob24gUm9vdCBDQTEZMBcGA1UEAwwQTXlDb25u
6+
UHkgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMWRBnCR
7+
Fnkqd+QhuJC26CWX34ChTeIeqat6WR3bpD79a9NbLnOZp9it/fw7s8AM9dngREeu
8+
X8xgO5pduohW3fyk0my/ojrb6XQPZA1heDOrjYgC+0m0IGzXGzaHP5bU0G4BRdxQ
9+
9eOHgzGKmV2SLxNcIxVKCFZqtxElfyLD3/asB7wcVRpgbZ/fhdYHxYnhgO8Q8p6c
10+
uhuk7g0mF2akoVrP0j2jieqO9yvAFF/HD5pi9SRzoPFJTm3wmI8y0R+fvnvOjvM+
11+
uaW3iC2KgabOuvN4AfiNKPJW4nhQO2Wu3wuWKUxN0H6xgd8yGy0Azuthcr8+idk1
12+
iZrPfeTXpBTRXfUCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAasvgyREtD5whbYCt
13+
ZRbWKgkYnnahYTVmejNurlNAuFj+JAuFFeDa20MVsPqfR0OFrYdmddFQqu9dFJPs
14+
jmP+aqXnvE+HZPqtyM1uRrLuzM2/yaDFQ7SZAtJDTBllNCjEU/gi0PfruLZ2K2BQ
15+
i0D1puzuNBL1VcfIBGkJWiE97bCRXOFs71TPgRP4F3+NQ665dUWcakvH/ChXx/x+
16+
br/c0ppBIKLhJECnvTCLpBiFoxlWBs5gGzKNXItIgbDaOUMQCeYnhXU1tRxIIlap
17+
vjUNvBKJrHja2se9QXeehplyQgvQdOKloCrBaA+rNS7+cExRW2We7xYo4gc9ocGr
18+
ll3Kqw==
19+
-----END CERTIFICATE-----

tests/data/ssl/tests_CA_key.pem

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
11
-----BEGIN RSA PRIVATE KEY-----
2-
MIIEowIBAAKCAQEA17HZ8wQMZ8WToogiOwKldDpGy/ucKVn4fuJP/EEwMe1BupVh
3-
fUcgNgZEClYiLQyaDeGiyuLpM7nAkgwwTBxK6tVK3Itc+kJPgODeIO4pOhh800a2
4-
4f0MVaHV+eR6eLSBsSH7/JM8h7cUtkIcP4XXZJPXPzyLgtc4bg26jMojZyZBwfF1
5-
WRhjOScxfggp0/gCeI+AyrT1iZAmNcfrLuU/MNd5S4bxis5K69+XhbZuOG3iYY/p
6-
hRRCTBnmptFB+uR25AHf6lr7s/pyR3er3WPX4fWREKfhrVLbzHM85p7LpwtD8NFU
7-
o/0TA9VX0ff9abwF1OvRkyzWzZVC2hybNynfmQIDAQABAoIBAQDMZI2KuqBiyZhQ
8-
IT6Gusg8rmieLYzappZS7nQrLz7TYOezPpEGXRsJ9sANJ3f1RobJdrKEHagsyu3P
9-
t9sglILtqzbobOurfqDGGNCFVgodMk0/DDiLR/ajQtt4lOj1bt+jEfgubPukA3qO
10-
B3GrRFJKzcnf86ikUPv5VescNQR9Xca8qvy0W69SmtkSSZcC55yhWhGwReUDmywH
11-
tu57eR07t1Jf3RdHwa98VsiEde4TcuA/wo/C3e2A1MZZW0AtqVAVrX8hq+UVAMJ8
12-
sMubjNqUmDjbOOL4YkLbyR237uC6V6ejmWKEjMXAYUlNnpme1EcoimSL35hCjDVU
13-
H6MwhBiBAoGBAPNawx7lICj0qYJ3CSP5VMiiD7vTdDmtNPg6KFesZ2XKPALR/Csq
14-
1WXSEOb4DvFOAuSWjWYPW+0gvV966LkhKXE+cXWf4RmggrpwhT1JPbkcBwbwQ5oo
15-
aJnNByCcxoTBvJavLkrDBvZzOW2j5lvcD8qfnNYtbNihsExzkxfFm7AxAoGBAOLn
16-
JJqLwuNK2cyi7F5mkRLhGCdtSglSoht/3xTuqdrQv0JsVjmGTOqZhh6EBeI91auu
17-
O89KLs2ARN/KKR90ckuf/h6iwsS5/PDjiPTWOcH8LjiocPuvtvoRzq6leoC1XWBm
18-
vqLZYjPGuZRNibvputUFIVprw38EmppZzcrBuPPpAoGAa1mIZWKRsz9qX0D/aT0d
19-
p3vGEQcQaDj9+to83aAR5Jc3rc7PvIMiq83k4t5eSRgusoOvUGxKEuq0XyAq9S+p
20-
xmjTSB4FAHcL9A6a2BQtBDFW8Dqgt6pHqkEFed9uuzVzac1RUG2D7seZd8IrZi5H
21-
UQzj9J8JOu7ohHEfXAcxzKECgYA9mJ/wMGasi0JK8iOWkONrK54B/gIuO7d0Hady
22-
qEOF+kshfgV+Qj4ZJaoqGI78VurtWzQzVqET+nE4C0pUlqj8bKdwq6CSBSdsQWiJ
23-
hqpRReNKUDezq4TRqAnikVuLGzEJHXs8/CRTh+wTHWV5lL66W1UtlbmRfq91nVFn
24-
bGWIGQKBgE3S/0XsB9Ox+lNyxj5TycmT9VEfn+vvB+PF3ITWLRkcDanK5ynh4Pvt
25-
2HbwWIShQXGczn4jzWX61AwWE7Lkc1an1yiCQ2/SJItyhWJxVGO0V0BwTK9jmq+r
26-
1DXQSTgsOtmRknMdgGTk594Nj7S4r4GDYudzAujsbsrPEItw2nRr
2+
MIIEogIBAAKCAQEA4dt51cMz+Dsq5JRGoE4ejj1L/2UZqtS39g6RMOMqU2Go1Dhi
3+
sbcC78+UGLi/iwT7gguCutzX38qeP/4Mj+MYjGZ2F5iJNpzKcOh19PgNUtmCEjds
4+
apJP44bTcoe0HQEyyi8B234KLAM1Tgzw6QznsPTSKMRxKZWtC4QWjKvGbkRYT0T0
5+
XgdzjlNAoI/SB7xVWTWvNmLXP5iOu+q7+bpPqvSMX5akM1zdmoxA0eR6cxKY11l6
6+
UIhvDBmHwbfMucg6s4QR/DGE1swUmXW91COpk4OteaMIzfi/RkCMF9vBY5kaE7D6
7+
QVcV8i/oXjosx9pu6SBYsZTn8k7tu/EKlLfaGQIDAQABAoIBAD3W8gztXZVh3eSo
8+
FI5f1U3sypoq/FQh2hys8GQKTtR1sNwqdBtkmJFArLP4IbnWq2Z38FtpjFHiEGJF
9+
FPtwmpAWnc7oHOmvFF7Fx0ZDhKJim5KRSkYDuYv6pnp9XXtzkIx7Qm7um6phVn8A
10+
XBXzSpzQ65nt724LZU355JKvla0q1bXfj88zS8JX7jsbmC0+nDCZRLcnenKeWtBS
11+
Kn4mjIZSYNIo45lybJCPn/jyE0ma7U8JTipjNDsVGW7yxb4yVuDIfJDKd0kv72RF
12+
QrhTeuRTm5189m8YWD+2H0m+RLIxTCDelRP4lO2p9KCnj3Kmz70BngPlznEXynGx
13+
Uz3eYAECgYEA8U1V4LbUyw9I+qyF47v58ES+RdCnJAk4g18fmFxLz4VZ6QOGxdkP
14+
RwivpR5zSgpzX5dkQCXoSWhIFAElv7n+hmT7su/xxpTMddcvUEOGA5tLlbwjDOTU
15+
HNotzgi+0qpG+NocaSuhfSItfUksz4M9Tj6MxgezQFcouhNCLtE27JkCgYEA751O
16+
wM9xRmAr7ytAyCnhE3x6Tag2e/Ey/6Asy/TXsWH++R9u2+wxbPuaZ05KjUKkJZdK
17+
EV5O53ZCm4bfmB0BNvHAcsZMo5zcAJ/4CHpFfelnOv3c1QwzBkmg2iM8Oii+PNBs
18+
4LaOUogfJab35+hrVOJ7cqCyQZZESEu5oXQLSYECgYBjDCCFFecw1rxZEPoAaceF
19+
RWJo2+XPl+1Xl3Mroi8IJq+qQuVOTvPDb6BRgbdHHBURlt3yqty3TRPRCkuJcHo2
20+
hjr+zxkKL0fh0ws7wgu/bT5QXyJwB3m9whztJo/Vf0mUmkrxLJSj/aR4edHn9/Hx
21+
LSGxo7WDYoN4JbGT8BLAeQKBgB+uQ9BYXRi59HUd2eXdK6Yg6ibEW9fNTznfGq0o
22+
xS/tzgFwN38aXnqTVZndDxxYOE3EEAX12ybdSvc3QO7ivttd4V0LfOyQ+8GVZPzx
23+
9agtKPnywLTmdQSazYqp5/eklWqDADJB0NV2q++VgOeHolFJ1JqWRptHW+XXJUcE
24+
ic2BAoGAH+iwDqyAHX92TcH+jzbt91Bil2/tj7s9NaXBaOFlM46mHSMwiYPjaYwf
25+
2NGJhsFdICV6kA2GiAKyDr8zqwl0lGYwaTpxzKUf1VZaGrKBuNcGuUaQJLkTbK59
26+
DdHDUNdo8BXPn3qsLbV3aLlXSCp0cirbpJfy7W0pYvLEfrX8lGY=
2727
-----END RSA PRIVATE KEY-----

tests/data/ssl/tests_CA_key_1.pem

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
-----BEGIN RSA PRIVATE KEY-----
2+
MIIEpQIBAAKCAQEAxZEGcJEWeSp35CG4kLboJZffgKFN4h6pq3pZHdukPv1r01su
3+
c5mn2K39/DuzwAz12eBER65fzGA7ml26iFbd/KTSbL+iOtvpdA9kDWF4M6uNiAL7
4+
SbQgbNcbNoc/ltTQbgFF3FD144eDMYqZXZIvE1wjFUoIVmq3ESV/IsPf9qwHvBxV
5+
GmBtn9+F1gfFieGA7xDynpy6G6TuDSYXZqShWs/SPaOJ6o73K8AUX8cPmmL1JHOg
6+
8UlObfCYjzLRH5++e86O8z65pbeILYqBps6683gB+I0o8lbieFA7Za7fC5YpTE3Q
7+
frGB3zIbLQDO62Fyvz6J2TWJms995NekFNFd9QIDAQABAoIBAQC0GmEkfR9flbd1
8+
4MfAJP28R5cYS/QUDp/eEsrqzTANvDhvlM/j0k+Q2AyRxFs42JfG5wtXzT7HsXKk
9+
Zo2FfKshhZ/OQ2RBA/juNJmhGRnbAKklNJKfvfVRQ0crjmAJwDfCEKb/EU8W/JI8
10+
t3zYMEt5+qSA49x16xK4LtaXerjQxKce7gNU+um22JTR+27g/HATSGG0LFHWmJ6h
11+
DroOK1Md1KSvZ+Pc3ucfNV65ZueLrVmk9DwKl27Ul7wLe+WqmANjv1wzyLX3nmTL
12+
B+6JwxdGlnaIw1T0JZV+9RrYMcUqeOgOqRfonVlQF9rDmdTQl1Kjsmxd+LmQEF+x
13+
4znvh2QBAoGBAPXXR8Z7usgJBWSJxioomiRLfdSz4kelTYshGIv0GABXvEfjrhkk
14+
Ain/p7QVo95A+xKf2LrXTh25NYvq783cZkVgY1ftE643G/1HN4P5XguUwa1EBMyC
15+
0gwluys4RMkZOstuXaJk8+xDqDvGx8EFX6X/f+cQ0j7Dj0TO2BVjPnhJAoGBAM27
16+
DkY1WQDVgV1PejuvzJFct4AbwbBKSBNIjPLZF0AHtIGyEm1TxSPW0pd8KVvp1spx
17+
n4585bDcMU+twekuqqxFOmaoxPyfMoZ4tkrMoKwJo9UNIy1wxr/z7NhzSmw109B3
18+
Kb3cob25xKZgpl7A7t0WYbzm8YU3MO9xlLEHrbBNAoGANNbOoISbgr8dn5xVMV6E
19+
suRe6Ua4jfmjjxHP+tS+C+TPnQv8sX6h0HEYlIZKMEz7KeedZ5s7OPxD3Azk+fQz
20+
LxomgBF+t2U06N1Tu1PvuMGCV0FVXreHegDqF8ICVs7LakoQagUUwGVSVXbGHGCR
21+
TFZ8ISfmaIMT2hAzNXWdSbECgYEAyPS+rLXPipEDHDJWI5dFK3h1hh2WxKzKWouz
22+
okOMAm+EUmuutDvvhWKBspcFj1KLDJSQVo6JjoiHYl1H3I5JCJ1WvpB8Wobmw5OF
23+
/OqEx4djEOkUQ361pSqPX56+Q5UQocDEdUDefITJIfumh0fOCweh0POFV6rhkgJQ
24+
S9xEPMECgYEAzevAAJ2PqnEfw5/Nm2ho4gzRXPtk495kEdYHI20ZZF8l/3LUU5xe
25+
j1dDIFeQTYJiAxmdomZssYqPy90zRTelx+MAhHRlZyaEyLWs/AFaW9m89+T/Fan9
26+
x4AUeJ5xgyEdQKJ9GlPbWFFG90oK9AKsKgH9J7yZxGn4sTMWzakTmLQ=
27+
-----END RSA PRIVATE KEY-----

0 commit comments

Comments
 (0)