Skip to content

Commit a663c02

Browse files
author
Jorge Lopez-Malla
committed
[SPK-64] removed ssl tricks on spark-env (apache#50)
1 parent b29cce4 commit a663c02

File tree

9 files changed

+324
-58
lines changed

9 files changed

+324
-58
lines changed

core/pom.xml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,11 @@
148148
<artifactId>javax.servlet-api</artifactId>
149149
<version>${javaxservlet.version}</version>
150150
</dependency>
151-
151+
<dependency>
152+
<groupId>ca.juliusdavies</groupId>
153+
<artifactId>not-yet-commons-ssl</artifactId>
154+
<version>0.3.11</version>
155+
</dependency>
152156
<dependency>
153157
<groupId>org.apache.commons</groupId>
154158
<artifactId>commons-lang3</artifactId>

core/src/main/scala/org/apache/spark/security/SSLConfig.scala

Lines changed: 51 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,16 @@
1616
*/
1717
package org.apache.spark.security
1818

19-
import java.io.{ByteArrayInputStream, File, FileOutputStream}
19+
import java.io._
2020
import java.nio.file.{Files, Paths}
2121
import java.nio.file.attribute.PosixFilePermissions
2222
import java.security._
23+
import java.security.KeyFactory
2324
import java.security.cert.CertificateFactory
24-
import java.security.spec.RSAPrivateCrtKeySpec
25+
import java.security.spec.{PKCS8EncodedKeySpec, RSAPrivateCrtKeySpec}
2526
import javax.xml.bind.DatatypeConverter
2627

28+
import org.apache.commons.ssl.PKCS8Key
2729
import sun.security.util.DerInputStream
2830

2931
import org.apache.spark.internal.Logging
@@ -62,6 +64,10 @@ object SSLConfig extends Logging {
6264

6365
val (key, certs) =
6466
VaultHelper.getCertKeyForAppFromVault(vaultHost, vaultKeystorePath.get, vaultToken)
67+
68+
pemToDer(key)
69+
generatePemFile(certs, "cert.crt")
70+
generatePemFile(trustStore, "ca.crt")
6571

6672
val pass = VaultHelper.getCertPassForAppFromVault(
6773
vaultHost, vaultKeystorePassPath.get, vaultToken)
@@ -86,9 +92,9 @@ object SSLConfig extends Logging {
8692
-> VaultHelper.getCertPassForAppFromVault(vaultHost, vaultKeyPassPath.get, vaultToken))
8793

8894
val certFilesPath =
89-
Map(sparkSSLPrefix + "cert.path" -> s"${sys.env.get("SPARK_SSL_CERT_PATH")}/cert.crt",
90-
sparkSSLPrefix + "key.pkcs8" -> s"${sys.env.get("SPARK_SSL_CERT_PATH")}/key.pkcs8",
91-
sparkSSLPrefix + "root.cert" -> s"${sys.env.get("SPARK_SSL_CERT_PATH")}/caroot.crt")
95+
Map(s"$sparkSSLPrefix${sslType.toLowerCase}.certPem.path" -> "/tmp/cert.crt",
96+
s"$sparkSSLPrefix${sslType.toLowerCase}.keyPKCS8.path" -> "/tmp/key.pkcs8",
97+
s"$sparkSSLPrefix${sslType.toLowerCase}.caPem.path" -> "/tmp/ca.crt")
9298

9399
trustStoreOptions ++ keyStoreOptions ++ keyPass ++ certFilesPath
94100
}
@@ -117,6 +123,37 @@ object SSLConfig extends Logging {
117123
file.getAbsolutePath
118124
}
119125

126+
def generatePemFile(pem: String, fileName: String): Unit = {
127+
formatPem(pem)
128+
val bosCA = new BufferedOutputStream(new FileOutputStream(s"/tmp/$fileName"))
129+
bosCA.write(formatPem(pem).getBytes)
130+
bosCA.close()
131+
}
132+
133+
// Gets raw pem from vault (without \n and folding) and outputs a well-formatted pem
134+
135+
def formatPem(pemRaw: String): String = {
136+
val (begin, end) = extractFlagsFromCert(pemRaw)
137+
val pem = getArrayFromCert(pemRaw)
138+
pem.map( data => s"$begin\n${data.sliding(64, 64).mkString("\n")}\n$end")
139+
.mkString("\n")
140+
.concat("\n")
141+
}
142+
143+
def pemToDer(data: String): Unit = {
144+
val (begin, end) = ("-----BEGIN RSA PRIVATE KEY-----", "-----END RSA PRIVATE KEY-----")
145+
require(data.startsWith(begin), "BEGIN RSA PRIVATE KEY flag not found")
146+
val tokens = data.split(begin)(1).split(end)
147+
val keyByted = DatatypeConverter.parseBase64Binary(tokens(0))
148+
val pkcs8 = new PKCS8Key(keyByted, null)
149+
val decrypted = pkcs8.getDecryptedBytes
150+
val spec = new PKCS8EncodedKeySpec(decrypted)
151+
val pk = KeyFactory.getInstance("RSA").generatePrivate(spec)
152+
val bos = new BufferedOutputStream(new FileOutputStream("/tmp/key.pkcs8"))
153+
bos.write(pk.getEncoded)
154+
bos.close()
155+
}
156+
120157

121158
// TODO Improvent get passwords keys and jks key
122159
def generateKeyStore(sslType: String,
@@ -182,15 +219,19 @@ object SSLConfig extends Logging {
182219
private def generateCertificateFromDER(certBytes: Array[Byte]): cert.Certificate =
183220
CertificateFactory.getInstance("X.509").generateCertificate(new ByteArrayInputStream(certBytes))
184221

185-
private def getArrayFromCA(ca: String): Array[String] = {
186-
val splittedBy = ca.takeWhile(_ == '-')
187-
val begin = s"$splittedBy${ca.split(splittedBy).tail.head}$splittedBy"
222+
private def getArrayFromCert(cert: String): Array[String] = {
223+
val (begin, end) = extractFlagsFromCert(cert)
224+
cert.split(begin).tail.map(_.split(end).head)
225+
}
226+
private def extractFlagsFromCert(cert: String): (String, String) = {
227+
val splittedBy = cert.takeWhile(_ == '-')
228+
val begin = s"$splittedBy${cert.split(splittedBy).tail.head}$splittedBy"
188229
val end = begin.replace("BEGIN", "END")
189-
ca.split(begin).tail.map(_.split(end).head)
230+
(begin, end)
190231
}
191232

192233
private def getBase64FromCAs(cas: String): Array[Array[Byte]] = {
193-
val pattern = getArrayFromCA(cas)
234+
val pattern = getArrayFromCert(cas)
194235
pattern.map(value => {
195236
DatatypeConverter.parseBase64Binary(value)
196237
})
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIFPDCCAySgAwIBAgIQdWSbQJ/CYk1/BERap1nTNjANBgkqhkiG9w0BAQsFADA4
3+
MQswCQYDVQQGEwJFUzEQMA4GA1UECgwHU3RyYXRpbzEXMBUGA1UEAwwOU3RyYXRp
4+
byBJbmMgQ0EwHhcNMTYwMjE5MTEzODI2WhcNMjYwMjE2MTEzODI2WjA4MQswCQYD
5+
VQQGEwJFUzEQMA4GA1UECgwHU3RyYXRpbzEXMBUGA1UEAwwOU3RyYXRpbyBJbmMg
6+
Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2boA0hxlI9cDcSrt9
7+
56lPnNuQ0ek/NnuWw6dsGXZeC1RHBR5m3/0jGnKRMpW2PpmTp7eG2ngOCbZMd5tG
8+
hZHoposlCHSjRrJvhXWPRDP52WvtSgsckcJtKw1uoo3lqZGBPAHpvg3ExxcWY8Q/
9+
b7H3Rc0zY2nM/whiayJPwO4+wE3gGiQwFrvsaekFjX/bNwBnZRiSAHm6iYeL0qfw
10+
vSUwBcs0Wzh2yCKOuNqnuk+xFy3iaj5ADWGDxhm4Qf4q5UKJCriYZnWWSn0CDIHl
11+
ZPc05sXERO52OCyzAG5Bm8qCGeCBtgpFQtHf72gbJFfSqJKs0VQ7U8N9ucI3NAEp
12+
vt0NDXALF+4EoyV+0vCrq4U5f7geUSKPSEZWI2lpyz+NCZ95BrTFSHLDuNsTXJLn
13+
mJjOYCymAm5luKA6DQw3HyNXIndgKV2e5BfhSWx3HP4J0DxO7kB2F1APUSijNZAe
14+
2x6x+SO85CR6dT46pEvoGypD8EiRRoDHbQ8Vw1ulVh8nXoJzCs8v3exQUt1ZG7G1
15+
Pcmp/S4xPF0Y6/HP0IIe2pxJ4uzOYaaARki3AI8pwHfD6OON6tRC0wjnPB4qYPta
16+
nVJo4Nr/UWmq8vpgLKrI2kE3ceiPkNgb7/cXepyseTDBQidvCwV/ZyixmafwDgDi
17+
02zN/FI4yS3aMtpyXtrTkKlLXwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4G
18+
A1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU1T68/Oa44A7bgn6wxN1deQVukKQwDQYJ
19+
KoZIhvcNAQELBQADggIBAEGTbgPUdRcWCgLclrbIOJ9wNC/T0LhmAuMyPtXJVfoj
20+
aH1XlWWGZw9CTAD0/d/W1cE0QwLi7MI0IWV6Lb4VjaogXIga7ND5uLzZ5iJb7SK8
21+
+gjK0d8hpGUKrwLzS6jUuL4vieM9DF7/VPi4EJm4EL35QfNpnb4Y17yOY1FZwZjt
22+
wlPZWGrG0plRTi70/Mgic4a3KtC1I33RUUruF3nk+Fm+VEJJzmoOi01JwDwuM1hT
23+
6lI4USNLp2vy4l1iJSdBSlwwNEthv1C/eHqC2XkH8Kr6kufW8s2Cnqu1tHJ/U+ns
24+
/m5dDcrP22i/toDKVwOdquFdB4bg42PWyKeQi85UlHVSPwlTiB7gXZi97vtIDlIf
25+
YZ6V3zy4fSUudaBXEm4IOY7IoRFB1zoqSj86KtufjOLAfqAcUFqYJGKEIfjbGist
26+
agDKh5VRTtmgWnCSp252h27UHrYMWSv9/oi6H7m9dv5ZBuUgeYnxsgZYDgic4xA8
27+
0POOWAiMwYdoIQwQghdGLRDuXT8krg8/ery42xmIvqW0xpJzROAVzWgtEUFFtFfM
28+
nrFjf2b4o6Mw8A6AflbL1zeRuum/Uz+sFVVSUS1uzWrIRSTN6M2tRpu6EuRuNCJk
29+
NXxqQ5v3iBCpoKsXEBqDeymnT4WEFqv+Rq2ZHbticZ+vXbu8039fau7bdmVS9Bjj
30+
-----END CERTIFICATE-----
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIFOjCCAyKgAwIBAgIQdWSbQJ/CYk1/BERap1nTPTANBgkqhkiG9w0BAQsFADA4
3+
MQswCQYDVQQGEwJFUzEQMA4GA1UECgwHU3RyYXRpbzEXMBUGA1UEAwwOU3RyYXRp
4+
byBJbmMgQ0EwHhcNMTYxMDIxMTUxNjEyWhcNMjYxMDE5MTUxNjEyWjA2MQswCQYD
5+
VQQGEwJFUzEQMA4GA1UECgwHU3RyYXRpbzEVMBMGA1UEAwwMTGFicyB0ZWFtIENB
6+
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtMw5w9bxjXur+T3A/sFE
7+
cDCKxvKWU1Um86puh36D3Zc55/aTpNzq8UqyEtTUbr9xuqpkriQWPZcS3CZEDW0w
8+
nEXmZ6/ukQ059T9wv6P+YGEXMqaVHn3qPGwiZ8WbClVrGfDwTl+9sfqvfR6keJq8
9+
rJkxE21ECW94ikI7Tk19s0Rz62xf+/FFRndQbTsech9Opi4TC2zMd9h9rPyRwfSm
10+
VHMKPmqm+nnAoDjBlUalxjt+n7Vs269ZBqfusn25Em+BIMwU4z13csHIuZuB/mvm
11+
qipxc2VHHrvhlCeoSgqWnNvmok4D8Ug+9sASAKYn1stdkSxCqwLLWb9PR/fUcqor
12+
vz1S8KNc07c7IIt2ip5sXGWSJKIazak4CHiJGEQ11jO4NOFsXp+tDaQgT/21Aq45
13+
zHJyf9ymT8c0ztwe9oQI1UYXHyopfyW1o9Ca5/MxQeXWcCPEFE1IMoA/e6vDWF09
14+
liDOZl94lSwZ2ev+zGGDN+WU4ZojCbjdLCv/tbuSdyiTd4jV6dCShObyWMc6l+TA
15+
fHvHFkxD29MDC165evoSXWMZtqriyt2h/9kWmqgblpz0oJ4kFPQ9RY5n34FHMSva
16+
bkSTWkjcV8m6/4YDaRWYTo7a+ObJ9a6sk0J8pfYYcpwn4QoFS+12IA95ea51TWN1
17+
bEoIFaVEqBDy5y3Qe7JSWNkCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
18+
HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFAkpP4Zm5qJ0Frn14iTtthSCrXVSMA0GCSqG
19+
SIb3DQEBCwUAA4ICAQA/Pnv9Lf/Ic/EeJYjFGZ84bICIZ/cFFNPcb4lWc7zJNOg2
20+
690t748MwqDUQYvCL4f5Dh+rvssLxK/FlMGDiw4UrZGHdHS5u3bTTUrbwG1NHQKR
21+
nthdz1xtx/TlBn4NvqVokcB7AkC5XVwpTvvVvcgpRp+ffYK3gd6arOb6oOOzRYDa
22+
wFgPEZdZrbREh9p1k0NpbkUcmNiNMjQhV+DqVvGI+pYTOP4686Q4PvC7OGma5X3T
23+
0MWwUJ3iMPdo4qAGJB8GV4XbyPapMd7vqFzsf18yAKmT9Q2afr1U1KCQ/zourY1u
24+
qBeor5CzJzCDqLDxgXrBauVwB844Epa24x98RQGfZuIULZGPn0Sf8sF4L2bwmBBQ
25+
M29yAWO4DLEZU0yqQTUHV7oJmNN+i0iE4wNSlC/Gz/wV3LCG+tseQkgvRziN8hwo
26+
TGg6n9EvT2NdD0QpzJ2D7PQeJIytKEYzJKVRCZkn3Xcoy1SzIKiG0xDLME22rjFu
27+
vWFyw1r/OnErIM7RL4GLZ3gAm00CRq4e2GarcEeLAq1d7rcSxV5/84pOIX9mH7PN
28+
JTg5js6pOn9hrZWmmwRKYYVTPFqkAlTurrO0NjOT/kmDdHT0Xnaq0LRg0bKa79iD
29+
JcylT5C08PAJX5S9esPXhNwS6rxMwk1ApmdE5USs/hn3geDAebJ0aRwIwnX5+g==
30+
-----END CERTIFICATE-----
31+
-----BEGIN CERTIFICATE-----
32+
MIIFPDCCAySgAwIBAgIQdWSbQJ/CYk1/BERap1nTNjANBgkqhkiG9w0BAQsFADA4
33+
MQswCQYDVQQGEwJFUzEQMA4GA1UECgwHU3RyYXRpbzEXMBUGA1UEAwwOU3RyYXRp
34+
byBJbmMgQ0EwHhcNMTYwMjE5MTEzODI2WhcNMjYwMjE2MTEzODI2WjA4MQswCQYD
35+
VQQGEwJFUzEQMA4GA1UECgwHU3RyYXRpbzEXMBUGA1UEAwwOU3RyYXRpbyBJbmMg
36+
Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2boA0hxlI9cDcSrt9
37+
56lPnNuQ0ek/NnuWw6dsGXZeC1RHBR5m3/0jGnKRMpW2PpmTp7eG2ngOCbZMd5tG
38+
hZHoposlCHSjRrJvhXWPRDP52WvtSgsckcJtKw1uoo3lqZGBPAHpvg3ExxcWY8Q/
39+
b7H3Rc0zY2nM/whiayJPwO4+wE3gGiQwFrvsaekFjX/bNwBnZRiSAHm6iYeL0qfw
40+
vSUwBcs0Wzh2yCKOuNqnuk+xFy3iaj5ADWGDxhm4Qf4q5UKJCriYZnWWSn0CDIHl
41+
ZPc05sXERO52OCyzAG5Bm8qCGeCBtgpFQtHf72gbJFfSqJKs0VQ7U8N9ucI3NAEp
42+
vt0NDXALF+4EoyV+0vCrq4U5f7geUSKPSEZWI2lpyz+NCZ95BrTFSHLDuNsTXJLn
43+
mJjOYCymAm5luKA6DQw3HyNXIndgKV2e5BfhSWx3HP4J0DxO7kB2F1APUSijNZAe
44+
2x6x+SO85CR6dT46pEvoGypD8EiRRoDHbQ8Vw1ulVh8nXoJzCs8v3exQUt1ZG7G1
45+
Pcmp/S4xPF0Y6/HP0IIe2pxJ4uzOYaaARki3AI8pwHfD6OON6tRC0wjnPB4qYPta
46+
nVJo4Nr/UWmq8vpgLKrI2kE3ceiPkNgb7/cXepyseTDBQidvCwV/ZyixmafwDgDi
47+
02zN/FI4yS3aMtpyXtrTkKlLXwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4G
48+
A1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU1T68/Oa44A7bgn6wxN1deQVukKQwDQYJ
49+
KoZIhvcNAQELBQADggIBAEGTbgPUdRcWCgLclrbIOJ9wNC/T0LhmAuMyPtXJVfoj
50+
aH1XlWWGZw9CTAD0/d/W1cE0QwLi7MI0IWV6Lb4VjaogXIga7ND5uLzZ5iJb7SK8
51+
+gjK0d8hpGUKrwLzS6jUuL4vieM9DF7/VPi4EJm4EL35QfNpnb4Y17yOY1FZwZjt
52+
wlPZWGrG0plRTi70/Mgic4a3KtC1I33RUUruF3nk+Fm+VEJJzmoOi01JwDwuM1hT
53+
6lI4USNLp2vy4l1iJSdBSlwwNEthv1C/eHqC2XkH8Kr6kufW8s2Cnqu1tHJ/U+ns
54+
/m5dDcrP22i/toDKVwOdquFdB4bg42PWyKeQi85UlHVSPwlTiB7gXZi97vtIDlIf
55+
YZ6V3zy4fSUudaBXEm4IOY7IoRFB1zoqSj86KtufjOLAfqAcUFqYJGKEIfjbGist
56+
agDKh5VRTtmgWnCSp252h27UHrYMWSv9/oi6H7m9dv5ZBuUgeYnxsgZYDgic4xA8
57+
0POOWAiMwYdoIQwQghdGLRDuXT8krg8/ery42xmIvqW0xpJzROAVzWgtEUFFtFfM
58+
nrFjf2b4o6Mw8A6AflbL1zeRuum/Uz+sFVVSUS1uzWrIRSTN6M2tRpu6EuRuNCJk
59+
NXxqQ5v3iBCpoKsXEBqDeymnT4WEFqv+Rq2ZHbticZ+vXbu8039fau7bdmVS9Bjj
60+
-----END CERTIFICATE-----

core/src/test/resources/cert.crt

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIFXTCCA0WgAwIBAgIRALZoIdzosSCFgK8nHH+iKoQwDQYJKoZIhvcNAQELBQAw
3+
NjELMAkGA1UEBhMCRVMxEDAOBgNVBAoMB1N0cmF0aW8xFTATBgNVBAMMDExhYnMg
4+
dGVhbSBDQTAeFw0xNzA2MjAxNjQ0NDFaFw0xODA2MjAxNjQ0NDFaMDIxCzAJBgNV
5+
BAYTAkVTMRAwDgYDVQQKEwdTdHJhdGlvMREwDwYDVQQDEwhwb3N0Z3JlczCCASIw
6+
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK5X78hm/LT6WVA3gswBE9/Z5qYo
7+
vyD+aU2ZTMU89MB+VGzRfjwsO4Exg/AuRHj369mj/zNHCXcumWe06az6Q0Jj8Gv/
8+
u1vzA8LJMcyF3EhLSG8EiIp7LEXm+uSs1rkRH1qM2j2oVyIC4IUhrwvBWT3VnZFX
9+
TSnpodwARYGszkyrv+1poQTMLz5gvolv1kQWexB6zTaTIG4dpiGwyjtbtwlqa6LQ
10+
e2KXq6C6eLUX/bPHPaU/ECdl/A1jHT8kyTe9FT3OSzsJCwPII/oMYoJDYFUBnLrB
11+
d4lKy00KgoopIzn+xtbLwq3nxsHPBbHStFkw8+2BoDGUDidAQPNiPJovC6cCAwEA
12+
AaOCAWgwggFkMHQGCCsGAQUFBwEBBGgwZjAyBggrBgEFBQcwAoYmaHR0cDovL2xh
13+
YnMtY2Euc3RyYXRpby5jb20vbGFicy1jYS5jcnQwMAYIKwYBBQUHMAGGJGh0dHA6
14+
Ly9vY3NwLmxhYnMtY2Euc3RyYXRpby5jb206OTA4MTAfBgNVHSMEGDAWgBQJKT+G
15+
ZuaidBa59eIk7bYUgq11UjAMBgNVHRMBAf8EAjAAMDcGA1UdHwQwMC4wLKAqoCiG
16+
Jmh0dHA6Ly9sYWJzLWNhLnN0cmF0aW8uY29tL2xhYnMtY2EuY3JsMB0GA1UdJQQW
17+
MBQGCCsGAQUFBwMCBggrBgEFBQcDATAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0OBBYE
18+
FO454se8dRSIP2jLPsYIC8B8wtrpMDYGA1UdEQQvMC2CCHBvc3RncmVzgiFwb29s
19+
cGdzcWx0ZXN0c3BhcmsubWFyYXRob24ubWVzb3MwDQYJKoZIhvcNAQELBQADggIB
20+
AGm45ighjWkdj662m72AuPNIofTqQhn+Fkwwvc+KVk4s0wdLJTJvfQ7JaznCnFhI
21+
powEW6J6hyF/C7ltMpjnPuhzbs0a12+I2HC5ZWOB8ag8zuv/+uYNUFiUzVQaLjKn
22+
dwsOY60Tqy+nEGKTDXCWh6hz4+WideI60JB8DzPVzaEp74U+t0/grbiXXb08ft10
23+
AQO52QR49r67xRHC9GxY5YRZNe07uT12jWeWUGasUzNFOHAB/dFcLgkxaUMFeaBR
24+
40XlLZo/Y/TbxCsnvTe4uP7nn+PBYVSS8y+sTAQ+l7X6UiK0VPWF8hlURHhM9K6E
25+
bvNJFpkDBXRM66ZDV3uXN6Jyx+8qjPM6ekjofwJgTDPfiigSV27OFcq0OwqvO+77
26+
97e/MDQ0tItsShmTtpcEShaF5l8VM7laoCqLGObIyQJHkpIslGVU2qutJyMKwOrd
27+
KfbWJeJphgbpGuPeiwrJ8OSIkO+u1pPtDiLwm+QqilEz5VOAxb3Lco2BEp2GwTVW
28+
3zZtBuRWdYxWcIB0LvYYRGw0D1DaEAUf1Hr2jJeBUvQsNre962Tl9r5wGSqTAXQL
29+
ykoxIAOzaN56Gzncrnt1iw2MQyUiN+9zisnE8FpjnSRekJCZljFkUxJARFSUah9m
30+
ecYRVm9G8YkxCg3feUfvw0lQdqqw/kFkFFe3RC0agHj/
31+
-----END CERTIFICATE-----
32+
-----BEGIN CERTIFICATE-----
33+
MIIFOjCCAyKgAwIBAgIQdWSbQJ/CYk1/BERap1nTPTANBgkqhkiG9w0BAQsFADA4
34+
MQswCQYDVQQGEwJFUzEQMA4GA1UECgwHU3RyYXRpbzEXMBUGA1UEAwwOU3RyYXRp
35+
byBJbmMgQ0EwHhcNMTYxMDIxMTUxNjEyWhcNMjYxMDE5MTUxNjEyWjA2MQswCQYD
36+
VQQGEwJFUzEQMA4GA1UECgwHU3RyYXRpbzEVMBMGA1UEAwwMTGFicyB0ZWFtIENB
37+
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtMw5w9bxjXur+T3A/sFE
38+
cDCKxvKWU1Um86puh36D3Zc55/aTpNzq8UqyEtTUbr9xuqpkriQWPZcS3CZEDW0w
39+
nEXmZ6/ukQ059T9wv6P+YGEXMqaVHn3qPGwiZ8WbClVrGfDwTl+9sfqvfR6keJq8
40+
rJkxE21ECW94ikI7Tk19s0Rz62xf+/FFRndQbTsech9Opi4TC2zMd9h9rPyRwfSm
41+
VHMKPmqm+nnAoDjBlUalxjt+n7Vs269ZBqfusn25Em+BIMwU4z13csHIuZuB/mvm
42+
qipxc2VHHrvhlCeoSgqWnNvmok4D8Ug+9sASAKYn1stdkSxCqwLLWb9PR/fUcqor
43+
vz1S8KNc07c7IIt2ip5sXGWSJKIazak4CHiJGEQ11jO4NOFsXp+tDaQgT/21Aq45
44+
zHJyf9ymT8c0ztwe9oQI1UYXHyopfyW1o9Ca5/MxQeXWcCPEFE1IMoA/e6vDWF09
45+
liDOZl94lSwZ2ev+zGGDN+WU4ZojCbjdLCv/tbuSdyiTd4jV6dCShObyWMc6l+TA
46+
fHvHFkxD29MDC165evoSXWMZtqriyt2h/9kWmqgblpz0oJ4kFPQ9RY5n34FHMSva
47+
bkSTWkjcV8m6/4YDaRWYTo7a+ObJ9a6sk0J8pfYYcpwn4QoFS+12IA95ea51TWN1
48+
bEoIFaVEqBDy5y3Qe7JSWNkCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
49+
HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFAkpP4Zm5qJ0Frn14iTtthSCrXVSMA0GCSqG
50+
SIb3DQEBCwUAA4ICAQA/Pnv9Lf/Ic/EeJYjFGZ84bICIZ/cFFNPcb4lWc7zJNOg2
51+
690t748MwqDUQYvCL4f5Dh+rvssLxK/FlMGDiw4UrZGHdHS5u3bTTUrbwG1NHQKR
52+
nthdz1xtx/TlBn4NvqVokcB7AkC5XVwpTvvVvcgpRp+ffYK3gd6arOb6oOOzRYDa
53+
wFgPEZdZrbREh9p1k0NpbkUcmNiNMjQhV+DqVvGI+pYTOP4686Q4PvC7OGma5X3T
54+
0MWwUJ3iMPdo4qAGJB8GV4XbyPapMd7vqFzsf18yAKmT9Q2afr1U1KCQ/zourY1u
55+
qBeor5CzJzCDqLDxgXrBauVwB844Epa24x98RQGfZuIULZGPn0Sf8sF4L2bwmBBQ
56+
M29yAWO4DLEZU0yqQTUHV7oJmNN+i0iE4wNSlC/Gz/wV3LCG+tseQkgvRziN8hwo
57+
TGg6n9EvT2NdD0QpzJ2D7PQeJIytKEYzJKVRCZkn3Xcoy1SzIKiG0xDLME22rjFu
58+
vWFyw1r/OnErIM7RL4GLZ3gAm00CRq4e2GarcEeLAq1d7rcSxV5/84pOIX9mH7PN
59+
JTg5js6pOn9hrZWmmwRKYYVTPFqkAlTurrO0NjOT/kmDdHT0Xnaq0LRg0bKa79iD
60+
JcylT5C08PAJX5S9esPXhNwS6rxMwk1ApmdE5USs/hn3geDAebJ0aRwIwnX5+g==
61+
-----END CERTIFICATE-----
62+
-----BEGIN CERTIFICATE-----
63+
MIIFPDCCAySgAwIBAgIQdWSbQJ/CYk1/BERap1nTNjANBgkqhkiG9w0BAQsFADA4
64+
MQswCQYDVQQGEwJFUzEQMA4GA1UECgwHU3RyYXRpbzEXMBUGA1UEAwwOU3RyYXRp
65+
byBJbmMgQ0EwHhcNMTYwMjE5MTEzODI2WhcNMjYwMjE2MTEzODI2WjA4MQswCQYD
66+
VQQGEwJFUzEQMA4GA1UECgwHU3RyYXRpbzEXMBUGA1UEAwwOU3RyYXRpbyBJbmMg
67+
Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2boA0hxlI9cDcSrt9
68+
56lPnNuQ0ek/NnuWw6dsGXZeC1RHBR5m3/0jGnKRMpW2PpmTp7eG2ngOCbZMd5tG
69+
hZHoposlCHSjRrJvhXWPRDP52WvtSgsckcJtKw1uoo3lqZGBPAHpvg3ExxcWY8Q/
70+
b7H3Rc0zY2nM/whiayJPwO4+wE3gGiQwFrvsaekFjX/bNwBnZRiSAHm6iYeL0qfw
71+
vSUwBcs0Wzh2yCKOuNqnuk+xFy3iaj5ADWGDxhm4Qf4q5UKJCriYZnWWSn0CDIHl
72+
ZPc05sXERO52OCyzAG5Bm8qCGeCBtgpFQtHf72gbJFfSqJKs0VQ7U8N9ucI3NAEp
73+
vt0NDXALF+4EoyV+0vCrq4U5f7geUSKPSEZWI2lpyz+NCZ95BrTFSHLDuNsTXJLn
74+
mJjOYCymAm5luKA6DQw3HyNXIndgKV2e5BfhSWx3HP4J0DxO7kB2F1APUSijNZAe
75+
2x6x+SO85CR6dT46pEvoGypD8EiRRoDHbQ8Vw1ulVh8nXoJzCs8v3exQUt1ZG7G1
76+
Pcmp/S4xPF0Y6/HP0IIe2pxJ4uzOYaaARki3AI8pwHfD6OON6tRC0wjnPB4qYPta
77+
nVJo4Nr/UWmq8vpgLKrI2kE3ceiPkNgb7/cXepyseTDBQidvCwV/ZyixmafwDgDi
78+
02zN/FI4yS3aMtpyXtrTkKlLXwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4G
79+
A1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU1T68/Oa44A7bgn6wxN1deQVukKQwDQYJ
80+
KoZIhvcNAQELBQADggIBAEGTbgPUdRcWCgLclrbIOJ9wNC/T0LhmAuMyPtXJVfoj
81+
aH1XlWWGZw9CTAD0/d/W1cE0QwLi7MI0IWV6Lb4VjaogXIga7ND5uLzZ5iJb7SK8
82+
+gjK0d8hpGUKrwLzS6jUuL4vieM9DF7/VPi4EJm4EL35QfNpnb4Y17yOY1FZwZjt
83+
wlPZWGrG0plRTi70/Mgic4a3KtC1I33RUUruF3nk+Fm+VEJJzmoOi01JwDwuM1hT
84+
6lI4USNLp2vy4l1iJSdBSlwwNEthv1C/eHqC2XkH8Kr6kufW8s2Cnqu1tHJ/U+ns
85+
/m5dDcrP22i/toDKVwOdquFdB4bg42PWyKeQi85UlHVSPwlTiB7gXZi97vtIDlIf
86+
YZ6V3zy4fSUudaBXEm4IOY7IoRFB1zoqSj86KtufjOLAfqAcUFqYJGKEIfjbGist
87+
agDKh5VRTtmgWnCSp252h27UHrYMWSv9/oi6H7m9dv5ZBuUgeYnxsgZYDgic4xA8
88+
0POOWAiMwYdoIQwQghdGLRDuXT8krg8/ery42xmIvqW0xpJzROAVzWgtEUFFtFfM
89+
nrFjf2b4o6Mw8A6AflbL1zeRuum/Uz+sFVVSUS1uzWrIRSTN6M2tRpu6EuRuNCJk
90+
NXxqQ5v3iBCpoKsXEBqDeymnT4WEFqv+Rq2ZHbticZ+vXbu8039fau7bdmVS9Bjj
91+
-----END CERTIFICATE-----

core/src/test/resources/cert.key

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
-----BEGIN RSA PRIVATE KEY-----
2+
MIIEogIBAAKCAQEArlfvyGb8tPpZUDeCzAET39nmpii/IP5pTZlMxTz0wH5UbNF+
3+
PCw7gTGD8C5EePfr2aP/M0cJdy6ZZ7TprPpDQmPwa/+7W/MDwskxzIXcSEtIbwSI
4+
inssReb65KzWuREfWozaPahXIgLghSGvC8FZPdWdkVdNKemh3ABFgazOTKu/7Wmh
5+
BMwvPmC+iW/WRBZ7EHrNNpMgbh2mIbDKO1u3CWprotB7YperoLp4tRf9s8c9pT8Q
6+
J2X8DWMdPyTJN70VPc5LOwkLA8gj+gxigkNgVQGcusF3iUrLTQqCiikjOf7G1svC
7+
refGwc8FsdK0WTDz7YGgMZQOJ0BA82I8mi8LpwIDAQABAoIBABeLssua9RgwE23d
8+
AWIx5xA9aoQYTq/TDD+5q3+b2uZAaYCEzoqr4qFxIYOHjCHWQdkT5/xx5JpfBcLW
9+
0RRWfEz0GF1NnW0updxhtcMMdRKicDbmItapCfKq3kmR+jHmWRiumy7mlFX4k4AH
10+
a4+n3jiWqAAgDUDS19RRiRGZWAdMlbnXQTVP8t+DIPCVlQRInDgrNcpwiXpmJAd1
11+
cessEtjAADoZq9QgDNn5n6QEvOS43zxCuLt6wt65hQLCzBTWZmDGB+CPz6F9FLMU
12+
1DSWll+nPBC5ZTBFxwz5duKXV1K+FtaGF6VDWR3jsBnNXQ+1A3rXv47LCUA3pzat
13+
zxMRCyECgYEA2VCKVmpo/nSd5FoPSHP0DtSYw3LgGbRKoDiZJ+9RycEoK21fzqyy
14+
IY3PNsutPpTMZKVuTm12Y5cAH5wO3vmeRTa6bzRiIdggyoLdZxRaF76s9dN1datu
15+
rEi4UMs9vByJp0wTQbIy9uCB/1puChntzrYOnOm9xZcJkfG2XN7tyZECgYEAzWEe
16+
Bkx+FXihmzo1Uz9MJQCT6uJvb1ffRjCMTLH28+HCUuPoiOjOHLbXqJmMgKmO4NVq
17+
SCCDNbu0XBA/ZUOSrE1oPSIb9TGmL+XqXilPrE7JKcDuagAE7C1KXDQcMuf3Z+Pk
18+
qjBJ/MMcUXhLY9iGTMJGQcSnG7mToW6RIIXyJbcCgYAemj3w72k7tBZsCtauIE4V
19+
LJEarPmsBPyhVXcT7Zq5666JdwyP4Tfwi7TLhaEu9+tUnQtMlhOe8Ku+x848TjCg
20+
lJVqhZjwJSxw+D7Pfkk1oM9gite2q16ZemAiWIyoCejEm2z2ym5s367O0+A9Ieug
21+
OXkTVcM4qQ1a9Qv2Rhp8UQKBgEzzRVeg02DiGNLbRV2SisoWZFWOT6hNKTfYOskF
22+
qPyJqtB52gdqCsfRbg4asf0HCqSM8cxieibo1FPmNoqPfeYW/qZhIE6HMrghkeWD
23+
3vk1b8O4KNwIc8+1zHWthJ9CMH15cpSdkSsmQ3b29nBLkU4zQDWmI+KMbpb+oVup
24+
NCgTAoGAKw+s/PE1lwK/Elu0nxmL3YE7AaL3i1XP/+eVTZqVhYDWdOsu/vCzVfyj
25+
rHUo04LQ57GpEe/MgONZWfrHsH8V9bS5GF4PMyUFwPqKvb4wtAz6eD0Tu+NQDg5k
26+
ntDp9d+aKx+/uy3cbCkqA/9g82o4LGeOJ/TBhPKFh6yjF2uLm2s=
27+
-----END RSA PRIVATE KEY-----

core/src/test/resources/key.pkcs8

1.19 KB
Binary file not shown.

0 commit comments

Comments
 (0)