blob: 1e5078e669d378bba09d3aad38d6bad114073db7 [file]
// Copyright 2020 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Package certificate contains test certificates for use in public key cryptography. These can be used in both remote
// and local tests.
package certificate
// CertStore holds a set of credentials which share the same CA certificate.
type CertStore struct {
CACred Credential
ServerCred Credential
ClientCred Credential
ExpiredServerCred Credential
}
// Credential holds a pair of certificate and private key.
type Credential struct {
Cert string
PrivateKey string
}
// Test certificate borrowed from Autotest (client/common_lib/cros/site_eap_certs.py). These are only for test usage.
// TODO(crbug.com/1047146): upgrade from MD5 crypto.
var certSet1 = CertStore{
CACred: Credential{
Cert: `-----BEGIN CERTIFICATE-----
MIICyTCCAjKgAwIBAgIUIFcTeIGTP0ymA9cUx5n4mbvjK+cwDQYJKoZIhvcNAQEF
BQAwbzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcM
DU1vdW50YWluIFZpZXcxMzAxBgNVBAMMKmNocm9tZWxhYi13aWZpLXRlc3RiZWQt
cm9vdC5tdHYuZ29vZ2xlLmNvbTAgFw0yMTAzMjUwNzQ5MDNaGA8zMDIwMDcyNjA3
NDkwM1owbzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNV
BAcMDU1vdW50YWluIFZpZXcxMzAxBgNVBAMMKmNocm9tZWxhYi13aWZpLXRlc3Ri
ZWQtcm9vdC5tdHYuZ29vZ2xlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkC
gYEA692l5qHh5SSj79k1vVCDG8T6Ar5r+HyNxqN9lb5aoM1KhqOk0gIfmCL/cNVo
al+L7eJsjGTbUMAXBidm1lQO+KedqX4vK4BzgsxFwnyOqd8nyPEmiQo48fCmhSI+
adDwxFxAmjQZpIKZ3mfVNveM5GDvymU7Mqg+PdKNSizRYG0CAwEAAaNgMF4wHQYD
VR0OBBYEFPNf1kGgtK2MgEpZbIjZ5VQDPkcnMB8GA1UdIwQYMBaAFPNf1kGgtK2M
gEpZbIjZ5VQDPkcnMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMA0GCSqG
SIb3DQEBBQUAA4GBACflBEK6rnAgSs61lu2rWYqJCt/3yGZPzXkD9ukpXY+EcZ5B
yaUk2tooiMh5yeOF+3B0c1qmOjtFBaSGWWfXV8QrRc9gkM1x5BJYhmKvc25e6kIt
fF6N4CFsPU/ggd+rQuVRrQkNPOThdRUIzARX3mV86nd5Q0/34P6O3Pvj0Jm4
-----END CERTIFICATE-----
`,
PrivateKey: `-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQDr3aXmoeHlJKPv2TW9UIMbxPoCvmv4fI3Go32VvlqgzUqGo6TS
Ah+YIv9w1WhqX4vt4myMZNtQwBcGJ2bWVA74p52pfi8rgHOCzEXCfI6p3yfI8SaJ
Cjjx8KaFIj5p0PDEXECaNBmkgpneZ9U294zkYO/KZTsyqD490o1KLNFgbQIDAQAB
AoGBAOvN/D5HOX/M0djIX2GVTH5Gv2xe07LpUxRz/unmFNUOaKOSlwUd+lgvJRG5
SVqPi2WYKM1zR4/De0E7wyQjhZJHCUx1TD2T3ynBldREaFlCwf42XCfZHckVCQZQ
78rAhZ0MRd0/ZnU7eDlU0RHx2aksoZ1lYQoKS9HsrVjkKyhBAkEA+4aRmCkdeBGS
IfE+dQfTl6idu5Jlo6+Gu7jq02ptZcnhIZqDDe4HOhaNWU7AZi0arx1whdonujiW
TRHhi/nDBwJBAPAPw/IuHak/QN6YMmgwQzMypXTducqqCwwY8apTmLSbHOxeSSQH
xmkn5orT1KRVXgTMv368kTsUnDxHj9HGn+sCQEK9zHhhwI4Rq4MSLo6DSyQc++2/
xPSQKOI7CSScQvcVgIWYKFpT5NsHDO67tNXn9gKtfyQlZRFG3qsIqZ6o4ZUCQBoT
rFZPWht7aoGDiN42d+ZE1yJFv5vbMs4Cm6XD5O+hddfbOhi223+qvOlRr2SWfVsK
HrcWprQDPiFyKJZB/DcCQQDGZ8NMosiPkVPATqS4WFdfLA3wFtkSY4H5PdfqyKGE
RwvPkfZxiONcYmBPxC2ui8SBMzryrmDHn2ZoXUH4PpfI
-----END RSA PRIVATE KEY-----
`,
},
ServerCred: Credential{
Cert: `-----BEGIN CERTIFICATE-----
MIICxzCCAjCgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBvMQswCQYDVQQGEwJVUzET
MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEzMDEG
A1UEAwwqY2hyb21lbGFiLXdpZmktdGVzdGJlZC1yb290Lm10di5nb29nbGUuY29t
MCAXDTIxMDMyNTA3NDkwM1oYDzMwMjAwNzI2MDc0OTAzWjBxMQswCQYDVQQGEwJV
UzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzE1
MDMGA1UEAwwsY2hyb21lbGFiLXdpZmktdGVzdGJlZC1zZXJ2ZXIubXR2Lmdvb2ds
ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANNEN6lnIGynlavF4+py
G0lXTgZsNh947EIHrwOIV8kfbmY8ivERfDig70BTqX+XbDz6gxegVHugOrsa1iA9
7Wy+RIDcwV8qKkNKuKcw+gkUWhjwBs0hIykdPPfI6OdxeNLcx3vrraJyApfrK1xq
qXg/PvpII6074ETTui1zsHePAgMBAAGjbzBtMB0GA1UdDgQWBBQp964vDQOfgyH6
VIdSuZbZSnFQVzAfBgNVHSMEGDAWgBTzX9ZBoLStjIBKWWyI2eVUAz5HJzAJBgNV
HRMEAjAAMAsGA1UdDwQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATANBgkqhkiG
9w0BAQsFAAOBgQAEVQ6sodM5t/O6TeCMIa7+q7YVPR8BFIxGmUtUSECvKeurbSLw
j+BNclptNo7rtV1ZKSQDOHfb6WWletxb7u+9JqcI6zfOxBiPNyQUq7WDnkP+64//
Vbgi/ixHYMtSvrit4FhE+L4BA6e2hAmQun388RQXC+x18gYZBYRaiCRq4g==
-----END CERTIFICATE-----
`,
PrivateKey: `-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQDTRDepZyBsp5WrxePqchtJV04GbDYfeOxCB68DiFfJH25mPIrx
EXw4oO9AU6l/l2w8+oMXoFR7oDq7GtYgPe1svkSA3MFfKipDSrinMPoJFFoY8AbN
ISMpHTz3yOjncXjS3Md7662icgKX6ytcaql4Pz76SCOtO+BE07otc7B3jwIDAQAB
AoGAecQOxN/Ai3+Hv4p+U6lS2tGsEf2asEcU/PXKxKF3317zVY+9kTY/v6/aVdwi
jHytEPReTGbHar2uPBs6oTiwN3m/xqTXqPIdou+/JfJJpPpVVHYP6uJaeQsgeQaY
Jk8UaMCeczzlN4+yR7tYJnoiXrEBKb8iJo9J5I1zh6TLJlECQQDvDY354cjfrABg
u09RQMj6flNlq/TKyqKBDLmYx1AN/5DxSBluk12GCAqtOvf4kM7yIjlhp6ww25VC
IO63kD7nAkEA4j5hfqslQp7rxL9kzxMTRqJbAwJR6feWRnViWfPyW+z2D6PEMfBg
HqrcatABNcru74unEeaQ6nvroIkIdbe1GQJBAOJN+KwonRtyH2FzsWEAbcMFuDm2
EiWwsypsO39woE7ANBzW3oyZoZ3zGvhnrLx5ihAbaisSqqYOGjziJFtOiN0CQQDM
VhkKJZs+g3hft5ld6VWUixh2LEc9cG9abbSJl+mCGw/V6kxN6lN1/02abwlYw1Nw
KQqZAUxLa+bRlFJ+t5ApAkBuHgpWJnuoHU31xBsBCGKj8DNs+wpiOhAlJWLjitjW
hQkvzB82GRCYx2WJ89wJrrGE6n61mCdPYVM/iZv9fUJf
-----END RSA PRIVATE KEY-----
`,
},
ClientCred: Credential{
Cert: `-----BEGIN CERTIFICATE-----
MIICxzCCAjCgAwIBAgIBBDANBgkqhkiG9w0BAQsFADBvMQswCQYDVQQGEwJVUzET
MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEzMDEG
A1UEAwwqY2hyb21lbGFiLXdpZmktdGVzdGJlZC1yb290Lm10di5nb29nbGUuY29t
MCAXDTIxMDMyNTA3NDkwM1oYDzMwMjAwNzI2MDc0OTAzWjBxMQswCQYDVQQGEwJV
UzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzE1
MDMGA1UEAwwsY2hyb21lbGFiLXdpZmktdGVzdGJlZC1jbGllbnQubXR2Lmdvb2ds
ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPhN1vzDh5X5yqZyVyy7
TvLZGQymHU2/tW8O3PWLvUv0uBpaEc16yjNVb+OOpXdSiPQnBYiNnrkys6MZ4CEE
FH4UP10ESPfoQsMB1lkeZiUt5MQcUqyP73cQCXXlZ7W/LyY4ABELeb8UuNyiyU5o
VyFlUOKZsK+AgItgI53DnbjrAgMBAAGjbzBtMB0GA1UdDgQWBBQyXZXm1dhPNDhX
4oAGwN2paqJSIjAfBgNVHSMEGDAWgBTzX9ZBoLStjIBKWWyI2eVUAz5HJzAJBgNV
HRMEAjAAMAsGA1UdDwQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDAjANBgkqhkiG
9w0BAQsFAAOBgQDU4MV9m0ttMUtD9NbnDTJ5DAM5FVedOmpqrCJd+ZzK6DCv/M76
4NOKRmisXe/4bdqRURNJzKUm5oAUgZaCwQn59RPKS0n6TyvnvC89yOF6spMoT2jK
+I0W9xtlUO9mWqZ81YewRVmukBq/vRSO5TBy8146bltzbaw2M48AUDOfBw==
-----END CERTIFICATE-----
`,
PrivateKey: `-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQD4Tdb8w4eV+cqmclcsu07y2RkMph1Nv7VvDtz1i71L9LgaWhHN
esozVW/jjqV3Uoj0JwWIjZ65MrOjGeAhBBR+FD9dBEj36ELDAdZZHmYlLeTEHFKs
j+93EAl15We1vy8mOAARC3m/FLjcoslOaFchZVDimbCvgICLYCOdw5246wIDAQAB
AoGAFHSdLG+TQOi2KCYtRlMb+uelp6Qbr+cGNGL+EwBzFMnRTOJ0qv/dnoMAV7fN
q9nRzINWclxwYgNqRxp/m1ixs1O+1PyWZ6Bl1GpKqFbD6HB16ic5G1K8x5w5VH0T
h0UR740n4qN1ZftubUSgNCk9J7MUUYN187CK88qG+xZXc0kCQQD+U1oYrEFOKPd8
4RsDrj1VIcFHkKfOslf7e+80+nHeYVFsX2wMBxGRWhxRcsmKKiRZLdXTJLn3ypXN
/XUx1JdPAkEA+fBWx5rOdi9g08Ken6li+BZKzWVjjBSQZ6D6+1f1eIatb4ZKdsry
IekUGYG5qyQTv6dcQW1qfH6PsrwbUzfdpQJARsB5eBOzt0K+VwdotIVsmpphYr9j
b6U9xMCds2dY9jysojGJpW7x/DXNWvtMBhvjMMwHiE3XTpAVTNEOIWa7EQJBAJj5
sSOabKOJfAogJFY0po6RllcAp10lePz0WqlbvLJ4O872srzimjCHJ/Y0oB9PhYbY
OG8TOQnZrLoIx/C3UMECQESsnQqmS+COk4u84c3Lvusq9V6KqlXb3fdbwhB2Qk5P
3RQyAQfcwv73fjUwEKUcEJDeUGZYYUObuvTuxwVIITs=
-----END RSA PRIVATE KEY-----
`,
},
ExpiredServerCred: Credential{
Cert: `-----BEGIN CERTIFICATE-----
MIICxTCCAi6gAwIBAgIBAzANBgkqhkiG9w0BAQsFADBvMQswCQYDVQQGEwJVUzET
MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEzMDEG
A1UEAwwqY2hyb21lbGFiLXdpZmktdGVzdGJlZC1yb290Lm10di5nb29nbGUuY29t
MB4XDTIxMDMyNTA3NDkwM1oXDTIxMDMyNTA3NDkwM1owcTELMAkGA1UEBhMCVVMx
EzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxNTAz
BgNVBAMMLGNocm9tZWxhYi13aWZpLXRlc3RiZWQtc2VydmVyLm10di5nb29nbGUu
Y29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDeDbcewb2U6d9k+yrCM+NT
qtK+AsdrCPo7st/cBFXDVweuKpy9USpqXB3e5TdS4WfgQVlGskF6Qvy3j3uLJGt5
J4wrlghyfASyJ0EP8ip8oG1eDMTrTyyEcTumChC7/WK0gkKgJwK3A5F/QmzeqLwX
pf/UluRHAm1ay8iEEsF+FQIDAQABo28wbTAdBgNVHQ4EFgQUcvIPWQNyHxpPv2yV
2Dxt7rpW3qgwHwYDVR0jBBgwFoAU81/WQaC0rYyASllsiNnlVAM+RycwCQYDVR0T
BAIwADALBgNVHQ8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcN
AQELBQADgYEAfAtdzz3P74P+UZJ+whj2FYeNH0i2jIiJ9Et3LgUrGcG07jVjbfjI
Mga9PB9Xg1XFSdXtZVMPUkJg9e6kjCMHldHR2N9KqnbZM9x/i1patS5q24WTaMT4
haS8lzDrvgp6xPA6ePAgYt6zf3h+Fx4pI9y13VCEcv8zwEmLV0rWKbY=
-----END CERTIFICATE-----
`,
PrivateKey: `-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQDeDbcewb2U6d9k+yrCM+NTqtK+AsdrCPo7st/cBFXDVweuKpy9
USpqXB3e5TdS4WfgQVlGskF6Qvy3j3uLJGt5J4wrlghyfASyJ0EP8ip8oG1eDMTr
TyyEcTumChC7/WK0gkKgJwK3A5F/QmzeqLwXpf/UluRHAm1ay8iEEsF+FQIDAQAB
AoGAJUpsXE/xBJcaGx1LGv4XyS9A4QQadVE2pNvvWEWqGXn+IjOpyulclCwQICSi
W9ra1QBke8jn0h55zmHcP4vIOGpDXMGGxFxc9UMrTT9e2/AcUvuwTmWxIw0K664A
7uMlOYWhbyyV1FxM+eRzrVaA9Hs8ulzzqFK7fwxWM6p8HukCQQD8gc4gBeTkDLAe
OLnXS7XX3Ym637VIm76trYOrP1A0RrMiJ1arRAP0MvaYv6dTa55zy2szrGdJjc7U
bky22wPjAkEA4SAQ9hdB1SiVaG6f0trKtxBulIdU3lYj0sSXrCqsHvuco7l7rZdS
S5TpTF4LOl9WQUuuVnilkCA2+ljd+lpHpwJBAPM+pG+K3gWmB18FrFkvcPyDSLPB
36QTjKtIlKe6NSw200fad45C1kA/e/iH38vnx1urIRlFQrbDqfRQUQxxjZsCQEe/
p4g2+1VLPOruruNNtePISeXuh77gp0QqQciuRPMO7+pCWEeH/cN27y/WnS96aQwg
aazHgMTBb6Q0JHMAyOsCQAkK8Ei2otb77guc1E9NXunAs+3HJVmkFti+SV9uOMF4
w5kpfKkbPBAO6A8COeA7pHzH6fKYxiDG25oSuN2fMxM=
-----END RSA PRIVATE KEY-----
`,
},
}
var certSet2 = CertStore{
CACred: Credential{
Cert: `-----BEGIN CERTIFICATE-----
MIICyzCCAjSgAwIBAgIUOdxBqlOb3Ce45FNZDPwK3yXOqTkwDQYJKoZIhvcNAQEF
BQAwcDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcM
DU1vdW50YWluIFZpZXcxNDAyBgNVBAMMK2Nocm9tZWxhYi13aWZpLXRlc3RiZWQt
cm9vdDIubXR2Lmdvb2dsZS5jb20wIBcNMjEwMzI1MDc0OTI0WhgPMzAyMDA3MjYw
NzQ5MjRaMHAxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYD
VQQHDA1Nb3VudGFpbiBWaWV3MTQwMgYDVQQDDCtjaHJvbWVsYWItd2lmaS10ZXN0
YmVkLXJvb3QyLm10di5nb29nbGUuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
iQKBgQDFP3T2eV0RHhQ7Mu5UMTqw8wAFCU0ES+u7K9mSzYePCNunVlH3/5BtDqIX
0SRKR2J4IqYGiKyHBiQz8tG8fhHCtd3hebUNk0vqMAbXtJNKbGTO84SR4s9ttrKv
8+J7RGnbwarTNPsfPWbRbBKnak0+ITb0ng57OuP2KV9q/busMQIDAQABo2AwXjAd
BgNVHQ4EFgQUF7jOnlHtWZaodZ5EYc3F5/FWKxQwHwYDVR0jBBgwFoAUF7jOnlHt
WZaodZ5EYc3F5/FWKxQwDwYDVR0TAQH/BAUwAwEB/zALBgNVHQ8EBAMCAQYwDQYJ
KoZIhvcNAQEFBQADgYEAkC0fNKC5ZGdexG1Fzk0VJBHryNcEPkWcMODKA3LeFyKW
HwBFYZpahDp2hd6ydI1T1EEn1OxYZKPjWIBdTkWnQZdVckRaxrEZElwgrtpIQWHY
hnWeS8Ic7QYCHHtE23st7XBEO1yp8ywdYVVtMiwvGMKtHYzdK4ugqYZb9Vyj0LA=
-----END CERTIFICATE-----
`,
PrivateKey: `-----BEGIN RSA PRIVATE KEY-----
MIICWwIBAAKBgQDFP3T2eV0RHhQ7Mu5UMTqw8wAFCU0ES+u7K9mSzYePCNunVlH3
/5BtDqIX0SRKR2J4IqYGiKyHBiQz8tG8fhHCtd3hebUNk0vqMAbXtJNKbGTO84SR
4s9ttrKv8+J7RGnbwarTNPsfPWbRbBKnak0+ITb0ng57OuP2KV9q/busMQIDAQAB
AoGBAKgmYZJggcs+5iZVU8EoOo1winrApAxeoHXuestgNQjll0M/Hh+ZmUivKdW9
7/72feZGO1zklJeCz8gNX2kd3AqvFgT9azFGTdeczYiYzmrIX1j0/BOIbn/2zo20
UAa+KhbFxa4KHCieSFkGTWgZfHVUtasM2VtRMe9tBs9KWxpBAkEA4i4+uBEVdpfn
FBqdGuSrNUVT+W6Uj6IK6bxEdio9dXi95M7MvjyQjQdhP2TJKPJenWjV8bxNmXC5
73NaBRt+6QJBAN9AtfZ3nYsv+AIWhAXpkY1lIdDiER4R7rcRE5QgrEPGDc2Nkz38
AVY7ou69hNp/ODOZaGug3eA4Rh+2D0U8xgkCP1aVXW0ZHR5JCCyqA3pID0JVR9A0
hKp3XbYcXBjgEqblkcwFXlt00+Eo8hFSg68pGQ8pEr13WD1k6cjAX7WU0QJARK3C
jIS1qXjjQbkteiglR6sh4QF6pJZ9qkGNlVcLx3mpC2APONVKj/2enPUeZp0WbAE4
d0uwleaZ4+18+x68CQJAUiAUaKRxrvCDjg6aA5jfG9+0FJ837Q6TqjDxUjf5EVGQ
4fxOsT3zGQRzasM+Hg8EVcsvZkQN6MhHoJjvc39qFA==
-----END RSA PRIVATE KEY-----
`,
},
ServerCred: Credential{
Cert: `-----BEGIN CERTIFICATE-----
MIICyTCCAjKgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBwMQswCQYDVQQGEwJVUzET
MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzE0MDIG
A1UEAwwrY2hyb21lbGFiLXdpZmktdGVzdGJlZC1yb290Mi5tdHYuZ29vZ2xlLmNv
bTAgFw0yMTAzMjUwNzQ5MjRaGA8zMDIwMDcyNjA3NDkyNFowcjELMAkGA1UEBhMC
VVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcx
NjA0BgNVBAMMLWNocm9tZWxhYi13aWZpLXRlc3RiZWQtc2VydmVyMi5tdHYuZ29v
Z2xlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAu8L35+odLm0sGq5C
tmCRRKtLy042yS+iKjxaxcCwfanWTANptOqQzyGMosGOl+svdis5ikhs69ALFa5w
ll/M7txATD6KbADPl/rC8OUVT3MSxH53MdU0NxCvSS2ZPG3aJS/kuP+XmTRAfCKx
/29Odgb4DQdNW6QPQzF3Z8W9yA8CAwEAAaNvMG0wHQYDVR0OBBYEFC1bx2yXBMvJ
C/+rNV7Nt+Us3lYWMB8GA1UdIwQYMBaAFBe4zp5R7VmWqHWeRGHNxefxVisUMAkG
A1UdEwQCMAAwCwYDVR0PBAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqG
SIb3DQEBCwUAA4GBAJBkkggA44EkfJRWOYy/yVOnnOXZqd29mQZUiLYCci6xM+wQ
L1jO8xJ2Tu9RfAXI/Tvyle95yRgQOB6VbqtKEOHZ5NRksZK+2tAGtBCY7owXLTEi
AVReVwgScTVjjTDnoJjjtYn64C/+LmfVqiURaJQAYJPX30HIlb5ZJmaC4r3n
-----END CERTIFICATE-----
`,
PrivateKey: `-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQC7wvfn6h0ubSwarkK2YJFEq0vLTjbJL6IqPFrFwLB9qdZMA2m0
6pDPIYyiwY6X6y92KzmKSGzr0AsVrnCWX8zu3EBMPopsAM+X+sLw5RVPcxLEfncx
1TQ3EK9JLZk8bdolL+S4/5eZNEB8IrH/b052BvgNB01bpA9DMXdnxb3IDwIDAQAB
AoGAE0Ld8ZGHqtKSOq5zs4fWfyffX5zHa/4R8ak9Wpn4wPtiO2wCNQf3EPiNF8kp
WpZKySGIBpKFce9mo7PAYvyy5gTwvz7R0uMcJ1WZLqXP2nrHxtR2IMcyGucpBrN0
A1aKT9I7OdXme2RmrXCO3mkQVG7UpG6zru4HyaMUmjb1prkCQQDnIt4MRtxVgUrh
yk5j7OGdVaQhRuzbcu7Pe4Faf91jVeeTHDv88AxPMXPu6rVXuiCc9DGX4mvmS+2A
1CTLQ2NVAkEAz/WhsdLI3X3OTnOUffC1oFfkJzu4zBqIrEft4nSdWqWB3bRrJZkl
Sc+jSTRsQDgDWXK7IbvUJTt79rFNH7lF0wJBAJKNhyFdpMMKccJslfvB7OPns2Pu
JqyWWVlxQ/lv7Z3YkDa0xkyAoC1ue8XXSBhRye/63Z8iT6v8JKF04ceH+OkCQQCi
AxoagD2umOFOKytHRm0pYu/DRPq+P/m0RkFkyDcCtKhNAc7rtrjfHR133ZhsG3c4
i3KQYFVxQDteQFj2Ww+zAkBESY0TUX7miHm0glwH8n7vB2FynD+twq0rqQb+23cL
tEWUrFM7DMf6d+kS8QtZpXdg0myfJCEJSBytv+Mfkxbo
-----END RSA PRIVATE KEY-----
`,
},
ClientCred: Credential{
Cert: `-----BEGIN CERTIFICATE-----
MIICyTCCAjKgAwIBAgIBBDANBgkqhkiG9w0BAQsFADBwMQswCQYDVQQGEwJVUzET
MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzE0MDIG
A1UEAwwrY2hyb21lbGFiLXdpZmktdGVzdGJlZC1yb290Mi5tdHYuZ29vZ2xlLmNv
bTAgFw0yMTAzMjUwNzQ5MjRaGA8zMDIwMDcyNjA3NDkyNFowcjELMAkGA1UEBhMC
VVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcx
NjA0BgNVBAMMLWNocm9tZWxhYi13aWZpLXRlc3RiZWQtY2xpZW50Mi5tdHYuZ29v
Z2xlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAqlYszT+Umx7lMkGZ
hd7udlazFbhlA2LOWa0zubyT6Ytp1zPSqW/SmY+dLhaPSTT4S5ArMMLMlc537Mu7
wJRbvXTVW+uLMa7tdBRaVMBqzrdQgOTKffq/o/TTDf081gJSOfb1HOKy/Adioq6d
hujsWtNbCDf37uBzkTEmV4s8wbUCAwEAAaNvMG0wHQYDVR0OBBYEFL+lQ+M/TkzF
4nRQnerh0CLX7m+/MB8GA1UdIwQYMBaAFBe4zp5R7VmWqHWeRGHNxefxVisUMAkG
A1UdEwQCMAAwCwYDVR0PBAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMCMA0GCSqG
SIb3DQEBCwUAA4GBAJMdJtxALXoSiu/au6bOLHOnTs1zlSKRe+LKbjhIij0B51rg
tZ6NEUHfGJdDg17THCc5op8TbHuFEPV5OlP7Wf2M6C9qBOy0EVIotccXETxvXPu4
mJ38KES+T2EV0x7FHyWfQXzWEkqMtCZ2FGPd5ed6K631uwxaUKJGimtKJQqj
-----END CERTIFICATE-----
`,
PrivateKey: `-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCqVizNP5SbHuUyQZmF3u52VrMVuGUDYs5ZrTO5vJPpi2nXM9Kp
b9KZj50uFo9JNPhLkCswwsyVznfsy7vAlFu9dNVb64sxru10FFpUwGrOt1CA5Mp9
+r+j9NMN/TzWAlI59vUc4rL8B2Kirp2G6Oxa01sIN/fu4HORMSZXizzBtQIDAQAB
AoGAdsdIzoc7lT/iCz17VMKz/olOsCK5LbdEtXv1ydsaOY0h7RMSH1z+ul5O+Mh6
ek4ZpneN5p6wEva64cDf19accUicbv+du6okorh0/StoRttR1X1uxBubCs4J+2lA
P45Us5HkxVbU8Mv4/T3XTqgfNPILM9UitXnvZoXdZlfY7jECQQDfGy/3OwyHxYFH
qSmKBR7t+vrebZiwQVSorQHR8WPx6PijbfVBRSZw36tsUCkbgnT33IRivSnH/Eqz
pAdoRFDzAkEAw3NHM3OvySgwqMC7iKUs6M/iNhxa2OUISJqZw2U1h0Gmv4zZuUHf
tfYE3dk6ZwxMQBnOsV03nTj1e1u/2daMtwJAZ09Ej7vlGn2nVpKLbKDgaJx+TD79
pCgsVor+O8QGXr9dWvgQyC+IFF5OF7KqxlVLanbPSpWDYlp+EN8UmwB/ZwJAcd0i
ydLHwgTr9CP0HPM9apRRUPzL4Dftz35hvfeka5vPrSA9ZzP9RGCDDUuUPpxnf6CJ
TcLkt2+Lc8ZLyni3mQJBAKUW/EXWqnnXr1jt3Zb2c5rvLANtWPGv/ZVJ/PvQIrrz
zxVQ5yZxFEmubpeAo10GoPHCilShV0kRLFXMF+77nT8=
-----END RSA PRIVATE KEY-----
`,
},
ExpiredServerCred: Credential{
Cert: `-----BEGIN CERTIFICATE-----
MIICxzCCAjCgAwIBAgIBAzANBgkqhkiG9w0BAQsFADBwMQswCQYDVQQGEwJVUzET
MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzE0MDIG
A1UEAwwrY2hyb21lbGFiLXdpZmktdGVzdGJlZC1yb290Mi5tdHYuZ29vZ2xlLmNv
bTAeFw0yMTAzMjUwNzQ5MjRaFw0yMTAzMjUwNzQ5MjRaMHIxCzAJBgNVBAYTAlVT
MRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MTYw
NAYDVQQDDC1jaHJvbWVsYWItd2lmaS10ZXN0YmVkLXNlcnZlcjIubXR2Lmdvb2ds
ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMvn8ESbeIzsuzFgIyFC
+IApV9B2EbPmGSeLyg6pDeQCM4MPUKOTw5PJoyWL5smBltdKBOvLuGFWE9AS3kVh
XcBY83HxMr6ip3I4rCm9sHIr39t/kWaX0pM8E7daSHCVdhdKKFLJyY5ljgNdOQd6
2aETNJecXTCOLEtada5jdD7NAgMBAAGjbzBtMB0GA1UdDgQWBBQiP/KJoo/jqXhC
6vrLwgbznE1oKjAfBgNVHSMEGDAWgBQXuM6eUe1Zlqh1nkRhzcXn8VYrFDAJBgNV
HRMEAjAAMAsGA1UdDwQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATANBgkqhkiG
9w0BAQsFAAOBgQCd7/7Zh+6wrbXlxDnfTC/LX0uVQ9a305QG7YzMgmwe3VPnUYOq
zjQ7gOsUDXvwP5ejVZkCNaH6Al/RtPAMdzN/4TZ+WGRYz62lh/iAMk6CGbPl8T3u
ddf/HSuuIyTOtGtVR5LV1ypjaCmEL2MGYrByamXCTA5Ig0ksy8syOhmpXQ==
-----END CERTIFICATE-----
`,
PrivateKey: `-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQDL5/BEm3iM7LsxYCMhQviAKVfQdhGz5hkni8oOqQ3kAjODD1Cj
k8OTyaMli+bJgZbXSgTry7hhVhPQEt5FYV3AWPNx8TK+oqdyOKwpvbByK9/bf5Fm
l9KTPBO3WkhwlXYXSihSycmOZY4DXTkHetmhEzSXnF0wjixLWnWuY3Q+zQIDAQAB
AoGBAJOARJ5cmOfYl9Ev6jm1aG3NemiiAExStv+Ub6YLRLEbpoe4HG04BtJxmkMe
4OQDikpSkRzBUa+XxN1PyNoHhPjD1/FFZt3V0w2qZfbabmbOKv2yNOwbdmIq0iLp
hNqfzkE7NeHdiEE2FB0RDfH5Ipaod+UOnYDf+8eYRA086GlBAkEA9sSxy048MPKS
xu4VJTULQkzm6qosIpElj3uzOHQP8e7SBr4ZSPWMjbULuQW//Qqqfzploy93N2cW
09azmfN8fwJBANOIwCmQVuq/Iq0qVN/RtTVWEQWjwojErmFnTKTw9AKbDOFQUhvF
7lN0pCby5U3VGUAtna16tUqxSuGfYcT6zrMCQDNuPUwNKzhcZkD1wAx4KLeRxZLl
ErvFmpl0A59heS1IRBfJqQVuv/OM5zuRujjn7y8DIcnIC8XNQ5G1LsuIVssCQQC0
RUdWZI7d8VOw9XFtaL8gHB/XiY6gldTyZ2E2861Phyl73sKKrqyDbNTz6G4oXWHu
grFshTV42QyyqOxePUvnAkAicaBI3MT/kSblgD2uwH/02ejjKQJ7+8N1R6wvchNH
OI+tPssvdas5Ppzj41+8nveL4SJf8+dFi2I5d0tqrj2M
-----END RSA PRIVATE KEY-----
`,
},
}
var certSet3AltSubjectMatch = []string{
`{"Type":"DNS","Value":"www.example.com"}`,
`{"Type":"DNS","Value":"www.example.org"}`,
`{"Type":"DNS","Value":"mail.example.com"}`,
`{"Type":"EMAIL","Value":"example@domain.com"}`,
}
var certSet3DomainSuffixMatch = []string{
"example.com",
"example.org",
}
var certSet3 = CertStore{
CACred: Credential{
Cert: `-----BEGIN CERTIFICATE-----
MIIDzjCCAragAwIBAgIUbnzXhOwTFsj8XmOIxR7SX4TCD38wDQYJKoZIhvcNAQEL
BQAwbzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcM
DU1vdW50YWluIFZpZXcxMzAxBgNVBAMMKmNocm9tZWxhYi13aWZpLXRlc3RiZWQt
cm9vdC5tdHYuZ29vZ2xlLmNvbTAgFw0yMTA5MTYwODEwMDlaGA8zMDIxMDExNzA4
MTAwOVowbzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNV
BAcMDU1vdW50YWluIFZpZXcxMzAxBgNVBAMMKmNocm9tZWxhYi13aWZpLXRlc3Ri
ZWQtcm9vdC5tdHYuZ29vZ2xlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
AQoCggEBAM1SywcPYATbyAGWWDlpurikPi2V1lXbkVSPqiN5Q9BYbu7L6hl66uSz
5LNkBo5GgEX49jlPMFEiUZQxjow+KHWbKsBJhecgkbjCbpLm3y4xYKZOWCIWv5VY
Ry5+O1oYz/A0Igkwkgj9c4+GuvSmSG8RWHyBGMf/cjrxLoBOHO8RYI9f7wkNqrWB
1ektdBozmugnUeEGapZPUGVV8lc2xSH6TEyZoqPISBDYFOYmdGRe11XqZVN4cpvA
VDDeeY3wMFBZj4Fj24OQXW51ljOEvEQKVS6NQ7f0/f+lf5jyvU56Ip1+xTmxZW7I
LUON5pZG4yW9TDJe0pFnm7dw9rBxfeECAwEAAaNgMF4wHQYDVR0OBBYEFOuyagBJ
j4MEr4oLlBAa9cIDZzvIMB8GA1UdIwQYMBaAFOuyagBJj4MEr4oLlBAa9cIDZzvI
MA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBCwUAA4IB
AQClAMhvLwZcaCjuG8tOd7nJMwl+4tzKZO8YmkRiK83xjHPecC4k1mXnatFdhYkA
Xv5VLNw89hGukbvxcExDtdMlP8qpU7CD0zBMfV+qx55Xlj+YGQQSP0Wv1p6GENzR
bvF3TFX1wnjKBkUXWUMcSDXl7Dvf48yWFcoAJBoc8cdg2WeBZdd+rO8hPH5pH8RU
DOnlRJT9nAPQ8fexjqAJrvusJ2sq8HNqoaYOjuDuctF8p9VkQ7vZWQ2LvyRvGhNs
CCZjPZyX597/rn54+pfvyYo7SMDATPshcoLK0rUJW4/DRnWZlr4tpxZScG0yAm1n
ObRQpsW50rwpgjN18HrWPrFg
-----END CERTIFICATE-----
`,
PrivateKey: `-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAzVLLBw9gBNvIAZZYOWm6uKQ+LZXWVduRVI+qI3lD0Fhu7svq
GXrq5LPks2QGjkaARfj2OU8wUSJRlDGOjD4odZsqwEmF5yCRuMJukubfLjFgpk5Y
Iha/lVhHLn47WhjP8DQiCTCSCP1zj4a69KZIbxFYfIEYx/9yOvEugE4c7xFgj1/v
CQ2qtYHV6S10GjOa6CdR4QZqlk9QZVXyVzbFIfpMTJmio8hIENgU5iZ0ZF7XVepl
U3hym8BUMN55jfAwUFmPgWPbg5BdbnWWM4S8RApVLo1Dt/T9/6V/mPK9TnoinX7F
ObFlbsgtQ43mlkbjJb1MMl7SkWebt3D2sHF94QIDAQABAoIBAQCs/p8VebzbGxqv
S69V4GF0hN3mpqKKgI84gjtF3Dxo5LnC9Yhuo4QZ4gBFrXdglMIrMpKywqfhFFtL
011ZiF2qiWxByzDJBkYBN8DWgTN1xiC6vrO/NQ+Ck3iWEcGMLe+1YRd0SrogXPvq
6AfJbfkFq8W0UUlB6VajluYpMKdsPOLrSXnUV4EBnOIvFVJumnDmzuLuc04AHiLE
enolCYyhkCdOKwabh9FFopBLMWqjppoqx/nzX5wBj+KZX/HuNCmZBQDqgFo4puOR
ESB+OgZDiaJIgg9DRPOfDS3xnbW7HYS51S/1mLVXVLKIXntPfJ93AtoIte7NEz8O
y0Zn9HABAoGBAPNJN/nP7E8QDlXJlhARJVLBnP7sKoWcJNukJg6MN7c3mUdEcmEb
pfq6/SjcBDuLeaSc1So6iK/g8RlZHHCbq+7A8qz8HB9RPl2ab3Epp6Enh2EMT0x6
BkXSacJaxGX2Sinjf8ffp+xU/cWbU8ISHNGYoMuaiqrSzb/S9OteCp4hAoGBANgN
sep1dZAo3li5sy6lRaiWGyjAenonPPDmLYzgVVgirU71blMqSWP7IEeKR1vKLKIR
bdo7eALjjXqcsyyzJj4RexIuyC521naDrQx/ZcAFnl0PExUQm7pWTlzczfVQQPWR
U/ZbUqCg6DA0H5tQSTD+02mzovoetWWt5ZEwsWfBAoGBAJKw50t9j2Lsr3gSoKT3
caXAkEU1aT4+tAqrozbKXR3gLE/IeZ8L6LyR2uu0Hek5ZBNZbT6VJK3H2BgMnxVX
CAhh1vFu4hYQCqat49w73ZNSHlLp9TaLrRSUlqhVym4gXv966SU/OiVJ6eooigxO
l4nZmbqqaEov6Vdsf7kbbxOBAoGAV1riLswjJpB/phwfSKLmUU2v2YBJhQ5MY5KN
pEIn/6S1shEl9FZKqjQlTwen5oMOHNEzO2OEGJbs40BsaYxd0Aa9XhKwOaku+Wgw
FbeE6mjbKQEpVAENFgBDWuSkGaXDPgbujdNKy0uD1cmdZezGSxsdW8WYBc1Yxq3S
/itT74ECgYAfdWC4gDNaaH1EUcPhszhAyN/EPQrc+t5zCXgFFWdWV69iFGHKAdJ7
TjIiWCzjzpYKgAW5dpaKWjdtkUh+wi9eQT1N93MHAS0shD9heU2uFJuO2kH8e1UD
jmVJAz/r8UhpSQTsQSYo/Opx7rOKsetFbY920+4pkLtizvXFq4N8VQ==
-----END RSA PRIVATE KEY-----
`,
},
ServerCred: Credential{
Cert: `-----BEGIN CERTIFICATE-----
MIIEITCCAwmgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBvMQswCQYDVQQGEwJVUzET
MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEzMDEG
A1UEAwwqY2hyb21lbGFiLXdpZmktdGVzdGJlZC1yb290Lm10di5nb29nbGUuY29t
MCAXDTIxMDkxNjA4MTAwOVoYDzMwMjEwMTE3MDgxMDA5WjBxMQswCQYDVQQGEwJV
UzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzE1
MDMGA1UEAwwsY2hyb21lbGFiLXdpZmktdGVzdGJlZC1zZXJ2ZXIubXR2Lmdvb2ds
ZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7W8dj8+8IRJhj
BlDG5gX0umHrfnVzd6la103Y7jn5GSJJGDcPPGX9VaZ4Y2RejtaLttaWZX0kQlRa
hGj3JJ9AvXMjjgO8qJV4wyRiBZC/w8QVPgtlqwINGT1x63SH9rnvptyIDEPblX57
iDA0C+CeVhX7apXaPXrrJxW4On4ngW9qMG3gOCVKE4q9ym7bLTDIDtfDad8GYRvn
AiJeACxUNGDzmwsq1CTnYfelFrfuURoMIIuArajz7ZMPSmeLTu4PI0BhdwZ8VZBV
d87kU887Jv7qA7zbcUOGapLmM+Oo3ZGkVS65LWBkSK9G1SzjBlQNqvzqZ2hNi42W
667z+hdPAgMBAAGjgcMwgcAwHQYDVR0OBBYEFDV8r15WcDEL/LJ/RMA53sx6fQdM
MB8GA1UdIwQYMBaAFOuyagBJj4MEr4oLlBAa9cIDZzvIMAkGA1UdEwQCMAAwCwYD
VR0PBAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMFEGA1UdEQRKMEiCD3d3dy5l
eGFtcGxlLmNvbYIPd3d3LmV4YW1wbGUub3JnghBtYWlsLmV4YW1wbGUuY29tgRJl
eGFtcGxlQGRvbWFpbi5jb20wDQYJKoZIhvcNAQELBQADggEBAFtXFJ8rtLEcmGJp
ZTYQFIc64vGqIGv3yUAGP/RcfwnpYbKEfY1XD/kcPr3igbwTTy8wh3okzGWoVKkv
LMrErfs1ssyf1JvZgTA8PKUSxfGHj6OzhJc+l6ey3Jvc/YFKzpthD9ftDubRCexq
zm0w6o+yV+ISuYa6j4Z8Rb7cxwDHY6KWVLTt+vOK/3xm/E1mhaSPMUndCTiTpX8v
NehVHddrdT/gUtBh5ya7hLyw2iSiz+Ka7sbnqK2VfI0VKLUg5HeEeHXbUoTZLJzp
OKwsip6XtGslV0QZklTbIwAdFIY4FpcFZX53jcv5/SqqKq8Rc/nSAgPncW9OGwLq
Vgq3KR4=
-----END CERTIFICATE-----
`,
PrivateKey: `-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAu1vHY/PvCESYYwZQxuYF9Lph6351c3epWtdN2O45+RkiSRg3
Dzxl/VWmeGNkXo7Wi7bWlmV9JEJUWoRo9ySfQL1zI44DvKiVeMMkYgWQv8PEFT4L
ZasCDRk9cet0h/a576bciAxD25V+e4gwNAvgnlYV+2qV2j166ycVuDp+J4FvajBt
4DglShOKvcpu2y0wyA7Xw2nfBmEb5wIiXgAsVDRg85sLKtQk52H3pRa37lEaDCCL
gK2o8+2TD0pni07uDyNAYXcGfFWQVXfO5FPPOyb+6gO823FDhmqS5jPjqN2RpFUu
uS1gZEivRtUs4wZUDar86mdoTYuNluuu8/oXTwIDAQABAoIBAGBKcRVrvwPOzUrH
aihu+8ylJcI0QgTQERgA45+EAAOH6VkLuvB3qCslI+NnoaP/YUB4/ZxaGJDUDipf
Ntsd1UMemthBGqaRNhDUqhQ+rAACivon4w+jbfBxcmTkEAX4xeLnLRw2wYFPOawf
eDanjA+USsPmKZH6WvwUIFOIrGF8gKsqvHuCnEVk43L2Vsl8RHEBPSfjdm/pHKqJ
zeSUFKhXIOOAnjUi0rgp5DsSaSIVqfuDQhp8tkBN3om0yC8zEMKmGjx31RelsxSm
9dC3G2ezXnTfcpALbXBGV7lAPYY4tCgvCdLcbvxnFW6I14+34f0n2X6LY8H4KiA6
xhx3MuECgYEA6wfXZlgrtJOVyPRadTcWuSXsh8Vb/K2D23Us4UgWAfwFRwluVWU2
ip+jhNAlPstWsj0oa955Lbx/wN6/XgEEVijqXBbh56A491R1JUYPM6Gs7l2d+P70
MEn4axE48ECMo2TH0odSJw09bf19DGv41jKS8uLJxHmdVBDv/nAjJ2kCgYEAzBMY
I5cyGEX+uyUpbeJjfceyuIGB/KZNM+Qr3cJmj5w9kDBchPahinLRpPj63ag1dfto
UzZolbBeAXADL9EDGnZ9BBKBaH9VgTJOkqME1rXGcs5LaS0NzsnNOYtRBzX74NGr
mEj5oIxmILqW78WhgYbOO7/Mr0tVwgpgg+AdafcCgYEA1v6PTbGuGTtAM1lDPiIs
iSVl3zTsVpGrIp9ndJTqfNo7QaYg5cD2SYyKmj2FNJHxNo63YSVbmDjsbFPWnnkz
rFU1PRQ5hhaMxcLefkA+O67TcCD3FwSx/1JLCjXw7eU+QWE5YR4kSlDUNr9BGpHS
SK5uufw3MaFGB9aOkyOlJLECgYAsCI6z10Ly49+ECA+5axjmoflZQHCI0GVmJfyl
G/Y/VIogG59K/WB73CyKOUMAIvRuIbIwClRkwCp4iu/VGHdf9WMiRs/veVI8z1sO
3ugDYDOSwBqbdiI9lWOX4Ay6zpYru3IYKN7cGo9KzpgU4oLnzOuhDtCenlXBybVr
nycZnwKBgQCjo14ttxVQUXsJbdyD0LckIVbUg31Ex9pcH7U6THYJLO2ixpqxMFih
ef0HNXS8E57SHJK4Gwz68IV9uerry3Xumv5PbipBcZJmwsUpuI35T87L7VPd1/0+
VeHnvF4GdYCApvqJVwYEX5MJ9k+c0Qk4oNbhcC7G6LPxsyy7qs4fqg==
-----END RSA PRIVATE KEY-----
`,
},
ClientCred: Credential{
Cert: `-----BEGIN CERTIFICATE-----
MIIDzDCCArSgAwIBAgIBBDANBgkqhkiG9w0BAQsFADBvMQswCQYDVQQGEwJVUzET
MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEzMDEG
A1UEAwwqY2hyb21lbGFiLXdpZmktdGVzdGJlZC1yb290Lm10di5nb29nbGUuY29t
MCAXDTIxMDkxNjA4MTAwOVoYDzMwMjEwMTE3MDgxMDA5WjBxMQswCQYDVQQGEwJV
UzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzE1
MDMGA1UEAwwsY2hyb21lbGFiLXdpZmktdGVzdGJlZC1jbGllbnQubXR2Lmdvb2ds
ZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDX1zs5HwKpKaiI
u56P7Jf1EDmshD2Dpt1Sx+ZUZ/Zsx+fXrfNJTLIdtwdKF6mL7DOsXty0TSaojX+E
lmsQj8yDdIjf8xSrX+MCP86R0Wd41OvLeNGj2kNnDzs5GN/j1psYJPX5pBBXIcwn
98pwB+2O8Ixcs63WioMeWZiab6y64HZ2p7/+PPV16iBMYoScs8kbsEn9RQZXlyMY
wg+Tovs6qjx9zboiwTSqNvW4H+F239PwGGUL7sTL4pAvnS7TI6iBZmgg1FXhrvOM
TfxIfudxqgoEDgVepbMtRMHcTtZ8UgnA12I99aDj4j6+XtlzI0JTXTqF9b2f07cc
PFhDET8vAgMBAAGjbzBtMB0GA1UdDgQWBBSUaODutL+PfNkR6k5urypk+QEfcDAf
BgNVHSMEGDAWgBTrsmoASY+DBK+KC5QQGvXCA2c7yDAJBgNVHRMEAjAAMAsGA1Ud
DwQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOCAQEA
S42CCUBpRhSwsJpWjgOFX0bZJqL8PfEGO1R28F8Mdwx3k1UklAsYp27jAYsgpy2F
XMXHyl+5cJpoUQMDTLeSkQnZJq9oRxk39qIifQAbk5OHp+7oadBJUFoSHE2eCqET
mC/mhd3+fYc9XYiLak2O05ztpMBHJoB8t25SByMx/k+FrRzNDqRGnXuQLKdPF207
oOP7Q8GIcBQABZruvUiA/TP4yr2vMh0ekylTOGV0zNlgmy97wwLCXgSG23OuUW/E
+zNhapiEOSzUmcFb4vPg8jOezIWmgBnyGkXw/WMMmGBwmtdaQ73gH2IA3tsTwOI/
DMmh/JvuZpx0XvzccBxWUA==
-----END CERTIFICATE-----
`,
PrivateKey: `-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEA19c7OR8CqSmoiLuej+yX9RA5rIQ9g6bdUsfmVGf2bMfn163z
SUyyHbcHShepi+wzrF7ctE0mqI1/hJZrEI/Mg3SI3/MUq1/jAj/OkdFneNTry3jR
o9pDZw87ORjf49abGCT1+aQQVyHMJ/fKcAftjvCMXLOt1oqDHlmYmm+suuB2dqe/
/jz1deogTGKEnLPJG7BJ/UUGV5cjGMIPk6L7Oqo8fc26IsE0qjb1uB/hdt/T8Bhl
C+7Ey+KQL50u0yOogWZoINRV4a7zjE38SH7ncaoKBA4FXqWzLUTB3E7WfFIJwNdi
PfWg4+I+vl7ZcyNCU106hfW9n9O3HDxYQxE/LwIDAQABAoIBAEG7u76WsiHAnSIf
OZgNbu3kZhwjHfTVQbwvQvdbvhG9A9+Mi3Y8VFZ2YlLvR+RkKAyLy11hza8xgK9p
e+vMT3WNbQ3/IsFab3FE620/P+rttW3/OqFTHInrepbV+4GQ3yUIRJ0lmRBgK6PU
dCOQVoncunKVChE3l90LXk1SS2GR4XMwBkZiS1IJ55b08HEUwiw8SyZxQ4UGcYQ9
Vxj37879pMpeCGXXKO0oQ9FBesRfZi9jvGs2bXqLkLKPHEb9uLDsGq6btoCX0Jfy
oXnsrKZt9iGTEmTsckERPLEilEBx/UXnsNeeHq8I1Iq8xV+OYskVT1P/igvaqz9H
ipeDWXECgYEA7SOJDgHapeoHXLh6tgLt09wvqVgf0FxIoz2diuixzx3yBoUE+0zf
GkI6kBJq+ES8tC5sQ9R3SQnv/xsjELVT/ISebAXrKp8IyiXMFxXYXTZoNSTBMpsL
vxBmg0Tl7MSmn1qFvSmVXtF+kTghbzcewjneK9rrmC2Kw78LJtXTX1kCgYEA6QIJ
77atu64+muG3QSBbZNY+cFuEYehz1G/J1P6vPDXKB4PMPLooj5vaXoWjG5RVSxlr
BqQooZ8FXfChR0ZUWeDItUgyBVrPSxKOcmHwbMSlApQLrc/DQ8h6R4oXt7HRVXFg
Kt3gqINyUWyfLPI7ItId5JF6gQiwkq4aZwOoCccCgYAUc4AaaSaGMIy5/l7224HP
R6oEnMkBmzPYgDPaCv9qsVZyIX6wfYywIw4R5sS67JKpp2dG4kf3UJgWFC0N/9Vi
bb2L62bAoj6L0H6tbwDd6RdLngPbbWux6qQspgB+TudfztrB2Zg8OS0FMSYRBVvt
vDfg6FxxH1xcTVmU29QC4QKBgQCWAgoDmcgfm/4SGF6yPvKX6JYqH8EKh2yKx61Y
wt5uFPMMA33pWq/iRKRBVie8CbMfti2BCQ5fftEluVUbXdvQQTb1/pS1fdEWs8uh
OAxg+fiBwG4EaE19xgNzKyQ5zvDF4UfYUR/hXT6rzRJtDUWlFUDJdh84EzAaPpwg
1enI4QKBgHdvvmRZOLK3NjkskF+Gbdf99uleS/HyYxNwGzoEwcA68+VrDyJmu+2p
Zu+dWIQ0jqq4ph1cCJBdVkScW3QHztVhkYmNtUyLPeIt8v01bwp+JrhRCj7hyvXh
ddDg7MhEp4kd8a+GXiojn8xgztzzeM0gNXEO8+VHNxHQycRKbj3Y
-----END RSA PRIVATE KEY-----
`,
},
ExpiredServerCred: Credential{
Cert: `-----BEGIN CERTIFICATE-----
MIIEHzCCAwegAwIBAgIBAzANBgkqhkiG9w0BAQsFADBvMQswCQYDVQQGEwJVUzET
MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEzMDEG
A1UEAwwqY2hyb21lbGFiLXdpZmktdGVzdGJlZC1yb290Lm10di5nb29nbGUuY29t
MB4XDTIxMDkxNjA4MTAwOVoXDTIxMDkxNjA4MTAwOVowcTELMAkGA1UEBhMCVVMx
EzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxNTAz
BgNVBAMMLGNocm9tZWxhYi13aWZpLXRlc3RiZWQtc2VydmVyLm10di5nb29nbGUu
Y29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu1vHY/PvCESYYwZQ
xuYF9Lph6351c3epWtdN2O45+RkiSRg3Dzxl/VWmeGNkXo7Wi7bWlmV9JEJUWoRo
9ySfQL1zI44DvKiVeMMkYgWQv8PEFT4LZasCDRk9cet0h/a576bciAxD25V+e4gw
NAvgnlYV+2qV2j166ycVuDp+J4FvajBt4DglShOKvcpu2y0wyA7Xw2nfBmEb5wIi
XgAsVDRg85sLKtQk52H3pRa37lEaDCCLgK2o8+2TD0pni07uDyNAYXcGfFWQVXfO
5FPPOyb+6gO823FDhmqS5jPjqN2RpFUuuS1gZEivRtUs4wZUDar86mdoTYuNluuu
8/oXTwIDAQABo4HDMIHAMB0GA1UdDgQWBBQ1fK9eVnAxC/yyf0TAOd7Men0HTDAf
BgNVHSMEGDAWgBTrsmoASY+DBK+KC5QQGvXCA2c7yDAJBgNVHRMEAjAAMAsGA1Ud
DwQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATBRBgNVHREESjBIgg93d3cuZXhh
bXBsZS5jb22CD3d3dy5leGFtcGxlLm9yZ4IQbWFpbC5leGFtcGxlLmNvbYESZXhh
bXBsZUBkb21haW4uY29tMA0GCSqGSIb3DQEBCwUAA4IBAQCNaZfVkWrAVGBz4bKW
WWW+9qRgZWJLXB6ntspgXp/AuqvbO70iKhwUgbQ6ePtAtPIEewAFzxVIWAmSBbaP
X8dOYPY80NkiSx+ygcPqMaUeDC4pQkmlmtUCaP+JmgRoMhZ/ABIzcIBqD5zdccDS
YXGyKE0AczHnpRJk/xyW4YiMjl/S3soJUf/BcsX9utylf4iWuAtUzEJvhJmkMZw3
h44H4130hndFi2k3sTcYee5rq2CBwMQWFk2GA4OyMF4TBeI/dyJ30GyNPtWy+YQ1
7IQyBQfT/0G+OItN13Va4i6/QLspl5fclxO2VAlzp92qhOCZ/PZ9m2I3mNEt6kaf
ZxLP
-----END CERTIFICATE-----
`,
PrivateKey: `-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAu1vHY/PvCESYYwZQxuYF9Lph6351c3epWtdN2O45+RkiSRg3
Dzxl/VWmeGNkXo7Wi7bWlmV9JEJUWoRo9ySfQL1zI44DvKiVeMMkYgWQv8PEFT4L
ZasCDRk9cet0h/a576bciAxD25V+e4gwNAvgnlYV+2qV2j166ycVuDp+J4FvajBt
4DglShOKvcpu2y0wyA7Xw2nfBmEb5wIiXgAsVDRg85sLKtQk52H3pRa37lEaDCCL
gK2o8+2TD0pni07uDyNAYXcGfFWQVXfO5FPPOyb+6gO823FDhmqS5jPjqN2RpFUu
uS1gZEivRtUs4wZUDar86mdoTYuNluuu8/oXTwIDAQABAoIBAGBKcRVrvwPOzUrH
aihu+8ylJcI0QgTQERgA45+EAAOH6VkLuvB3qCslI+NnoaP/YUB4/ZxaGJDUDipf
Ntsd1UMemthBGqaRNhDUqhQ+rAACivon4w+jbfBxcmTkEAX4xeLnLRw2wYFPOawf
eDanjA+USsPmKZH6WvwUIFOIrGF8gKsqvHuCnEVk43L2Vsl8RHEBPSfjdm/pHKqJ
zeSUFKhXIOOAnjUi0rgp5DsSaSIVqfuDQhp8tkBN3om0yC8zEMKmGjx31RelsxSm
9dC3G2ezXnTfcpALbXBGV7lAPYY4tCgvCdLcbvxnFW6I14+34f0n2X6LY8H4KiA6
xhx3MuECgYEA6wfXZlgrtJOVyPRadTcWuSXsh8Vb/K2D23Us4UgWAfwFRwluVWU2
ip+jhNAlPstWsj0oa955Lbx/wN6/XgEEVijqXBbh56A491R1JUYPM6Gs7l2d+P70
MEn4axE48ECMo2TH0odSJw09bf19DGv41jKS8uLJxHmdVBDv/nAjJ2kCgYEAzBMY
I5cyGEX+uyUpbeJjfceyuIGB/KZNM+Qr3cJmj5w9kDBchPahinLRpPj63ag1dfto
UzZolbBeAXADL9EDGnZ9BBKBaH9VgTJOkqME1rXGcs5LaS0NzsnNOYtRBzX74NGr
mEj5oIxmILqW78WhgYbOO7/Mr0tVwgpgg+AdafcCgYEA1v6PTbGuGTtAM1lDPiIs
iSVl3zTsVpGrIp9ndJTqfNo7QaYg5cD2SYyKmj2FNJHxNo63YSVbmDjsbFPWnnkz
rFU1PRQ5hhaMxcLefkA+O67TcCD3FwSx/1JLCjXw7eU+QWE5YR4kSlDUNr9BGpHS
SK5uufw3MaFGB9aOkyOlJLECgYAsCI6z10Ly49+ECA+5axjmoflZQHCI0GVmJfyl
G/Y/VIogG59K/WB73CyKOUMAIvRuIbIwClRkwCp4iu/VGHdf9WMiRs/veVI8z1sO
3ugDYDOSwBqbdiI9lWOX4Ay6zpYru3IYKN7cGo9KzpgU4oLnzOuhDtCenlXBybVr
nycZnwKBgQCjo14ttxVQUXsJbdyD0LckIVbUg31Ex9pcH7U6THYJLO2ixpqxMFih
ef0HNXS8E57SHJK4Gwz68IV9uerry3Xumv5PbipBcZJmwsUpuI35T87L7VPd1/0+
VeHnvF4GdYCApvqJVwYEX5MJ9k+c0Qk4oNbhcC7G6LPxsyy7qs4fqg==
-----END RSA PRIVATE KEY-----
`,
},
}
// TestCert1 retrieves a well-known set of certificates, for use by tests that want to establish an
// authenticator and client (e.g., for network EAP tests). This certificate does not provide any real security or
// privacy guarantees, as the certificate and private key are well-known (i.e., published in public repositories).
// NOTE: The certs will expire in around Jul 3020 except the one in ExpiredServerCred.
func TestCert1() CertStore {
return certSet1
}
// TestCert2 provides the certs generated with a CA different from the one used for generating TestCert1.
// Both the private key and the Common Name of the CA are different.
// NOTE: The certs will expire in around Jul 3020 except the one in ExpiredServerCred.
func TestCert2() CertStore {
return certSet2
}
// TestCert3 provides the certs where the server and expired server cert contain the same alternative subject
// name entries as TestCert3AltSubjectMatch.
// NOTE: The certs will expire in around Jul 3020 except the one in ExpiredServerCred.
func TestCert3() CertStore {
return certSet3
}
// TestCert3AltSubjectMatch provides the alternative subject name entries contained in TestCert3().ServerCred.Cert
// and TestCert3().ExpiredServerCred.Cert in encoded json format.
func TestCert3AltSubjectMatch() []string {
return append([]string(nil), certSet3AltSubjectMatch...)
}
// TestCert3DomainSuffixMatch provides the domain suffix entries contained in TestCert3().ServerCred.Cert
// and TestCert3().ExpiredServerCred.Cert.
func TestCert3DomainSuffixMatch() []string {
return certSet3DomainSuffixMatch
}