Skip to content

Commit 62e09de

Browse files
authored
Merge pull request #1647 from smallstep/go-jose
Upgrade go.step.sm/crypto to use go-jose/v3
2 parents 2c42907 + b20af51 commit 62e09de

18 files changed

+83
-90
lines changed

acme/account_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ func TestKeyToID(t *testing.T) {
2525
jwk.Key = "foo"
2626
return test{
2727
jwk: jwk,
28-
err: NewErrorISE("error generating jwk thumbprint: square/go-jose: unknown key type 'string'"),
28+
err: NewErrorISE("error generating jwk thumbprint: go-jose/go-jose: unknown key type 'string'"),
2929
}
3030
},
3131
"ok": func(t *testing.T) test {

acme/api/middleware.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -449,11 +449,11 @@ func verifyAndExtractJWSPayload(next nextHTTP) nextHTTP {
449449
// the JWK by patching the JWS signatures if they're determined to be too short.
450450
//
451451
// Generally this shouldn't happen, but we've observed this to be the case with
452-
// the macOS ACME client, which seems to omit (at least one) leading null byte(s).
453-
// The error returned is `square/go-jose: error in cryptographic primitive`, which
454-
// is a sentinel error that hides the details of the actual underlying error, which
455-
// is as follows: `square/go-jose: invalid signature size, have 63 bytes, wanted 64`,
456-
// for ES256.
452+
// the macOS ACME client, which seems to omit (at least one) leading null
453+
// byte(s). The error returned is `go-jose/go-jose: error in cryptographic
454+
// primitive`, which is a sentinel error that hides the details of the actual
455+
// underlying error, which is as follows: `go-jose/go-jose: invalid signature
456+
// size, have 63 bytes, wanted 64`, for ES256.
457457
func retryVerificationWithPatchedSignatures(jws *jose.JSONWebSignature, jwk *jose.JSONWebKey) (data []byte, err error) {
458458
originalSignatureValues := make([][]byte, len(jws.Signatures))
459459
patched := false

acme/api/middleware_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,7 @@ func TestHandler_parseJWS(t *testing.T) {
356356
return test{
357357
body: strings.NewReader("foo"),
358358
statusCode: 400,
359-
err: acme.NewError(acme.ErrorMalformedType, "failed to parse JWS from request body: square/go-jose: compact JWS format must have three parts"),
359+
err: acme.NewError(acme.ErrorMalformedType, "failed to parse JWS from request body: go-jose/go-jose: compact JWS format must have three parts"),
360360
}
361361
},
362362
"ok": func(t *testing.T) test {
@@ -480,7 +480,7 @@ func TestHandler_verifyAndExtractJWSPayload(t *testing.T) {
480480
return test{
481481
ctx: ctx,
482482
statusCode: 400,
483-
err: acme.NewError(acme.ErrorMalformedType, "error verifying jws: square/go-jose: error in cryptographic primitive"),
483+
err: acme.NewError(acme.ErrorMalformedType, "error verifying jws: go-jose/go-jose: error in cryptographic primitive"),
484484
}
485485
},
486486
"fail/verify-jws-failure-too-many-signatures": func(t *testing.T) test {
@@ -492,7 +492,7 @@ func TestHandler_verifyAndExtractJWSPayload(t *testing.T) {
492492
return test{
493493
ctx: ctx,
494494
statusCode: 400,
495-
err: acme.NewError(acme.ErrorMalformedType, "error verifying jws: square/go-jose: too many signatures in payload; expecting only one"),
495+
err: acme.NewError(acme.ErrorMalformedType, "error verifying jws: go-jose/go-jose: too many signatures in payload; expecting only one"),
496496
}
497497
},
498498
"fail/apple-acmeclient-omitting-leading-null-byte-in-signature-with-wrong-jwk": func(t *testing.T) test {
@@ -507,7 +507,7 @@ func TestHandler_verifyAndExtractJWSPayload(t *testing.T) {
507507
return test{
508508
ctx: ctx,
509509
statusCode: 400,
510-
err: acme.NewError(acme.ErrorMalformedType, "error verifying jws: square/go-jose: error in cryptographic primitive"),
510+
err: acme.NewError(acme.ErrorMalformedType, "error verifying jws: go-jose/go-jose: error in cryptographic primitive"),
511511
}
512512
},
513513
"fail/algorithm-mismatch": func(t *testing.T) test {
@@ -1817,7 +1817,7 @@ func Test_retryVerificationWithPatchedSignatures(t *testing.T) {
18171817
{"ok/patched-r", patchedR, patchedRJWK, []byte(`test-1105`), `AK0D2CmH5Xyp5YASqg3lrCR9kyeohwJ6Lu7Bc15ZmA-AK16i32LqqLVhESq52tsH84dKbu1EljtoM5TqkSvaqg`, nil},
18181818
{"ok/patched-s", patchedS, patchedSJWK, []byte(`test-66`), `krtSKSgVB04oqx6i9QLeal_wZSnjV1_PSIM3AubT0WQASMZ4Zf8mG1aWt4ud6d3VFuek7T-v0lGW6B-kryxzMw`, nil},
18191819
{"ok/patched-rs", patchedRS, patchedRSJWK, []byte(`test-9067`), `ANq_zMtfaEYO5ln_SOSU5DWKfKLXxDM_sl0QPJbWUwAApnHIku6ulUSCJyY0i27uV9wKsatOAjc5vJ7-BJojJw`, nil},
1820-
{"fail/patched-r-wrong-jwk", patchedRWithWrongJWK, patchedRSJWK, nil, `rQPYKYflfKnlgBKqDeWsJH2TJ6iHAnou7sFzXlmYD4ArXqLfYuqotWERKrna2wfzh0pu7USWO2gzlOqRK9qq`, errors.New("square/go-jose: error in cryptographic primitive")},
1820+
{"fail/patched-r-wrong-jwk", patchedRWithWrongJWK, patchedRSJWK, nil, `rQPYKYflfKnlgBKqDeWsJH2TJ6iHAnou7sFzXlmYD4ArXqLfYuqotWERKrna2wfzh0pu7USWO2gzlOqRK9qq`, errors.New("go-jose/go-jose: error in cryptographic primitive")},
18211821
}
18221822
for _, tt := range tests {
18231823
t.Run(tt.name, func(t *testing.T) {

acme/api/revoke_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1279,7 +1279,7 @@ func Test_wrapUnauthorizedError(t *testing.T) {
12791279
}
12801280
},
12811281
"wrap-subject": func(t *testing.T) test {
1282-
acmeErr := acme.NewError(acme.ErrorUnauthorizedType, "verification of jws using certificate public key failed: square/go-jose: error in cryptographic primitive")
1282+
acmeErr := acme.NewError(acme.ErrorUnauthorizedType, "verification of jws using certificate public key failed: go-jose/go-jose: error in cryptographic primitive")
12831283
acmeErr.Status = http.StatusForbidden
12841284
acmeErr.Detail = "No authorization provided for name test.example.com"
12851285
cert := &x509.Certificate{
@@ -1288,7 +1288,7 @@ func Test_wrapUnauthorizedError(t *testing.T) {
12881288
},
12891289
}
12901290
return test{
1291-
err: errors.New("square/go-jose: error in cryptographic primitive"),
1291+
err: errors.New("go-jose/go-jose: error in cryptographic primitive"),
12921292
cert: cert,
12931293
unauthorizedIdentifiers: []acme.Identifier{},
12941294
msg: "verification of jws using certificate public key failed",

acme/challenge_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,7 @@ func TestKeyAuthorization(t *testing.T) {
354354
return test{
355355
token: "1234",
356356
jwk: jwk,
357-
err: NewErrorISE("error generating JWK thumbprint: square/go-jose: unknown key type 'string'"),
357+
err: NewErrorISE("error generating JWK thumbprint: go-jose/go-jose: unknown key type 'string'"),
358358
}
359359
},
360360
"ok": func(t *testing.T) test {
@@ -1089,7 +1089,7 @@ func TestHTTP01Validate(t *testing.T) {
10891089
},
10901090
},
10911091
jwk: jwk,
1092-
err: NewErrorISE("error generating JWK thumbprint: square/go-jose: unknown key type 'string'"),
1092+
err: NewErrorISE("error generating JWK thumbprint: go-jose/go-jose: unknown key type 'string'"),
10931093
}
10941094
},
10951095
"ok/key-auth-mismatch": func(t *testing.T) test {
@@ -1389,7 +1389,7 @@ func TestDNS01Validate(t *testing.T) {
13891389
},
13901390
},
13911391
jwk: jwk,
1392-
err: NewErrorISE("error generating JWK thumbprint: square/go-jose: unknown key type 'string'"),
1392+
err: NewErrorISE("error generating JWK thumbprint: go-jose/go-jose: unknown key type 'string'"),
13931393
}
13941394
},
13951395
"fail/key-auth-mismatch-store-error": func(t *testing.T) test {
@@ -2141,7 +2141,7 @@ func TestTLSALPN01Validate(t *testing.T) {
21412141
},
21422142
srv: srv,
21432143
jwk: jwk,
2144-
err: NewErrorISE("error generating JWK thumbprint: square/go-jose: unknown key type 'string'"),
2144+
err: NewErrorISE("error generating JWK thumbprint: go-jose/go-jose: unknown key type 'string'"),
21452145
}
21462146
},
21472147
"ok/error-no-extension": func(t *testing.T) test {

acme/challenge_tpmsimulator_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -817,7 +817,7 @@ func Test_doTPMAttestationFormat(t *testing.T) {
817817
"certInfo": params.CreateAttestation,
818818
"pubArea": params.Public,
819819
},
820-
}}, nil, newInternalServerError("failed creating key auth digest: error generating JWK thumbprint: square/go-jose: unknown key type '[]uint8'")},
820+
}}, nil, newInternalServerError("failed creating key auth digest: error generating JWK thumbprint: go-jose/go-jose: unknown key type '[]uint8'")},
821821
{"fail different keyAuthorization", args{ctx, mustAttestationProvisioner(t, acaRoot), &Challenge{Token: "aDifferentToken"}, jwk, &attestationObject{
822822
Format: "tpm",
823823
AttStatement: map[string]interface{}{

api/api_test.go

Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,11 @@ import (
2828

2929
"github.com/go-chi/chi/v5"
3030
"github.com/pkg/errors"
31-
sassert "github.com/stretchr/testify/assert"
31+
"github.com/stretchr/testify/assert"
3232
"github.com/stretchr/testify/require"
3333
"go.step.sm/crypto/jose"
3434
"go.step.sm/crypto/x509util"
3535
"golang.org/x/crypto/ssh"
36-
squarejose "gopkg.in/square/go-jose.v2"
37-
38-
"github.com/smallstep/assert"
3936

4037
"github.com/smallstep/certificates/authority"
4138
"github.com/smallstep/certificates/authority/provisioner"
@@ -658,7 +655,7 @@ func TestSignRequest_Validate(t *testing.T) {
658655
}
659656
if err := s.Validate(); err != nil {
660657
if assert.NotNil(t, tt.err) {
661-
assert.HasPrefix(t, err.Error(), tt.err.Error())
658+
assert.True(t, strings.HasPrefix(err.Error(), tt.err.Error()))
662659
}
663660
} else {
664661
assert.Nil(t, tt.err)
@@ -1259,10 +1256,10 @@ func Test_Provisioners(t *testing.T) {
12591256

12601257
expectedError400 := errs.BadRequest("limit 'abc' is not an integer")
12611258
expectedError400Bytes, err := json.Marshal(expectedError400)
1262-
assert.FatalError(t, err)
1259+
require.NoError(t, err)
12631260
expectedError500 := errs.InternalServer("force")
12641261
expectedError500Bytes, err := json.Marshal(expectedError500)
1265-
assert.FatalError(t, err)
1262+
require.NoError(t, err)
12661263
for _, tt := range tests {
12671264
t.Run(tt.name, func(t *testing.T) {
12681265
mockMustAuthority(t, tt.fields.Authority)
@@ -1329,7 +1326,7 @@ func Test_ProvisionerKey(t *testing.T) {
13291326
expected := []byte(`{"key":"` + privKey + `"}`)
13301327
expectedError404 := errs.NotFound("force")
13311328
expectedError404Bytes, err := json.Marshal(expectedError404)
1332-
assert.FatalError(t, err)
1329+
require.NoError(t, err)
13331330

13341331
for _, tt := range tests {
13351332
t.Run(tt.name, func(t *testing.T) {
@@ -1578,7 +1575,7 @@ func TestProvisionersResponse_MarshalJSON(t *testing.T) {
15781575
"x": "7ZdAAMZCFU4XwgblI5RfZouBi8lYmF6DlZusNNnsbm8",
15791576
"y": "sQr2JdzwD2fgyrymBEXWsxDxFNjjqN64qLLSbLdLZ9Y",
15801577
}
1581-
key := squarejose.JSONWebKey{}
1578+
key := jose.JSONWebKey{}
15821579
b, err := json.Marshal(k)
15831580
require.NoError(t, err)
15841581
err = json.Unmarshal(b, &key)
@@ -1644,11 +1641,11 @@ func TestProvisionersResponse_MarshalJSON(t *testing.T) {
16441641
}
16451642

16461643
expBytes, err := json.Marshal(expected)
1647-
sassert.NoError(t, err)
1644+
assert.NoError(t, err)
16481645

16491646
br, err := r.MarshalJSON()
1650-
sassert.NoError(t, err)
1651-
sassert.JSONEq(t, string(expBytes), string(br))
1647+
assert.NoError(t, err)
1648+
assert.JSONEq(t, string(expBytes), string(br))
16521649

16531650
keyCopy := key
16541651
expList := provisioner.List{
@@ -1674,7 +1671,7 @@ func TestProvisionersResponse_MarshalJSON(t *testing.T) {
16741671
}
16751672

16761673
// MarshalJSON must not affect the struct properties itself
1677-
sassert.Equal(t, expList, r.Provisioners)
1674+
assert.Equal(t, expList, r.Provisioners)
16781675
}
16791676

16801677
const (
@@ -1693,14 +1690,14 @@ func TestLogSSHCertificate(t *testing.T) {
16931690
rl := logging.NewResponseLogger(w)
16941691
LogSSHCertificate(rl, cert)
16951692

1696-
sassert.Equal(t, 200, w.Result().StatusCode)
1693+
assert.Equal(t, 200, w.Result().StatusCode)
16971694

16981695
fields := rl.Fields()
1699-
sassert.Equal(t, uint64(14376510277651266987), fields["serial"])
1700-
sassert.Equal(t, []string{"herman"}, fields["principals"])
1701-
sassert.Equal(t, "[email protected] user certificate", fields["certificate-type"])
1702-
sassert.Equal(t, time.Unix(1674129191, 0).Format(time.RFC3339), fields["valid-from"])
1703-
sassert.Equal(t, time.Unix(1674186851, 0).Format(time.RFC3339), fields["valid-to"])
1704-
sassert.Equal(t, "AAAAKGVjZHNhLXNoYTItbmlzdHAyNTYtY2VydC12MDFAb3BlbnNzaC5jb20AAAAgLnkvSk4odlo3b1R+RDw+LmorL3RkN354IilCIVFVen4AAAAIbmlzdHAyNTYAAABBBHjKHss8WM2ffMYlavisoLXR0I6UEIU+cidV1ogEH1U6+/SYaFPrlzQo0tGLM5CNkMbhInbyasQsrHzn8F1Rt7nHg5/tcSf9qwAAAAEAAAAGaGVybWFuAAAACgAAAAZoZXJtYW4AAAAAY8kvJwAAAABjyhBjAAAAAAAAAIIAAAAVcGVybWl0LVgxMS1mb3J3YXJkaW5nAAAAAAAAABdwZXJtaXQtYWdlbnQtZm9yd2FyZGluZwAAAAAAAAAWcGVybWl0LXBvcnQtZm9yd2FyZGluZwAAAAAAAAAKcGVybWl0LXB0eQAAAAAAAAAOcGVybWl0LXVzZXItcmMAAAAAAAAAAAAAAGgAAAATZWNkc2Etc2hhMi1uaXN0cDI1NgAAAAhuaXN0cDI1NgAAAEEE/ayqpPrZZF5uA1UlDt4FreTf15agztQIzpxnWq/XoxAHzagRSkFGkdgFpjgsfiRpP8URHH3BZScqc0ZDCTxhoQAAAGQAAAATZWNkc2Etc2hhMi1uaXN0cDI1NgAAAEkAAAAhAJuP1wCVwoyrKrEtHGfFXrVbRHySDjvXtS1tVTdHyqymAAAAIBa/CSSzfZb4D2NLP+eEmOOMJwSjYOiNM8fiOoAaqglI", fields["certificate"])
1705-
sassert.Equal(t, "SHA256:RvkDPGwl/G9d7LUFm1kmWhvOD9I/moPq4yxcb0STwr0 (ECDSA-CERT)", fields["public-key"])
1696+
assert.Equal(t, uint64(14376510277651266987), fields["serial"])
1697+
assert.Equal(t, []string{"herman"}, fields["principals"])
1698+
assert.Equal(t, "[email protected] user certificate", fields["certificate-type"])
1699+
assert.Equal(t, time.Unix(1674129191, 0).Format(time.RFC3339), fields["valid-from"])
1700+
assert.Equal(t, time.Unix(1674186851, 0).Format(time.RFC3339), fields["valid-to"])
1701+
assert.Equal(t, "AAAAKGVjZHNhLXNoYTItbmlzdHAyNTYtY2VydC12MDFAb3BlbnNzaC5jb20AAAAgLnkvSk4odlo3b1R+RDw+LmorL3RkN354IilCIVFVen4AAAAIbmlzdHAyNTYAAABBBHjKHss8WM2ffMYlavisoLXR0I6UEIU+cidV1ogEH1U6+/SYaFPrlzQo0tGLM5CNkMbhInbyasQsrHzn8F1Rt7nHg5/tcSf9qwAAAAEAAAAGaGVybWFuAAAACgAAAAZoZXJtYW4AAAAAY8kvJwAAAABjyhBjAAAAAAAAAIIAAAAVcGVybWl0LVgxMS1mb3J3YXJkaW5nAAAAAAAAABdwZXJtaXQtYWdlbnQtZm9yd2FyZGluZwAAAAAAAAAWcGVybWl0LXBvcnQtZm9yd2FyZGluZwAAAAAAAAAKcGVybWl0LXB0eQAAAAAAAAAOcGVybWl0LXVzZXItcmMAAAAAAAAAAAAAAGgAAAATZWNkc2Etc2hhMi1uaXN0cDI1NgAAAAhuaXN0cDI1NgAAAEEE/ayqpPrZZF5uA1UlDt4FreTf15agztQIzpxnWq/XoxAHzagRSkFGkdgFpjgsfiRpP8URHH3BZScqc0ZDCTxhoQAAAGQAAAATZWNkc2Etc2hhMi1uaXN0cDI1NgAAAEkAAAAhAJuP1wCVwoyrKrEtHGfFXrVbRHySDjvXtS1tVTdHyqymAAAAIBa/CSSzfZb4D2NLP+eEmOOMJwSjYOiNM8fiOoAaqglI", fields["certificate"])
1702+
assert.Equal(t, "SHA256:RvkDPGwl/G9d7LUFm1kmWhvOD9I/moPq4yxcb0STwr0 (ECDSA-CERT)", fields["public-key"])
17061703
}

authority/policy_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import (
66
"reflect"
77
"testing"
88

9+
"github.com/go-jose/go-jose/v3"
910
"github.com/stretchr/testify/assert"
10-
"gopkg.in/square/go-jose.v2"
1111

1212
"go.step.sm/linkedca"
1313

authority/provisioner/jwk_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -171,10 +171,10 @@ func TestJWK_authorizeToken(t *testing.T) {
171171
{"fail-token", p1, args{failTok}, http.StatusUnauthorized, errors.New("jwk.authorizeToken; error parsing jwk token")},
172172
{"fail-key", p1, args{failKey}, http.StatusUnauthorized, errors.New("jwk.authorizeToken; error parsing jwk claims")},
173173
{"fail-claims", p1, args{failClaims}, http.StatusUnauthorized, errors.New("jwk.authorizeToken; error parsing jwk claims")},
174-
{"fail-signature", p1, args{failSig}, http.StatusUnauthorized, errors.New("jwk.authorizeToken; error parsing jwk claims: square/go-jose: error in cryptographic primitive")},
175-
{"fail-issuer", p1, args{failIss}, http.StatusUnauthorized, errors.New("jwk.authorizeToken; invalid jwk claims: square/go-jose/jwt: validation failed, invalid issuer claim (iss)")},
176-
{"fail-expired", p1, args{failExp}, http.StatusUnauthorized, errors.New("jwk.authorizeToken; invalid jwk claims: square/go-jose/jwt: validation failed, token is expired (exp)")},
177-
{"fail-not-before", p1, args{failNbf}, http.StatusUnauthorized, errors.New("jwk.authorizeToken; invalid jwk claims: square/go-jose/jwt: validation failed, token not valid yet (nbf)")},
174+
{"fail-signature", p1, args{failSig}, http.StatusUnauthorized, errors.New("jwk.authorizeToken; error parsing jwk claims: go-jose/go-jose: error in cryptographic primitive")},
175+
{"fail-issuer", p1, args{failIss}, http.StatusUnauthorized, errors.New("jwk.authorizeToken; invalid jwk claims: go-jose/go-jose/jwt: validation failed, invalid issuer claim (iss)")},
176+
{"fail-expired", p1, args{failExp}, http.StatusUnauthorized, errors.New("jwk.authorizeToken; invalid jwk claims: go-jose/go-jose/jwt: validation failed, token is expired (exp)")},
177+
{"fail-not-before", p1, args{failNbf}, http.StatusUnauthorized, errors.New("jwk.authorizeToken; invalid jwk claims: go-jose/go-jose/jwt: validation failed, token not valid yet (nbf)")},
178178
{"fail-audience", p1, args{failAud}, http.StatusUnauthorized, errors.New("jwk.authorizeToken; invalid jwk token audience claim (aud)")},
179179
{"fail-subject", p1, args{failSub}, http.StatusUnauthorized, errors.New("jwk.authorizeToken; jwk token subject cannot be empty")},
180180
{"ok", p1, args{t1}, http.StatusOK, nil},
@@ -218,7 +218,7 @@ func TestJWK_AuthorizeRevoke(t *testing.T) {
218218
code int
219219
err error
220220
}{
221-
{"fail-signature", p1, args{failSig}, http.StatusUnauthorized, errors.New("jwk.AuthorizeRevoke: jwk.authorizeToken; error parsing jwk claims: square/go-jose: error in cryptographic primitive")},
221+
{"fail-signature", p1, args{failSig}, http.StatusUnauthorized, errors.New("jwk.AuthorizeRevoke: jwk.authorizeToken; error parsing jwk claims: go-jose/go-jose: error in cryptographic primitive")},
222222
{"ok", p1, args{t1}, http.StatusOK, nil},
223223
}
224224
for _, tt := range tests {
@@ -266,7 +266,7 @@ func TestJWK_AuthorizeSign(t *testing.T) {
266266
prov: p1,
267267
args: args{failSig},
268268
code: http.StatusUnauthorized,
269-
err: errors.New("jwk.AuthorizeSign: jwk.authorizeToken; error parsing jwk claims: square/go-jose: error in cryptographic primitive"),
269+
err: errors.New("jwk.AuthorizeSign: jwk.authorizeToken; error parsing jwk claims: go-jose/go-jose: error in cryptographic primitive"),
270270
},
271271
{
272272
name: "ok-sans",

authority/provisioner/k8sSA_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ func TestK8sSA_authorizeToken(t *testing.T) {
9797
p: p,
9898
token: tok,
9999
code: http.StatusUnauthorized,
100-
err: errors.New("k8ssa.authorizeToken; invalid k8sSA token claims: square/go-jose/jwt: validation failed, invalid issuer claim (iss)"),
100+
err: errors.New("k8ssa.authorizeToken; invalid k8sSA token claims: go-jose/go-jose/jwt: validation failed, invalid issuer claim (iss)"),
101101
}
102102
},
103103
"ok": func(t *testing.T) test {

0 commit comments

Comments
 (0)