|
|
@@ -1,5 +1,5 @@
|
|
|
/*
|
|
|
- * Copyright 2024, gRPC Authors All rights reserved.
|
|
|
+ * Copyright 2025, gRPC Authors All rights reserved.
|
|
|
*
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
* you may not use this file except in compliance with the License.
|
|
|
@@ -33,49 +33,49 @@ public struct SampleCertificate {
|
|
|
public static let ca = SampleCertificate(
|
|
|
certificate: try! NIOSSLCertificate(bytes: .init(caCert.utf8), format: .pem),
|
|
|
commonName: "some-ca",
|
|
|
- notAfter: Date(timeIntervalSince1970: 1_753_797_065)
|
|
|
+ notAfter: Date(timeIntervalSince1970: 1_785_404_969)
|
|
|
)
|
|
|
|
|
|
public static let otherCA = SampleCertificate(
|
|
|
certificate: try! NIOSSLCertificate(bytes: .init(otherCACert.utf8), format: .pem),
|
|
|
commonName: "some-other-ca",
|
|
|
- notAfter: Date(timeIntervalSince1970: 1_753_797_065)
|
|
|
+ notAfter: Date(timeIntervalSince1970: 1_785_404_969)
|
|
|
)
|
|
|
|
|
|
public static let server = SampleCertificate(
|
|
|
certificate: try! NIOSSLCertificate(bytes: .init(serverCert.utf8), format: .pem),
|
|
|
commonName: "localhost",
|
|
|
- notAfter: Date(timeIntervalSince1970: 1_753_797_065)
|
|
|
+ notAfter: Date(timeIntervalSince1970: 1_785_404_969)
|
|
|
)
|
|
|
|
|
|
public static let exampleServer = SampleCertificate(
|
|
|
certificate: try! NIOSSLCertificate(bytes: .init(exampleServerCert.utf8), format: .pem),
|
|
|
commonName: "example.com",
|
|
|
- notAfter: Date(timeIntervalSince1970: 1_753_797_065)
|
|
|
+ notAfter: Date(timeIntervalSince1970: 1_785_404_969)
|
|
|
)
|
|
|
|
|
|
public static let serverSignedByOtherCA = SampleCertificate(
|
|
|
certificate: try! NIOSSLCertificate(bytes: .init(serverSignedByOtherCACert.utf8), format: .pem),
|
|
|
commonName: "localhost",
|
|
|
- notAfter: Date(timeIntervalSince1970: 1_753_797_065)
|
|
|
+ notAfter: Date(timeIntervalSince1970: 1_785_404_969)
|
|
|
)
|
|
|
|
|
|
public static let client = SampleCertificate(
|
|
|
certificate: try! NIOSSLCertificate(bytes: .init(clientCert.utf8), format: .pem),
|
|
|
commonName: "localhost",
|
|
|
- notAfter: Date(timeIntervalSince1970: 1_753_797_065)
|
|
|
+ notAfter: Date(timeIntervalSince1970: 1_785_404_969)
|
|
|
)
|
|
|
|
|
|
public static let clientSignedByOtherCA = SampleCertificate(
|
|
|
certificate: try! NIOSSLCertificate(bytes: .init(clientSignedByOtherCACert.utf8), format: .pem),
|
|
|
commonName: "localhost",
|
|
|
- notAfter: Date(timeIntervalSince1970: 1_753_797_065)
|
|
|
+ notAfter: Date(timeIntervalSince1970: 1_785_404_969)
|
|
|
)
|
|
|
|
|
|
public static let exampleServerWithExplicitCurve = SampleCertificate(
|
|
|
certificate: try! NIOSSLCertificate(bytes: .init(serverExplicitCurveCert.utf8), format: .pem),
|
|
|
commonName: "localhost",
|
|
|
- notAfter: Date(timeIntervalSince1970: 1_753_797_065)
|
|
|
+ notAfter: Date(timeIntervalSince1970: 1_785_404_969)
|
|
|
)
|
|
|
}
|
|
|
|
|
|
@@ -106,258 +106,258 @@ public struct SamplePrivateKey {
|
|
|
|
|
|
private let caCert = """
|
|
|
-----BEGIN CERTIFICATE-----
|
|
|
- MIICoDCCAYgCCQCu3t2RYSXASjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdz
|
|
|
- b21lLWNhMB4XDTI0MDcyOTEzNTEwNVoXDTI1MDcyOTEzNTEwNVowEjEQMA4GA1UE
|
|
|
- AwwHc29tZS1jYTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOtVwFmJ
|
|
|
- Znuf0gC8tZSVasYrSbiDiYGUJd701SskU+RbzNZl7paYIBcM2iAy4L6S2w02ehfa
|
|
|
- RZoatGoKKhTZnyMu9NAYM1xAGiODfqC0s467udVBU6J2rU8olhm1ChZqfVBxcd9y
|
|
|
- AF7VjvN1N3gnGM2klAWFIgqaHoFAqINwHROjycAnr40uXCLNLukkt90AmMtL5Rah
|
|
|
- Sh0wOrx0E5OiiqWyWkjePTcMTwiRaYrUepo+EGFdmERDyiJtp5t4pcqdInJ6uA4s
|
|
|
- eiev9NEiGdWeJy83lIdo3N777r8cK9VDsHxHGiz72ZKE35MeIEk9weC1ph81KIZV
|
|
|
- cUDuO8nRPwWvBDUCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAT6hoeq4sJdqkaN+p
|
|
|
- QvpF9cZ4DJLw0dFujcWQtYpPCtMVQx14QSXaPGmUG0GLVJ5mUvzV0cwUC58JDXmS
|
|
|
- CDQ/vBnfoWQyblFQDZXOP5aDGOTmNIpFn8hutqsSDvMteh8R3zvJZBr+CQtP2Bos
|
|
|
- TH3TcnchhKq580hYazFJJ1P4jOqBXIQb3Osnm8WjJpGuDtOP8DW2Q2AdN/8Zl+FQ
|
|
|
- OrwiGMwghkZm2O91tYKvr45VxvyIpah36d5IFyAP7xIT4ua7X7ZyaCMjBmlK1QHd
|
|
|
- kKUVuyR2bLgpIRpj/KQY/UOdl1zu3MUs9OkG0suPrY3EOa0K7hDkXnHjX2ZipSw7
|
|
|
- TAuG9Q==
|
|
|
+ MIICoDCCAYgCCQDF5xyyZRK3ozANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdz
|
|
|
+ b21lLWNhMB4XDTI1MDczMDA5NDkyOVoXDTI2MDczMDA5NDkyOVowEjEQMA4GA1UE
|
|
|
+ AwwHc29tZS1jYTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALa8a09o
|
|
|
+ bv/IQMRdHhr4wL1Ryd2UQYS3g5anWMpyRMlHQ0q12/bc5g3icecWyMislLhh9XQh
|
|
|
+ iHniV7/d5oBIfti2UdP/SR3+HxCHaIJcLUwxkJcG9ou0nM1VV8+NVfgZBksCz0sL
|
|
|
+ DbTATMHnDD1isUGZ/IjAVV/s53iEA8XqwYYfKTyPG0L89pFZ2dLH4RnssuZ+JTjV
|
|
|
+ ms4APff3dVPMXI/MnXJ/PHWTEDuda0bu4i3gdLU7Cs/pkh7LT1wBCYJwUTEQmmPa
|
|
|
+ jt4sRC1cMzvGlkbFwB9MFztmb5dy2FGlueNBNcdIHN2xyPUaYA2MXpmJwRHa20yF
|
|
|
+ MhCk/+xo0LSpNA0CAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAgKcyMb5XMpz+2/8F
|
|
|
+ vn3/ObCd0SgwZW9K0Kl3uQ7X+55f/uwIgZR5Mhnqf9UtXVY4dVZnsHZeQMafa83O
|
|
|
+ 0eLZojf6es4xLctECfQR+AXrdjsqPj2NLwKiKbvgG7jA7Uxg4DyZUMvFyGSiLFq7
|
|
|
+ EhAY3JkqCautQVhttKf080E16ucQTLkkI3AbdQufi3ZWSR6Mqamcz0vFCP8AnRY/
|
|
|
+ WEM8I8VNkQcX8D6xPG+1ZjBEHBf6cZtUT6ubY9jrRKJ8zxd1vhy20ibAyKLUkkUt
|
|
|
+ xWV2/LsHT/3KEBGRt9eP8RfcJstXd19l7CDXl+iDo4N32KwlsUBAs8r8yBTxAhzI
|
|
|
+ gCrq6g==
|
|
|
-----END CERTIFICATE-----
|
|
|
"""
|
|
|
|
|
|
private let otherCACert = """
|
|
|
-----BEGIN CERTIFICATE-----
|
|
|
- MIICrDCCAZQCCQDjS9iNRZ49lzANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1z
|
|
|
- b21lLW90aGVyLWNhMB4XDTI0MDcyOTEzNTEwNVoXDTI1MDcyOTEzNTEwNVowGDEW
|
|
|
+ MIICrDCCAZQCCQC+kH39mWpXVTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1z
|
|
|
+ b21lLW90aGVyLWNhMB4XDTI1MDczMDA5NDkyOVoXDTI2MDczMDA5NDkyOVowGDEW
|
|
|
MBQGA1UEAwwNc29tZS1vdGhlci1jYTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
|
|
|
- AQoCggEBAMC3EEHu7uYtDsH0RZEQHQol1oDEOxL+SDH7dbKIv0UpgW5LXLQDDGR9
|
|
|
- FlKQbeNNtMt5mTd4TalqxZz+eMUhfrv0k3f1heEky/Wz53uRFHVNbDLEf/wa6QMd
|
|
|
- 99HOBePy2yDWdQC5/R6zLwjM3LuzZ146QMk0b4tx+/hjSkUKUO6GVQEJrO8DTdij
|
|
|
- XAco/3jCeM8wofQZQ6ipZ00gxI3BpubPgj60yRW7+aulHPlZmZuv3kDDmVcL+V3c
|
|
|
- V0n0GVckV62xMWMnYGNXqAajkK97f+mlo+zZ2exkGV/2Kja2VT+wZKEkO9RfL6XC
|
|
|
- 23hG9pjx5OmD1lihlwYve7VFSo56xvUCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEA
|
|
|
- TubObtDxGjUya7GPqrfC9gP2aQ/mBjprZGzzga0ksWQC4jIhq3qOCYVROBNHeqjH
|
|
|
- mH3aleRrq9/QE6/fP7D6YruX6WEJ0hzFxf8eoVGYqETiNndlo9485bNVTB3afL2m
|
|
|
- +qLKsvOoSvfO4iYrgvteFKycGICSR63EfN2AJFVNfMPATk7DILJo8gnMx/keKcgG
|
|
|
- WWQaKHEeN2ufZRTDXz2/YNWx5K/w/L+/MDqZ9tZvWTiD/q+rQ9q7hbbbpCxrNgZF
|
|
|
- 3PnNPtu9cTvaDl9p0liudFUc7FoI1PtEzT5hTMxYWoyNoFn9hUaVNreJKvS78nsx
|
|
|
- F4VLaY8K8w3ruk8p0Igclg==
|
|
|
+ AQoCggEBAJWi4e/HQLa//fXiPK6MoYzNfh5fY6+pWn3ZW5M991bqLF3ncSxXFCwa
|
|
|
+ WW4ev7byKCWAEgw8ZGvHWjN4No6kSN30RvFAirQh/A2S6ogfU6ntanO4xv1uJcjg
|
|
|
+ aTJcRK01art1YXF+OL1vRGojUSwfB/xgPUrREkk45CeZfuHx/WbxL7K9OOPSo/PX
|
|
|
+ TzxWgzr+Vq77a7PDGm5d0dW13BGHJJqpVoTocy+e5lNySJ3mnGRzTQ0t9vPHD9LK
|
|
|
+ qp2RqGk0HhZey/4iZZUczmuTb0Q14aKHbsNAY4WAfkTxzmPn0IdMZsKXEHyw90i0
|
|
|
+ M7D0eBQgePVAOu2nu5pSBi4+3E9ZmNUCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEA
|
|
|
+ KQ5DpPmfkH54iRmi6YUBSTO+2Wb2McWJGremYzw34HALYHme+LI8vZhhwyR6Y2OD
|
|
|
+ qJp6FSQl8dkdFJALQT1h4v1AJ7laL94BuV7AJOvEXnD6pEQ5i7Icv2i6eA4Vvokz
|
|
|
+ Czy+haYtLj+s5hW7r4Efp5q8xw9Hi2DC9MV57g9aIjV5Q6u4zRowCBoh9thbDhuM
|
|
|
+ ERdLWMmrzrdITIN48LnJ4HTZneZ3vud32qL+mdp2bCIu7e1MNzEjHn3OlyJYe0FK
|
|
|
+ TvWAFtdZ7nj3cHoGWxatdJJ3+kTNkQgTTftsF/BhhOhGiem2KympdyL4qW+Rb5LK
|
|
|
+ pXt+OvBkcytZ+DOEOpjbYA==
|
|
|
-----END CERTIFICATE-----
|
|
|
"""
|
|
|
|
|
|
private let serverCert = """
|
|
|
-----BEGIN CERTIFICATE-----
|
|
|
MIICmjCCAYICAQEwDQYJKoZIhvcNAQELBQAwEjEQMA4GA1UEAwwHc29tZS1jYTAe
|
|
|
- Fw0yNDA3MjkxMzUxMDVaFw0yNTA3MjkxMzUxMDVaMBQxEjAQBgNVBAMMCWxvY2Fs
|
|
|
- aG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMJH2M/mJGXZneOE
|
|
|
- 5UWbicTg1BxkdNND50p0fO/35CG4jDQ3CekXUuQ6kK6ZJ2idDQTOWJqd/jSB7Ctc
|
|
|
- zmZ9KBAfhP9PHMZQaVQSo+tpvX6vC/hw3PCOEne1l8H8O957hBdOhEDg1crAZ33M
|
|
|
- cTOtxTSNw7hh0OXzLyOTfq6h3nHyvjuj82fn8nyJ9lARDZ8grdLS5LVE+Je1G3My
|
|
|
- kXJKJoYCGQHGDKmj7o1nrwiii20uE0gnjwGEiTO1ngKQGXzL6guuR1bMmE1UIPD7
|
|
|
- IySu8Yg2nI8YB96dVNFaiB7gJg9Nde7a7GHPh+4t0NSqLlBL+k94c2J8lWgN38bZ
|
|
|
- ugoknf0CAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAXmSnx5fjn0Z9GLQYkaXxKUoc
|
|
|
- rYPkmzRCocso3GNMWz3kde351UmPpX3tf11638aIKO0xzJ6PZyYowdbCXZs4Co/o
|
|
|
- pYyeW2LOoxLwSBF8wFMAPN3FB54c/KfancXGV1ULTlhfpnoZvUPnqJDYoxFRUkIQ
|
|
|
- wVtlyA/p5Zfc9U8czer42eo5aj9D9ircBt4k6hx9IY99YvyNeFfMq4TLOgJZkZT7
|
|
|
- 2AImVq4kBvIUVrK86MGyRuNbAWP4fY5OOymT0rEKA6U5Lx+c9PPaFgozbGk4QAMB
|
|
|
- ZTwv8ymHAKdcgiDRAoQ2NhkSlySnKi4oEwcKLYPuyrpt1eG2Lx993gdSa4z2eQ==
|
|
|
+ Fw0yNTA3MzAwOTQ5MjlaFw0yNjA3MzAwOTQ5MjlaMBQxEjAQBgNVBAMMCWxvY2Fs
|
|
|
+ aG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK+wbTRqD77+g+Bw
|
|
|
+ p0dtYI/VnhiLO0GH7pxjBEiVlmfpA2RIbsoLAfoZTYM4R1qaX74Lmo2WxewBGG5O
|
|
|
+ U0a3cAZm3pdtsNRDpKGmPYLUYckvCf9Th/heWBf5doGr1mEqMNridc+lTAGgdYGi
|
|
|
+ g6DCY7pinbxQBRY/exoMIq1j0h1HK79XCiKkjMtfTy1qUzUXXRo2+modJKlvhrog
|
|
|
+ u6hivGn4AiPrkSORm414YOOa2FUqysJYCfNZ/35KuMunphTEwXc7btVpogFlDzV1
|
|
|
+ FcKthiWyWRP8qu36h1PvU87fqhE0C2r6CO1eaVTJeeoyBYpVVd5BGSOhaHQzk5Bb
|
|
|
+ c57hUicCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAn09x85aOikP2ofCvT2nHjs72
|
|
|
+ s0C9b6qqIPWc6bRfjI91b/6/eLOcMHByoU8MTpiD8pKSqKUOSREjNtS/jTyV9zKf
|
|
|
+ KzolkXKo0gsa8dpJ9HC8+zuX+nfCMeWKL/F5Gbt2CyrLfMksv5OJqZk/JnDFkI01
|
|
|
+ RguInOYJ79vfF9e5adDdU4oAMyrmlEl01VGV4qtbM+wB2eHgohpU8B//FxFgMMbM
|
|
|
+ rBdAOOfpx5hKHXv0HAsj79qMRhQI+LYHNGgS0SN/WsEGGTT1106yECdEQOZ69ehj
|
|
|
+ /epp/0b68T1xM/svCNrWawSln+E5XlZH20BvxMU1JcExw/u2KAKIXYnomroWpg==
|
|
|
-----END CERTIFICATE-----
|
|
|
"""
|
|
|
|
|
|
private let serverSignedByOtherCACert = """
|
|
|
-----BEGIN CERTIFICATE-----
|
|
|
MIICoDCCAYgCAQEwDQYJKoZIhvcNAQELBQAwGDEWMBQGA1UEAwwNc29tZS1vdGhl
|
|
|
- ci1jYTAeFw0yNDA3MjkxMzUxMDVaFw0yNTA3MjkxMzUxMDVaMBQxEjAQBgNVBAMM
|
|
|
- CWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMJH2M/m
|
|
|
- JGXZneOE5UWbicTg1BxkdNND50p0fO/35CG4jDQ3CekXUuQ6kK6ZJ2idDQTOWJqd
|
|
|
- /jSB7CtczmZ9KBAfhP9PHMZQaVQSo+tpvX6vC/hw3PCOEne1l8H8O957hBdOhEDg
|
|
|
- 1crAZ33McTOtxTSNw7hh0OXzLyOTfq6h3nHyvjuj82fn8nyJ9lARDZ8grdLS5LVE
|
|
|
- +Je1G3MykXJKJoYCGQHGDKmj7o1nrwiii20uE0gnjwGEiTO1ngKQGXzL6guuR1bM
|
|
|
- mE1UIPD7IySu8Yg2nI8YB96dVNFaiB7gJg9Nde7a7GHPh+4t0NSqLlBL+k94c2J8
|
|
|
- lWgN38bZugoknf0CAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAOzQ4ZiHOY9mZyE5e
|
|
|
- aQPZn7FE93yZrnvZcuRwrv2WI5vQj70wU4oKdm6RuBbntercKgrP6xIf2mNrUSQk
|
|
|
- A0XfB70QZYHKD/Uoy/NXn2CwwExXixQNUv8OaytiR2PGDk2hdeqmcTEo18/v2sT0
|
|
|
- 32PpizVqRTfxARtu7gWt2P+n/RaL9Dj8JqB6vxv4rL2HkrDys3lT5UZwH4W81Lfw
|
|
|
- hFI7gHRt9CjzpDIP/GFszdvTHLgozMXGKu+1UKWLepn1XEaKyQlS+CNMVGdI8qHn
|
|
|
- 2KvU3L4zzB1MgJsTEmz+rdGtc7paBSHpLqp1DbrU+RjXCG+POBsWpRcHGkM8Q82X
|
|
|
- e2/YQg==
|
|
|
+ ci1jYTAeFw0yNTA3MzAwOTQ5MjlaFw0yNjA3MzAwOTQ5MjlaMBQxEjAQBgNVBAMM
|
|
|
+ CWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK+wbTRq
|
|
|
+ D77+g+Bwp0dtYI/VnhiLO0GH7pxjBEiVlmfpA2RIbsoLAfoZTYM4R1qaX74Lmo2W
|
|
|
+ xewBGG5OU0a3cAZm3pdtsNRDpKGmPYLUYckvCf9Th/heWBf5doGr1mEqMNridc+l
|
|
|
+ TAGgdYGig6DCY7pinbxQBRY/exoMIq1j0h1HK79XCiKkjMtfTy1qUzUXXRo2+mod
|
|
|
+ JKlvhrogu6hivGn4AiPrkSORm414YOOa2FUqysJYCfNZ/35KuMunphTEwXc7btVp
|
|
|
+ ogFlDzV1FcKthiWyWRP8qu36h1PvU87fqhE0C2r6CO1eaVTJeeoyBYpVVd5BGSOh
|
|
|
+ aHQzk5Bbc57hUicCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAHwkmwqsUO6ieGBzy
|
|
|
+ pGajXGRTSjTCAt01QVRmCh8At6teQr/ZWKMfzYdZk5A3wXUuDq9KDp09TW9Zrhjw
|
|
|
+ JK/W50dCuwd/TIMPaV+YiK3D3vL119gdZjFL0J3EoV9iK4k9fA4MTBTOS9YdkipK
|
|
|
+ fLMEGtccaVu+IrHcoFvdus8k1NjULL9OZcDCpD/l4RpNcOSZ4MjFZk1Fhx8+XX8i
|
|
|
+ sgw8k4umziWF8+uzfDd9MhorLtt7xrX20wJ17+g7jF2qTR7VSdE8+VGZ8On8eUe+
|
|
|
+ /klZaXQxcmIO9+P6UEX+PASvwRgVrMlOAgzhjZNA4bDP0/LX+fGLi+H3hBotPQW6
|
|
|
+ KksYUA==
|
|
|
-----END CERTIFICATE-----
|
|
|
"""
|
|
|
|
|
|
private let serverKey = """
|
|
|
-----BEGIN RSA PRIVATE KEY-----
|
|
|
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- +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
- 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
- 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
- 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
- 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
- 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
- xiPpJEeIPvCW5vKtXS/crfOp20Bhjz+VAtFMw1jeHbOL+Y18Ue+rbsgt7uHmBtzv
|
|
|
- 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
- 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
- 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
- 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
- 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
- 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
|
|
|
-----END RSA PRIVATE KEY-----
|
|
|
"""
|
|
|
|
|
|
private let exampleServerCert = """
|
|
|
-----BEGIN CERTIFICATE-----
|
|
|
MIICnDCCAYQCAQEwDQYJKoZIhvcNAQELBQAwEjEQMA4GA1UEAwwHc29tZS1jYTAe
|
|
|
- Fw0yNDA3MjkxMzUxMDVaFw0yNTA3MjkxMzUxMDVaMBYxFDASBgNVBAMMC2V4YW1w
|
|
|
- bGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsqJThZkRGF4y
|
|
|
- yfnnYQBuV+UCrwfiXoNvkxtEWufNah1mIWt7biM+s181Dfn52Lj8GUsNiMEZ6qrX
|
|
|
- xBzNwo55tmsoxqywxUS4G2FA4nrniAs6UD7hywKt1zosBrneAPclLBblFwJQsQhC
|
|
|
- DEgpsl/DDt5oHPRb5x1zB8DuB2zQhpvEu/pCX5OUlCLf0X1YxUCDU2yYGABokWSg
|
|
|
- adHgZ+kAB+Cbt/zH+zibdUS1IpVtz90BuoftS6Iwed5XxPCe9FCc/P1vkPd9KiZT
|
|
|
- OhREB3Ci8XfqPKSv9BRGbdg2C9tkmkgVTKcjhfkULsBdahrCLna8nOtoUXf1LJCC
|
|
|
- IMDjjDfUiQIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBj9JfAiC1qFkC7+kearHOB
|
|
|
- RDGiAFyxT3cQuSOgQPoU0WoBaQ+/YhFp8zxJHlQEcQTmicODItJA1kGj8iGT18uE
|
|
|
- Tno1lg7nkkMhoY/Q59yaMKLdfe6aETN2eqh8GJZdUwhOKO3dQBqUQuj25gxVR+1a
|
|
|
- 1bcsv3ds8sNXdUNJM12iXzt5lAgwhLWX0SbxuApB+6rcQBKiqAoo3KY9N5tiEbRy
|
|
|
- 1VeMkAl/C926+W2nOAQCxSryZWEUX5EL0VARfxBjrH6KzDk876HtrLuDb2LHFNJU
|
|
|
- w+3nE69pEtXzMEYAQgv4yMQJZx6CtCjwS+Oxr5A3AJPk3nUSzOXVYTe5rk3hmC5I
|
|
|
+ Fw0yNTA3MzAwOTQ5MjlaFw0yNjA3MzAwOTQ5MjlaMBYxFDASBgNVBAMMC2V4YW1w
|
|
|
+ bGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvGLrSUpQlYkl
|
|
|
+ t1Bxuz2yqBOHfsdQn4UiDFItbJcbZhNrOgNlwbPAO4p6s5iHDTcNyNdbnOr9zxNE
|
|
|
+ 9K2YJurFbEMZfU1v2B/VHYbjyjKXe2dG4I8gnm17ZCXXphwb1jlsIWyQW2qehs3E
|
|
|
+ BK7pxbtJjzV+VSuEeHq6Yr8b/CN2CP1LHnM4SSXuQmoI/pXTRh0dNe0CyGyYLAni
|
|
|
+ O6h/e1YAQKYwbVfI3R383GFGsh+7W58QFLWYRmCQAnZAT4+HAQS1l8M4EUDb+iBK
|
|
|
+ MRQky3e9QnzzK4QMwh4qUs7TMauALoxnDEg707XPtlylKWOy8cG+E6O6bGl1C9C4
|
|
|
+ vsr1r/rfQwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBrFKXsss5/bvswWjMif6ZO
|
|
|
+ w1bzCjmhFTnB9xkny/Il5pNJot0iVAaKzUtGwAMb2jx40a6V+kl9+SqkSJwEf5dB
|
|
|
+ 2gcAD1mFak/Vwt2wnwLqdeVWb7mvyLfBNLxdmYFl4UmAQePBf+pJatI8zwHlSW2f
|
|
|
+ YqhKDJAf4I359EZX2RSI1qGT5OKiOIhrNzvn6SzchFGGC4epMiUx6Rv6qtW8/jUx
|
|
|
+ w7kHzEaXKlbRC+xTjNBIvCdASKgDMP7YJ38nUTdFvTADFJ632uZLI/Ms/bTOBIpf
|
|
|
+ ZEJJblot5F09YT6/+VMwB7jCEG5bRKjv6ELcQApz+rbwrzgwHpdbcfJftuXirk6r
|
|
|
-----END CERTIFICATE-----
|
|
|
"""
|
|
|
|
|
|
private let exampleServerKey = """
|
|
|
-----BEGIN RSA PRIVATE KEY-----
|
|
|
- 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
- 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
- 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
- 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
- S6Iwed5XxPCe9FCc/P1vkPd9KiZTOhREB3Ci8XfqPKSv9BRGbdg2C9tkmkgVTKcj
|
|
|
- hfkULsBdahrCLna8nOtoUXf1LJCCIMDjjDfUiQIDAQABAoIBAF65NRDi2e3SBZyU
|
|
|
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- FgQ1QWmh0r/tKn6/3yOLorbQ6mfdIM96JDIT64GeHHPSF0zyZTmIOVdU9VLaG6+Y
|
|
|
- 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
- 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
- ziqGo+jUjGowA795F7/hgb3fNML5dUpLe+JEEo/OuQH6Jh8puYlYBQ==
|
|
|
+ MIIEowIBAAKCAQEAvGLrSUpQlYklt1Bxuz2yqBOHfsdQn4UiDFItbJcbZhNrOgNl
|
|
|
+ wbPAO4p6s5iHDTcNyNdbnOr9zxNE9K2YJurFbEMZfU1v2B/VHYbjyjKXe2dG4I8g
|
|
|
+ nm17ZCXXphwb1jlsIWyQW2qehs3EBK7pxbtJjzV+VSuEeHq6Yr8b/CN2CP1LHnM4
|
|
|
+ SSXuQmoI/pXTRh0dNe0CyGyYLAniO6h/e1YAQKYwbVfI3R383GFGsh+7W58QFLWY
|
|
|
+ RmCQAnZAT4+HAQS1l8M4EUDb+iBKMRQky3e9QnzzK4QMwh4qUs7TMauALoxnDEg7
|
|
|
+ 07XPtlylKWOy8cG+E6O6bGl1C9C4vsr1r/rfQwIDAQABAoIBAHcz7Ieyo20LnDbz
|
|
|
+ ixOcxbh+qwT4n7Zgqpu7QAzvTKH5dab+0VuRHvlN9bhAsmwVQv6r7sdLFpD6M27T
|
|
|
+ jWxKr+OCTdWwsy3BbrvBR9AA1UN7pSigyFYXFrXXEC6GqMKUESzRIkMGIwtPllIU
|
|
|
+ T84TZUdd5POFlswZdGjZXp7b3WtvrFmXzIYD66sGK9sf0h7vannGv6yaqtcN2yiG
|
|
|
+ Fj9BvlyU9RKws5RMB42lZZ05vH835f7/23NY2MFHiTYwjqTObtFI4W3JTHIupZSe
|
|
|
+ 1KU2UDfi7uvP7BsCC+/RiVpbYkbb6qiDYh4P2kPyFaRwlgyAAvJVKKkW1BkiCqQ8
|
|
|
+ OUv+N+ECgYEA7ZqiZEkywXMKT5y6PGodS+t8tMbJSg2JEzbVk9/939+eru28BWkr
|
|
|
+ 1RKj1TMvTfBtX75Ld6xJDMysvse9G8SCT036mZD4HS4fkOH1A5/rOscXb+EC0OtY
|
|
|
+ WaZP4IDXfOxxQ2x4CpPTsQhyb5lYd12PayjWIwPF/zaYsrR7uKXFbjECgYEAyvjH
|
|
|
+ snYkEcV6qLAYBKDJuYQp6G9llou9x+k6UXBwoW+MAurbvE94a00VSZ/7jBaAFpYZ
|
|
|
+ XZrmEe+KHZryvkVfrVnEpsgTMmBYqFlybJBu1pXsFeO+ycA6GHH9Hde4tFGkmkpq
|
|
|
+ /WQlNYcmkWfUZgnI8waCFgV0mphUsyyu5w6YQ7MCgYB3zt9PnjE/plhuqGKoEAHR
|
|
|
+ xF5PcWUSOB0EWUP8mpeTCVkkb6+9Mrjtaca+vF5/+FnOS1AWegMjtxjr4h+THtVu
|
|
|
+ U62nPZg+boFwNt+rAjpEmxtQSK941RLpsZjZZV5DGZ5LFyi4fK3juJSrfTFEjyLA
|
|
|
+ MAk6Aq8V71uz0JoKE1yoIQKBgHYHYSj35lWnPoKlk/HtBiEpJ62QScTXkg6UI2OE
|
|
|
+ PRrDYOm5ZPoGRIIxGvXrYD3AP8/ijPGPx8YaQ3ifyBS5BsApeV967R7YQ/XxvcY/
|
|
|
+ 3xRNrjG0dBeh/qaEcqpN7Yx+BXfrWnfrKnAMHXNkq3CCtCYOXMstdPcJKgffLf4S
|
|
|
+ 0JxdAoGBAK13W4zlnQpe181TMt1q8ZoiB3MHOk1H49cjErDw3QiAMr7l3VF95AjX
|
|
|
+ gnRMOHIO0CviNxlY6WRKBd4hBLel7Zr9Eofg4hIGkOcI2SbRd5nlbW9BSmrcNfAR
|
|
|
+ ZcqoSJTo5W336betEReJKi5LW+1PHu87mcPdM8ucAgDBPFPJqWPe
|
|
|
-----END RSA PRIVATE KEY-----
|
|
|
"""
|
|
|
|
|
|
private let clientCert = """
|
|
|
-----BEGIN CERTIFICATE-----
|
|
|
MIICmjCCAYICAQEwDQYJKoZIhvcNAQELBQAwEjEQMA4GA1UEAwwHc29tZS1jYTAe
|
|
|
- Fw0yNDA3MjkxMzUxMDVaFw0yNTA3MjkxMzUxMDVaMBQxEjAQBgNVBAMMCWxvY2Fs
|
|
|
- aG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALqEdoBgLtT1p+jn
|
|
|
- xjEXCQCpS6g5EIyHwjpIxC6gX49wACiFqNz67EmkDTX0HIPgk+/4wI5ljP7mYPzh
|
|
|
- NAMFU4P8gDpYhKXLQyaNno1VTXxgpINIp2OXrhtLtkT6oO0hXTFVJCnsO9uyi7UR
|
|
|
- 0sBZbXBiAlmnPSMaY15UkzJvS49zBEJ7qnKeZyAer7V9dYe8OhtWt7kVD6sVhf3a
|
|
|
- 7QlwQCdbg3jowodpM3mvHnU8W6JBJ6p7dtAG3zDFyHY0erzc4bfPKqJEtV6YRVij
|
|
|
- 3zRCEjlU6A7c66y8V66eieNOB2FzEvutOwNrnrWfaR8jjafbhdZZIai9/GJd8w60
|
|
|
- rOBQoxkCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAqAYuUyEwGoDK2tOXPVHAFBaN
|
|
|
- 7D6SlHQBxYDuI5jYfJWBfdw3+Dc/OoBXHtkg2OQIV315+uIYHguhScvL4GBmEjgn
|
|
|
- 17zKGciymTPJ3eTcb6IIXJIkJr89YM5tyr7cveEUXRugSdAtX0aCaURRr2H4ycjk
|
|
|
- NLaSJyqCb02g9Ny0/5pql/v3gdY1XGF/hDEMwpLb5TxTt3VMtYj4r59Yz/5e/950
|
|
|
- MeINqAokIoLVtnYA+YW/Vj+T/ut9dFiC9E7arAw2z4zZ3uWvDVHTxhPQplUbpfyu
|
|
|
- /rwx/GpotyGL1qU/JKOur2Y5Is8lfGkKZ6OJWAOPG+ZqO233+s1tH/SEQkIfIA==
|
|
|
+ Fw0yNTA3MzAwOTQ5MjlaFw0yNjA3MzAwOTQ5MjlaMBQxEjAQBgNVBAMMCWxvY2Fs
|
|
|
+ aG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOGBa6FEXnLsHT6O
|
|
|
+ cwLDo6oKUBYaAQJIxE8puaUAwnd/Fvz8gd5ZCwtRFjlds2FQnjX2j3jLm+3AAwZi
|
|
|
+ +dLYTC/oM8pUooBjbswgJ3OxIHJStJt8bKsYZezvlBQ3U4sz579zy+G3UywFlX6y
|
|
|
+ dXqepe6KYonniZ2mX/0euGPw6hhbryR1RupYVzav0RgLWmjHUP0VJc7ml1pDcvCq
|
|
|
+ fPTtfD8duZwIdAT4WnNbW6aQLY2DCxeG+gOx6zJ988hRbPayOyc5FH4bCaF4Fpip
|
|
|
+ 1KZvbvXrEbgzpYihmxPoT48ADlgo3iLwi1+5Yxkvy2rMNAfP7nZz544AkNWt5c/N
|
|
|
+ x1Tvsl0CAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAm7pQJ+MVfsE8kap15YNgmVno
|
|
|
+ snMItichI1GIpuxXhRCFpQgrhy3EIm/HZj6TQ/Qu6ua/qD0GyoaHz+7J+K/v9coH
|
|
|
+ 8QuP9vFagdIigmmTQqLlZwOOq6H/ZZBSA1WR6S3F13AZxSC9i/dpKPBC9FOquvfW
|
|
|
+ o9z4EPpUxWFNB9DNp/noW3SGWiXct8h1X33R8swwIHS97k0GngQG8pwO7Evzg7MK
|
|
|
+ 7l8+Z2hxHTJbCqIk/DjG7aWHMd6Zt/diyROOoWfg4zL2MnqQuN3j+ORCokkKX0dW
|
|
|
+ 4ML+Rh9vaUgcoRNeAlRCcaoalw8Lxgm/qyKqN+s1mP0HWGoQnbWLZiddTpN9xQ==
|
|
|
-----END CERTIFICATE-----
|
|
|
"""
|
|
|
|
|
|
private let clientSignedByOtherCACert = """
|
|
|
-----BEGIN CERTIFICATE-----
|
|
|
MIICoDCCAYgCAQEwDQYJKoZIhvcNAQELBQAwGDEWMBQGA1UEAwwNc29tZS1vdGhl
|
|
|
- ci1jYTAeFw0yNDA3MjkxMzUxMDVaFw0yNTA3MjkxMzUxMDVaMBQxEjAQBgNVBAMM
|
|
|
- CWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALqEdoBg
|
|
|
- LtT1p+jnxjEXCQCpS6g5EIyHwjpIxC6gX49wACiFqNz67EmkDTX0HIPgk+/4wI5l
|
|
|
- jP7mYPzhNAMFU4P8gDpYhKXLQyaNno1VTXxgpINIp2OXrhtLtkT6oO0hXTFVJCns
|
|
|
- O9uyi7UR0sBZbXBiAlmnPSMaY15UkzJvS49zBEJ7qnKeZyAer7V9dYe8OhtWt7kV
|
|
|
- D6sVhf3a7QlwQCdbg3jowodpM3mvHnU8W6JBJ6p7dtAG3zDFyHY0erzc4bfPKqJE
|
|
|
- tV6YRVij3zRCEjlU6A7c66y8V66eieNOB2FzEvutOwNrnrWfaR8jjafbhdZZIai9
|
|
|
- /GJd8w60rOBQoxkCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEADl9prZ95iXY74KpV
|
|
|
- Vm5L/whTnfXQ2t1BVYD+nOKYyipAuVu+gTbBgseF7Ly+mEM0ewIgFgGbYZsO82Tz
|
|
|
- nCCYZY+ablJkewNOjn3DAsr3kTjIFnC4fpDbYQMw3IHEOWdollRLGv0d5SJNc9z+
|
|
|
- N4pB8y53Uz2nYBUKGc+HEGKRwn0XZL5Vmd+OnT9Ry0wlYh3NYcTxAY8ArtyJq9h+
|
|
|
- ROG4YH3en8e7RIGg1uB/m515Gm+CA4WphjErEiy5VH4YFAYtBWCxO/h2gPOwX+8o
|
|
|
- UnpdgUOkzB/YAc7S7OGGngz2IyBf+Rz/JC41uF4+efg8ijoZlWcO4/gB1yLiofBD
|
|
|
- /MgUQQ==
|
|
|
+ ci1jYTAeFw0yNTA3MzAwOTQ5MjlaFw0yNjA3MzAwOTQ5MjlaMBQxEjAQBgNVBAMM
|
|
|
+ CWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOGBa6FE
|
|
|
+ XnLsHT6OcwLDo6oKUBYaAQJIxE8puaUAwnd/Fvz8gd5ZCwtRFjlds2FQnjX2j3jL
|
|
|
+ m+3AAwZi+dLYTC/oM8pUooBjbswgJ3OxIHJStJt8bKsYZezvlBQ3U4sz579zy+G3
|
|
|
+ UywFlX6ydXqepe6KYonniZ2mX/0euGPw6hhbryR1RupYVzav0RgLWmjHUP0VJc7m
|
|
|
+ l1pDcvCqfPTtfD8duZwIdAT4WnNbW6aQLY2DCxeG+gOx6zJ988hRbPayOyc5FH4b
|
|
|
+ CaF4Fpip1KZvbvXrEbgzpYihmxPoT48ADlgo3iLwi1+5Yxkvy2rMNAfP7nZz544A
|
|
|
+ kNWt5c/Nx1Tvsl0CAwEAATANBgkqhkiG9w0BAQsFAAOCAQEARoIkr72iVZaoyypV
|
|
|
+ jF/N2CQo5czT0f3hKxDWFGnib0w0sPdIJO/sdYtVmcrKT95lWw9boiqCID42IoCS
|
|
|
+ PB06cWsxwsoF6sT3P6VMXVvjb33trdQZFMPbOWOYMP/zC/nxbWbo0AGmXPm+9LLf
|
|
|
+ 5bbU25zuhHRkVD3ylGLTwdfVDtVRLyq8E5hjz/OqJJzcjgcTGA8U6EVHYgPMTGey
|
|
|
+ LZCm9pb78stf8ekOo4ejr63ApT8PGUWqv7LQJbeHdK3dD+UhKcWl4uDxvKtkj5iG
|
|
|
+ m8Tfe/TgVYRzkjR12UKkjdf9zYmNYjovT14LG7ucKddvSqcQp1uFFh4nnodJGlc3
|
|
|
+ vlG3cg==
|
|
|
-----END CERTIFICATE-----
|
|
|
"""
|
|
|
|
|
|
private let clientKey = """
|
|
|
-----BEGIN RSA PRIVATE KEY-----
|
|
|
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- sWwZQJiU7alx5ynDB25GRbXu4APTzaz99vaw/V8DNsYw5c0habq3JfaC8Q0bse8Z
|
|
|
- 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
- Dzhr8VBE16HxMArMgDKzYP/gmjHnRlcT12udZokCgYAcd+7YYwHYcBS/Y3tfGe9F
|
|
|
- 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
- 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
- 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
- /di3cQgBYhP90RMQrx7orvZSJgKocZm5h/vUDm3mQ8JI2lWWllaqWxzmiJ9omXFc
|
|
|
- jr8wfJkOZpbYiJ4fNJmAOZtY9ZWnGeAmWNnwQKGDWP+GfF1hURxkY9iWtnCSPgU1
|
|
|
- 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
- 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
- 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
|
|
|
-----END RSA PRIVATE KEY-----
|
|
|
"""
|
|
|
|
|
|
private let serverExplicitCurveCert = """
|
|
|
-----BEGIN CERTIFICATE-----
|
|
|
- MIICEDCCAbYCCQCV4KgFB2WjmjAKBggqhkjOPQQDAjAWMRQwEgYDVQQDDAtleGFt
|
|
|
- cGxlLmNvbTAeFw0yNDA3MjkxMzUxMDVaFw0yNTA3MjkxMzUxMDVaMBYxFDASBgNV
|
|
|
+ MIICEDCCAbYCCQDG3HfWx7Z/uDAKBggqhkjOPQQDAjAWMRQwEgYDVQQDDAtleGFt
|
|
|
+ cGxlLmNvbTAeFw0yNTA3MzAwOTQ5MjlaFw0yNjA3MzAwOTQ5MjlaMBYxFDASBgNV
|
|
|
BAMMC2V4YW1wbGUuY29tMIIBSzCCAQMGByqGSM49AgEwgfcCAQEwLAYHKoZIzj0B
|
|
|
AQIhAP////8AAAABAAAAAAAAAAAAAAAA////////////////MFsEIP////8AAAAB
|
|
|
AAAAAAAAAAAAAAAA///////////////8BCBaxjXYqjqT57PrvVV2mIa8ZR0GsMxT
|
|
|
sPY7zjw+J9JgSwMVAMSdNgiG5wSTamZ44ROdJreBn36QBEEEaxfR8uEsQkf4vObl
|
|
|
Y6RA8ncDfYEt6zOg9KE5RdiYwpZP40Li/hp/m47n60p8D54WK84zV2sxXs7LtkBo
|
|
|
- N79R9QIhAP////8AAAAA//////////+85vqtpxeehPO5ysL8YyVRAgEBA0IABDJg
|
|
|
- pBr9ZhidkGWnjW+hvhPLTUH9V4iNr+WNsb2HjQK4NloOauRQ4mlc534XeBya5tRy
|
|
|
- aczylZHH6uC7ULCA8XcwCgYIKoZIzj0EAwIDSAAwRQIgVqWCUtszDMJU5ropnKDh
|
|
|
- UhsHq8r0ARIfTsjSKSdung8CIQChqts3cpW/OOp5PS2bEm23Bf7SWksW2kRvXj6E
|
|
|
- pjFODQ==
|
|
|
+ N79R9QIhAP////8AAAAA//////////+85vqtpxeehPO5ysL8YyVRAgEBA0IABFuX
|
|
|
+ OmVSV0a7oOdoL3FrJ2ITZuF5onuYAs22HqypxyL5tcoSsqmTYAfTDj00eon/goGg
|
|
|
+ sq1fxuIEUj++LV4ysW8wCgYIKoZIzj0EAwIDSAAwRQIhAKkqfMJJkz4wVwKnJmqh
|
|
|
+ ljmIgx9H5X6sqFF4twkI83pOAiAI87mIic25v+2bvPpw76PVJeH6K0jksw0SemQ1
|
|
|
+ Qrxb+g==
|
|
|
-----END CERTIFICATE-----
|
|
|
"""
|
|
|
|
|
|
private let serverExplicitCurveKey = """
|
|
|
-----BEGIN EC PRIVATE KEY-----
|
|
|
- MIIBaAIBAQQgYvOsKzMIHYIhfoUF1YqrM64ZR0Aotb++nOzoDB5mPrqggfowgfcC
|
|
|
+ MIIBaAIBAQQgv5J4cSA5lxk1ND23rci8NJSwtmsIQgmBfYEk86/8jzqggfowgfcC
|
|
|
AQEwLAYHKoZIzj0BAQIhAP////8AAAABAAAAAAAAAAAAAAAA////////////////
|
|
|
MFsEIP////8AAAABAAAAAAAAAAAAAAAA///////////////8BCBaxjXYqjqT57Pr
|
|
|
vVV2mIa8ZR0GsMxTsPY7zjw+J9JgSwMVAMSdNgiG5wSTamZ44ROdJreBn36QBEEE
|
|
|
axfR8uEsQkf4vOblY6RA8ncDfYEt6zOg9KE5RdiYwpZP40Li/hp/m47n60p8D54W
|
|
|
K84zV2sxXs7LtkBoN79R9QIhAP////8AAAAA//////////+85vqtpxeehPO5ysL8
|
|
|
- YyVRAgEBoUQDQgAEMmCkGv1mGJ2QZaeNb6G+E8tNQf1XiI2v5Y2xvYeNArg2Wg5q
|
|
|
- 5FDiaVznfhd4HJrm1HJpzPKVkcfq4LtQsIDxdw==
|
|
|
+ YyVRAgEBoUQDQgAEW5c6ZVJXRrug52gvcWsnYhNm4Xmie5gCzbYerKnHIvm1yhKy
|
|
|
+ qZNgB9MOPTR6if+CgaCyrV/G4gRSP74tXjKxbw==
|
|
|
-----END EC PRIVATE KEY-----
|
|
|
"""
|
|
|
|