Skip to content

Commit

Permalink
Fix expired test certs (#441)
Browse files Browse the repository at this point in the history
  • Loading branch information
czechboy0 authored Aug 14, 2023
1 parent 678b641 commit a047d88
Showing 1 changed file with 122 additions and 101 deletions.
223 changes: 122 additions & 101 deletions Tests/NIOSSLTests/NIOSSLTestHelpers.swift
Original file line number Diff line number Diff line change
Expand Up @@ -338,129 +338,150 @@ let sampleDerCertSPKI = Array(Data(base64Encoded: """
// 2. leafCertificateForClientAuthenticationIssuedFromCustomCARoot (Used for client authentication)
// The client authentication certificate contains the Extension for Client Authentication.
// Which is required for testing with the CertificateVerification case of .fullVerification.
//
// The certs from the custom root expire once a year, so here are the instructions
// for when they expire again around August 14, 2024:
//
// 1. New custom CA:
// - openssl genpkey -algorithm RSA -out ca_key.pem
// - openssl req -x509 -new -key ca_key.pem -sha256 -days 1024 -out ca.pem
//
// 2. New server cert:
// - openssl genpkey -algorithm RSA -out server_key.pem
// - openssl req -new -key server_key.pem -out server.csr
// - openssl x509 -req -in server.csr -CA ca.pem -CAkey ca_key.pem -CAcreateserial -out server.pem -days 365 -sha256
//
// 3. New client cert:
// - openssl genpkey -algorithm RSA -out client_key.pem
// - now create a file called client_ext.cnf with the contents:
// ```
// [ v3_req ]
// # Extensions for client authentication
// extendedKeyUsage = clientAuth
// ```
// - openssl req -new -key client_key.pem -out client.csr
// - openssl x509 -req -in client.csr -CA ca.pem -CAkey ca_key.pem -CAcreateserial -out client.pem -days 365 -sha256 -extfile client_ext.cnf -extensions v3_req
//
// Then, copy the contents of the files into the literal strings below.
let customCARoot = """
-----BEGIN CERTIFICATE-----
MIIC1zCCAb+gAwIBAgIUaHWBf16JBL3awOy5xdNlG3IJu5owDQYJKoZIhvcNAQEL
BQAwEzERMA8GA1UEAwwIQ3VzdG9tQ0EwHhcNMjIwODA5MTg0NDIyWhcNMjMwODEx
MTg0NDIyWjATMREwDwYDVQQDDAhDdXN0b21DQTCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBAJ0siZAQoxKgs6RERJDp2sc0zbRGfriPXDfng/WkzjwZqkC6
//XtGuW7fdqtaMyFuvKfUH9EYqQ4n/zzxEHlbj21bp7GGEN5+/SmBdUn9YiVhLJ/
tjZB+7QucYc/0v3Uwmg1HEwkL8tBBsRPnOY35BZc+L9cHYkseIxI/5jBK7ABxvc6
tqy3ARm2hOB5k5jggrH46L9+FOOy8yxBHL+0/UDZc0ud1jjZDJ+WtahZAqUsVKTa
/+QGx+KmES3XeLtHsKYiWrNuRN0pl7xUxtglx/UHFhX2N2mU9A71CKLgsjaNOQ7h
a1NFYd3zcrXY2RjQ4DuB1XzIFHhBr5CwnqfwoE8CAwEAAaMjMCEwDwYDVR0TAQH/
BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAqQwDQYJKoZIhvcNAQELBQADggEBAGB/C7od
UEhHb9vyeXO6oweTwi0SMp8YKxBvg1v3oNjj/WZu/L+BaRb2K8kpUl6+wlwYjS5c
PVYAs4Q9y17eHNdEkgQGx3cX/IEQcH4ykW8r4WvnlYg9a88PswJh4r9pGVLNon3m
9E+ijCZizsKLLCL3CuZdogZgw7giAHRaGCnsaya2qjT8orG0+JVQxp5bDWcZv4Uq
Y+OJlfCK+pmLBWb09MLJZB5ywY09ZuDBoumciE5JOCfQyfw66jlt/ncjHNRjJfOy
cWT+Ce1ZSYJOc/rFFz9JVVoa7Q1ZyV5tvih8LlzZffKCJ1zgfiAHOLDKw/MooWNd
4cxSAPSPVHjptbM=
MIICrjCCAZYCCQDFInBpelZ7dzANBgkqhkiG9w0BAQsFADAZMRcwFQYDVQQDDA5l
eGFtcGxlLWNhLmNvbTAeFw0yMzA4MTQwOTE2MjRaFw0yNjA2MDMwOTE2MjRaMBkx
FzAVBgNVBAMMDmV4YW1wbGUtY2EuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
MIIBCgKCAQEA3IVnvJbtRqx+Rz4wadq2eRHuZlGrydSGg8RMtImTVrcqyd3WRR3i
PZrEo9H1KuUusut6TgTTyrSNyVREJqITrZ3v9l+OuFq9LnBmV5Ut9uZWorXFLO4I
S41BMTJ/2tbgjtqNkaBPpUrQOA0VkttRwLCMcIR/7G7ObxZNxBq+60mtukBpDF7z
p9lbIXoVunLo31mRanetefbM/YgQfRL0+EAtjfSc/guuomjS2yPtzFyvafXeXiP7
OtWdax844RnQyj/gdE4N8oI3IKADFDW5sUeNST54BrobV5QmfwHs1XC1ZTGGIBLu
0tF62MdEqAqL33DTfgrcPo/gchg1xAseBQIDAQABMA0GCSqGSIb3DQEBCwUAA4IB
AQBjU5UYmYWhmfKq+l23uz3o1JkigKshqTZPrNxLwiDjWAHFl6D8V2mWX3Xf2rT9
P08Gxw9pHvn0KmgnwNyQW5s1zrnKldsxuRC++sZAcW25iwRSKVT4Mvk8r9UP3sGr
e45jt+0OnQcijjFBGeQtkfmfGQqQ5hkGqUqgTs3yHHzi7RbueBjIZrQhcft+TJg9
BUErR1HogGuz/eu4yTGHIsb/CPFWFaKuxJIwjQsKvdoE2HKhDf7sOX8k5SL+KeoQ
JQwRtRWNZBFhUrzizV/bmKIB2ymBngfH1OB24JX4pPLt9og7FY92Lv+sLAzxfIHS
JA2SpFYQeLTJNM8nsL/q/dDU
-----END CERTIFICATE-----
"""

let leafCertificateForTLSIssuedFromCustomCARoot = """
-----BEGIN CERTIFICATE-----
MIIDAzCCAeugAwIBAgIUeiq/lPC6M+09JF/yFX7iitpPc7gwDQYJKoZIhvcNAQEL
BQAwEzERMA8GA1UEAwwIQ3VzdG9tQ0EwHhcNMjIwODA5MTg0NDIyWhcNMjMwODEw
MTg0NDIyWjAUMRIwEAYDVQQDDAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUA
A4IBDwAwggEKAoIBAQCv9EASt/qxWuFlbcaLpi8K8Cuj+9274NwfevxFtCLjYEqa
mhuEh/s90swJ0TN9S2qeHzqlaCMSPw41aLXO45xp+0gKGz/EZEk+/3mzxtoBdsht
vm2ZFb75NpgtGJrqsOFEHLurI7v7f7f/2OSZZt4itWZNcMQOVJQ5il/ed38Mb+s6
X8M1tSLSmg4WycFgKZ3WrfRvC84Kt60/zrk4CYCT1V1lklQVXQlVDhUYBHyA5kNF
Qrqu6SlmkTaRjCI8q/quiCqYmCa25c2wS+jsa+HdSfboXIQnMBpNMtj1+m5QKQcz
DdOfV6sl7dXOZ/JIbRM2tl4sfC713wRIx0G2YRfjAgMBAAGjTjBMMBQGA1UdEQQN
MAuCCWxvY2FsaG9zdDAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIFoDAWBgNV
HSUBAf8EDDAKBggrBgEFBQcDATANBgkqhkiG9w0BAQsFAAOCAQEAOGveGHi7me1u
H9vr91VDiBKyIBfRIzMBEdstH3Cb4ck6l2ikbLIqXoXAFuYwdMcDoIibtbvntOJ2
s7ZwVjQDXL9NuKDDYklwHkIuq4K5qtaBrEojYKKAVCp4kZdlqqi4KnNvFT7HOZWS
PGyCa82d+4MJcWGkt0+XSyFNFElQkMW73hbu0Dw4Cj8iPAC3uHP85Wtcc8RQaGK+
UJd+hTx8s4SktUxebYRqj3oP1F7D4JlwII83f0w10Clc1U6kghIYdaINtMlMB2K+
NNg7RtgvX5lquo/PT1OM660JKNzZAIEs03NFEu22ZVWESkinZtBaXW97BVYsfern
uXLxHU7NQA==
MIICsjCCAZoCCQD3XtnOig4QMjANBgkqhkiG9w0BAQsFADAZMRcwFQYDVQQDDA5l
eGFtcGxlLWNhLmNvbTAeFw0yMzA4MTQwOTE3MDJaFw0yNDA4MTMwOTE3MDJaMB0x
GzAZBgNVBAMMEmV4YW1wbGUtc2VydmVyLmNvbTCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBANSngp1ea6XFCi/MsEFsamf3ujH3gDV0qWMi7dt2wIFLfpGX
CPIyOGn7NLCJIShw/TujvlOHLqwYGUxu+lIN/c5kU0B1PDurYEcUTR10zidOXAmi
rjFwgccERjYKbugvfxm/mU39lmOob5PkFC3p6V9qFpARwQaK/q2t0j/Sku5tBvaY
GPtyygi6W/I/+UwI8a7EorjAhk/IOwXUt5f6CcapGTltRZfG/qvpptwaMJTqwjW7
HFLBUj0e4j0uR7bduhOYlub16Uvn4QKHIcMIBnTBj3ClRQSECf3wdgtLbqBSGmEf
Xzb9tr02O+/TN3r0s77Y7INghVv7Tt3sNHVOTSECAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAnWeiYtVTKynyYOVy0ClN+L0fACM7JG45UCIlybaTpz+c4jnJ2AdacY0z
iFPJpnjl6NXzENvlZcu+unpWAM9WdeTv3pC5GdVasMfKMx2gMHyl9EAWlfD2z5zi
AshmWEInbzcrr6XqxfseIu7gI7cuWElxQ4fje4PUaCTz0yaGPhWwzuWpNuG6b1nw
8pjlKcg1uyUDZqthPNt3sGLJYMKgWfvRlfesPlHtU3pl0MEl3CuHyNuKNCt1DMXI
kdelPaIiQCZk+sYj5ZIr4yBogoZu06fm0R0FYrcYpB4844GHzLezBjnn1OfJ8DB4
UqR5CcyLWQfLe/HrAX7CZPh+UxYVWQ==
-----END CERTIFICATE-----
"""

let privateKeyForLeafCertificate = """
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCv9EASt/qxWuFl
bcaLpi8K8Cuj+9274NwfevxFtCLjYEqamhuEh/s90swJ0TN9S2qeHzqlaCMSPw41
aLXO45xp+0gKGz/EZEk+/3mzxtoBdshtvm2ZFb75NpgtGJrqsOFEHLurI7v7f7f/
2OSZZt4itWZNcMQOVJQ5il/ed38Mb+s6X8M1tSLSmg4WycFgKZ3WrfRvC84Kt60/
zrk4CYCT1V1lklQVXQlVDhUYBHyA5kNFQrqu6SlmkTaRjCI8q/quiCqYmCa25c2w
S+jsa+HdSfboXIQnMBpNMtj1+m5QKQczDdOfV6sl7dXOZ/JIbRM2tl4sfC713wRI
x0G2YRfjAgMBAAECggEAICBaqpBJB6TuTpSykcDwCfE8Jp7QJ4Ow7VaJRTjUvetQ
89V7fMFPUERy2MAHxLLGbsSI8raG4Mf+kiXiPDo2zusAhkffZr5g2U3QLND78RR9
F/yTCkZ8LgiX1HQPpRZSqxsL8P1/TzZMpDw30QKFQJUabr1OLsemoLLxOi9bVSu0
gGcIxnML1AAJQWYbXgerM+jvM08d+DrRBj9cPfvb4JjO3kHexWUjAFJ0TbxTF9uU
qdDkivSuyEhtdtoCOcSdmdOOtZrWNYke3/vvF735bKispkbV5vdQH8eboZp8MnIm
jKapnhsvBYbUB8j8b8LU0feCaWsnrCidDCurimhA4QKBgQDHJrgS2KI+/D2D2vJE
TORjCG5KMUiE88JunwXtiAhDAmWNNt+T3r9/HQQVBRBbSKebb6PywgTh1gMvqcSA
g0WPgf9mbAcnDjBRi9+LmH2ZoVZ/qtUdupUHCrWLT0zCwdkLIhthQ8GvGI6svpXX
Fu+/OTkM3f65ZaWqAQSkJDdnqQKBgQDiLl1XVT9XNsP5aKeBx22YWVlmSfNaDDOP
TaOlMUPSSgJUlpJLrME3b5bjMCoRTHgQ2U87By4YIpBivl9VpvDD8wuZqSyqPxR3
HMos5h09Apz2pHHfu3AXxZjqA9M9/7xYV7E7ccaRR/6OBzLYTMLYkqQePaQSx+KN
kPR4NyhKqwKBgGYM+kB2EFX0TdV2abUELfhtho6wSHgQrS6ggJoinhEwdjdxygnt
F/YcOU5IJQSR64lkIQAx2eycDU/sT8yG+Cs8s1KZwuSJicsPwQK4powGN9v9/21X
gix0mWkEvtICIaVp2dvyq5p9HAd7Ni9dCofT298zFueMJeNC2E0AXf/ZAoGBANG/
G1JMvKN9JvmYQpZIQWrhmNURyPl9jSbcYeBkMjfF6ClXRK2ms7tb4TonxSsrlcBS
NXZQ7z70dp8LWc9NM8MTFXPW/ZOXUbwv15ERiJW2Yacb0nofEREKbga9q1y4Voo6
MCInHXRGplpBdLY/YQWD32wnz4qXEJIllYAR7mxnAoGBAMZMZOWvt4TdoQ+nQ5jQ
gYv6lY9oyX4DXlc8j2LXLUm6YqVUjwaVEuKtKNrWaqiWocmHTFnVdEUhBh4q9EI5
/PdDVMWWnKjW6BOiwiOwzMk831dwn9Z5gN0gPV7jwsAjpryxPa4x8AOqQRqIgSie
GSgYe+Yo1sFOYeuGOqdHBj8Y
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDUp4KdXmulxQov
zLBBbGpn97ox94A1dKljIu3bdsCBS36RlwjyMjhp+zSwiSEocP07o75Thy6sGBlM
bvpSDf3OZFNAdTw7q2BHFE0ddM4nTlwJoq4xcIHHBEY2Cm7oL38Zv5lN/ZZjqG+T
5BQt6elfahaQEcEGiv6trdI/0pLubQb2mBj7csoIulvyP/lMCPGuxKK4wIZPyDsF
1LeX+gnGqRk5bUWXxv6r6abcGjCU6sI1uxxSwVI9HuI9Lke23boTmJbm9elL5+EC
hyHDCAZ0wY9wpUUEhAn98HYLS26gUhphH182/ba9Njvv0zd69LO+2OyDYIVb+07d
7DR1Tk0hAgMBAAECggEBAJeUq8L2+e6YzFEUK5MG77YaXEufq3DvLoqu7DNiq4e+
Q4MN0N+rMpFA8ebgaJVGLQvlBRbPJlKffvD/rkjtFjyXQMyShJPX7fHco7daelSE
Q5DOuDIfizJMdquwtiulJ4k4DNQN7bQt7RLTIhs0QBi2K00YiqnaS/2LCHJb7EYs
fldMiJTe405d6gCBqI6tl1IVh56DbJiSEuWoqK2n0UuediN4ZHbDvi+QnRAfBww7
kc+QJvEZ6XhjLifK7TM9fc1yxgMGcjeAvemdjHsFtp7EbvXuRNTGx5kmUYUaI0qC
HAvANl8SlBpJLd6ezZIWm+NeHwckg+IrozoR5bEtVm0CgYEA8U3Z38nVJgSOffqA
Bx665Vha8hxzUVVlDg4cqV/oJzyeclF+9xRp3FHO65icfLYeav3DnATVirTRcZwq
gyL0akHGDj2c9Xi6LWXHCul1OIgzoz0XOrK2jj31d9NJ3rIgxXOdaVIz6narhbDT
cwwIF/SPlfhjUdMy1E9dbH+GQQcCgYEA4Zr7vjP91hjTDNB3GuAYhlBkH7DRkNLU
LU2rmmFXwXQu3YrWq/EDRG4+oh4AZ/WaTV7JoAFIkd1hy5ptYRTPHfI0zgo3Ma8S
HkjnOieXebAPWKIGkzdUqx1BssRtsTOiMKrIAt0HYE2X1fL/jAy+LopOlfTcRYhQ
gIgeNiFf/pcCgYAGyw9IKpFymYw9ZbD3All2nW8qA70HXCUVKTaLWiTZ/e3kAAFY
CV4VksQFg+1b4XCnyG8aVFSCrCZ9UU0tFe3Vk/Z0bi2eB4EOSCA7YWkoZ0U04kJm
J6PWC05+yhb5SwB7Lo8O6P6HKkIX6Gt7gKo1qm/kY/K/2fdDXNyfclOgPwKBgApO
fEW6NlR7mdiyBV7y8evg7FIOT+Sf3RWcwMQywkGSPznbx+bfAdk0eCQL3tThAYWb
WPa4WEphpMAac/jFbJjfoc3v5Ymdh+ReTEH54Q+sHWddL5O2KWYP1hqGosQ/qZ8z
jiOjWVzq7o7VpRsO0flqVCDBqPZ8PcFBdq/eYnZNAoGAQs9rvJD0fb9mPYm974z1
z/ynHRZoqB35VlOPs7DTd2wDHXB7PSfd/neadaqaHVQe9T3weZJJn24ugSFKqoGj
hK0YjA/Td2nrk9fpd2uKGnuEZiEfpkWgLOVBmepUHH2if8VIwSvaWU79U7LtbN4l
uSMcdpsHt7eQr1f+p7s2rZc=
-----END PRIVATE KEY-----
"""

let leafCertificateForClientAuthenticationIssuedFromCustomCARoot = """
-----BEGIN CERTIFICATE-----
MIIC+DCCAeCgAwIBAgIUEptk3Jq4whQsKI4jnlW2PE6wNaUwDQYJKoZIhvcNAQEL
BQAwEzERMA8GA1UEAwwIQ3VzdG9tQ0EwHhcNMjIwODA5MTg0NDIyWhcNMjMwODEw
MTg0NDIyWjAfMR0wGwYDVQQDDBRDbGllbnRBdXRoZW50aWNhdGlvbjCCASIwDQYJ
KoZIhvcNAQEBBQADggEPADCCAQoCggEBAI+LkVqhSo3L2FNMrJxpmXMz2V97+zdc
wEndtDtrThFYBB0owOQTcyaHugqNVnpcB2CDU5AJxQWG1W6/C4Pd2+nJBLkpvtSH
hn1VopfpMHPORBPZm9aeM0mlusjCWol4rd5u2l6wE75h7KBxv1dywGuI7OtzMblL
6xpwXT4Ya/THmJaOjEWSQ8b1yatuv+Q/H7E+++iFs8lUxnrQU6a+c44T4Xq43Y1O
893LmdNa1+LHRdfskRHmYVScRO1loiBUBxT6mS1iU98Ga1xKcqElXOetK96GxqEh
ltzPqXILPV8k8jNOdQaZ5Mmk3WEOqwD6a+hyuLx7KflMqGdsIlTa7MsCAwEAAaM4
MDYwDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCB4AwFgYDVR0lAQH/BAwwCgYI
KwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABhGouk+8JXU25eDinfJA0fNEn/N
ql4mFRgxDdoqZllZ5bOCJMuqKUQvbISTp2wfoaxltTM8fevoTiwT0q4ScKMMD20t
W+zUre0PaO8YviH2Kdx86OZgT3HcbGFAYOLIuk580OyvW3AdnNkk13vn0vhXzVwD
UvLDWEUAzODvFvylQaKefdzAb1vNbgv+prD9I8FxN1Ijbp1/O6kKh8IbLxAWj6wH
rOQVjF+NZUWVqISRRyoBn88EvyvHuLWMN9wq6rvn8U7q805wZ6jPDqM6DYJB5Kkc
fHxU6n8+ikm8+xiOqrVUS48QJFdErLyh228uVMhBDYfJKC6KSWs1y4cks9Y=
MIICzDCCAbSgAwIBAgIJAPde2c6KDhAzMA0GCSqGSIb3DQEBCwUAMBkxFzAVBgNV
BAMMDmV4YW1wbGUtY2EuY29tMB4XDTIzMDgxNDA5MjAwM1oXDTI0MDgxMzA5MjAw
M1owGTEXMBUGA1UEAwwOZXhhbXBsZS1jbGllbnQwggEiMA0GCSqGSIb3DQEBAQUA
A4IBDwAwggEKAoIBAQDbu1C/CXQwhTk5QDrjsPDFRkn3ta8WzbCGlab4IvTqLRkU
7tSJG5vSr7pfwMEpHPhTzJ46TK8Df9TZGkgO9ww/DTY7YPGDN1I4Lfj3fprzRx+C
UvsMI57nJJBNwIBeAr0dgX3L7z0BTxRdLckrdXvO99rX9AVUXTlzxEPrw4oafgRv
rljB0Uclh/bopuLsXGLiE4iN6jAM9z5f+ByOwCESJ8BngITuJIvE4hLEBXmZxAuR
8wxdRwQyjDPHszmhbuMQU8oCtmQdoNKcUTQKekM8+6M3jsBRVLm8nun/56wvmlxl
wpRBWoenGtlnR+kJ8ZfbWu4PyZ8QXB4o0OyshWWLAgMBAAGjFzAVMBMGA1UdJQQM
MAoGCCsGAQUFBwMCMA0GCSqGSIb3DQEBCwUAA4IBAQAmEueGA6sOYuhmY6GIq17R
vWHVFo8valIbEd1BlLe4GDGgFm5NBRIqusnQzHV9g5CS9RQC+97eHciiPt2t875u
WKiZ5awNyQEHH7cfUY8Fj82xeNqaQ2EHtlNYNxRwcrxkZ6gFewby0a9zuT+kk9z4
+1fa96zKM2gv3JvwDW9UV2Wfg87NpUygrflwArrRmHYKMKfJyWItM1hROULCFs62
sJJAbeEdolImUpRkUm+0A9yYKihc2iybvDUATJrveSI5Fuam63sslDvEFmD3ZF3s
swIUwzhSHvX4LVa35ylN+fL4fkcfCdq29w8OMeL/T7JKbTgcZ6wERHf+BTfzmniH
-----END CERTIFICATE-----
"""

let privateKeyForClientAuthentication = """
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCPi5FaoUqNy9hT
TKycaZlzM9lfe/s3XMBJ3bQ7a04RWAQdKMDkE3Mmh7oKjVZ6XAdgg1OQCcUFhtVu
vwuD3dvpyQS5Kb7Uh4Z9VaKX6TBzzkQT2ZvWnjNJpbrIwlqJeK3ebtpesBO+Yeyg
cb9XcsBriOzrczG5S+sacF0+GGv0x5iWjoxFkkPG9cmrbr/kPx+xPvvohbPJVMZ6
0FOmvnOOE+F6uN2NTvPdy5nTWtfix0XX7JER5mFUnETtZaIgVAcU+pktYlPfBmtc
SnKhJVznrSvehsahIZbcz6lyCz1fJPIzTnUGmeTJpN1hDqsA+mvocri8eyn5TKhn
bCJU2uzLAgMBAAECggEAR5XXwDXNg1dUI36KWlqDTyNdVTP0PVDBCFVLK5LA1P9q
1cvcHiHg/CcVzWtc5Bp/B0+W3a8xlSb/y4H00SdUI4u/EkRSSZToqhqJwm5lXmtQ
IgIUqHwuoZzHwJTEJ+iJ9PKdbjkrL3eQVRdEz+yHL1mSpXzGIF1O+tlsdqohNGmS
YZ0BepR3HQokfxX5uTfwIA9HxYzPS7K3PAVySsWr1XPy6aWsgoH21OK1Vbz/sLx3
JS024b0i29o2KdqPEdsSWpLHvsmiq5PCeI9Z08Vx+KiFKO77pcVt9huXsFx5asdI
Q/DOOdT8WkJEF4NdPdmH1dg8N6HsWtsPu5dtmr0XWQKBgQDDD7t8L3SlDuthR6O2
La5pkbvFGUf/AKplerofozh4iTWHILNXIltKvelH+PBCndkb9hzOMQjis49/0VBS
I1y9GD9+vdMaDpE8Hk4Yi9EkIVyRqAzniBPRxOiPqC3C8shfJXmyvLfPnPDzaN7C
WP7JTFro3A637UdSgof2dFobzQKBgQC8Y8MBPRWcAzvUIuL+AGZrWd0m3v8BdJCB
9H8lEypxBPrcjUpl1vRu9Y8iK9v/uieyUyJLkbrod1rw/RdJc8vqxDVM8fcP2irF
u0fpfFAQh2HUA/QJD2k2WgnpT8QR/oI5+DpFXabJben7LA1wQZoaePBTiB2FqX0S
OqbMuvyC9wKBgQCTQhlEU3837N99/Vt2eV4mjMK4tbFIrfP10IUaxVoohU1HykQa
D/HjpyOqFiEr6YayOUbd0t7mZrB6ykZc/B1TFC87O4tXLJAwVqCWn1cwc48y1y+G
y5BK2ODJMyn49tiWG/CYIyiRL+YnnJAvIIiY52/qQ9dIu3UQsUJ7qLMuMQKBgQCN
Lwqms/us5zOAQQDysKQREdDOX9KmaZAfBHgA9gMZnkzO20iFV/np6jfxuQLv/Lfh
SbJrBfUYYNKTxmkcUB7je1Yiqzen9q2VcExtbA+ow30KYkgSPi1wYTwKURA1GBLK
lQA+mffz/16aMSKFHXT7H+WkBF9zm1izP6dfyUaScwKBgAC6I8YAgeclU/ZvUV6+
lPX9Ja3cxAwoD/7L4cMk6cNQICLDRoJOa6PE5nScEGjn2Aj7eIvThbhFjJKUlN+a
2xY1uZIFY1fmhcIza3gBccUORFqEzP7Cuh1iPyWsiGgGoWEqrH7fKUWM3+2iJ10r
NXJv/vGjMv09rfgMJZQ/wZ8D
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDbu1C/CXQwhTk5
QDrjsPDFRkn3ta8WzbCGlab4IvTqLRkU7tSJG5vSr7pfwMEpHPhTzJ46TK8Df9TZ
GkgO9ww/DTY7YPGDN1I4Lfj3fprzRx+CUvsMI57nJJBNwIBeAr0dgX3L7z0BTxRd
LckrdXvO99rX9AVUXTlzxEPrw4oafgRvrljB0Uclh/bopuLsXGLiE4iN6jAM9z5f
+ByOwCESJ8BngITuJIvE4hLEBXmZxAuR8wxdRwQyjDPHszmhbuMQU8oCtmQdoNKc
UTQKekM8+6M3jsBRVLm8nun/56wvmlxlwpRBWoenGtlnR+kJ8ZfbWu4PyZ8QXB4o
0OyshWWLAgMBAAECggEBAM1NIe+sdJwVDddZFOzC2ONpfhjs70/eFU5aKyxy9OSM
CIBPedM1MY1T1U47+f5g7ADYEQqltWwOlx/V93fMCewrev1V4bHZEYAeLB2KdFpT
nLQWtiusaH7M4etTrlyoMGyOHaxatmQvr/Yznl91oJ1LZXUasZQWmmR4/4EcLT/7
vJrobJaVYR2APCj8rVvHfbmkbWAedRlc6T931/tD/K38z67NfdL7NUrsVKHZGXtg
QSnx0C6ZmWWND4dpR2HPy7E18WgX2ocLYYtKlAeUjnur5DGZAniLanMbKZVPGE9I
pCol2mbrJwMTxPPSxTFaJhNfngGc1WhbJ44COhTWRYkCgYEA+F5aYvUc0hKhRUq8
r/xi6UarRlQUZq1YFIyb1ohfHiiW02rQQbYAbENezJ5CTxEo8+OIiX4Rt81RKr0I
4+hUFgGKMxOG59buXUfJaX3td4ViEXElcTQvMvY/SG1hwWEHQex2F/5j6WZkJl+v
Eh7p2x0JRvXf14m2V3VJ2Q58cTcCgYEA4nu1A6Vwffmju2yJYkQKrT0hcwAe2ks1
AvOPajAepXbcZvhxv9U/3HifNR1H3sWwDoU8WdtkX6sGvw6d8roGEhtm/gkjdYII
70nNV0KLRhHz5jp2yZlmJfvvTuRO7v2DGyGOp/J8WSK4zEZWt3hPF7KcJeGuyONa
d/oe3NYvaE0CgYBp4q/eKGmVFeQzSl2PGaaBlWNHpGjeLWCzwg5eM915WgyTLaKD
oTgk78PmsEHMu6Ad+g8nrtuW5K2J7vVvVIkkqJtmkxicloEgu44er1Uh83ePwBEa
ZgkJTPpFwnw+mUMi09C1AftOchyYT4qvywYgKAzgd8pqdYeLWbGWHBrpmQKBgQCs
j/EVvCH/+gtkrIfo1UsFQASSaM8ZKCBWBVmKYOuYyv2Xf0i8DzE/PLCheZPfCuTf
y2h2VpEdy2OyguKZpF8nwLUybagUymUgXS0VhWA0nU0mZ/lGFZkc694kUBRMR+By
9ZiKIlnYWHpROm6sEADDX5VVz6Sq739o1qxZOuCYKQKBgQDdpvNme2Tapq9xpzP1
57+kCmw8oINos+epiePxwCHGBi+fD7KHzd3ksbDuJjEHWvOmEiNZlMq2tm+b0z3S
sY9yNFGm8MReuagVbMrrXQMrKEMgjD16iaJEb/iTNkiuXP8svEplNCtCTx9CPvwF
yjs/D/6w2xhrlaheHU9naVLj4Q==
-----END PRIVATE KEY-----
"""

Expand Down

0 comments on commit a047d88

Please sign in to comment.