Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated TLS certs, move to Go 1.18, fix code due staticcheck report #1023

Merged
merged 1 commit into from Jul 29, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
22 changes: 13 additions & 9 deletions .travis.yml
@@ -1,21 +1,25 @@
language: go
go:
- 1.18.x
- 1.17.x
- 1.16.x
go_import_path: github.com/nats-io/nats.go
install:
- go get -t ./...
- go get github.com/mattn/goveralls
- go get github.com/wadey/gocovmerge
- go install honnef.co/go/tools/cmd/staticcheck@v0.2.2
- go get -u github.com/client9/misspell/cmd/misspell
- if [[ "$TRAVIS_GO_VERSION" =~ 1.18 ]]; then
go install github.com/mattn/goveralls@latest;
go install github.com/wadey/gocovmerge@latest;
go install honnef.co/go/tools/cmd/staticcheck@latest;
go install github.com/client9/misspell/cmd/misspell@latest;
fi
before_script:
- $(exit $(go fmt ./... | wc -l))
- go vet -modfile=go_test.mod ./...
- find . -type f -name "*.go" | xargs misspell -error -locale US
- GOFLAGS="-mod=mod -modfile=go_test.mod" staticcheck ./...
- if [[ "$TRAVIS_GO_VERSION" =~ 1.18 ]]; then
find . -type f -name "*.go" | xargs misspell -error -locale US;
GOFLAGS="-mod=mod -modfile=go_test.mod" staticcheck ./...;
fi
script:
- go test -modfile=go_test.mod -v -run=TestNoRace -p=1 ./... --failfast -vet=off
- if [[ "$TRAVIS_GO_VERSION" =~ 1.17 ]]; then ./scripts/cov.sh TRAVIS; else go test -modfile=go_test.mod -race -v -p=1 ./... --failfast -vet=off; fi
- if [[ "$TRAVIS_GO_VERSION" =~ 1.18 ]]; then ./scripts/cov.sh TRAVIS; else go test -modfile=go_test.mod -race -v -p=1 ./... --failfast -vet=off; fi
after_success:
- if [[ "$TRAVIS_GO_VERSION" =~ 1.17 ]]; then $HOME/gopath/bin/goveralls -coverprofile=acc.out -service travis-ci; fi
- if [[ "$TRAVIS_GO_VERSION" =~ 1.18 ]]; then $HOME/gopath/bin/goveralls -coverprofile=acc.out -service travis-ci; fi
2 changes: 1 addition & 1 deletion go_test.mod
Expand Up @@ -4,7 +4,7 @@ go 1.17

require (
github.com/golang/protobuf v1.4.2
github.com/nats-io/nats-server/v2 v2.8.5-0.20220725185857-9446170af436
github.com/nats-io/nats-server/v2 v2.8.5-0.20220729163007-8aee7d5e51d4
github.com/nats-io/nkeys v0.3.0
github.com/nats-io/nuid v1.0.1
google.golang.org/protobuf v1.23.0
Expand Down
4 changes: 2 additions & 2 deletions go_test.sum
Expand Up @@ -20,8 +20,8 @@ github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA
github.com/minio/highwayhash v1.0.2/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY=
github.com/nats-io/jwt/v2 v2.3.0 h1:z2mA1a7tIf5ShggOFlR1oBPgd6hGqcDYsISxZByUzdI=
github.com/nats-io/jwt/v2 v2.3.0/go.mod h1:0tqz9Hlu6bCBFLWAASKhE5vUA4c24L9KPUUgvwumE/k=
github.com/nats-io/nats-server/v2 v2.8.5-0.20220725185857-9446170af436 h1:1klEMbLkqGBWaS5L/WM1rNL5n/yL4weFaWkgV+jXPVU=
github.com/nats-io/nats-server/v2 v2.8.5-0.20220725185857-9446170af436/go.mod h1:3Yg3ApyQxPlAs1KKHKV5pobV5VtZk+TtOiUJx/iqkkg=
github.com/nats-io/nats-server/v2 v2.8.5-0.20220729163007-8aee7d5e51d4 h1:hAhXb/iuQNPZe9y0wFift4hkiquMlNF5WuMhpoMlUUM=
github.com/nats-io/nats-server/v2 v2.8.5-0.20220729163007-8aee7d5e51d4/go.mod h1:3Yg3ApyQxPlAs1KKHKV5pobV5VtZk+TtOiUJx/iqkkg=
github.com/nats-io/nats.go v1.16.0/go.mod h1:BPko4oXsySz4aSWeFgOHLZs3G4Jq4ZAyE6/zMCxRT6w=
github.com/nats-io/nkeys v0.3.0 h1:cgM5tL53EvYRU+2YLXIK0G2mJtK12Ft9oeooSZMA2G8=
github.com/nats-io/nkeys v0.3.0/go.mod h1:gvUNGjVcM2IPr5rCsRsC6Wb3Hr2CQAm08dsxtV6A5y4=
Expand Down
4 changes: 2 additions & 2 deletions js.go
Expand Up @@ -3322,9 +3322,9 @@ const (
func (st StorageType) String() string {
switch st {
case MemoryStorage:
return strings.Title(memoryStorageString)
return "Memory"
case FileStorage:
return strings.Title(fileStorageString)
return "File"
default:
return "Unknown Storage Type"
}
Expand Down
4 changes: 2 additions & 2 deletions norace_test.go
Expand Up @@ -11,8 +11,8 @@
// See the License for the specific language governing permissions and
// limitations under the License.

//go:build !race
// +build !race
//go:build !race && !skip_no_race_tests
// +build !race,!skip_no_race_tests

package nats

Expand Down
8 changes: 4 additions & 4 deletions scripts/cov.sh
Expand Up @@ -3,10 +3,10 @@

rm -rf ./cov
mkdir cov
go test -modfile=go_test.mod --failfast -vet=off -v -covermode=atomic -coverprofile=./cov/nats.out -run='Test[^NoRace]'
go test -modfile=go_test.mod --failfast -vet=off -v -covermode=atomic -coverprofile=./cov/test.out -coverpkg=github.com/nats-io/nats.go -run='Test[^NoRace]' ./test
go test -modfile=go_test.mod --failfast -vet=off -v -covermode=atomic -coverprofile=./cov/builtin.out -coverpkg=github.com/nats-io/nats.go/encoders/builtin ./test -run EncBuiltin
go test -modfile=go_test.mod --failfast -vet=off -v -covermode=atomic -coverprofile=./cov/protobuf.out -coverpkg=github.com/nats-io/nats.go/encoders/protobuf ./test -run EncProto
go test -modfile=go_test.mod --failfast -vet=off -v -covermode=atomic -coverprofile=./cov/nats.out . -tags=skip_no_race_tests
go test -modfile=go_test.mod --failfast -vet=off -v -covermode=atomic -coverprofile=./cov/test.out -coverpkg=github.com/nats-io/nats.go ./test -tags=skip_no_race_tests
go test -modfile=go_test.mod --failfast -vet=off -v -covermode=atomic -coverprofile=./cov/builtin.out -coverpkg=github.com/nats-io/nats.go/encoders/builtin ./test -run EncBuiltin -tags=skip_no_race_tests
go test -modfile=go_test.mod --failfast -vet=off -v -covermode=atomic -coverprofile=./cov/protobuf.out -coverpkg=github.com/nats-io/nats.go/encoders/protobuf ./test -run EncProto -tags=skip_no_race_tests
gocovmerge ./cov/*.out > acc.out
rm -rf ./cov

Expand Down
43 changes: 25 additions & 18 deletions test/configs/certs/ca.pem
@@ -1,20 +1,27 @@
-----BEGIN CERTIFICATE-----
MIIDXDCCAkQCCQDI2Vsry8+BDDANBgkqhkiG9w0BAQsFADBwMQswCQYDVQQGEwJV
UzELMAkGA1UECAwCQ0ExEDAOBgNVBAoMB1N5bmFkaWExEDAOBgNVBAsMB25hdHMu
aW8xEjAQBgNVBAMMCWxvY2FsaG9zdDEcMBoGCSqGSIb3DQEJARYNZGVyZWtAbmF0
cy5pbzAeFw0xOTEwMTcxMzAzNThaFw0yOTEwMTQxMzAzNThaMHAxCzAJBgNVBAYT
AlVTMQswCQYDVQQIDAJDQTEQMA4GA1UECgwHU3luYWRpYTEQMA4GA1UECwwHbmF0
cy5pbzESMBAGA1UEAwwJbG9jYWxob3N0MRwwGgYJKoZIhvcNAQkBFg1kZXJla0Bu
YXRzLmlvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAohX2dXdHIDM5
yZDWk96b0mwRTHhBIOKtMPTTs/zKmlAgjjDxW7kSg0JimTNds9YbJ33FhcEJKXtV
KH3Cn0uyZPS1VcTzPr7XP2QI+9SqqLuahkHAhgqoRwK62fTFJgzdZO0f9w9WwzMi
gGk/v7KkKFa/9xKLCa9DTEJ9FA34HuYoBxXMZvypDm8d+0kxOCdThpzhKeucE4ya
jFlvOP9/l7GyjlczzAD/nt/QhPfSeIx1MF0ICj5qzwPD/jB1ekoL9OShoHvoEyXo
UO13GMdVmZqwJcS7Vk5XNEZoH0cxSw/SrZGCE9SFjR1t8TAe3QZiZ9E8EAg4IzJQ
jfR2II5LiQIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBIwib+0xLth/1+URtgQFn8
dvQNqnJjlqC27U48qiTCTC5vJWbQDqUg9o6gtwZyYEHQ7dMmn68ozDzcGTCxaikV
n01Bj2ijODK96Jrm/P5aVkP5Cn06FfudluZI2Q/A1cqTsa8V4rj02PpwCcLEaDqX
yhztlhbKypWrlGuWpVlDBWstyRar98vvRK1XEyBu2NHp2fy49cwJCub4Cmz920fh
oiIwzXIKtfnf1GEjUnsuFPMgCxvhjirYNPWWjqaBldrM/dBJqwTyZf/p6g40vufN
JJDc65c4tyRwBSBdFn+Q4zD44M0AR/8THAeIfsT42lyl8fMV5A4fe1nAVJDC4Z/H
MIIEkDCCA3igAwIBAgIUUbd79SbAx/TJPRA+oYaMR2cqRmAwDQYJKoZIhvcNAQEL
BQAwcTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExEDAOBgNVBAoM
B1N5bmFkaWExEDAOBgNVBAsMB25hdHMuaW8xKTAnBgNVBAMMIENlcnRpZmljYXRl
IEF1dGhvcml0eSAyMDIyLTA3LTI4MB4XDTIyMDcyODA2NTI1MloXDTIyMDgyNzA2
NTI1MlowcTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExEDAOBgNV
BAoMB1N5bmFkaWExEDAOBgNVBAsMB25hdHMuaW8xKTAnBgNVBAMMIENlcnRpZmlj
YXRlIEF1dGhvcml0eSAyMDIyLTA3LTI4MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
MIIBCgKCAQEAzWKnM4fc98EH3RxzNAPZvKHYJiLI+SsR5CJcNy1sj3bR9dIG33V9
vK6c7lnVTvj1yLxxwYeDzNrVPsd6T4qjkZjA+UGAEapSHgfw7bKewAbIwIXVOR1s
SxoPuSQPGg7X7KEbtsAFBeXpk1gQbV+I4C9+Sa4HKIpRs8C6ZPxRmSgwxtCnkDRE
wTvCHKddX3blcrz0yIYv/t6/g9Ei2sAIbEi7Tju5GqMzcrHVP5y/bEogmN/B9dW8
6FsrkbEn7ir6CurRVW4gzqo+vpD6zY7LqFT4RvrQG04QEZxXmV/KnQAnBUg1wrOb
rcB+qD3lqhZTgoOcA3yoA/Et3B9GsVVRdQIDAQABo4IBHjCCARowHQYDVR0OBBYE
FErCEqhWHwhKmzNCEPJ1hsNFF0wUMIGuBgNVHSMEgaYwgaOAFErCEqhWHwhKmzNC
EPJ1hsNFF0wUoXWkczBxMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5p
YTEQMA4GA1UECgwHU3luYWRpYTEQMA4GA1UECwwHbmF0cy5pbzEpMCcGA1UEAwwg
Q2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMjItMDctMjiCFFG3e/UmwMf0yT0QPqGG
jEdnKkZgMAwGA1UdEwQFMAMBAf8wOgYJYIZIAYb4QgENBC0WK25hdHMuaW8gbmF0
cy1zZXJ2ZXIgdGVzdC1zdWl0ZSB0cmFuc2llbnQgQ0EwDQYJKoZIhvcNAQELBQAD
ggEBALVWJo2ZiafGd76Tvg/08ap7kJL8SBLosXoaD6gRAaqC5alG0bB8/pgl3uNJ
EUhBYp0txjngJorE6eQjW5hoEZLKJmHfct7v4kLICEk95T3xk1jUwnr/YKboawv6
HXpelaz2f9J4UIiIe8i9NivUp0C/h3qhdwjk46b7GjSSobyc1+0p+pBjPJUbXpJv
/1G70Ap+5P9E7f2bdFgud4y6I05tnflklaM/PB7MxJ86j5/jhqK5h9BJKE62zI3z
2LEgJAmuUREThPzVuw8+4rCdK2WMQ9iQyx6IDMrUkyDWY9D2rmrUGuXX6jIPlLja
509Q4MQLUj9Ou1lF60caBg3bq9c=
-----END CERTIFICATE-----
115 changes: 97 additions & 18 deletions test/configs/certs/client-cert.pem
@@ -1,20 +1,99 @@
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
38:93:ed:6f:04:c5:57:98:f2:5b:ff:e6:56:8b:ae:63:b7:8c:45:59
Signature Algorithm: sha256WithRSAEncryption
Issuer: C=US, ST=California, O=Synadia, OU=nats.io, CN=Certificate Authority 2022-07-28
Validity
Not Before: Jul 28 06:52:52 2022 GMT
Not After : Jul 25 06:52:52 2032 GMT
Subject: C=US, ST=California, O=Synadia, OU=nats.io, CN=localhost
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public-Key: (2048 bit)
Modulus:
00:ac:9c:3e:9d:3b:7a:12:56:85:78:ca:df:9c:fc:
0c:7e:5e:f2:4f:22:33:46:81:38:53:d7:a7:25:8f:
d7:ee:16:13:e2:67:49:88:f6:94:99:f0:a9:a6:db:
fe:7a:17:c9:e3:df:31:73:71:38:70:3a:96:1e:99:
7b:5d:07:e3:63:e4:e8:bf:99:f7:3d:5c:27:f5:b7:
37:29:da:ee:82:80:00:d4:c8:d3:1b:36:0d:8b:d3:
8a:9b:8e:12:a1:4d:0c:c5:22:f8:56:3b:6a:1a:fb:
e9:3d:08:1e:13:7f:55:6e:2e:65:93:9a:90:54:03:
6d:0d:e6:44:d6:f7:c0:d7:d8:e1:c7:1e:c2:9b:a3:
6e:88:f1:7c:58:08:a2:9f:13:cc:5b:b9:11:2c:1d:
23:6f:3a:ae:47:9a:0f:6a:ce:e5:80:34:09:e6:e3:
fd:76:4a:cf:5a:18:bb:9c:c5:c1:74:49:67:77:1b:
ba:28:86:31:a6:fc:12:af:4a:85:1b:73:5b:f4:d6:
42:ff:0c:1c:49:e7:31:f2:5a:2a:1e:cd:87:cb:22:
ff:70:1c:48:ed:ba:e0:be:f0:bc:9e:e0:dc:59:db:
a5:74:25:58:b3:61:04:f6:33:28:6b:07:25:60:0f:
72:93:16:6c:9f:b0:ad:4a:18:f7:9e:29:1e:b7:61:
34:17
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Comment:
nats.io nats-server test-suite certificate
X509v3 Subject Key Identifier:
1F:14:EF:2B:53:AB:28:4A:93:42:98:AE:85:06:0F:B4:7D:DC:36:AE
X509v3 Authority Key Identifier:
keyid:4A:C2:12:A8:56:1F:08:4A:9B:33:42:10:F2:75:86:C3:45:17:4C:14
DirName:/C=US/ST=California/O=Synadia/OU=nats.io/CN=Certificate Authority 2022-07-28
serial:51:B7:7B:F5:26:C0:C7:F4:C9:3D:10:3E:A1:86:8C:47:67:2A:46:60

X509v3 Subject Alternative Name:
DNS:localhost, IP Address:127.0.0.1, IP Address:0:0:0:0:0:0:0:1, email:derek@nats.io
Netscape Cert Type:
SSL Client
X509v3 Key Usage:
Digital Signature, Key Encipherment
X509v3 Extended Key Usage:
TLS Web Client Authentication
Signature Algorithm: sha256WithRSAEncryption
4b:c0:a6:70:49:fa:2d:c0:99:df:0f:0b:1b:1e:4a:68:eb:c4:
48:7c:d2:93:9d:ca:66:e2:c6:76:0f:4a:79:5a:f8:ad:d0:de:
18:ad:05:66:17:1d:c2:0f:00:76:d2:a2:70:7f:38:51:2d:69:
ae:d3:59:fb:ba:c3:4d:5a:69:e8:bd:25:73:22:c7:93:c7:05:
c2:12:31:d0:5a:4e:11:2f:74:10:66:c0:98:b9:2b:43:f0:61:
22:05:82:ec:f7:57:2a:cc:56:9d:44:d4:2d:80:10:5d:87:31:
39:d3:7f:12:35:cb:60:11:fc:29:22:2c:17:ab:85:5f:83:b4:
57:d1:67:7a:86:04:10:dc:e8:84:b0:f3:1d:36:9a:71:d2:c7:
f2:ce:36:63:3a:c1:6e:4b:29:d9:77:c8:e0:b9:fd:73:77:3f:
83:1e:bb:99:1f:6c:67:da:d1:34:b2:47:a2:4a:ef:00:23:02:
4f:10:ef:24:b2:70:00:ce:26:3e:72:5f:a5:8a:1d:2b:3e:34:
2d:c7:c5:60:dc:33:69:88:1e:06:a3:c3:90:58:09:71:ca:6a:
d9:7e:13:5a:81:c0:0d:44:40:52:41:8d:1b:e9:2f:4c:cd:68:
68:68:d3:60:c7:3f:61:5c:ab:65:a4:98:c9:8b:7b:b5:fc:dc:
86:d1:a3:13
-----BEGIN CERTIFICATE-----
MIIDQjCCAiqgAwIBAgIJAJCSLX9jr5WzMA0GCSqGSIb3DQEBBQUAMHAxCzAJBgNV
BAYTAlVTMQswCQYDVQQIDAJDQTEQMA4GA1UECgwHU3luYWRpYTEQMA4GA1UECwwH
bmF0cy5pbzESMBAGA1UEAwwJbG9jYWxob3N0MRwwGgYJKoZIhvcNAQkBFg1kZXJl
a0BuYXRzLmlvMB4XDTE5MTAxNzEzMjI0MloXDTI5MTAxNDEzMjI0MlowDTELMAkG
A1UEBhMCVVMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCsnD6dO3oS
VoV4yt+c/Ax+XvJPIjNGgThT16clj9fuFhPiZ0mI9pSZ8Kmm2/56F8nj3zFzcThw
OpYemXtdB+Nj5Oi/mfc9XCf1tzcp2u6CgADUyNMbNg2L04qbjhKhTQzFIvhWO2oa
++k9CB4Tf1VuLmWTmpBUA20N5kTW98DX2OHHHsKbo26I8XxYCKKfE8xbuREsHSNv
Oq5Hmg9qzuWANAnm4/12Ss9aGLucxcF0SWd3G7oohjGm/BKvSoUbc1v01kL/DBxJ
5zHyWioezYfLIv9wHEjtuuC+8Lye4NxZ26V0JVizYQT2MyhrByVgD3KTFmyfsK1K
GPeeKR63YTQXAgMBAAGjQjBAMCkGA1UdEQQiMCCCCWxvY2FsaG9zdIcEfwAAAYEN
ZGVyZWtAbmF0cy5pbzATBgNVHSUEDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQUF
AAOCAQEAfGUnzmpXXigAJxcnVKQy1ago+GGOAGldlDKIcHoofkYibhWWrrojulHF
pRPRVKm2S/P4rRnSsjrPfpf6I2Icd+oVdVxrsWcN5itbul8Xymsjl2gMSJSHknYs
wTYNjdM4opRioArK69aRa26xXlxRs8YpRErF8Nb5mkxgvtUgtM8t/T/28MBprc7x
7NuYvohKlOcWbgdBYI+e3CA2XLRG/A+9EmOe8g66vW/uY0eaiWduBJSwXhd+stjg
elXYnK+EEUpJIK9DeS7r6k6HreNZ2FPM90RxdbMP7Q+i3bJwic4cJG3QOdLl+IqK
tME8kUPD/63mEDHHMJjgAktgaFX4bQ==
MIIE5zCCA8+gAwIBAgIUOJPtbwTFV5jyW//mVouuY7eMRVkwDQYJKoZIhvcNAQEL
BQAwcTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExEDAOBgNVBAoM
B1N5bmFkaWExEDAOBgNVBAsMB25hdHMuaW8xKTAnBgNVBAMMIENlcnRpZmljYXRl
IEF1dGhvcml0eSAyMDIyLTA3LTI4MB4XDTIyMDcyODA2NTI1MloXDTMyMDcyNTA2
NTI1MlowWjELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExEDAOBgNV
BAoMB1N5bmFkaWExEDAOBgNVBAsMB25hdHMuaW8xEjAQBgNVBAMMCWxvY2FsaG9z
dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKycPp07ehJWhXjK35z8
DH5e8k8iM0aBOFPXpyWP1+4WE+JnSYj2lJnwqabb/noXyePfMXNxOHA6lh6Ze10H
42Pk6L+Z9z1cJ/W3Nyna7oKAANTI0xs2DYvTipuOEqFNDMUi+FY7ahr76T0IHhN/
VW4uZZOakFQDbQ3mRNb3wNfY4ccewpujbojxfFgIop8TzFu5ESwdI286rkeaD2rO
5YA0Cebj/XZKz1oYu5zFwXRJZ3cbuiiGMab8Eq9KhRtzW/TWQv8MHEnnMfJaKh7N
h8si/3AcSO264L7wvJ7g3FnbpXQlWLNhBPYzKGsHJWAPcpMWbJ+wrUoY954pHrdh
NBcCAwEAAaOCAYwwggGIMAkGA1UdEwQCMAAwOQYJYIZIAYb4QgENBCwWKm5hdHMu
aW8gbmF0cy1zZXJ2ZXIgdGVzdC1zdWl0ZSBjZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQU
HxTvK1OrKEqTQpiuhQYPtH3cNq4wga4GA1UdIwSBpjCBo4AUSsISqFYfCEqbM0IQ
8nWGw0UXTBShdaRzMHExCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlh
MRAwDgYDVQQKDAdTeW5hZGlhMRAwDgYDVQQLDAduYXRzLmlvMSkwJwYDVQQDDCBD
ZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAyMi0wNy0yOIIUUbd79SbAx/TJPRA+oYaM
R2cqRmAwOwYDVR0RBDQwMoIJbG9jYWxob3N0hwR/AAABhxAAAAAAAAAAAAAAAAAA
AAABgQ1kZXJla0BuYXRzLmlvMBEGCWCGSAGG+EIBAQQEAwIHgDALBgNVHQ8EBAMC
BaAwEwYDVR0lBAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAEvApnBJ
+i3Amd8PCxseSmjrxEh80pOdymbixnYPSnla+K3Q3hitBWYXHcIPAHbSonB/OFEt
aa7TWfu6w01aaei9JXMix5PHBcISMdBaThEvdBBmwJi5K0PwYSIFguz3VyrMVp1E
1C2AEF2HMTnTfxI1y2AR/CkiLBerhV+DtFfRZ3qGBBDc6ISw8x02mnHSx/LONmM6
wW5LKdl3yOC5/XN3P4Meu5kfbGfa0TSyR6JK7wAjAk8Q7ySycADOJj5yX6WKHSs+
NC3HxWDcM2mIHgajw5BYCXHKatl+E1qBwA1EQFJBjRvpL0zNaGho02DHP2Fcq2Wk
mMmLe7X83IbRoxM=
-----END CERTIFICATE-----