@ -257,3 +257,252 @@ func TestGetRootCAs(t *testing.T) {
}
}
}
}
}
}
func TestLoadX509KeyPair ( t * testing . T ) {
for i , testCase := range loadX509KeyPairTests {
privateKey , err := createTempFile ( "private.key" , testCase . privateKey )
if err != nil {
t . Fatalf ( "Test %d: failed to create tmp private key file: %v" , i , err )
}
certificate , err := createTempFile ( "public.crt" , testCase . certificate )
if err != nil {
os . Remove ( privateKey )
t . Fatalf ( "Test %d: failed to create tmp certificate file: %v" , i , err )
}
os . Unsetenv ( TLSPrivateKeyPassword )
if testCase . password != "" {
os . Setenv ( TLSPrivateKeyPassword , testCase . password )
}
_ , err = loadX509KeyPair ( certificate , privateKey )
if err != nil && ! testCase . shouldFail {
t . Errorf ( "Test %d: test should succeed but it failed: %v" , i , err )
}
if err == nil && testCase . shouldFail {
t . Errorf ( "Test %d: test should fail but it succeed" , i )
}
os . Remove ( privateKey )
os . Remove ( certificate )
}
}
var loadX509KeyPairTests = [ ] struct {
password string
privateKey , certificate string
shouldFail bool
} {
{
password : "foobar" ,
privateKey : ` -- -- - BEGIN RSA PRIVATE KEY -- -- -
Proc - Type : 4 , ENCRYPTED
DEK - Info : AES - 128 - CBC , CC483BF11678C35F9F02A1AD85DAE285
nMDFd + Qxk1f + S7LwMitmMofNXYNbCY4L1QEqPOOx5wnjNF1wSxmEkL7 + h8W4Y / vb
AQt / 7 TCcUSuSqEMl45nUIcCbhBos5wz + ShvFiez3qKwmR5HSURvqyN6PIJeAbU + h
uw / cvAQsCH1Cq + gYkDJqjrizPhGqg7mSkqyeST3PbOl + ZXc0wynIjA34JSwO3c5j
cF7XKHETtNGj1 + AiLruX4wYZAJwQnK375fCoNVMO992zC6K83d8kvGMUgmJjkiIj
q3s4ymFGfoo0S / XNDQXgE5A5QjAKRKUyW2i7pHIIhTyOpeJQeFHDi2 / zaZRxoCog
lD2 / HKLi5xJtRelZaaGyEJ20c05VzaSZ + EtRIN33foNdyQQL6iAUU3hJ6JlcmRIB
bRfX4XPH1w9UfFU5ZKwUciCoDcL65bsyv / y56ItljBp7Ok + UUKl0H4myFNOSfsuU
IIj4neslnAvwQ8SN4XUpug + 7 pGF + 2 m / 5 UDwRzSUN1H2RfgWN95kqR + tYqCq / E + KO
i0svzFrljSHswsFoPBqKngI7hHwc9QTt5q4frXwj9I4F6HHrTKZnC5M4ef26sbJ1
r7JRmkt0h / GfcS355b0uoBTtF1R8tSJo85Zh47wE + ucdjEvy9 / pjnzKqIoJo9bNZ
ri + ue7GhH5EUca1Kd10bH8FqTF + 8 AHh4yW6xMxSkSgFGp7KtraAVpdp + 6 kosymqh
dz9VMjA8i28btfkS2isRaCpyumaFYJ3DJMFYhmeyt6gqYovmRLX0qrBf8nrkFTAA
ZmykWsc8ErsCudxlDmKVemuyFL7jtm9IRPq + Jh + IrmixLJFx8PKkNAM6g + A8irx8
piw + yhRsVy5Jk2QeIqvbpxN6BfCNcix4sWkusiCJrAqQFuSm26Mhh53Ig1DXG4d3
6 QY1T8tW80Q6JHUtDR + iOPqW6EmrNiEopzirvhGv9FicXZ0Lo2yKJueeeihWhFLL
GmlnCjWVMO4hoo8lWCHv95JkPxGMcecCacKKUbHlXzCGyw3 + eeTEHMWMEhziLeBy
HZJ1 / GReI3Sx7XlUCkG4468Yz3PpmbNIk / U5XKE7TGuxKmfcWQpu022iF / 9 DrKTz
KVhKimCBXJX345bCFe1rN2z5CV6sv87FkMs5Y + OjPw6qYFZPVKO2TdUUBcpXbQMg
UW + Kuaax9W7214Stlil727MjRCiH1 + 0 yODg4nWj4pTSocA5R3pn5cwqrjMu97OmL
ESx4DHmy4keeSy3 + AIAehCZlwgeLb70 / xCSRhJMIMS9Q6bz8CPkEWN8bBZt95oeo
37 LqZ7lNmq61fs1x1tq0VUnI9HwLFEnsiubp6RG0Yu8l / uImjjjXa / ytW2GXrfUi
zM22dOntu6u23iBxRBJRWdFTVUz7qrdu + PHavr + Y7TbCeiBwiypmz5llf823UIVx
btamI6ziAq2gKZhObIhut7sjaLkAyTLlNVkNN1WNaplAXpW25UFVk93MHbvZ27bx
9i LGs / qB2kDTUjffSQoHTLY1GoLxv83RgVspUGQjslztEEpWfYvGfVLcgYLv933B
aRW9BRoNZ0czKx7Lhuwjreyb5IcWDarhC8q29ZkkWsQQonaPb0kTEFJul80Yqk0k
-- -- - END RSA PRIVATE KEY -- -- - ` ,
certificate : ` -- -- - BEGIN CERTIFICATE -- -- -
MIIDiTCCAnGgAwIBAgIJAK5m5S7EE46kMA0GCSqGSIb3DQEBCwUAMFsxCzAJBgNV
BAYTAlVTMQ4wDAYDVQQIDAVzdGF0ZTERMA8GA1UEBwwIbG9jYXRpb24xFTATBgNV
BAoMDG9yZ2FuaXphdGlvbjESMBAGA1UEAwwJbG9jYWxob3N0MB4XDTE3MTIxODE4
MDUyOFoXDTI3MTIxNjE4MDUyOFowWzELMAkGA1UEBhMCVVMxDjAMBgNVBAgMBXN0
YXRlMREwDwYDVQQHDAhsb2NhdGlvbjEVMBMGA1UECgwMb3JnYW5pemF0aW9uMRIw
EAYDVQQDDAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
AQDPJfYY5Dhsntrqwyu7ZgKM / zrlKEjCwGHhWJBdZdeZCHQlY8ISrtDxxp2XMmI6
HsszalEhNF9fk3vSXWclTuomG03fgGzP4R6QpcwGUCxhRF1J + 0 b64Yi8pw2uEGsR
GuMwLhGorcWalNoihgHc0BQ4vO8aaTNTX7iD06olesP6vGNu / S8h0VomE + 0 v9qYc
VF66Zaiv / 6 OmxAtDpElJjVd0mY7G85BlDlFrVwzd7zhRiuJZ4iDg749Xt9GuuKla
Dvr14glHhP4dQgUbhluJmIHMdx2ZPjk + 5 FxaDK6I9IUpxczFDe4agDE6lKzU1eLd
cCXRWFOf6q9lTB1hUZfmWfTxAgMBAAGjUDBOMB0GA1UdDgQWBBTQh7lDTq + 8 salD
0 HBNILochiiNaDAfBgNVHSMEGDAWgBTQh7lDTq + 8 salD0HBNILochiiNaDAMBgNV
HRMEBTADAQH / MA0GCSqGSIb3DQEBCwUAA4IBAQAqi9LycxcXKNSDXaPkCKvw7RQy
iMBDGm1kIY ++ p3tzbUGuaeu85TsswKnqd50AullEU + aQxRRJGfR8eSKzQJMBXLMQ
b4ptYCc5OrZtRHT8NaZ / df2tc6I88kN8dBu6ybcNGsevXA / iNX3kKLW7naxdr5jj
KUudWSuqDCjCmQa5bYb9H6DreLH2lUItSWBa / YmeZ3VSezDCd + XYO53QKwZVj8Jb
bulZmoo7e7HO1qecEzWKL10UYyEbG3UDPtw + NZc142ZYeEhXQ0dsstGAO5hf3hEl
kQyKGUTpDbKLuyYMFsoH73YLjBqNe + UEhPwE + FWpcky1Sp9RTx / oMLpiZaPR
-- -- - END CERTIFICATE -- -- - ` ,
shouldFail : false ,
} ,
{
password : "password" ,
privateKey : ` -- -- - BEGIN RSA PRIVATE KEY -- -- -
Proc - Type : 4 , ENCRYPTED
DEK - Info : AES - 128 - CBC , CC483BF11678C35F9F02A1AD85DAE285
nMDFd + Qxk1f + S7LwMitmMofNXYNbCY4L1QEqPOOx5wnjNF1wSxmEkL7 + h8W4Y / vb
AQt / 7 TCcUSuSqEMl45nUIcCbhBos5wz + ShvFiez3qKwmR5HSURvqyN6PIJeAbU + h
uw / cvAQsCH1Cq + gYkDJqjrizPhGqg7mSkqyeST3PbOl + ZXc0wynIjA34JSwO3c5j
cF7XKHETtNGj1 + AiLruX4wYZAJwQnK375fCoNVMO992zC6K83d8kvGMUgmJjkiIj
q3s4ymFGfoo0S / XNDQXgE5A5QjAKRKUyW2i7pHIIhTyOpeJQeFHDi2 / zaZRxoCog
lD2 / HKLi5xJtRelZaaGyEJ20c05VzaSZ + EtRIN33foNdyQQL6iAUU3hJ6JlcmRIB
bRfX4XPH1w9UfFU5ZKwUciCoDcL65bsyv / y56ItljBp7Ok + UUKl0H4myFNOSfsuU
IIj4neslnAvwQ8SN4XUpug + 7 pGF + 2 m / 5 UDwRzSUN1H2RfgWN95kqR + tYqCq / E + KO
i0svzFrljSHswsFoPBqKngI7hHwc9QTt5q4frXwj9I4F6HHrTKZnC5M4ef26sbJ1
r7JRmkt0h / GfcS355b0uoBTtF1R8tSJo85Zh47wE + ucdjEvy9 / pjnzKqIoJo9bNZ
ri + ue7GhH5EUca1Kd10bH8FqTF + 8 AHh4yW6xMxSkSgFGp7KtraAVpdp + 6 kosymqh
dz9VMjA8i28btfkS2isRaCpyumaFYJ3DJMFYhmeyt6gqYovmRLX0qrBf8nrkFTAA
ZmykWsc8ErsCudxlDmKVemuyFL7jtm9IRPq + Jh + IrmixLJFx8PKkNAM6g + A8irx8
piw + yhRsVy5Jk2QeIqvbpxN6BfCNcix4sWkusiCJrAqQFuSm26Mhh53Ig1DXG4d3
6 QY1T8tW80Q6JHUtDR + iOPqW6EmrNiEopzirvhGv9FicXZ0Lo2yKJueeeihWhFLL
GmlnCjWVMO4hoo8lWCHv95JkPxGMcecCacKKUbHlXzCGyw3 + eeTEHMWMEhziLeBy
HZJ1 / GReI3Sx7XlUCkG4468Yz3PpmbNIk / U5XKE7TGuxKmfcWQpu022iF / 9 DrKTz
KVhKimCBXJX345bCFe1rN2z5CV6sv87FkMs5Y + OjPw6qYFZPVKO2TdUUBcpXbQMg
UW + Kuaax9W7214Stlil727MjRCiH1 + 0 yODg4nWj4pTSocA5R3pn5cwqrjMu97OmL
ESx4DHmy4keeSy3 + AIAehCZlwgeLb70 / xCSRhJMIMS9Q6bz8CPkEWN8bBZt95oeo
37 LqZ7lNmq61fs1x1tq0VUnI9HwLFEnsiubp6RG0Yu8l / uImjjjXa / ytW2GXrfUi
zM22dOntu6u23iBxRBJRWdFTVUz7qrdu + PHavr + Y7TbCeiBwiypmz5llf823UIVx
btamI6ziAq2gKZhObIhut7sjaLkAyTLlNVkNN1WNaplAXpW25UFVk93MHbvZ27bx
9i LGs / qB2kDTUjffSQoHTLY1GoLxv83RgVspUGQjslztEEpWfYvGfVLcgYLv933B
aRW9BRoNZ0czKx7Lhuwjreyb5IcWDarhC8q29ZkkWsQQonaPb0kTEFJul80Yqk0k
-- -- - END RSA PRIVATE KEY -- -- - ` ,
certificate : ` -- -- - BEGIN CERTIFICATE -- -- -
MIIDiTCCAnGgAwIBAgIJAK5m5S7EE46kMA0GCSqGSIb3DQEBCwUAMFsxCzAJBgNV
BAYTAlVTMQ4wDAYDVQQIDAVzdGF0ZTERMA8GA1UEBwwIbG9jYXRpb24xFTATBgNV
BAoMDG9yZ2FuaXphdGlvbjESMBAGA1UEAwwJbG9jYWxob3N0MB4XDTE3MTIxODE4
MDUyOFoXDTI3MTIxNjE4MDUyOFowWzELMAkGA1UEBhMCVVMxDjAMBgNVBAgMBXN0
YXRlMREwDwYDVQQHDAhsb2NhdGlvbjEVMBMGA1UECgwMb3JnYW5pemF0aW9uMRIw
EAYDVQQDDAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
AQDPJfYY5Dhsntrqwyu7ZgKM / zrlKEjCwGHhWJBdZdeZCHQlY8ISrtDxxp2XMmI6
HsszalEhNF9fk3vSXWclTuomG03fgGzP4R6QpcwGUCxhRF1J + 0 b64Yi8pw2uEGsR
GuMwLhGorcWalNoihgHc0BQ4vO8aaTNTX7iD06olesP6vGNu / S8h0VomE + 0 v9qYc
VF66Zaiv / 6 OmxAtDpElJjVd0mY7G85BlDlFrVwzd7zhRiuJZ4iDg749Xt9GuuKla
Dvr14glHhP4dQgUbhluJmIHMdx2ZPjk + 5 FxaDK6I9IUpxczFDe4agDE6lKzU1eLd
cCXRWFOf6q9lTB1hUZfmWfTxAgMBAAGjUDBOMB0GA1UdDgQWBBTQh7lDTq + 8 salD
0 HBNILochiiNaDAfBgNVHSMEGDAWgBTQh7lDTq + 8 salD0HBNILochiiNaDAMBgNV
HRMEBTADAQH / MA0GCSqGSIb3DQEBCwUAA4IBAQAqi9LycxcXKNSDXaPkCKvw7RQy
iMBDGm1kIY ++ p3tzbUGuaeu85TsswKnqd50AullEU + aQxRRJGfR8eSKzQJMBXLMQ
b4ptYCc5OrZtRHT8NaZ / df2tc6I88kN8dBu6ybcNGsevXA / iNX3kKLW7naxdr5jj
KUudWSuqDCjCmQa5bYb9H6DreLH2lUItSWBa / YmeZ3VSezDCd + XYO53QKwZVj8Jb
bulZmoo7e7HO1qecEzWKL10UYyEbG3UDPtw + NZc142ZYeEhXQ0dsstGAO5hf3hEl
kQyKGUTpDbKLuyYMFsoH73YLjBqNe + UEhPwE + FWpcky1Sp9RTx / oMLpiZaPR
-- -- - END CERTIFICATE -- -- - ` ,
shouldFail : true ,
} ,
{
password : "" ,
privateKey : ` -- -- - BEGIN RSA PRIVATE KEY -- -- -
MIIEpAIBAAKCAQEA4K9Qq7vMY2bGkrdFAYpBYNLlCgnnFU + 0 pi + N + 3 bjuWmfX / kw
WXBa3SDqKD08PWWzwvBSLPCCUV2IuUd7tBa1pJ2wXkdoDeI5InYHJKrXbSZonni6
Bex7sgnqV / 9 o8xFkSOleoQWZgyeKGxtt0J / Z + zhpH + zXahwM4wOL3yzLSQt + NCKM
6 N96zXYi16DEa89fYwRxPwE1XTRc7Ddggqx + 4i RHvYG0fyTNcPB / + UiFw59EE1Sg
QIyTVntVqpsb6s8XdkFxURoLxefhcMVf2kU0T04OWI3gmeavKfTcj8Z2 / bjPSsqP
mgkADv9Ru6VnSK / 96 TW / NwxWJ32PBz6Sbl9LdwIDAQABAoIBABVh + d5uH / RxyoIZ
+ PI9kx1A1NVQvfI0RK / wJKYC2YdCuw0qLOTGIY + b20z7DumU7TenIVrvhKdzrFhd
qjMoWh8RdsByMT / pAKD79JATxi64EgrK2IFJ0TfPY8L + JqHDTPT3aK8QVly5 / ZW4
1 YmePOOAqdiE9Lc / diaApuYVYD9SL / X7fYs1ezOB4oGXoz0rthX77zHMxcEurpK3
VgSnaq7FYTVY7GrFB + ASiAlDIyLwztz08Ijn8aG0QAZ8GFuPGSmPMXWjLwFhRZsa
Gfy5BYiA0bVSnQSPHzAnHu9HyGlsdouVPPvJB3SrvMl + BFhZiUuR8OGSob7z7hfI
hMyHbNECgYEA / gyG7sHAb5mPkhq9JkTv + LrMY5NDZKYcSlbvBlM3kd6Ib3Hxl + 6 T
FMq2TWIrh2 + mT1C14htziHd05dF6St995Tby6CJxTj6a / 2 Odnfm + JcOou / ula4Sz
92 nIGlGPTJXstDbHGnRCpk6AomXK02stydTyrCisOw1H + LyTG6aT0q8CgYEA4mkO
hfLJkgmJzWIhxHR901uWHz / LId0gC6FQCeaqWmRup6Bl97f0U6xokw4tw8DJOncF
yZpYRXUXhdv / FXCjtXvAhKIX5 + e + 3 dlzPHIdekSfcY00ip / ifAS1OyVviJia + cna
eJgq8WLHxJZim9Ah93NlPyiqGPwtasub90qjZbkCgYEA35WK02o1wII3dvCNc7bM
M + 3 CoAglEdmXoF1uM / TdPUXKcbqoU3ymeXAGjYhOov3CMp / n0z0xqvLnMLPxmx + i
ny6DDYXyjlhO9WFogHYhwP636 + mHJl8 + PAsfDvqk0VRJZDmpdUDIv7DrSQGpRfRX
8 f + 2 K4oIOlhv9RuRpI4wHwUCgYB8OjaMyn1NEsy4k2qBt4U + jhcdyEv1pbWqi / U1
qYm5FTgd44VvWVDHBGdQoMv9h28iFCJpzrU2Txv8B4y7v9Ujg + ZLIAFL7j0szt5K
wTZpWvO9Q0Qb98Q2VgL2lADRiyIlglrMJnoRfiisNfOfGKE6e + eGsxI5qUxmN5e5
JQvoiQKBgQCqgyuUBIu / Qsb3qUED / o0S5wCel43Yh / Rl + mxDinOUvJfKJSW2SyEk
+ jDo0xw3Opg6ZC5Lj2V809LA / XteaIuyhRuqOopjhHIvIvrYGe + 2 O8q9 / Mv40BYW
0 BhJ / Gdseps0C6Z5mTT5Fee4YVlGZuyuNKmKTd4JmqInfBV3ncMWQg ==
-- -- - END RSA PRIVATE KEY -- -- - ` ,
certificate : ` -- -- - BEGIN CERTIFICATE -- -- -
MIIDiTCCAnGgAwIBAgIJAIb84Z5Mh31iMA0GCSqGSIb3DQEBCwUAMFsxCzAJBgNV
BAYTAlVTMQ4wDAYDVQQIDAVzdGF0ZTERMA8GA1UEBwwIbG9jYXRpb24xFTATBgNV
BAoMDG9yZ2FuaXphdGlvbjESMBAGA1UEAwwJbG9jYWxob3N0MB4XDTE3MTIxODE4
NTcyM1oXDTI3MTIxNjE4NTcyM1owWzELMAkGA1UEBhMCVVMxDjAMBgNVBAgMBXN0
YXRlMREwDwYDVQQHDAhsb2NhdGlvbjEVMBMGA1UECgwMb3JnYW5pemF0aW9uMRIw
EAYDVQQDDAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
AQDgr1Cru8xjZsaSt0UBikFg0uUKCecVT7SmL437duO5aZ9f + TBZcFrdIOooPTw9
ZbPC8FIs8IJRXYi5R3u0FrWknbBeR2gN4jkidgckqtdtJmieeLoF7HuyCepX / 2 jz
EWRI6V6hBZmDJ4obG23Qn9n7OGkf7NdqHAzjA4vfLMtJC340Iozo33rNdiLXoMRr
z19jBHE / ATVdNFzsN2CCrH7iJEe9gbR / JM1w8H / 5 SIXDn0QTVKBAjJNWe1Wqmxvq
zxd2QXFRGgvF5 + FwxV / aRTRPTg5YjeCZ5q8p9NyPxnb9uM9Kyo + aCQAO / 1 G7pWdI
r / 3 pNb83DFYnfY8HPpJuX0t3AgMBAAGjUDBOMB0GA1UdDgQWBBQ2 / bSCHscnoV + 0
d + YJxLu4XLSNIDAfBgNVHSMEGDAWgBQ2 / bSCHscnoV + 0 d + YJxLu4XLSNIDAMBgNV
HRMEBTADAQH / MA0GCSqGSIb3DQEBCwUAA4IBAQC6p4gPwmkoDtRsP1c8IWgXFka +
Q59oe79ZK1RqDE6ZZu0rgw07rPzKr4ofW4hTxnx7PUgKOhWLq9VvwEC / 9 tDbD0Gw
SKknRZZOiEE3qUZbwNtHMd4UBzpzChTRC6RcwC5zT1 / WICMUHxa4b8E2umJuf3Qd
5 Y23sXEESx5evr49z6DLcVe2i70o2wJeWs2kaXqhCJt0X7z0rnYqjfFdvxd8dyzt
1 DXmE45cLadpWHDg26DMsdchamgnqEo79YUxkH6G / Cb8ZX4igQ / CsxCDOKvccjHO
OncDtuIpK8O7OyfHP3 + MBpUFG4P6Ctn7RVcZe9fQweTpfAy18G + loVzuUeOD
-- -- - END CERTIFICATE -- -- - ` ,
shouldFail : false ,
} ,
{
password : "foobar" ,
privateKey : ` -- -- - BEGIN RSA PRIVATE KEY -- -- -
MIIEpAIBAAKCAQEA4K9Qq7vMY2bGkrdFAYpBYNLlCgnnFU + 0 pi + N + 3 bjuWmfX / kw
WXBa3SDqKD08PWWzwvBSLPCCUV2IuUd7tBa1pJ2wXkdoDeI5InYHJKrXbSZonni6
Bex7sgnqV / 9 o8xFkSOleoQWZgyeKGxtt0J / Z + zhpH + zXahwM4wOL3yzLSQt + NCKM
6 N96zXYi16DEa89fYwRxPwE1XTRc7Ddggqx + 4i RHvYG0fyTNcPB / + UiFw59EE1Sg
QIyTVntVqpsb6s8XdkFxURoLxefhcMVf2kU0T04OWI3gmeavKfTcj8Z2 / bjPSsqP
mgkADv9Ru6VnSK / 96 TW / NwxWJ32PBz6Sbl9LdwIDAQABAoIBABVh + d5uH / RxyoIZ
+ PI9kx1A1NVQvfI0RK / wJKYC2YdCuw0qLOTGIY + b20z7DumU7TenIVrvhKdzrFhd
qjMoWh8RdsByMT / pAKD79JATxi64EgrK2IFJ0TfPY8L + JqHDTPT3aK8QVly5 / ZW4
1 YmePOOAqdiE9Lc / diaApuYVYD9SL / X7fYs1ezOB4oGXoz0rthX77zHMxcEurpK3
VgSnaq7FYTVY7GrFB + ASiAlDIyLwztz08Ijn8aG0QAZ8GFuPGSmPMXWjLwFhRZsa
Gfy5BYiA0bVSnQSPHzAnHu9HyGlsdouVPPvJB3SrvMl + BFhZiUuR8OGSob7z7hfI
hMyHbNECgYEA / gyG7sHAb5mPkhq9JkTv + LrMY5NDZKYcSlbvBlM3kd6Ib3Hxl + 6 T
FMq2TWIrh2 + mT1C14htziHd05dF6St995Tby6CJxTj6a / 2 Odnfm + JcOou / ula4Sz
92 nIGlGPTJXstDbHGnRCpk6AomXK02stydTyrCisOw1H + LyTG6aT0q8CgYEA4mkO
hfLJkgmJzWIhxHR901uWHz / LId0gC6FQCeaqWmRup6Bl97f0U6xokw4tw8DJOncF
yZpYRXUXhdv / FXCjtXvAhKIX5 + e + 3 dlzPHIdekSfcY00ip / ifAS1OyVviJia + cna
eJgq8WLHxJZim9Ah93NlPyiqGPwtasub90qjZbkCgYEA35WK02o1wII3dvCNc7bM
M + 3 CoAglEdmXoF1uM / TdPUXKcbqoU3ymeXAGjYhOov3CMp / n0z0xqvLnMLPxmx + i
ny6DDYXyjlhO9WFogHYhwP636 + mHJl8 + PAsfDvqk0VRJZDmpdUDIv7DrSQGpRfRX
8 f + 2 K4oIOlhv9RuRpI4wHwUCgYB8OjaMyn1NEsy4k2qBt4U + jhcdyEv1pbWqi / U1
qYm5FTgd44VvWVDHBGdQoMv9h28iFCJpzrU2Txv8B4y7v9Ujg + ZLIAFL7j0szt5K
wTZpWvO9Q0Qb98Q2VgL2lADRiyIlglrMJnoRfiisNfOfGKE6e + eGsxI5qUxmN5e5
JQvoiQKBgQCqgyuUBIu / Qsb3qUED / o0S5wCel43Yh / Rl + mxDinOUvJfKJSW2SyEk
+ jDo0xw3Opg6ZC5Lj2V809LA / XteaIuyhRuqOopjhHIvIvrYGe + 2 O8q9 / Mv40BYW
0 BhJ / Gdseps0C6Z5mTT5Fee4YVlGZuyuNKmKTd4JmqInfBV3ncMWQg ==
-- -- - END RSA PRIVATE KEY -- -- - ` ,
certificate : ` -- -- - BEGIN CERTIFICATE -- -- -
MIIDiTCCAnGgAwIBAgIJAIb84Z5Mh31iMA0GCSqGSIb3DQEBCwUAMFsxCzAJBgNV
BAYTAlVTMQ4wDAYDVQQIDAVzdGF0ZTERMA8GA1UEBwwIbG9jYXRpb24xFTATBgNV
BAoMDG9yZ2FuaXphdGlvbjESMBAGA1UEAwwJbG9jYWxob3N0MB4XDTE3MTIxODE4
NTcyM1oXDTI3MTIxNjE4NTcyM1owWzELMAkGA1UEBhMCVVMxDjAMBgNVBAgMBXN0
YXRlMREwDwYDVQQHDAhsb2NhdGlvbjEVMBMGA1UECgwMb3JnYW5pemF0aW9uMRIw
EAYDVQQDDAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
AQDgr1Cru8xjZsaSt0UBikFg0uUKCecVT7SmL437duO5aZ9f + TBZcFrdIOooPTw9
ZbPC8FIs8IJRXYi5R3u0FrWknbBeR2gN4jkidgckqtdtJmieeLoF7HuyCepX / 2 jz
EWRI6V6hBZmDJ4obG23Qn9n7OGkf7NdqHAzjA4vfLMtJC340Iozo33rNdiLXoMRr
z19jBHE / ATVdNFzsN2CCrH7iJEe9gbR / JM1w8H / 5 SIXDn0QTVKBAjJNWe1Wqmxvq
zxd2QXFRGgvF5 + FwxV / aRTRPTg5YjeCZ5q8p9NyPxnb9uM9Kyo + aCQAO / 1 G7pWdI
r / 3 pNb83DFYnfY8HPpJuX0t3AgMBAAGjUDBOMB0GA1UdDgQWBBQ2 / bSCHscnoV + 0
d + YJxLu4XLSNIDAfBgNVHSMEGDAWgBQ2 / bSCHscnoV + 0 d + YJxLu4XLSNIDAMBgNV
HRMEBTADAQH / MA0GCSqGSIb3DQEBCwUAA4IBAQC6p4gPwmkoDtRsP1c8IWgXFka +
Q59oe79ZK1RqDE6ZZu0rgw07rPzKr4ofW4hTxnx7PUgKOhWLq9VvwEC / 9 tDbD0Gw
SKknRZZOiEE3qUZbwNtHMd4UBzpzChTRC6RcwC5zT1 / WICMUHxa4b8E2umJuf3Qd
5 Y23sXEESx5evr49z6DLcVe2i70o2wJeWs2kaXqhCJt0X7z0rnYqjfFdvxd8dyzt
1 DXmE45cLadpWHDg26DMsdchamgnqEo79YUxkH6G / Cb8ZX4igQ / CsxCDOKvccjHO
OncDtuIpK8O7OyfHP3 + MBpUFG4P6Ctn7RVcZe9fQweTpfAy18G + loVzuUeOD
-- -- - END CERTIFICATE -- -- - ` ,
shouldFail : false ,
} ,
}