Skip to content

Commit 2094627

Browse files
authored
Merge branch 'globalsign:master' into master
2 parents 0418aff + 75756af commit 2094627

File tree

4 files changed

+84
-44
lines changed

4 files changed

+84
-44
lines changed

.github/workflows/go.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,17 @@ name: Go
22

33
on:
44
push:
5-
branches: [ master, development ]
5+
branches: [ master ]
66
pull_request:
7-
branches: [ master, development ]
7+
branches: [ master ]
88

99
jobs:
1010

1111
build-linux:
1212

1313
strategy:
1414
matrix:
15-
go-version: [1.13.x, 1.14.x, 1.15.x, 1.16.x]
15+
go-version: [1.21.x, 1.22.x]
1616

1717
runs-on: ubuntu-latest
1818

@@ -43,7 +43,7 @@ jobs:
4343

4444
strategy:
4545
matrix:
46-
go-version: [1.13.x, 1.14.x, 1.15.x, 1.16.x]
46+
go-version: [1.21.x, 1.22.x]
4747

4848
runs-on: macos-latest
4949

@@ -67,7 +67,7 @@ jobs:
6767

6868
strategy:
6969
matrix:
70-
go-version: [1.13.x, 1.14.x, 1.15.x, 1.16.x]
70+
go-version: [1.21.x, 1.22.x]
7171

7272
runs-on: windows-latest
7373

cmd/estclient/config_test.go

Lines changed: 59 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import (
2727
"encoding/pem"
2828
"errors"
2929
"flag"
30-
"io/ioutil"
30+
"io"
3131
"log"
3232
"net"
3333
"net/http"
@@ -250,14 +250,18 @@ func TestCACerts(t *testing.T) {
250250
var testcases = []struct {
251251
name string
252252
args []string
253-
err error
253+
err []error
254254
}{
255255
{
256256
name: "NoAnchor",
257257
args: []string{
258258
"-" + serverFlag, uri,
259259
},
260-
err: errors.New("certificate signed by unknown authority"),
260+
err: []error{
261+
errors.New("failed to verify certificate"),
262+
errors.New("certificate is not trusted"),
263+
errors.New("certificate signed by unknown authority"),
264+
},
261265
},
262266
{
263267
name: "Insecure",
@@ -289,7 +293,7 @@ func TestCACerts(t *testing.T) {
289293
"-" + apsFlag, "triggererrors",
290294
"-" + explicitAnchorFlag, cafile,
291295
},
292-
err: errors.New("internal server error"),
296+
err: []error{errors.New("internal server error")},
293297
},
294298
}
295299

@@ -299,7 +303,7 @@ func TestCACerts(t *testing.T) {
299303
t.Run(tc.name, func(t *testing.T) {
300304
buf := bytes.NewBuffer([]byte{})
301305
err := cacerts(buf, makeCmdFlagSet(t, cacertsCmd, tc.args))
302-
verifyErrorTextContains(t, err, tc.err)
306+
verifyErrorTextContainsOneOf(t, err, tc.err)
303307
if tc.err != nil {
304308
return
305309
}
@@ -322,14 +326,18 @@ func TestCSRAttrs(t *testing.T) {
322326
name string
323327
args []string
324328
length int
325-
err error
329+
err []error
326330
}{
327331
{
328332
name: "NoAnchor",
329333
args: []string{
330334
"-" + serverFlag, uri,
331335
},
332-
err: errors.New("certificate signed by unknown authority"),
336+
err: []error{
337+
errors.New("failed to verify certificate"),
338+
errors.New("certificate is not trusted"),
339+
errors.New("certificate signed by unknown authority"),
340+
},
333341
},
334342
{
335343
name: "Insecure",
@@ -364,7 +372,9 @@ func TestCSRAttrs(t *testing.T) {
364372
"-" + apsFlag, "triggererrors",
365373
"-" + explicitAnchorFlag, cafile,
366374
},
367-
err: errors.New("internal server error"),
375+
err: []error{
376+
errors.New("internal server error"),
377+
},
368378
},
369379
}
370380

@@ -374,7 +384,7 @@ func TestCSRAttrs(t *testing.T) {
374384
t.Run(tc.name, func(t *testing.T) {
375385
buf := bytes.NewBuffer([]byte{})
376386
err := csrattrs(buf, makeCmdFlagSet(t, csrattrsCmd, tc.args))
377-
verifyErrorTextContains(t, err, tc.err)
387+
verifyErrorTextContainsOneOf(t, err, tc.err)
378388

379389
if tc.err != nil {
380390
return
@@ -507,7 +517,7 @@ func TestReenroll(t *testing.T) {
507517
tc := tc
508518

509519
t.Run(tc.name, func(t *testing.T) {
510-
f, err := ioutil.TempFile("", "reenroll_test_")
520+
f, err := os.CreateTemp("", "reenroll_test_")
511521
if err != nil {
512522
t.Fatalf("failed to create temporary file: %v", err)
513523
}
@@ -809,9 +819,9 @@ func newTestServer(t *testing.T) (*httptest.Server, *x509.Certificate, string) {
809819
}
810820

811821
checkBasicAuth := func(
812-
ctx context.Context,
813-
r *http.Request,
814-
aps, username, password string,
822+
_ context.Context,
823+
_ *http.Request,
824+
_, username, password string,
815825
) error {
816826
if username != "testuser" || password != "xyzzy" {
817827
return errors.New("bad credentials")
@@ -834,7 +844,7 @@ func newTestServer(t *testing.T) (*httptest.Server, *x509.Certificate, string) {
834844

835845
s := httptest.NewUnstartedServer(r)
836846

837-
s.Config.ErrorLog = log.New(ioutil.Discard, "", 0)
847+
s.Config.ErrorLog = log.New(io.Discard, "", 0)
838848

839849
var clientCAs = x509.NewCertPool()
840850
clientCAs.AddCert(caCerts[len(caCerts)-1])
@@ -907,7 +917,7 @@ func makeCmdFlagSet(t *testing.T, cmd string, args []string) *flag.FlagSet {
907917
t.Fatalf("command not recognized: %s", cmd)
908918
}
909919

910-
set := fcmd.FlagSet(ioutil.Discard, 80)
920+
set := fcmd.FlagSet(io.Discard, 80)
911921
if err := set.Parse(args); err != nil {
912922
t.Fatalf("failed to parse flag set: %v", err)
913923
}
@@ -918,7 +928,7 @@ func makeCmdFlagSet(t *testing.T, cmd string, args []string) *flag.FlagSet {
918928
func makeRootCertFile(t *testing.T, cert *x509.Certificate) (string, func(t *testing.T)) {
919929
t.Helper()
920930

921-
f, err := ioutil.TempFile("", "estclient_test_")
931+
f, err := os.CreateTemp("", "estclient_test_")
922932
if err != nil {
923933
t.Fatalf("failed to create temporary file: %v", err)
924934
}
@@ -951,6 +961,38 @@ func verifyErrorTextContains(t *testing.T, got, want error) {
951961
}
952962
}
953963

964+
// verifyErrorTextContainsOneOf tests if the error text contains one of the strings.
965+
// This is useful for testing errors that output different text on different
966+
// platforms or between versions.
967+
func verifyErrorTextContainsOneOf(t *testing.T, got error, wants []error) {
968+
t.Helper()
969+
970+
if got == nil && len(wants) == 0 {
971+
return
972+
}
973+
974+
if got == nil && len(wants) > 0 {
975+
t.Fatalf("got nil, want one of %v", wants)
976+
}
977+
978+
if got != nil && len(wants) == 0 {
979+
t.Fatalf("got %v, want no error", got)
980+
}
981+
982+
// got != nil && len(wants) > 0
983+
984+
contains := false
985+
for _, w := range wants {
986+
if strings.Contains(got.Error(), w.Error()) {
987+
contains = true
988+
}
989+
}
990+
991+
if !contains {
992+
t.Fatalf("got error %v, want one of %v", got, wants)
993+
}
994+
}
995+
954996
// assertPKIXNamesEqual tests if two pkix.Name objects are equal in all
955997
// respects other than the ordering of the name attributes.
956998
func assertPKIXNamesEqual(t *testing.T, first, second pkix.Name) {
@@ -972,11 +1014,7 @@ func assertPKIXNamesEqual(t *testing.T, first, second pkix.Name) {
9721014
}
9731015
}
9741016

975-
if s[i].Value.(string) < s[j].Value.(string) {
976-
return true
977-
}
978-
979-
return false
1017+
return s[i].Value.(string) < s[j].Value.(string)
9801018
}
9811019
}
9821020

go.mod

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module github.com/globalsign/est
22

3-
go 1.13
3+
go 1.22.1
44

55
require (
66
github.com/ThalesIgnite/crypto11 v1.2.1
@@ -9,7 +9,14 @@ require (
99
github.com/go-chi/chi v4.1.2+incompatible
1010
github.com/google/go-tpm v0.3.2
1111
go.mozilla.org/pkcs7 v0.0.0-20200128120323-432b2356ecb1
12-
golang.org/x/crypto v0.0.0-20200602180216-279210d13fed
13-
golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43 // indirect
12+
golang.org/x/crypto v0.17.0
1413
golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba
1514
)
15+
16+
require (
17+
github.com/miekg/pkcs11 v1.0.3-0.20190429190417-a667d056470f // indirect
18+
github.com/pkg/errors v0.8.1 // indirect
19+
github.com/thales-e-security/pool v0.0.1 // indirect
20+
golang.org/x/sys v0.15.0 // indirect
21+
golang.org/x/term v0.15.0 // indirect
22+
)

go.sum

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4er
4545
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
4646
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
4747
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
48-
github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs=
4948
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
5049
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
5150
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
@@ -65,7 +64,6 @@ github.com/google/go-tpm v0.1.2-0.20190725015402-ae6dd98980d4/go.mod h1:H9HbmUG2
6564
github.com/google/go-tpm v0.3.0/go.mod h1:iVLWvrPp/bHeEkxTFi9WG6K9w0iy2yIszHwZGHPbzAw=
6665
github.com/google/go-tpm v0.3.2 h1:3iQQ2dlEf+1no7CLlfLPYzxhQy7j2G/emBqU5okydaw=
6766
github.com/google/go-tpm v0.3.2/go.mod h1:j71sMBTfp3X5jPHz852ZOfQMUOf65Gb/Th8pRmp7fvg=
68-
github.com/google/go-tpm-tools v0.0.0-20190906225433-1614c142f845 h1:2WNNKKRI+a5OZi5xiJVfDoOiUyfK/BU1D4w+N6967F4=
6967
github.com/google/go-tpm-tools v0.0.0-20190906225433-1614c142f845/go.mod h1:AVfHadzbdzHo54inR2x1v640jdi1YSi3NauM2DUsxk0=
7068
github.com/google/go-tpm-tools v0.2.0 h1:pBflcn8x5iFohPScqlmLaImrC7ts/EUJa7ZY4FkTFq4=
7169
github.com/google/go-tpm-tools v0.2.0/go.mod h1:npUd03rQ60lxN7tzeBJreG38RvWwme2N1reF/eeiBk4=
@@ -142,13 +140,11 @@ go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
142140
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
143141
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
144142
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
145-
golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9 h1:mKdxBk7AujPs8kU4m80U72y/zjbZ3UcXC7dClwKbUI0=
146143
golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
147144
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
148-
golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37 h1:cg5LA/zNPRzIXIWSCxQW10Rvpy94aQh3LT/ShoCpkHw=
149145
golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
150-
golang.org/x/crypto v0.0.0-20200602180216-279210d13fed h1:g4KENRiCMEx58Q7/ecwfT0N2o8z35Fnbsjig/Alf2T4=
151-
golang.org/x/crypto v0.0.0-20200602180216-279210d13fed/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
146+
golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k=
147+
golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
152148
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
153149
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
154150
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
@@ -159,10 +155,10 @@ golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73r
159155
golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
160156
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
161157
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
162-
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3 h1:0GoQqolDA55aaLxZyTzK/Y2ePZzZTUrRacwib7cNsYQ=
163158
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
164-
golang.org/x/net v0.0.0-20190522155817-f3200d17e092 h1:4QSRKanuywn15aTZvI/mIDEgPQpswuFndXpOj3rKEco=
165159
golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
160+
golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M=
161+
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
166162
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
167163
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
168164
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -172,17 +168,18 @@ golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5h
172168
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
173169
golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
174170
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
175-
golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a h1:1n5lsVfiQW3yfsRGu98756EH1YthsFqr/5mxHduZW2A=
176171
golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
177172
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
178173
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
179174
golang.org/x/sys v0.0.0-20201207223542-d4d67f95c62d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
180-
golang.org/x/sys v0.0.0-20210219172841-57ea560cfca1 h1:mDSj8NPponP6fRpRDblAGl5bpSHjPulHtk5lGl0gLSY=
181175
golang.org/x/sys v0.0.0-20210219172841-57ea560cfca1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
182-
golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43 h1:SgQ6LNaYJU0JIuEHv9+s6EbhSCwYeAf5Yvj6lpYlqAE=
183-
golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
184-
golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
176+
golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc=
177+
golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
178+
golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4=
179+
golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0=
185180
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
181+
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
182+
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
186183
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
187184
golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba h1:O8mE0/t419eoIwhTFpKVkHiTs/Igowgfkj25AcZrtiE=
188185
golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
@@ -191,7 +188,6 @@ golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGm
191188
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
192189
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
193190
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
194-
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
195191
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
196192
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
197193
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
@@ -209,7 +205,6 @@ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miE
209205
google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
210206
google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
211207
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
212-
google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c=
213208
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
214209
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
215210
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

0 commit comments

Comments
 (0)