Skip to content

Commit bc37aad

Browse files
committed
[GR-36939] Use bouncycastle to parse private keys and certificates
PullRequest: graalpython/2147
2 parents 696ed2a + e8a38ef commit bc37aad

File tree

16 files changed

+1359
-389
lines changed

16 files changed

+1359
-389
lines changed

CHANGELOG.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ language runtime. The main focus is on user-observable behavior of the engine.
55

66
## Version 22.1.0
77
* String conversion (`__str__`) now calls `toString` for Java objects and `toDisplayString` interop message for foreign objects.
8-
* Improved compatibility with PyPI packages `lxml`, `pytz`, `Pillow`
8+
* Improved compatibility with PyPI packages `lxml`, `pytz`, `Pillow`, `urllib3`, `setuptools`
9+
* Introduced dependency on bouncycastle
10+
* Added support for more private key formats (PKCS#1, password protected) in ssl module
911

1012
## Version 22.0.0
1113
* Added support for `pyexpat` module.
Lines changed: 166 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,166 @@
1+
-----BEGIN ENCRYPTED PRIVATE KEY-----
2+
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
42+
-----END ENCRYPTED PRIVATE KEY-----
43+
Certificate:
44+
Data:
45+
Version: 3 (0x2)
46+
Serial Number:
47+
cb:2d:80:99:5a:69:52:5c
48+
Signature Algorithm: sha256WithRSAEncryption
49+
Issuer: C=XY, O=Python Software Foundation CA, CN=our-ca-server
50+
Validity
51+
Not Before: Aug 29 14:23:16 2018 GMT
52+
Not After : Jul 7 14:23:16 2028 GMT
53+
Subject: C=XY, L=Castle Anthrax, O=Python Software Foundation, CN=localhost
54+
Subject Public Key Info:
55+
Public Key Algorithm: rsaEncryption
56+
Public-Key: (3072 bit)
57+
Modulus:
58+
00:9f:28:2f:37:41:ef:7f:64:63:16:62:16:e9:01:
59+
14:62:29:ca:3a:98:92:3d:08:d3:5e:69:fe:c0:f3:
60+
d4:c4:fb:0e:58:dc:64:b0:4b:cb:b3:aa:9e:42:e9:
61+
07:9b:67:33:cd:b9:e8:3c:1d:8a:13:c0:df:39:67:
62+
7c:4c:d3:7e:bf:43:0f:4a:85:05:6d:87:e5:c3:02:
63+
a3:3e:d7:d7:b9:28:79:18:73:18:37:77:76:48:d4:
64+
78:18:d7:bd:1e:6a:46:8b:06:f3:03:37:95:0b:a0:
65+
53:b0:22:cd:8f:b7:03:36:a3:d7:23:77:99:9f:4a:
66+
e5:ad:b4:8e:be:7c:2a:a8:a7:cf:e5:f1:c7:ab:1b:
67+
d8:97:d8:61:f7:f6:9d:e2:5b:05:a8:4d:9b:98:9d:
68+
d0:00:f6:a6:2f:d3:b6:16:6a:3b:90:d4:44:96:28:
69+
f8:c7:60:64:e7:32:fb:b8:c4:8c:e2:6c:2d:66:5d:
70+
dd:8c:ea:ef:c8:8c:d3:ba:83:8d:ba:48:a1:5a:44:
71+
35:90:93:1d:35:80:85:7f:0b:22:ac:f4:38:19:a1:
72+
e3:07:90:a6:6e:3e:a6:55:3b:13:8a:f8:0f:cd:ae:
73+
6a:ea:1c:5b:0f:22:ca:ec:e7:09:3b:40:05:63:bb:
74+
9f:d7:d6:c9:29:9f:f5:06:42:59:8c:47:00:5a:41:
75+
42:ce:b3:51:5a:80:0f:b9:e1:15:d4:ea:a5:0f:5b:
76+
46:26:84:9e:31:38:1e:20:1c:70:f5:be:30:0a:12:
77+
c4:59:ef:fe:b3:73:13:32:3a:6f:8c:d4:36:ca:45:
78+
31:f8:35:68:d5:5a:99:d8:f1:76:95:19:d4:61:b5:
79+
3a:47:f4:c8:f2:72:92:a1:17:e0:f6:65:dc:b6:b5:
80+
05:ed:aa:ed:86:75:c3:27:51:e7:6d:d7:77:e7:f7:
81+
10:ee:3f:83:e8:a6:11:34:8a:9f:c8:32:09:fe:91:
82+
be:26:f5:ef:92:f8:af:65:95:d4:25:d0:1f:b8:05:
83+
c1:96:02:a1:de:96:1d:8a:b9:4d
84+
Exponent: 65537 (0x10001)
85+
X509v3 extensions:
86+
X509v3 Subject Alternative Name:
87+
DNS:localhost
88+
X509v3 Key Usage: critical
89+
Digital Signature, Key Encipherment
90+
X509v3 Extended Key Usage:
91+
TLS Web Server Authentication, TLS Web Client Authentication
92+
X509v3 Basic Constraints: critical
93+
CA:FALSE
94+
X509v3 Subject Key Identifier:
95+
8F:EA:1D:E3:33:5C:00:16:B3:8B:6F:6B:6F:D3:4C:CB:B5:CB:7C:55
96+
X509v3 Authority Key Identifier:
97+
keyid:DD:BF:CA:DA:E6:D1:34:BA:37:75:21:CA:6F:9A:08:28:F2:35:B6:48
98+
DirName:/C=XY/O=Python Software Foundation CA/CN=our-ca-server
99+
serial:CB:2D:80:99:5A:69:52:5B
100+
101+
Authority Information Access:
102+
CA Issuers - URI:http://testca.pythontest.net/testca/pycacert.cer
103+
OCSP - URI:http://testca.pythontest.net/testca/ocsp/
104+
105+
X509v3 CRL Distribution Points:
106+
107+
Full Name:
108+
URI:http://testca.pythontest.net/testca/revocation.crl
109+
110+
Signature Algorithm: sha256WithRSAEncryption
111+
27:f5:8c:59:10:f4:c6:e7:28:00:bf:ba:8d:7b:13:03:f1:1c:
112+
a6:5f:b3:06:55:a4:22:b9:db:b2:d5:46:bd:f7:0c:dd:43:6e:
113+
b4:79:65:67:21:0c:2a:55:ee:40:8e:85:9f:9f:47:bb:0a:2a:
114+
4d:b6:64:74:98:a0:7f:ae:dc:f1:2e:db:42:77:18:e0:75:8b:
115+
26:35:68:c3:41:ed:6b:c8:77:72:6f:6a:9a:5d:55:69:02:fd:
116+
5a:54:c8:57:cb:b0:65:03:16:e2:0f:00:39:99:66:a0:9b:88:
117+
93:17:e2:5a:2d:79:35:5f:97:57:78:c4:af:f5:99:5e:86:ab:
118+
d3:11:ad:1a:a2:0d:fa:52:10:b9:fe:bf:9d:ce:33:d9:86:b2:
119+
9c:16:f8:d6:75:08:8a:db:0a:e5:b4:2b:16:7f:b4:f9:2a:9f:
120+
c3:d2:77:d7:cd:65:1e:f4:6c:1e:eb:59:b9:f0:ae:5f:a4:1f:
121+
cc:4a:c4:b9:7a:a9:d9:6b:32:68:3b:e1:65:b0:84:b7:90:c4:
122+
ae:fe:f4:37:4f:21:a0:de:9f:3a:b1:e5:cc:16:04:66:3f:0b:
123+
41:dc:42:3d:20:3e:ec:b7:95:2b:35:57:fa:be:7f:b6:3a:ba:
124+
ca:4f:58:fe:75:3e:08:89:2c:8c:b0:5d:2e:f9:89:10:2b:f9:
125+
41:46:4f:3c:00:b7:27:d3:65:24:28:17:23:26:31:42:ea:7e:
126+
4e:93:e4:7b:68:54:ca:9f:46:f3:ef:2b:e9:85:0c:b5:84:b2:
127+
d5:35:34:80:75:2b:f0:91:23:b8:08:01:8e:b9:0a:54:d4:fb:
128+
34:52:fe:d9:45:f0:80:3b:b6:c1:6f:82:d1:1f:f2:3b:08:f6:
129+
46:a6:96:27:61:4b:58:32:7a:0e:1d:59:c5:44:ad:5e:1a:79:
130+
33:c1:d4:05:2f:4a:d3:d8:42:42:8d:33:e3:63:ca:d5:87:97:
131+
9b:4d:b8:1a:03:34:bb:1c:d2:02:3f:59:23:e2:23:80:88:63:
132+
c2:f0:a2:63:a8:8b
133+
-----BEGIN CERTIFICATE-----
134+
MIIF8TCCBFmgAwIBAgIJAMstgJlaaVJcMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNV
135+
BAYTAlhZMSYwJAYDVQQKDB1QeXRob24gU29mdHdhcmUgRm91bmRhdGlvbiBDQTEW
136+
MBQGA1UEAwwNb3VyLWNhLXNlcnZlcjAeFw0xODA4MjkxNDIzMTZaFw0yODA3MDcx
137+
NDIzMTZaMF8xCzAJBgNVBAYTAlhZMRcwFQYDVQQHDA5DYXN0bGUgQW50aHJheDEj
138+
MCEGA1UECgwaUHl0aG9uIFNvZnR3YXJlIEZvdW5kYXRpb24xEjAQBgNVBAMMCWxv
139+
Y2FsaG9zdDCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAJ8oLzdB739k
140+
YxZiFukBFGIpyjqYkj0I015p/sDz1MT7DljcZLBLy7OqnkLpB5tnM8256DwdihPA
141+
3zlnfEzTfr9DD0qFBW2H5cMCoz7X17koeRhzGDd3dkjUeBjXvR5qRosG8wM3lQug
142+
U7AizY+3Azaj1yN3mZ9K5a20jr58Kqinz+Xxx6sb2JfYYff2neJbBahNm5id0AD2
143+
pi/TthZqO5DURJYo+MdgZOcy+7jEjOJsLWZd3Yzq78iM07qDjbpIoVpENZCTHTWA
144+
hX8LIqz0OBmh4weQpm4+plU7E4r4D82uauocWw8iyuznCTtABWO7n9fWySmf9QZC
145+
WYxHAFpBQs6zUVqAD7nhFdTqpQ9bRiaEnjE4HiAccPW+MAoSxFnv/rNzEzI6b4zU
146+
NspFMfg1aNVamdjxdpUZ1GG1Okf0yPJykqEX4PZl3La1Be2q7YZ1wydR523Xd+f3
147+
EO4/g+imETSKn8gyCf6Rvib175L4r2WV1CXQH7gFwZYCod6WHYq5TQIDAQABo4IB
148+
wDCCAbwwFAYDVR0RBA0wC4IJbG9jYWxob3N0MA4GA1UdDwEB/wQEAwIFoDAdBgNV
149+
HSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAdBgNVHQ4E
150+
FgQUj+od4zNcABazi29rb9NMy7XLfFUwfQYDVR0jBHYwdIAU3b/K2ubRNLo3dSHK
151+
b5oIKPI1tkihUaRPME0xCzAJBgNVBAYTAlhZMSYwJAYDVQQKDB1QeXRob24gU29m
152+
dHdhcmUgRm91bmRhdGlvbiBDQTEWMBQGA1UEAwwNb3VyLWNhLXNlcnZlcoIJAMst
153+
gJlaaVJbMIGDBggrBgEFBQcBAQR3MHUwPAYIKwYBBQUHMAKGMGh0dHA6Ly90ZXN0
154+
Y2EucHl0aG9udGVzdC5uZXQvdGVzdGNhL3B5Y2FjZXJ0LmNlcjA1BggrBgEFBQcw
155+
AYYpaHR0cDovL3Rlc3RjYS5weXRob250ZXN0Lm5ldC90ZXN0Y2Evb2NzcC8wQwYD
156+
VR0fBDwwOjA4oDagNIYyaHR0cDovL3Rlc3RjYS5weXRob250ZXN0Lm5ldC90ZXN0
157+
Y2EvcmV2b2NhdGlvbi5jcmwwDQYJKoZIhvcNAQELBQADggGBACf1jFkQ9MbnKAC/
158+
uo17EwPxHKZfswZVpCK527LVRr33DN1DbrR5ZWchDCpV7kCOhZ+fR7sKKk22ZHSY
159+
oH+u3PEu20J3GOB1iyY1aMNB7WvId3JvappdVWkC/VpUyFfLsGUDFuIPADmZZqCb
160+
iJMX4loteTVfl1d4xK/1mV6Gq9MRrRqiDfpSELn+v53OM9mGspwW+NZ1CIrbCuW0
161+
KxZ/tPkqn8PSd9fNZR70bB7rWbnwrl+kH8xKxLl6qdlrMmg74WWwhLeQxK7+9DdP
162+
IaDenzqx5cwWBGY/C0HcQj0gPuy3lSs1V/q+f7Y6uspPWP51PgiJLIywXS75iRAr
163+
+UFGTzwAtyfTZSQoFyMmMULqfk6T5HtoVMqfRvPvK+mFDLWEstU1NIB1K/CRI7gI
164+
AY65ClTU+zRS/tlF8IA7tsFvgtEf8jsI9kamlidhS1gyeg4dWcVErV4aeTPB1AUv
165+
StPYQkKNM+NjytWHl5tNuBoDNLsc0gI/WSPiI4CIY8LwomOoiw==
166+
-----END CERTIFICATE-----
Lines changed: 163 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,163 @@
1+
-----BEGIN RSA PRIVATE KEY-----
2+
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
39+
-----END RSA PRIVATE KEY-----
40+
Certificate:
41+
Data:
42+
Version: 3 (0x2)
43+
Serial Number:
44+
cb:2d:80:99:5a:69:52:5c
45+
Signature Algorithm: sha256WithRSAEncryption
46+
Issuer: C=XY, O=Python Software Foundation CA, CN=our-ca-server
47+
Validity
48+
Not Before: Aug 29 14:23:16 2018 GMT
49+
Not After : Jul 7 14:23:16 2028 GMT
50+
Subject: C=XY, L=Castle Anthrax, O=Python Software Foundation, CN=localhost
51+
Subject Public Key Info:
52+
Public Key Algorithm: rsaEncryption
53+
Public-Key: (3072 bit)
54+
Modulus:
55+
00:9f:28:2f:37:41:ef:7f:64:63:16:62:16:e9:01:
56+
14:62:29:ca:3a:98:92:3d:08:d3:5e:69:fe:c0:f3:
57+
d4:c4:fb:0e:58:dc:64:b0:4b:cb:b3:aa:9e:42:e9:
58+
07:9b:67:33:cd:b9:e8:3c:1d:8a:13:c0:df:39:67:
59+
7c:4c:d3:7e:bf:43:0f:4a:85:05:6d:87:e5:c3:02:
60+
a3:3e:d7:d7:b9:28:79:18:73:18:37:77:76:48:d4:
61+
78:18:d7:bd:1e:6a:46:8b:06:f3:03:37:95:0b:a0:
62+
53:b0:22:cd:8f:b7:03:36:a3:d7:23:77:99:9f:4a:
63+
e5:ad:b4:8e:be:7c:2a:a8:a7:cf:e5:f1:c7:ab:1b:
64+
d8:97:d8:61:f7:f6:9d:e2:5b:05:a8:4d:9b:98:9d:
65+
d0:00:f6:a6:2f:d3:b6:16:6a:3b:90:d4:44:96:28:
66+
f8:c7:60:64:e7:32:fb:b8:c4:8c:e2:6c:2d:66:5d:
67+
dd:8c:ea:ef:c8:8c:d3:ba:83:8d:ba:48:a1:5a:44:
68+
35:90:93:1d:35:80:85:7f:0b:22:ac:f4:38:19:a1:
69+
e3:07:90:a6:6e:3e:a6:55:3b:13:8a:f8:0f:cd:ae:
70+
6a:ea:1c:5b:0f:22:ca:ec:e7:09:3b:40:05:63:bb:
71+
9f:d7:d6:c9:29:9f:f5:06:42:59:8c:47:00:5a:41:
72+
42:ce:b3:51:5a:80:0f:b9:e1:15:d4:ea:a5:0f:5b:
73+
46:26:84:9e:31:38:1e:20:1c:70:f5:be:30:0a:12:
74+
c4:59:ef:fe:b3:73:13:32:3a:6f:8c:d4:36:ca:45:
75+
31:f8:35:68:d5:5a:99:d8:f1:76:95:19:d4:61:b5:
76+
3a:47:f4:c8:f2:72:92:a1:17:e0:f6:65:dc:b6:b5:
77+
05:ed:aa:ed:86:75:c3:27:51:e7:6d:d7:77:e7:f7:
78+
10:ee:3f:83:e8:a6:11:34:8a:9f:c8:32:09:fe:91:
79+
be:26:f5:ef:92:f8:af:65:95:d4:25:d0:1f:b8:05:
80+
c1:96:02:a1:de:96:1d:8a:b9:4d
81+
Exponent: 65537 (0x10001)
82+
X509v3 extensions:
83+
X509v3 Subject Alternative Name:
84+
DNS:localhost
85+
X509v3 Key Usage: critical
86+
Digital Signature, Key Encipherment
87+
X509v3 Extended Key Usage:
88+
TLS Web Server Authentication, TLS Web Client Authentication
89+
X509v3 Basic Constraints: critical
90+
CA:FALSE
91+
X509v3 Subject Key Identifier:
92+
8F:EA:1D:E3:33:5C:00:16:B3:8B:6F:6B:6F:D3:4C:CB:B5:CB:7C:55
93+
X509v3 Authority Key Identifier:
94+
keyid:DD:BF:CA:DA:E6:D1:34:BA:37:75:21:CA:6F:9A:08:28:F2:35:B6:48
95+
DirName:/C=XY/O=Python Software Foundation CA/CN=our-ca-server
96+
serial:CB:2D:80:99:5A:69:52:5B
97+
98+
Authority Information Access:
99+
CA Issuers - URI:http://testca.pythontest.net/testca/pycacert.cer
100+
OCSP - URI:http://testca.pythontest.net/testca/ocsp/
101+
102+
X509v3 CRL Distribution Points:
103+
104+
Full Name:
105+
URI:http://testca.pythontest.net/testca/revocation.crl
106+
107+
Signature Algorithm: sha256WithRSAEncryption
108+
27:f5:8c:59:10:f4:c6:e7:28:00:bf:ba:8d:7b:13:03:f1:1c:
109+
a6:5f:b3:06:55:a4:22:b9:db:b2:d5:46:bd:f7:0c:dd:43:6e:
110+
b4:79:65:67:21:0c:2a:55:ee:40:8e:85:9f:9f:47:bb:0a:2a:
111+
4d:b6:64:74:98:a0:7f:ae:dc:f1:2e:db:42:77:18:e0:75:8b:
112+
26:35:68:c3:41:ed:6b:c8:77:72:6f:6a:9a:5d:55:69:02:fd:
113+
5a:54:c8:57:cb:b0:65:03:16:e2:0f:00:39:99:66:a0:9b:88:
114+
93:17:e2:5a:2d:79:35:5f:97:57:78:c4:af:f5:99:5e:86:ab:
115+
d3:11:ad:1a:a2:0d:fa:52:10:b9:fe:bf:9d:ce:33:d9:86:b2:
116+
9c:16:f8:d6:75:08:8a:db:0a:e5:b4:2b:16:7f:b4:f9:2a:9f:
117+
c3:d2:77:d7:cd:65:1e:f4:6c:1e:eb:59:b9:f0:ae:5f:a4:1f:
118+
cc:4a:c4:b9:7a:a9:d9:6b:32:68:3b:e1:65:b0:84:b7:90:c4:
119+
ae:fe:f4:37:4f:21:a0:de:9f:3a:b1:e5:cc:16:04:66:3f:0b:
120+
41:dc:42:3d:20:3e:ec:b7:95:2b:35:57:fa:be:7f:b6:3a:ba:
121+
ca:4f:58:fe:75:3e:08:89:2c:8c:b0:5d:2e:f9:89:10:2b:f9:
122+
41:46:4f:3c:00:b7:27:d3:65:24:28:17:23:26:31:42:ea:7e:
123+
4e:93:e4:7b:68:54:ca:9f:46:f3:ef:2b:e9:85:0c:b5:84:b2:
124+
d5:35:34:80:75:2b:f0:91:23:b8:08:01:8e:b9:0a:54:d4:fb:
125+
34:52:fe:d9:45:f0:80:3b:b6:c1:6f:82:d1:1f:f2:3b:08:f6:
126+
46:a6:96:27:61:4b:58:32:7a:0e:1d:59:c5:44:ad:5e:1a:79:
127+
33:c1:d4:05:2f:4a:d3:d8:42:42:8d:33:e3:63:ca:d5:87:97:
128+
9b:4d:b8:1a:03:34:bb:1c:d2:02:3f:59:23:e2:23:80:88:63:
129+
c2:f0:a2:63:a8:8b
130+
-----BEGIN CERTIFICATE-----
131+
MIIF8TCCBFmgAwIBAgIJAMstgJlaaVJcMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNV
132+
BAYTAlhZMSYwJAYDVQQKDB1QeXRob24gU29mdHdhcmUgRm91bmRhdGlvbiBDQTEW
133+
MBQGA1UEAwwNb3VyLWNhLXNlcnZlcjAeFw0xODA4MjkxNDIzMTZaFw0yODA3MDcx
134+
NDIzMTZaMF8xCzAJBgNVBAYTAlhZMRcwFQYDVQQHDA5DYXN0bGUgQW50aHJheDEj
135+
MCEGA1UECgwaUHl0aG9uIFNvZnR3YXJlIEZvdW5kYXRpb24xEjAQBgNVBAMMCWxv
136+
Y2FsaG9zdDCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAJ8oLzdB739k
137+
YxZiFukBFGIpyjqYkj0I015p/sDz1MT7DljcZLBLy7OqnkLpB5tnM8256DwdihPA
138+
3zlnfEzTfr9DD0qFBW2H5cMCoz7X17koeRhzGDd3dkjUeBjXvR5qRosG8wM3lQug
139+
U7AizY+3Azaj1yN3mZ9K5a20jr58Kqinz+Xxx6sb2JfYYff2neJbBahNm5id0AD2
140+
pi/TthZqO5DURJYo+MdgZOcy+7jEjOJsLWZd3Yzq78iM07qDjbpIoVpENZCTHTWA
141+
hX8LIqz0OBmh4weQpm4+plU7E4r4D82uauocWw8iyuznCTtABWO7n9fWySmf9QZC
142+
WYxHAFpBQs6zUVqAD7nhFdTqpQ9bRiaEnjE4HiAccPW+MAoSxFnv/rNzEzI6b4zU
143+
NspFMfg1aNVamdjxdpUZ1GG1Okf0yPJykqEX4PZl3La1Be2q7YZ1wydR523Xd+f3
144+
EO4/g+imETSKn8gyCf6Rvib175L4r2WV1CXQH7gFwZYCod6WHYq5TQIDAQABo4IB
145+
wDCCAbwwFAYDVR0RBA0wC4IJbG9jYWxob3N0MA4GA1UdDwEB/wQEAwIFoDAdBgNV
146+
HSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAdBgNVHQ4E
147+
FgQUj+od4zNcABazi29rb9NMy7XLfFUwfQYDVR0jBHYwdIAU3b/K2ubRNLo3dSHK
148+
b5oIKPI1tkihUaRPME0xCzAJBgNVBAYTAlhZMSYwJAYDVQQKDB1QeXRob24gU29m
149+
dHdhcmUgRm91bmRhdGlvbiBDQTEWMBQGA1UEAwwNb3VyLWNhLXNlcnZlcoIJAMst
150+
gJlaaVJbMIGDBggrBgEFBQcBAQR3MHUwPAYIKwYBBQUHMAKGMGh0dHA6Ly90ZXN0
151+
Y2EucHl0aG9udGVzdC5uZXQvdGVzdGNhL3B5Y2FjZXJ0LmNlcjA1BggrBgEFBQcw
152+
AYYpaHR0cDovL3Rlc3RjYS5weXRob250ZXN0Lm5ldC90ZXN0Y2Evb2NzcC8wQwYD
153+
VR0fBDwwOjA4oDagNIYyaHR0cDovL3Rlc3RjYS5weXRob250ZXN0Lm5ldC90ZXN0
154+
Y2EvcmV2b2NhdGlvbi5jcmwwDQYJKoZIhvcNAQELBQADggGBACf1jFkQ9MbnKAC/
155+
uo17EwPxHKZfswZVpCK527LVRr33DN1DbrR5ZWchDCpV7kCOhZ+fR7sKKk22ZHSY
156+
oH+u3PEu20J3GOB1iyY1aMNB7WvId3JvappdVWkC/VpUyFfLsGUDFuIPADmZZqCb
157+
iJMX4loteTVfl1d4xK/1mV6Gq9MRrRqiDfpSELn+v53OM9mGspwW+NZ1CIrbCuW0
158+
KxZ/tPkqn8PSd9fNZR70bB7rWbnwrl+kH8xKxLl6qdlrMmg74WWwhLeQxK7+9DdP
159+
IaDenzqx5cwWBGY/C0HcQj0gPuy3lSs1V/q+f7Y6uspPWP51PgiJLIywXS75iRAr
160+
+UFGTzwAtyfTZSQoFyMmMULqfk6T5HtoVMqfRvPvK+mFDLWEstU1NIB1K/CRI7gI
161+
AY65ClTU+zRS/tlF8IA7tsFvgtEf8jsI9kamlidhS1gyeg4dWcVErV4aeTPB1AUv
162+
StPYQkKNM+NjytWHl5tNuBoDNLsc0gI/WSPiI4CIY8LwomOoiw==
163+
-----END CERTIFICATE-----

0 commit comments

Comments
 (0)