forked from TrueCloudLab/certificates
Use go.step.sm/crypto/jose
Replace use of github.com/smallstep/cli/crypto with the new package go.step.sm/crypto/jose.
This commit is contained in:
parent
32ba80f446
commit
ba918100d0
53 changed files with 183 additions and 187 deletions
|
@ -6,8 +6,8 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/smallstep/cli/jose"
|
|
||||||
"github.com/smallstep/nosql"
|
"github.com/smallstep/nosql"
|
||||||
|
"go.step.sm/crypto/jose"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Account is a subset of the internal account type containing only those
|
// Account is a subset of the internal account type containing only those
|
||||||
|
|
|
@ -12,9 +12,9 @@ import (
|
||||||
"github.com/smallstep/assert"
|
"github.com/smallstep/assert"
|
||||||
"github.com/smallstep/certificates/authority/provisioner"
|
"github.com/smallstep/certificates/authority/provisioner"
|
||||||
"github.com/smallstep/certificates/db"
|
"github.com/smallstep/certificates/db"
|
||||||
"github.com/smallstep/cli/jose"
|
|
||||||
"github.com/smallstep/nosql"
|
"github.com/smallstep/nosql"
|
||||||
"github.com/smallstep/nosql/database"
|
"github.com/smallstep/nosql/database"
|
||||||
|
"go.step.sm/crypto/jose"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|
|
@ -16,7 +16,7 @@ import (
|
||||||
"github.com/smallstep/assert"
|
"github.com/smallstep/assert"
|
||||||
"github.com/smallstep/certificates/acme"
|
"github.com/smallstep/certificates/acme"
|
||||||
"github.com/smallstep/certificates/authority/provisioner"
|
"github.com/smallstep/certificates/authority/provisioner"
|
||||||
"github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|
|
@ -19,7 +19,7 @@ import (
|
||||||
"github.com/smallstep/certificates/acme"
|
"github.com/smallstep/certificates/acme"
|
||||||
"github.com/smallstep/certificates/authority/provisioner"
|
"github.com/smallstep/certificates/authority/provisioner"
|
||||||
"github.com/smallstep/certificates/db"
|
"github.com/smallstep/certificates/db"
|
||||||
"github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
"go.step.sm/crypto/pemutil"
|
"go.step.sm/crypto/pemutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -14,8 +14,8 @@ import (
|
||||||
"github.com/smallstep/certificates/api"
|
"github.com/smallstep/certificates/api"
|
||||||
"github.com/smallstep/certificates/authority/provisioner"
|
"github.com/smallstep/certificates/authority/provisioner"
|
||||||
"github.com/smallstep/certificates/logging"
|
"github.com/smallstep/certificates/logging"
|
||||||
"github.com/smallstep/cli/jose"
|
|
||||||
"github.com/smallstep/nosql"
|
"github.com/smallstep/nosql"
|
||||||
|
"go.step.sm/crypto/jose"
|
||||||
"go.step.sm/crypto/keyutil"
|
"go.step.sm/crypto/keyutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -18,8 +18,8 @@ import (
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/smallstep/assert"
|
"github.com/smallstep/assert"
|
||||||
"github.com/smallstep/certificates/acme"
|
"github.com/smallstep/certificates/acme"
|
||||||
"github.com/smallstep/cli/jose"
|
|
||||||
"github.com/smallstep/nosql/database"
|
"github.com/smallstep/nosql/database"
|
||||||
|
"go.step.sm/crypto/jose"
|
||||||
)
|
)
|
||||||
|
|
||||||
var testBody = []byte("foo")
|
var testBody = []byte("foo")
|
||||||
|
|
|
@ -14,8 +14,8 @@ import (
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/smallstep/certificates/authority/provisioner"
|
"github.com/smallstep/certificates/authority/provisioner"
|
||||||
database "github.com/smallstep/certificates/db"
|
database "github.com/smallstep/certificates/db"
|
||||||
"github.com/smallstep/cli/jose"
|
|
||||||
"github.com/smallstep/nosql"
|
"github.com/smallstep/nosql"
|
||||||
|
"go.step.sm/crypto/jose"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Interface is the acme authority interface.
|
// Interface is the acme authority interface.
|
||||||
|
|
|
@ -11,8 +11,8 @@ import (
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/smallstep/assert"
|
"github.com/smallstep/assert"
|
||||||
"github.com/smallstep/certificates/db"
|
"github.com/smallstep/certificates/db"
|
||||||
"github.com/smallstep/cli/jose"
|
|
||||||
"github.com/smallstep/nosql/database"
|
"github.com/smallstep/nosql/database"
|
||||||
|
"go.step.sm/crypto/jose"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestAuthorityGetLink(t *testing.T) {
|
func TestAuthorityGetLink(t *testing.T) {
|
||||||
|
|
|
@ -18,8 +18,8 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/smallstep/cli/jose"
|
|
||||||
"github.com/smallstep/nosql"
|
"github.com/smallstep/nosql"
|
||||||
|
"go.step.sm/crypto/jose"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Challenge is a subset of the challenge type containing only those attributes
|
// Challenge is a subset of the challenge type containing only those attributes
|
||||||
|
|
|
@ -28,9 +28,9 @@ import (
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/smallstep/assert"
|
"github.com/smallstep/assert"
|
||||||
"github.com/smallstep/certificates/db"
|
"github.com/smallstep/certificates/db"
|
||||||
"github.com/smallstep/cli/jose"
|
|
||||||
"github.com/smallstep/nosql"
|
"github.com/smallstep/nosql"
|
||||||
"github.com/smallstep/nosql/database"
|
"github.com/smallstep/nosql/database"
|
||||||
|
"go.step.sm/crypto/jose"
|
||||||
)
|
)
|
||||||
|
|
||||||
var testOps = ChallengeOptions{
|
var testOps = ChallengeOptions{
|
||||||
|
|
|
@ -8,7 +8,7 @@ import (
|
||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/smallstep/certificates/authority/provisioner"
|
"github.com/smallstep/certificates/authority/provisioner"
|
||||||
"github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
"go.step.sm/crypto/randutil"
|
"go.step.sm/crypto/randutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ import (
|
||||||
"github.com/smallstep/certificates/errs"
|
"github.com/smallstep/certificates/errs"
|
||||||
"github.com/smallstep/certificates/logging"
|
"github.com/smallstep/certificates/logging"
|
||||||
"github.com/smallstep/certificates/templates"
|
"github.com/smallstep/certificates/templates"
|
||||||
"github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
"golang.org/x/crypto/ssh"
|
"golang.org/x/crypto/ssh"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -15,14 +15,14 @@ import (
|
||||||
"github.com/smallstep/assert"
|
"github.com/smallstep/assert"
|
||||||
"github.com/smallstep/certificates/authority/provisioner"
|
"github.com/smallstep/certificates/authority/provisioner"
|
||||||
"github.com/smallstep/certificates/db"
|
"github.com/smallstep/certificates/db"
|
||||||
stepJOSE "github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
"go.step.sm/crypto/pemutil"
|
"go.step.sm/crypto/pemutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
func testAuthority(t *testing.T, opts ...Option) *Authority {
|
func testAuthority(t *testing.T, opts ...Option) *Authority {
|
||||||
maxjwk, err := stepJOSE.ParseKey("testdata/secrets/max_pub.jwk")
|
maxjwk, err := jose.ReadKey("testdata/secrets/max_pub.jwk")
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
clijwk, err := stepJOSE.ParseKey("testdata/secrets/step_cli_key_pub.jwk")
|
clijwk, err := jose.ReadKey("testdata/secrets/step_cli_key_pub.jwk")
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
disableRenewal := true
|
disableRenewal := true
|
||||||
enableSSHCA := true
|
enableSSHCA := true
|
||||||
|
|
|
@ -8,7 +8,7 @@ import (
|
||||||
|
|
||||||
"github.com/smallstep/certificates/authority/provisioner"
|
"github.com/smallstep/certificates/authority/provisioner"
|
||||||
"github.com/smallstep/certificates/errs"
|
"github.com/smallstep/certificates/errs"
|
||||||
"github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
"golang.org/x/crypto/ssh"
|
"golang.org/x/crypto/ssh"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -17,11 +17,10 @@ import (
|
||||||
"github.com/smallstep/certificates/authority/provisioner"
|
"github.com/smallstep/certificates/authority/provisioner"
|
||||||
"github.com/smallstep/certificates/db"
|
"github.com/smallstep/certificates/db"
|
||||||
"github.com/smallstep/certificates/errs"
|
"github.com/smallstep/certificates/errs"
|
||||||
"github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
"go.step.sm/crypto/pemutil"
|
"go.step.sm/crypto/pemutil"
|
||||||
"go.step.sm/crypto/randutil"
|
"go.step.sm/crypto/randutil"
|
||||||
"golang.org/x/crypto/ssh"
|
"golang.org/x/crypto/ssh"
|
||||||
"gopkg.in/square/go-jose.v2/jwt"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var testAudiences = provisioner.Audiences{
|
var testAudiences = provisioner.Audiences{
|
||||||
|
@ -84,7 +83,7 @@ func generateToken(sub, iss, aud string, sans []string, iat time.Time, jwk *jose
|
||||||
func TestAuthority_authorizeToken(t *testing.T) {
|
func TestAuthority_authorizeToken(t *testing.T) {
|
||||||
a := testAuthority(t)
|
a := testAuthority(t)
|
||||||
|
|
||||||
jwk, err := jose.ParseKey("testdata/secrets/step_cli_key_priv.jwk", jose.WithPassword([]byte("pass")))
|
jwk, err := jose.ReadKey("testdata/secrets/step_cli_key_priv.jwk", jose.WithPassword([]byte("pass")))
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
|
|
||||||
sig, err := jose.NewSigner(jose.SigningKey{Algorithm: jose.ES256, Key: jwk.Key},
|
sig, err := jose.NewSigner(jose.SigningKey{Algorithm: jose.ES256, Key: jwk.Key},
|
||||||
|
@ -112,16 +111,16 @@ func TestAuthority_authorizeToken(t *testing.T) {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"fail/prehistoric-token": func(t *testing.T) *authorizeTest {
|
"fail/prehistoric-token": func(t *testing.T) *authorizeTest {
|
||||||
cl := jwt.Claims{
|
cl := jose.Claims{
|
||||||
Subject: "test.smallstep.com",
|
Subject: "test.smallstep.com",
|
||||||
Issuer: validIssuer,
|
Issuer: validIssuer,
|
||||||
NotBefore: jwt.NewNumericDate(now),
|
NotBefore: jose.NewNumericDate(now),
|
||||||
Expiry: jwt.NewNumericDate(now.Add(time.Minute)),
|
Expiry: jose.NewNumericDate(now.Add(time.Minute)),
|
||||||
IssuedAt: jwt.NewNumericDate(now.Add(-time.Hour)),
|
IssuedAt: jose.NewNumericDate(now.Add(-time.Hour)),
|
||||||
Audience: validAudience,
|
Audience: validAudience,
|
||||||
ID: "43",
|
ID: "43",
|
||||||
}
|
}
|
||||||
raw, err := jwt.Signed(sig).Claims(cl).CompactSerialize()
|
raw, err := jose.Signed(sig).Claims(cl).CompactSerialize()
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
return &authorizeTest{
|
return &authorizeTest{
|
||||||
auth: a,
|
auth: a,
|
||||||
|
@ -131,11 +130,11 @@ func TestAuthority_authorizeToken(t *testing.T) {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"fail/provisioner-not-found": func(t *testing.T) *authorizeTest {
|
"fail/provisioner-not-found": func(t *testing.T) *authorizeTest {
|
||||||
cl := jwt.Claims{
|
cl := jose.Claims{
|
||||||
Subject: "test.smallstep.com",
|
Subject: "test.smallstep.com",
|
||||||
Issuer: validIssuer,
|
Issuer: validIssuer,
|
||||||
NotBefore: jwt.NewNumericDate(now),
|
NotBefore: jose.NewNumericDate(now),
|
||||||
Expiry: jwt.NewNumericDate(now.Add(time.Minute)),
|
Expiry: jose.NewNumericDate(now.Add(time.Minute)),
|
||||||
Audience: validAudience,
|
Audience: validAudience,
|
||||||
ID: "44",
|
ID: "44",
|
||||||
}
|
}
|
||||||
|
@ -143,7 +142,7 @@ func TestAuthority_authorizeToken(t *testing.T) {
|
||||||
(&jose.SignerOptions{}).WithType("JWT").WithHeader("kid", "foo"))
|
(&jose.SignerOptions{}).WithType("JWT").WithHeader("kid", "foo"))
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
|
|
||||||
raw, err := jwt.Signed(_sig).Claims(cl).CompactSerialize()
|
raw, err := jose.Signed(_sig).Claims(cl).CompactSerialize()
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
return &authorizeTest{
|
return &authorizeTest{
|
||||||
auth: a,
|
auth: a,
|
||||||
|
@ -153,15 +152,15 @@ func TestAuthority_authorizeToken(t *testing.T) {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ok/simpledb": func(t *testing.T) *authorizeTest {
|
"ok/simpledb": func(t *testing.T) *authorizeTest {
|
||||||
cl := jwt.Claims{
|
cl := jose.Claims{
|
||||||
Subject: "test.smallstep.com",
|
Subject: "test.smallstep.com",
|
||||||
Issuer: validIssuer,
|
Issuer: validIssuer,
|
||||||
NotBefore: jwt.NewNumericDate(now),
|
NotBefore: jose.NewNumericDate(now),
|
||||||
Expiry: jwt.NewNumericDate(now.Add(time.Minute)),
|
Expiry: jose.NewNumericDate(now.Add(time.Minute)),
|
||||||
Audience: validAudience,
|
Audience: validAudience,
|
||||||
ID: "43",
|
ID: "43",
|
||||||
}
|
}
|
||||||
raw, err := jwt.Signed(sig).Claims(cl).CompactSerialize()
|
raw, err := jose.Signed(sig).Claims(cl).CompactSerialize()
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
return &authorizeTest{
|
return &authorizeTest{
|
||||||
auth: a,
|
auth: a,
|
||||||
|
@ -170,15 +169,15 @@ func TestAuthority_authorizeToken(t *testing.T) {
|
||||||
},
|
},
|
||||||
"fail/simpledb/token-already-used": func(t *testing.T) *authorizeTest {
|
"fail/simpledb/token-already-used": func(t *testing.T) *authorizeTest {
|
||||||
_a := testAuthority(t)
|
_a := testAuthority(t)
|
||||||
cl := jwt.Claims{
|
cl := jose.Claims{
|
||||||
Subject: "test.smallstep.com",
|
Subject: "test.smallstep.com",
|
||||||
Issuer: validIssuer,
|
Issuer: validIssuer,
|
||||||
NotBefore: jwt.NewNumericDate(now),
|
NotBefore: jose.NewNumericDate(now),
|
||||||
Expiry: jwt.NewNumericDate(now.Add(time.Minute)),
|
Expiry: jose.NewNumericDate(now.Add(time.Minute)),
|
||||||
Audience: validAudience,
|
Audience: validAudience,
|
||||||
ID: "43",
|
ID: "43",
|
||||||
}
|
}
|
||||||
raw, err := jwt.Signed(sig).Claims(cl).CompactSerialize()
|
raw, err := jose.Signed(sig).Claims(cl).CompactSerialize()
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
_, err = _a.authorizeToken(context.Background(), raw)
|
_, err = _a.authorizeToken(context.Background(), raw)
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
|
@ -197,15 +196,15 @@ func TestAuthority_authorizeToken(t *testing.T) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
cl := jwt.Claims{
|
cl := jose.Claims{
|
||||||
Subject: "test.smallstep.com",
|
Subject: "test.smallstep.com",
|
||||||
Issuer: validIssuer,
|
Issuer: validIssuer,
|
||||||
NotBefore: jwt.NewNumericDate(now),
|
NotBefore: jose.NewNumericDate(now),
|
||||||
Expiry: jwt.NewNumericDate(now.Add(time.Minute)),
|
Expiry: jose.NewNumericDate(now.Add(time.Minute)),
|
||||||
Audience: validAudience,
|
Audience: validAudience,
|
||||||
ID: "43",
|
ID: "43",
|
||||||
}
|
}
|
||||||
raw, err := jwt.Signed(sig).Claims(cl).CompactSerialize()
|
raw, err := jose.Signed(sig).Claims(cl).CompactSerialize()
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
return &authorizeTest{
|
return &authorizeTest{
|
||||||
auth: _a,
|
auth: _a,
|
||||||
|
@ -220,15 +219,15 @@ func TestAuthority_authorizeToken(t *testing.T) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
cl := jwt.Claims{
|
cl := jose.Claims{
|
||||||
Subject: "test.smallstep.com",
|
Subject: "test.smallstep.com",
|
||||||
Issuer: validIssuer,
|
Issuer: validIssuer,
|
||||||
NotBefore: jwt.NewNumericDate(now),
|
NotBefore: jose.NewNumericDate(now),
|
||||||
Expiry: jwt.NewNumericDate(now.Add(time.Minute)),
|
Expiry: jose.NewNumericDate(now.Add(time.Minute)),
|
||||||
Audience: validAudience,
|
Audience: validAudience,
|
||||||
ID: "43",
|
ID: "43",
|
||||||
}
|
}
|
||||||
raw, err := jwt.Signed(sig).Claims(cl).CompactSerialize()
|
raw, err := jose.Signed(sig).Claims(cl).CompactSerialize()
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
return &authorizeTest{
|
return &authorizeTest{
|
||||||
auth: _a,
|
auth: _a,
|
||||||
|
@ -245,15 +244,15 @@ func TestAuthority_authorizeToken(t *testing.T) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
cl := jwt.Claims{
|
cl := jose.Claims{
|
||||||
Subject: "test.smallstep.com",
|
Subject: "test.smallstep.com",
|
||||||
Issuer: validIssuer,
|
Issuer: validIssuer,
|
||||||
NotBefore: jwt.NewNumericDate(now),
|
NotBefore: jose.NewNumericDate(now),
|
||||||
Expiry: jwt.NewNumericDate(now.Add(time.Minute)),
|
Expiry: jose.NewNumericDate(now.Add(time.Minute)),
|
||||||
Audience: validAudience,
|
Audience: validAudience,
|
||||||
ID: "43",
|
ID: "43",
|
||||||
}
|
}
|
||||||
raw, err := jwt.Signed(sig).Claims(cl).CompactSerialize()
|
raw, err := jose.Signed(sig).Claims(cl).CompactSerialize()
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
return &authorizeTest{
|
return &authorizeTest{
|
||||||
auth: _a,
|
auth: _a,
|
||||||
|
@ -288,7 +287,7 @@ func TestAuthority_authorizeToken(t *testing.T) {
|
||||||
func TestAuthority_authorizeRevoke(t *testing.T) {
|
func TestAuthority_authorizeRevoke(t *testing.T) {
|
||||||
a := testAuthority(t)
|
a := testAuthority(t)
|
||||||
|
|
||||||
jwk, err := jose.ParseKey("testdata/secrets/step_cli_key_priv.jwk", jose.WithPassword([]byte("pass")))
|
jwk, err := jose.ReadKey("testdata/secrets/step_cli_key_priv.jwk", jose.WithPassword([]byte("pass")))
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
|
|
||||||
sig, err := jose.NewSigner(jose.SigningKey{Algorithm: jose.ES256, Key: jwk.Key},
|
sig, err := jose.NewSigner(jose.SigningKey{Algorithm: jose.ES256, Key: jwk.Key},
|
||||||
|
@ -316,15 +315,15 @@ func TestAuthority_authorizeRevoke(t *testing.T) {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"fail/token/invalid-subject": func(t *testing.T) *authorizeTest {
|
"fail/token/invalid-subject": func(t *testing.T) *authorizeTest {
|
||||||
cl := jwt.Claims{
|
cl := jose.Claims{
|
||||||
Subject: "",
|
Subject: "",
|
||||||
Issuer: validIssuer,
|
Issuer: validIssuer,
|
||||||
NotBefore: jwt.NewNumericDate(now),
|
NotBefore: jose.NewNumericDate(now),
|
||||||
Expiry: jwt.NewNumericDate(now.Add(time.Minute)),
|
Expiry: jose.NewNumericDate(now.Add(time.Minute)),
|
||||||
Audience: validAudience,
|
Audience: validAudience,
|
||||||
ID: "43",
|
ID: "43",
|
||||||
}
|
}
|
||||||
raw, err := jwt.Signed(sig).Claims(cl).CompactSerialize()
|
raw, err := jose.Signed(sig).Claims(cl).CompactSerialize()
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
return &authorizeTest{
|
return &authorizeTest{
|
||||||
auth: a,
|
auth: a,
|
||||||
|
@ -334,15 +333,15 @@ func TestAuthority_authorizeRevoke(t *testing.T) {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ok/token": func(t *testing.T) *authorizeTest {
|
"ok/token": func(t *testing.T) *authorizeTest {
|
||||||
cl := jwt.Claims{
|
cl := jose.Claims{
|
||||||
Subject: "test.smallstep.com",
|
Subject: "test.smallstep.com",
|
||||||
Issuer: validIssuer,
|
Issuer: validIssuer,
|
||||||
NotBefore: jwt.NewNumericDate(now),
|
NotBefore: jose.NewNumericDate(now),
|
||||||
Expiry: jwt.NewNumericDate(now.Add(time.Minute)),
|
Expiry: jose.NewNumericDate(now.Add(time.Minute)),
|
||||||
Audience: validAudience,
|
Audience: validAudience,
|
||||||
ID: "44",
|
ID: "44",
|
||||||
}
|
}
|
||||||
raw, err := jwt.Signed(sig).Claims(cl).CompactSerialize()
|
raw, err := jose.Signed(sig).Claims(cl).CompactSerialize()
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
return &authorizeTest{
|
return &authorizeTest{
|
||||||
auth: a,
|
auth: a,
|
||||||
|
@ -372,7 +371,7 @@ func TestAuthority_authorizeRevoke(t *testing.T) {
|
||||||
func TestAuthority_authorizeSign(t *testing.T) {
|
func TestAuthority_authorizeSign(t *testing.T) {
|
||||||
a := testAuthority(t)
|
a := testAuthority(t)
|
||||||
|
|
||||||
jwk, err := jose.ParseKey("testdata/secrets/step_cli_key_priv.jwk", jose.WithPassword([]byte("pass")))
|
jwk, err := jose.ReadKey("testdata/secrets/step_cli_key_priv.jwk", jose.WithPassword([]byte("pass")))
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
|
|
||||||
sig, err := jose.NewSigner(jose.SigningKey{Algorithm: jose.ES256, Key: jwk.Key},
|
sig, err := jose.NewSigner(jose.SigningKey{Algorithm: jose.ES256, Key: jwk.Key},
|
||||||
|
@ -400,15 +399,15 @@ func TestAuthority_authorizeSign(t *testing.T) {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"fail/invalid-subject": func(t *testing.T) *authorizeTest {
|
"fail/invalid-subject": func(t *testing.T) *authorizeTest {
|
||||||
cl := jwt.Claims{
|
cl := jose.Claims{
|
||||||
Subject: "",
|
Subject: "",
|
||||||
Issuer: validIssuer,
|
Issuer: validIssuer,
|
||||||
NotBefore: jwt.NewNumericDate(now),
|
NotBefore: jose.NewNumericDate(now),
|
||||||
Expiry: jwt.NewNumericDate(now.Add(time.Minute)),
|
Expiry: jose.NewNumericDate(now.Add(time.Minute)),
|
||||||
Audience: validAudience,
|
Audience: validAudience,
|
||||||
ID: "43",
|
ID: "43",
|
||||||
}
|
}
|
||||||
raw, err := jwt.Signed(sig).Claims(cl).CompactSerialize()
|
raw, err := jose.Signed(sig).Claims(cl).CompactSerialize()
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
return &authorizeTest{
|
return &authorizeTest{
|
||||||
auth: a,
|
auth: a,
|
||||||
|
@ -418,15 +417,15 @@ func TestAuthority_authorizeSign(t *testing.T) {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ok": func(t *testing.T) *authorizeTest {
|
"ok": func(t *testing.T) *authorizeTest {
|
||||||
cl := jwt.Claims{
|
cl := jose.Claims{
|
||||||
Subject: "test.smallstep.com",
|
Subject: "test.smallstep.com",
|
||||||
Issuer: validIssuer,
|
Issuer: validIssuer,
|
||||||
NotBefore: jwt.NewNumericDate(now),
|
NotBefore: jose.NewNumericDate(now),
|
||||||
Expiry: jwt.NewNumericDate(now.Add(time.Minute)),
|
Expiry: jose.NewNumericDate(now.Add(time.Minute)),
|
||||||
Audience: validAudience,
|
Audience: validAudience,
|
||||||
ID: "44",
|
ID: "44",
|
||||||
}
|
}
|
||||||
raw, err := jwt.Signed(sig).Claims(cl).CompactSerialize()
|
raw, err := jose.Signed(sig).Claims(cl).CompactSerialize()
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
return &authorizeTest{
|
return &authorizeTest{
|
||||||
auth: a,
|
auth: a,
|
||||||
|
@ -459,7 +458,7 @@ func TestAuthority_authorizeSign(t *testing.T) {
|
||||||
func TestAuthority_Authorize(t *testing.T) {
|
func TestAuthority_Authorize(t *testing.T) {
|
||||||
a := testAuthority(t)
|
a := testAuthority(t)
|
||||||
|
|
||||||
jwk, err := jose.ParseKey("testdata/secrets/step_cli_key_priv.jwk", jose.WithPassword([]byte("pass")))
|
jwk, err := jose.ReadKey("testdata/secrets/step_cli_key_priv.jwk", jose.WithPassword([]byte("pass")))
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
|
|
||||||
sig, err := jose.NewSigner(jose.SigningKey{Algorithm: jose.ES256, Key: jwk.Key},
|
sig, err := jose.NewSigner(jose.SigningKey{Algorithm: jose.ES256, Key: jwk.Key},
|
||||||
|
@ -496,15 +495,15 @@ func TestAuthority_Authorize(t *testing.T) {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ok/sign": func(t *testing.T) *authorizeTest {
|
"ok/sign": func(t *testing.T) *authorizeTest {
|
||||||
cl := jwt.Claims{
|
cl := jose.Claims{
|
||||||
Subject: "test.smallstep.com",
|
Subject: "test.smallstep.com",
|
||||||
Issuer: validIssuer,
|
Issuer: validIssuer,
|
||||||
NotBefore: jwt.NewNumericDate(now),
|
NotBefore: jose.NewNumericDate(now),
|
||||||
Expiry: jwt.NewNumericDate(now.Add(time.Minute)),
|
Expiry: jose.NewNumericDate(now.Add(time.Minute)),
|
||||||
Audience: testAudiences.Sign,
|
Audience: testAudiences.Sign,
|
||||||
ID: "1",
|
ID: "1",
|
||||||
}
|
}
|
||||||
token, err := jwt.Signed(sig).Claims(cl).CompactSerialize()
|
token, err := jose.Signed(sig).Claims(cl).CompactSerialize()
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
return &authorizeTest{
|
return &authorizeTest{
|
||||||
auth: a,
|
auth: a,
|
||||||
|
@ -522,15 +521,15 @@ func TestAuthority_Authorize(t *testing.T) {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ok/revoke": func(t *testing.T) *authorizeTest {
|
"ok/revoke": func(t *testing.T) *authorizeTest {
|
||||||
cl := jwt.Claims{
|
cl := jose.Claims{
|
||||||
Subject: "test.smallstep.com",
|
Subject: "test.smallstep.com",
|
||||||
Issuer: validIssuer,
|
Issuer: validIssuer,
|
||||||
NotBefore: jwt.NewNumericDate(now),
|
NotBefore: jose.NewNumericDate(now),
|
||||||
Expiry: jwt.NewNumericDate(now.Add(time.Minute)),
|
Expiry: jose.NewNumericDate(now.Add(time.Minute)),
|
||||||
Audience: testAudiences.Revoke,
|
Audience: testAudiences.Revoke,
|
||||||
ID: "2",
|
ID: "2",
|
||||||
}
|
}
|
||||||
token, err := jwt.Signed(sig).Claims(cl).CompactSerialize()
|
token, err := jose.Signed(sig).Claims(cl).CompactSerialize()
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
return &authorizeTest{
|
return &authorizeTest{
|
||||||
auth: a,
|
auth: a,
|
||||||
|
@ -622,15 +621,15 @@ func TestAuthority_Authorize(t *testing.T) {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ok/sshRevoke": func(t *testing.T) *authorizeTest {
|
"ok/sshRevoke": func(t *testing.T) *authorizeTest {
|
||||||
cl := jwt.Claims{
|
cl := jose.Claims{
|
||||||
Subject: "test.smallstep.com",
|
Subject: "test.smallstep.com",
|
||||||
Issuer: validIssuer,
|
Issuer: validIssuer,
|
||||||
NotBefore: jwt.NewNumericDate(now),
|
NotBefore: jose.NewNumericDate(now),
|
||||||
Expiry: jwt.NewNumericDate(now.Add(time.Minute)),
|
Expiry: jose.NewNumericDate(now.Add(time.Minute)),
|
||||||
Audience: testAudiences.SSHRevoke,
|
Audience: testAudiences.SSHRevoke,
|
||||||
ID: "3",
|
ID: "3",
|
||||||
}
|
}
|
||||||
token, err := jwt.Signed(sig).Claims(cl).CompactSerialize()
|
token, err := jose.Signed(sig).Claims(cl).CompactSerialize()
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
return &authorizeTest{
|
return &authorizeTest{
|
||||||
auth: a,
|
auth: a,
|
||||||
|
@ -892,7 +891,7 @@ func createSSHCert(cert *ssh.Certificate, signer ssh.Signer) (*ssh.Certificate,
|
||||||
func TestAuthority_authorizeSSHSign(t *testing.T) {
|
func TestAuthority_authorizeSSHSign(t *testing.T) {
|
||||||
a := testAuthority(t)
|
a := testAuthority(t)
|
||||||
|
|
||||||
jwk, err := jose.ParseKey("testdata/secrets/step_cli_key_priv.jwk", jose.WithPassword([]byte("pass")))
|
jwk, err := jose.ReadKey("testdata/secrets/step_cli_key_priv.jwk", jose.WithPassword([]byte("pass")))
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
|
|
||||||
sig, err := jose.NewSigner(jose.SigningKey{Algorithm: jose.ES256, Key: jwk.Key},
|
sig, err := jose.NewSigner(jose.SigningKey{Algorithm: jose.ES256, Key: jwk.Key},
|
||||||
|
@ -920,15 +919,15 @@ func TestAuthority_authorizeSSHSign(t *testing.T) {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"fail/invalid-subject": func(t *testing.T) *authorizeTest {
|
"fail/invalid-subject": func(t *testing.T) *authorizeTest {
|
||||||
cl := jwt.Claims{
|
cl := jose.Claims{
|
||||||
Subject: "",
|
Subject: "",
|
||||||
Issuer: validIssuer,
|
Issuer: validIssuer,
|
||||||
NotBefore: jwt.NewNumericDate(now),
|
NotBefore: jose.NewNumericDate(now),
|
||||||
Expiry: jwt.NewNumericDate(now.Add(time.Minute)),
|
Expiry: jose.NewNumericDate(now.Add(time.Minute)),
|
||||||
Audience: validAudience,
|
Audience: validAudience,
|
||||||
ID: "43",
|
ID: "43",
|
||||||
}
|
}
|
||||||
raw, err := jwt.Signed(sig).Claims(cl).CompactSerialize()
|
raw, err := jose.Signed(sig).Claims(cl).CompactSerialize()
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
return &authorizeTest{
|
return &authorizeTest{
|
||||||
auth: a,
|
auth: a,
|
||||||
|
@ -971,7 +970,7 @@ func TestAuthority_authorizeSSHSign(t *testing.T) {
|
||||||
func TestAuthority_authorizeSSHRenew(t *testing.T) {
|
func TestAuthority_authorizeSSHRenew(t *testing.T) {
|
||||||
a := testAuthority(t)
|
a := testAuthority(t)
|
||||||
|
|
||||||
jwk, err := jose.ParseKey("testdata/secrets/step_cli_key_priv.jwk", jose.WithPassword([]byte("pass")))
|
jwk, err := jose.ReadKey("testdata/secrets/step_cli_key_priv.jwk", jose.WithPassword([]byte("pass")))
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
|
|
||||||
sig, err := jose.NewSigner(jose.SigningKey{Algorithm: jose.ES256, Key: jwk.Key},
|
sig, err := jose.NewSigner(jose.SigningKey{Algorithm: jose.ES256, Key: jwk.Key},
|
||||||
|
@ -999,15 +998,15 @@ func TestAuthority_authorizeSSHRenew(t *testing.T) {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"fail/sshRenew-unimplemented-jwk-provisioner": func(t *testing.T) *authorizeTest {
|
"fail/sshRenew-unimplemented-jwk-provisioner": func(t *testing.T) *authorizeTest {
|
||||||
cl := jwt.Claims{
|
cl := jose.Claims{
|
||||||
Subject: "",
|
Subject: "",
|
||||||
Issuer: validIssuer,
|
Issuer: validIssuer,
|
||||||
NotBefore: jwt.NewNumericDate(now),
|
NotBefore: jose.NewNumericDate(now),
|
||||||
Expiry: jwt.NewNumericDate(now.Add(time.Minute)),
|
Expiry: jose.NewNumericDate(now.Add(time.Minute)),
|
||||||
Audience: testAudiences.SSHRenew,
|
Audience: testAudiences.SSHRenew,
|
||||||
ID: "43",
|
ID: "43",
|
||||||
}
|
}
|
||||||
raw, err := jwt.Signed(sig).Claims(cl).CompactSerialize()
|
raw, err := jose.Signed(sig).Claims(cl).CompactSerialize()
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
return &authorizeTest{
|
return &authorizeTest{
|
||||||
auth: a,
|
auth: a,
|
||||||
|
@ -1073,7 +1072,7 @@ func TestAuthority_authorizeSSHRevoke(t *testing.T) {
|
||||||
},
|
},
|
||||||
})}...)
|
})}...)
|
||||||
|
|
||||||
jwk, err := jose.ParseKey("testdata/secrets/step_cli_key_priv.jwk", jose.WithPassword([]byte("pass")))
|
jwk, err := jose.ReadKey("testdata/secrets/step_cli_key_priv.jwk", jose.WithPassword([]byte("pass")))
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
|
|
||||||
sig, err := jose.NewSigner(jose.SigningKey{Algorithm: jose.ES256, Key: jwk.Key},
|
sig, err := jose.NewSigner(jose.SigningKey{Algorithm: jose.ES256, Key: jwk.Key},
|
||||||
|
@ -1100,15 +1099,15 @@ func TestAuthority_authorizeSSHRevoke(t *testing.T) {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"fail/invalid-subject": func(t *testing.T) *authorizeTest {
|
"fail/invalid-subject": func(t *testing.T) *authorizeTest {
|
||||||
cl := jwt.Claims{
|
cl := jose.Claims{
|
||||||
Subject: "",
|
Subject: "",
|
||||||
Issuer: validIssuer,
|
Issuer: validIssuer,
|
||||||
NotBefore: jwt.NewNumericDate(now),
|
NotBefore: jose.NewNumericDate(now),
|
||||||
Expiry: jwt.NewNumericDate(now.Add(time.Minute)),
|
Expiry: jose.NewNumericDate(now.Add(time.Minute)),
|
||||||
Audience: testAudiences.SSHRevoke,
|
Audience: testAudiences.SSHRevoke,
|
||||||
ID: "43",
|
ID: "43",
|
||||||
}
|
}
|
||||||
raw, err := jwt.Signed(sig).Claims(cl).CompactSerialize()
|
raw, err := jose.Signed(sig).Claims(cl).CompactSerialize()
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
return &authorizeTest{
|
return &authorizeTest{
|
||||||
auth: a,
|
auth: a,
|
||||||
|
@ -1164,7 +1163,7 @@ func TestAuthority_authorizeSSHRevoke(t *testing.T) {
|
||||||
func TestAuthority_authorizeSSHRekey(t *testing.T) {
|
func TestAuthority_authorizeSSHRekey(t *testing.T) {
|
||||||
a := testAuthority(t)
|
a := testAuthority(t)
|
||||||
|
|
||||||
jwk, err := jose.ParseKey("testdata/secrets/step_cli_key_priv.jwk", jose.WithPassword([]byte("pass")))
|
jwk, err := jose.ReadKey("testdata/secrets/step_cli_key_priv.jwk", jose.WithPassword([]byte("pass")))
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
|
|
||||||
sig, err := jose.NewSigner(jose.SigningKey{Algorithm: jose.ES256, Key: jwk.Key},
|
sig, err := jose.NewSigner(jose.SigningKey{Algorithm: jose.ES256, Key: jwk.Key},
|
||||||
|
@ -1192,15 +1191,15 @@ func TestAuthority_authorizeSSHRekey(t *testing.T) {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"fail/sshRekey-unimplemented-jwk-provisioner": func(t *testing.T) *authorizeTest {
|
"fail/sshRekey-unimplemented-jwk-provisioner": func(t *testing.T) *authorizeTest {
|
||||||
cl := jwt.Claims{
|
cl := jose.Claims{
|
||||||
Subject: "",
|
Subject: "",
|
||||||
Issuer: validIssuer,
|
Issuer: validIssuer,
|
||||||
NotBefore: jwt.NewNumericDate(now),
|
NotBefore: jose.NewNumericDate(now),
|
||||||
Expiry: jwt.NewNumericDate(now.Add(time.Minute)),
|
Expiry: jose.NewNumericDate(now.Add(time.Minute)),
|
||||||
Audience: testAudiences.SSHRekey,
|
Audience: testAudiences.SSHRekey,
|
||||||
ID: "43",
|
ID: "43",
|
||||||
}
|
}
|
||||||
raw, err := jwt.Signed(sig).Claims(cl).CompactSerialize()
|
raw, err := jose.Signed(sig).Claims(cl).CompactSerialize()
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
return &authorizeTest{
|
return &authorizeTest{
|
||||||
auth: a,
|
auth: a,
|
||||||
|
|
|
@ -7,13 +7,13 @@ import (
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/smallstep/assert"
|
"github.com/smallstep/assert"
|
||||||
"github.com/smallstep/certificates/authority/provisioner"
|
"github.com/smallstep/certificates/authority/provisioner"
|
||||||
stepJOSE "github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestConfigValidate(t *testing.T) {
|
func TestConfigValidate(t *testing.T) {
|
||||||
maxjwk, err := stepJOSE.ParseKey("testdata/secrets/max_pub.jwk")
|
maxjwk, err := jose.ReadKey("testdata/secrets/max_pub.jwk")
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
clijwk, err := stepJOSE.ParseKey("testdata/secrets/step_cli_key_pub.jwk")
|
clijwk, err := jose.ReadKey("testdata/secrets/step_cli_key_pub.jwk")
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
ac := &AuthConfig{
|
ac := &AuthConfig{
|
||||||
Provisioners: provisioner.List{
|
Provisioners: provisioner.List{
|
||||||
|
@ -224,9 +224,9 @@ func TestAuthConfigValidate(t *testing.T) {
|
||||||
CommonName: "test",
|
CommonName: "test",
|
||||||
}
|
}
|
||||||
|
|
||||||
maxjwk, err := stepJOSE.ParseKey("testdata/secrets/max_pub.jwk")
|
maxjwk, err := jose.ReadKey("testdata/secrets/max_pub.jwk")
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
clijwk, err := stepJOSE.ParseKey("testdata/secrets/step_cli_key_pub.jwk")
|
clijwk, err := jose.ReadKey("testdata/secrets/step_cli_key_pub.jwk")
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
p := provisioner.List{
|
p := provisioner.List{
|
||||||
&provisioner.JWK{
|
&provisioner.JWK{
|
||||||
|
|
|
@ -17,7 +17,7 @@ import (
|
||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/smallstep/certificates/errs"
|
"github.com/smallstep/certificates/errs"
|
||||||
"github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
"go.step.sm/crypto/sshutil"
|
"go.step.sm/crypto/sshutil"
|
||||||
"go.step.sm/crypto/x509util"
|
"go.step.sm/crypto/x509util"
|
||||||
)
|
)
|
||||||
|
|
|
@ -20,7 +20,7 @@ import (
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/smallstep/assert"
|
"github.com/smallstep/assert"
|
||||||
"github.com/smallstep/certificates/errs"
|
"github.com/smallstep/certificates/errs"
|
||||||
"github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestAWS_Getters(t *testing.T) {
|
func TestAWS_Getters(t *testing.T) {
|
||||||
|
|
|
@ -14,7 +14,7 @@ import (
|
||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/smallstep/certificates/errs"
|
"github.com/smallstep/certificates/errs"
|
||||||
"github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
"go.step.sm/crypto/sshutil"
|
"go.step.sm/crypto/sshutil"
|
||||||
"go.step.sm/crypto/x509util"
|
"go.step.sm/crypto/x509util"
|
||||||
)
|
)
|
||||||
|
|
|
@ -18,7 +18,7 @@ import (
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/smallstep/assert"
|
"github.com/smallstep/assert"
|
||||||
"github.com/smallstep/certificates/errs"
|
"github.com/smallstep/certificates/errs"
|
||||||
"github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestAzure_Getters(t *testing.T) {
|
func TestAzure_Getters(t *testing.T) {
|
||||||
|
|
|
@ -13,7 +13,7 @@ import (
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
)
|
)
|
||||||
|
|
||||||
// DefaultProvisionersLimit is the default limit for listing provisioners.
|
// DefaultProvisionersLimit is the default limit for listing provisioners.
|
||||||
|
|
|
@ -9,7 +9,7 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/smallstep/assert"
|
"github.com/smallstep/assert"
|
||||||
"github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestCollection_Load(t *testing.T) {
|
func TestCollection_Load(t *testing.T) {
|
||||||
|
|
|
@ -15,7 +15,7 @@ import (
|
||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/smallstep/certificates/errs"
|
"github.com/smallstep/certificates/errs"
|
||||||
"github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
"go.step.sm/crypto/sshutil"
|
"go.step.sm/crypto/sshutil"
|
||||||
"go.step.sm/crypto/x509util"
|
"go.step.sm/crypto/x509util"
|
||||||
)
|
)
|
||||||
|
|
|
@ -19,7 +19,7 @@ import (
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/smallstep/assert"
|
"github.com/smallstep/assert"
|
||||||
"github.com/smallstep/certificates/errs"
|
"github.com/smallstep/certificates/errs"
|
||||||
"github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestGCP_Getters(t *testing.T) {
|
func TestGCP_Getters(t *testing.T) {
|
||||||
|
|
|
@ -8,7 +8,7 @@ import (
|
||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/smallstep/certificates/errs"
|
"github.com/smallstep/certificates/errs"
|
||||||
"github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
"go.step.sm/crypto/sshutil"
|
"go.step.sm/crypto/sshutil"
|
||||||
"go.step.sm/crypto/x509util"
|
"go.step.sm/crypto/x509util"
|
||||||
)
|
)
|
||||||
|
|
|
@ -14,7 +14,7 @@ import (
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/smallstep/assert"
|
"github.com/smallstep/assert"
|
||||||
"github.com/smallstep/certificates/errs"
|
"github.com/smallstep/certificates/errs"
|
||||||
"github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestJWK_Getters(t *testing.T) {
|
func TestJWK_Getters(t *testing.T) {
|
||||||
|
|
|
@ -11,7 +11,7 @@ import (
|
||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/smallstep/certificates/errs"
|
"github.com/smallstep/certificates/errs"
|
||||||
"github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
"go.step.sm/crypto/pemutil"
|
"go.step.sm/crypto/pemutil"
|
||||||
"go.step.sm/crypto/sshutil"
|
"go.step.sm/crypto/sshutil"
|
||||||
"go.step.sm/crypto/x509util"
|
"go.step.sm/crypto/x509util"
|
||||||
|
|
|
@ -10,7 +10,7 @@ import (
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/smallstep/assert"
|
"github.com/smallstep/assert"
|
||||||
"github.com/smallstep/certificates/errs"
|
"github.com/smallstep/certificates/errs"
|
||||||
"github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestK8sSA_Getters(t *testing.T) {
|
func TestK8sSA_Getters(t *testing.T) {
|
||||||
|
|
|
@ -10,7 +10,7 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|
|
@ -8,7 +8,7 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/smallstep/assert"
|
"github.com/smallstep/assert"
|
||||||
"github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
)
|
)
|
||||||
|
|
||||||
func Test_newKeyStore(t *testing.T) {
|
func Test_newKeyStore(t *testing.T) {
|
||||||
|
|
|
@ -13,7 +13,7 @@ import (
|
||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/smallstep/certificates/errs"
|
"github.com/smallstep/certificates/errs"
|
||||||
"github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
"go.step.sm/crypto/sshutil"
|
"go.step.sm/crypto/sshutil"
|
||||||
"go.step.sm/crypto/x509util"
|
"go.step.sm/crypto/x509util"
|
||||||
)
|
)
|
||||||
|
|
|
@ -15,7 +15,7 @@ import (
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/smallstep/assert"
|
"github.com/smallstep/assert"
|
||||||
"github.com/smallstep/certificates/errs"
|
"github.com/smallstep/certificates/errs"
|
||||||
"github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
)
|
)
|
||||||
|
|
||||||
func Test_openIDConfiguration_Validate(t *testing.T) {
|
func Test_openIDConfiguration_Validate(t *testing.T) {
|
||||||
|
|
|
@ -5,7 +5,7 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
"go.step.sm/crypto/x509util"
|
"go.step.sm/crypto/x509util"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ import (
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/smallstep/certificates/db"
|
"github.com/smallstep/certificates/db"
|
||||||
"github.com/smallstep/certificates/errs"
|
"github.com/smallstep/certificates/errs"
|
||||||
"github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
"golang.org/x/crypto/ssh"
|
"golang.org/x/crypto/ssh"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ import (
|
||||||
"github.com/smallstep/assert"
|
"github.com/smallstep/assert"
|
||||||
"github.com/smallstep/certificates/db"
|
"github.com/smallstep/certificates/db"
|
||||||
"github.com/smallstep/certificates/errs"
|
"github.com/smallstep/certificates/errs"
|
||||||
"github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
"go.step.sm/crypto/pemutil"
|
"go.step.sm/crypto/pemutil"
|
||||||
"golang.org/x/crypto/ssh"
|
"golang.org/x/crypto/ssh"
|
||||||
)
|
)
|
||||||
|
|
|
@ -16,7 +16,7 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
"go.step.sm/crypto/pemutil"
|
"go.step.sm/crypto/pemutil"
|
||||||
"go.step.sm/crypto/randutil"
|
"go.step.sm/crypto/randutil"
|
||||||
"golang.org/x/crypto/ssh"
|
"golang.org/x/crypto/ssh"
|
||||||
|
|
|
@ -9,7 +9,7 @@ import (
|
||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/smallstep/certificates/errs"
|
"github.com/smallstep/certificates/errs"
|
||||||
"github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
"go.step.sm/crypto/sshutil"
|
"go.step.sm/crypto/sshutil"
|
||||||
"go.step.sm/crypto/x509util"
|
"go.step.sm/crypto/x509util"
|
||||||
)
|
)
|
||||||
|
|
|
@ -9,7 +9,7 @@ import (
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/smallstep/assert"
|
"github.com/smallstep/assert"
|
||||||
"github.com/smallstep/certificates/errs"
|
"github.com/smallstep/certificates/errs"
|
||||||
"github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
"go.step.sm/crypto/pemutil"
|
"go.step.sm/crypto/pemutil"
|
||||||
"go.step.sm/crypto/randutil"
|
"go.step.sm/crypto/randutil"
|
||||||
)
|
)
|
||||||
|
@ -154,7 +154,7 @@ M46l92gdOozT
|
||||||
func TestX5C_authorizeToken(t *testing.T) {
|
func TestX5C_authorizeToken(t *testing.T) {
|
||||||
x5cCerts, err := pemutil.ReadCertificateBundle("./testdata/certs/x5c-leaf.crt")
|
x5cCerts, err := pemutil.ReadCertificateBundle("./testdata/certs/x5c-leaf.crt")
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
x5cJWK, err := jose.ParseKey("./testdata/secrets/x5c-leaf.key")
|
x5cJWK, err := jose.ReadKey("./testdata/secrets/x5c-leaf.key")
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
|
|
||||||
type test struct {
|
type test struct {
|
||||||
|
@ -402,7 +402,7 @@ lgsqsR63is+0YQ==
|
||||||
func TestX5C_AuthorizeSign(t *testing.T) {
|
func TestX5C_AuthorizeSign(t *testing.T) {
|
||||||
certs, err := pemutil.ReadCertificateBundle("./testdata/certs/x5c-leaf.crt")
|
certs, err := pemutil.ReadCertificateBundle("./testdata/certs/x5c-leaf.crt")
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
jwk, err := jose.ParseKey("./testdata/secrets/x5c-leaf.key")
|
jwk, err := jose.ReadKey("./testdata/secrets/x5c-leaf.key")
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
|
|
||||||
type test struct {
|
type test struct {
|
||||||
|
@ -518,7 +518,7 @@ func TestX5C_AuthorizeRevoke(t *testing.T) {
|
||||||
"ok": func(t *testing.T) test {
|
"ok": func(t *testing.T) test {
|
||||||
certs, err := pemutil.ReadCertificateBundle("./testdata/certs/x5c-leaf.crt")
|
certs, err := pemutil.ReadCertificateBundle("./testdata/certs/x5c-leaf.crt")
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
jwk, err := jose.ParseKey("./testdata/secrets/x5c-leaf.key")
|
jwk, err := jose.ReadKey("./testdata/secrets/x5c-leaf.key")
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
|
|
||||||
p, err := generateX5C(nil)
|
p, err := generateX5C(nil)
|
||||||
|
@ -599,7 +599,7 @@ func TestX5C_AuthorizeRenew(t *testing.T) {
|
||||||
func TestX5C_AuthorizeSSHSign(t *testing.T) {
|
func TestX5C_AuthorizeSSHSign(t *testing.T) {
|
||||||
x5cCerts, err := pemutil.ReadCertificateBundle("./testdata/certs/x5c-leaf.crt")
|
x5cCerts, err := pemutil.ReadCertificateBundle("./testdata/certs/x5c-leaf.crt")
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
x5cJWK, err := jose.ParseKey("./testdata/secrets/x5c-leaf.key")
|
x5cJWK, err := jose.ReadKey("./testdata/secrets/x5c-leaf.key")
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
|
|
||||||
_, fn := mockNow()
|
_, fn := mockNow()
|
||||||
|
|
|
@ -14,7 +14,7 @@ import (
|
||||||
"github.com/smallstep/certificates/db"
|
"github.com/smallstep/certificates/db"
|
||||||
"github.com/smallstep/certificates/errs"
|
"github.com/smallstep/certificates/errs"
|
||||||
"github.com/smallstep/certificates/templates"
|
"github.com/smallstep/certificates/templates"
|
||||||
"github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
"go.step.sm/crypto/randutil"
|
"go.step.sm/crypto/randutil"
|
||||||
"go.step.sm/crypto/sshutil"
|
"go.step.sm/crypto/sshutil"
|
||||||
"golang.org/x/crypto/ssh"
|
"golang.org/x/crypto/ssh"
|
||||||
|
|
|
@ -19,7 +19,7 @@ import (
|
||||||
"github.com/smallstep/certificates/db"
|
"github.com/smallstep/certificates/db"
|
||||||
"github.com/smallstep/certificates/errs"
|
"github.com/smallstep/certificates/errs"
|
||||||
"github.com/smallstep/certificates/templates"
|
"github.com/smallstep/certificates/templates"
|
||||||
"github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
"go.step.sm/crypto/sshutil"
|
"go.step.sm/crypto/sshutil"
|
||||||
"golang.org/x/crypto/ssh"
|
"golang.org/x/crypto/ssh"
|
||||||
)
|
)
|
||||||
|
|
|
@ -15,7 +15,7 @@ import (
|
||||||
"github.com/smallstep/certificates/authority/provisioner"
|
"github.com/smallstep/certificates/authority/provisioner"
|
||||||
"github.com/smallstep/certificates/db"
|
"github.com/smallstep/certificates/db"
|
||||||
"github.com/smallstep/certificates/errs"
|
"github.com/smallstep/certificates/errs"
|
||||||
"github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
"go.step.sm/crypto/keyutil"
|
"go.step.sm/crypto/keyutil"
|
||||||
"go.step.sm/crypto/pemutil"
|
"go.step.sm/crypto/pemutil"
|
||||||
"go.step.sm/crypto/x509util"
|
"go.step.sm/crypto/x509util"
|
||||||
|
@ -281,7 +281,7 @@ func (a *Authority) Revoke(ctx context.Context, revokeOpts *RevokeOptions) error
|
||||||
errs.WithKeyVal("reason", revokeOpts.Reason),
|
errs.WithKeyVal("reason", revokeOpts.Reason),
|
||||||
errs.WithKeyVal("passiveOnly", revokeOpts.PassiveOnly),
|
errs.WithKeyVal("passiveOnly", revokeOpts.PassiveOnly),
|
||||||
errs.WithKeyVal("MTLS", revokeOpts.MTLS),
|
errs.WithKeyVal("MTLS", revokeOpts.MTLS),
|
||||||
errs.WithKeyVal("context", string(provisioner.MethodFromContext(ctx))),
|
errs.WithKeyVal("context", provisioner.MethodFromContext(ctx).String()),
|
||||||
}
|
}
|
||||||
if revokeOpts.MTLS {
|
if revokeOpts.MTLS {
|
||||||
opts = append(opts, errs.WithKeyVal("certificate", base64.StdEncoding.EncodeToString(revokeOpts.Crt.Raw)))
|
opts = append(opts, errs.WithKeyVal("certificate", base64.StdEncoding.EncodeToString(revokeOpts.Crt.Raw)))
|
||||||
|
|
|
@ -22,7 +22,7 @@ import (
|
||||||
"github.com/smallstep/certificates/authority/provisioner"
|
"github.com/smallstep/certificates/authority/provisioner"
|
||||||
"github.com/smallstep/certificates/db"
|
"github.com/smallstep/certificates/db"
|
||||||
"github.com/smallstep/certificates/errs"
|
"github.com/smallstep/certificates/errs"
|
||||||
"github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
"go.step.sm/crypto/keyutil"
|
"go.step.sm/crypto/keyutil"
|
||||||
"go.step.sm/crypto/pemutil"
|
"go.step.sm/crypto/pemutil"
|
||||||
"go.step.sm/crypto/x509util"
|
"go.step.sm/crypto/x509util"
|
||||||
|
@ -219,7 +219,7 @@ func TestAuthority_Sign(t *testing.T) {
|
||||||
|
|
||||||
// Create a token to get test extra opts.
|
// Create a token to get test extra opts.
|
||||||
p := a.config.AuthorityConfig.Provisioners[1].(*provisioner.JWK)
|
p := a.config.AuthorityConfig.Provisioners[1].(*provisioner.JWK)
|
||||||
key, err := jose.ParseKey("testdata/secrets/step_cli_key_priv.jwk", jose.WithPassword([]byte("pass")))
|
key, err := jose.ReadKey("testdata/secrets/step_cli_key_priv.jwk", jose.WithPassword([]byte("pass")))
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
token, err := generateToken("smallstep test", "step-cli", testAudiences.Sign[0], []string{"test.smallstep.com"}, time.Now(), key)
|
token, err := generateToken("smallstep test", "step-cli", testAudiences.Sign[0], []string{"test.smallstep.com"}, time.Now(), key)
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
|
@ -1000,7 +1000,7 @@ func TestAuthority_Revoke(t *testing.T) {
|
||||||
validAudience := testAudiences.Revoke
|
validAudience := testAudiences.Revoke
|
||||||
now := time.Now().UTC()
|
now := time.Now().UTC()
|
||||||
|
|
||||||
jwk, err := jose.ParseKey("testdata/secrets/step_cli_key_priv.jwk", jose.WithPassword([]byte("pass")))
|
jwk, err := jose.ReadKey("testdata/secrets/step_cli_key_priv.jwk", jose.WithPassword([]byte("pass")))
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
|
|
||||||
sig, err := jose.NewSigner(jose.SigningKey{Algorithm: jose.ES256, Key: jwk.Key},
|
sig, err := jose.NewSigner(jose.SigningKey{Algorithm: jose.ES256, Key: jwk.Key},
|
||||||
|
@ -1193,7 +1193,7 @@ func TestAuthority_Revoke(t *testing.T) {
|
||||||
assert.Equals(t, ctxErr.Details["reasonCode"], tc.opts.ReasonCode)
|
assert.Equals(t, ctxErr.Details["reasonCode"], tc.opts.ReasonCode)
|
||||||
assert.Equals(t, ctxErr.Details["reason"], tc.opts.Reason)
|
assert.Equals(t, ctxErr.Details["reason"], tc.opts.Reason)
|
||||||
assert.Equals(t, ctxErr.Details["MTLS"], tc.opts.MTLS)
|
assert.Equals(t, ctxErr.Details["MTLS"], tc.opts.MTLS)
|
||||||
assert.Equals(t, ctxErr.Details["context"], string(provisioner.RevokeMethod))
|
assert.Equals(t, ctxErr.Details["context"], provisioner.RevokeMethod.String())
|
||||||
|
|
||||||
if tc.checkErrDetails != nil {
|
if tc.checkErrDetails != nil {
|
||||||
tc.checkErrDetails(ctxErr)
|
tc.checkErrDetails(ctxErr)
|
||||||
|
|
|
@ -14,7 +14,7 @@ import (
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/smallstep/certificates/acme"
|
"github.com/smallstep/certificates/acme"
|
||||||
acmeAPI "github.com/smallstep/certificates/acme/api"
|
acmeAPI "github.com/smallstep/certificates/acme/api"
|
||||||
"github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ACMEClient implements an HTTP client to an ACME API.
|
// ACMEClient implements an HTTP client to an ACME API.
|
||||||
|
|
|
@ -16,7 +16,7 @@ import (
|
||||||
"github.com/smallstep/certificates/acme"
|
"github.com/smallstep/certificates/acme"
|
||||||
acmeAPI "github.com/smallstep/certificates/acme/api"
|
acmeAPI "github.com/smallstep/certificates/acme/api"
|
||||||
"github.com/smallstep/certificates/api"
|
"github.com/smallstep/certificates/api"
|
||||||
"github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
"go.step.sm/crypto/pemutil"
|
"go.step.sm/crypto/pemutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -8,8 +8,7 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
"gopkg.in/square/go-jose.v2/jwt"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type tokenClaims struct {
|
type tokenClaims struct {
|
||||||
|
@ -20,7 +19,7 @@ type tokenClaims struct {
|
||||||
// Bootstrap is a helper function that initializes a client with the
|
// Bootstrap is a helper function that initializes a client with the
|
||||||
// configuration in the bootstrap token.
|
// configuration in the bootstrap token.
|
||||||
func Bootstrap(token string) (*Client, error) {
|
func Bootstrap(token string) (*Client, error) {
|
||||||
tok, err := jwt.ParseSigned(token)
|
tok, err := jose.ParseSigned(token)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.Wrap(err, "error parsing token")
|
return nil, errors.Wrap(err, "error parsing token")
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,10 +15,8 @@ import (
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/smallstep/certificates/api"
|
"github.com/smallstep/certificates/api"
|
||||||
"github.com/smallstep/certificates/authority"
|
"github.com/smallstep/certificates/authority"
|
||||||
stepJOSE "github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
"go.step.sm/crypto/randutil"
|
"go.step.sm/crypto/randutil"
|
||||||
jose "gopkg.in/square/go-jose.v2"
|
|
||||||
"gopkg.in/square/go-jose.v2/jwt"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func newLocalListener() net.Listener {
|
func newLocalListener() net.Listener {
|
||||||
|
@ -78,7 +76,7 @@ func startCAServer(configFile string) (*CA, string, error) {
|
||||||
|
|
||||||
func generateBootstrapToken(ca, subject, sha string) string {
|
func generateBootstrapToken(ca, subject, sha string) string {
|
||||||
now := time.Now()
|
now := time.Now()
|
||||||
jwk, err := stepJOSE.ParseKey("testdata/secrets/ott_mariano_priv.jwk", stepJOSE.WithPassword([]byte("password")))
|
jwk, err := jose.ReadKey("testdata/secrets/ott_mariano_priv.jwk", jose.WithPassword([]byte("password")))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
@ -93,21 +91,21 @@ func generateBootstrapToken(ca, subject, sha string) string {
|
||||||
}
|
}
|
||||||
cl := struct {
|
cl := struct {
|
||||||
SHA string `json:"sha"`
|
SHA string `json:"sha"`
|
||||||
jwt.Claims
|
jose.Claims
|
||||||
SANS []string `json:"sans"`
|
SANS []string `json:"sans"`
|
||||||
}{
|
}{
|
||||||
SHA: sha,
|
SHA: sha,
|
||||||
Claims: jwt.Claims{
|
Claims: jose.Claims{
|
||||||
ID: id,
|
ID: id,
|
||||||
Subject: subject,
|
Subject: subject,
|
||||||
Issuer: "mariano",
|
Issuer: "mariano",
|
||||||
NotBefore: jwt.NewNumericDate(now),
|
NotBefore: jose.NewNumericDate(now),
|
||||||
Expiry: jwt.NewNumericDate(now.Add(time.Minute)),
|
Expiry: jose.NewNumericDate(now.Add(time.Minute)),
|
||||||
Audience: []string{ca + "/sign"},
|
Audience: []string{ca + "/sign"},
|
||||||
},
|
},
|
||||||
SANS: []string{subject},
|
SANS: []string{subject},
|
||||||
}
|
}
|
||||||
raw, err := jwt.Signed(sig).Claims(cl).CompactSerialize()
|
raw, err := jose.Signed(sig).Claims(cl).CompactSerialize()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,13 +25,11 @@ import (
|
||||||
"github.com/smallstep/certificates/authority"
|
"github.com/smallstep/certificates/authority"
|
||||||
"github.com/smallstep/certificates/authority/provisioner"
|
"github.com/smallstep/certificates/authority/provisioner"
|
||||||
"github.com/smallstep/certificates/errs"
|
"github.com/smallstep/certificates/errs"
|
||||||
stepJOSE "github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
"go.step.sm/crypto/keyutil"
|
"go.step.sm/crypto/keyutil"
|
||||||
"go.step.sm/crypto/pemutil"
|
"go.step.sm/crypto/pemutil"
|
||||||
"go.step.sm/crypto/randutil"
|
"go.step.sm/crypto/randutil"
|
||||||
"go.step.sm/crypto/x509util"
|
"go.step.sm/crypto/x509util"
|
||||||
jose "gopkg.in/square/go-jose.v2"
|
|
||||||
"gopkg.in/square/go-jose.v2/jwt"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type ClosingBuffer struct {
|
type ClosingBuffer struct {
|
||||||
|
@ -95,7 +93,7 @@ func TestCASign(t *testing.T) {
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
intermediateCert, err := pemutil.ReadCertificate("testdata/secrets/intermediate_ca.crt")
|
intermediateCert, err := pemutil.ReadCertificate("testdata/secrets/intermediate_ca.crt")
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
clijwk, err := stepJOSE.ParseKey("testdata/secrets/step_cli_key_priv.jwk", stepJOSE.WithPassword([]byte("pass")))
|
clijwk, err := jose.ReadKey("testdata/secrets/step_cli_key_priv.jwk", jose.WithPassword([]byte("pass")))
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
sig, err := jose.NewSigner(jose.SigningKey{Algorithm: jose.ES256, Key: clijwk.Key},
|
sig, err := jose.NewSigner(jose.SigningKey{Algorithm: jose.ES256, Key: clijwk.Key},
|
||||||
(&jose.SignerOptions{}).WithType("JWT").WithHeader("kid", clijwk.KeyID))
|
(&jose.SignerOptions{}).WithType("JWT").WithHeader("kid", clijwk.KeyID))
|
||||||
|
@ -177,20 +175,20 @@ ZEp7knvU2psWRw==
|
||||||
jti, err := randutil.ASCII(32)
|
jti, err := randutil.ASCII(32)
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
cl := struct {
|
cl := struct {
|
||||||
jwt.Claims
|
jose.Claims
|
||||||
SANS []string `json:"sans"`
|
SANS []string `json:"sans"`
|
||||||
}{
|
}{
|
||||||
Claims: jwt.Claims{
|
Claims: jose.Claims{
|
||||||
Subject: "invalid",
|
Subject: "invalid",
|
||||||
Issuer: "step-cli",
|
Issuer: "step-cli",
|
||||||
NotBefore: jwt.NewNumericDate(now),
|
NotBefore: jose.NewNumericDate(now),
|
||||||
Expiry: jwt.NewNumericDate(now.Add(time.Minute)),
|
Expiry: jose.NewNumericDate(now.Add(time.Minute)),
|
||||||
Audience: validAud,
|
Audience: validAud,
|
||||||
ID: jti,
|
ID: jti,
|
||||||
},
|
},
|
||||||
SANS: []string{"invalid"},
|
SANS: []string{"invalid"},
|
||||||
}
|
}
|
||||||
raw, err := jwt.Signed(sig).Claims(cl).CompactSerialize()
|
raw, err := jose.Signed(sig).Claims(cl).CompactSerialize()
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
csr, err := getCSR(priv)
|
csr, err := getCSR(priv)
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
|
@ -210,20 +208,20 @@ ZEp7knvU2psWRw==
|
||||||
jti, err := randutil.ASCII(32)
|
jti, err := randutil.ASCII(32)
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
cl := struct {
|
cl := struct {
|
||||||
jwt.Claims
|
jose.Claims
|
||||||
SANS []string `json:"sans"`
|
SANS []string `json:"sans"`
|
||||||
}{
|
}{
|
||||||
Claims: jwt.Claims{
|
Claims: jose.Claims{
|
||||||
Subject: "test.smallstep.com",
|
Subject: "test.smallstep.com",
|
||||||
Issuer: "step-cli",
|
Issuer: "step-cli",
|
||||||
NotBefore: jwt.NewNumericDate(now),
|
NotBefore: jose.NewNumericDate(now),
|
||||||
Expiry: jwt.NewNumericDate(now.Add(time.Minute)),
|
Expiry: jose.NewNumericDate(now.Add(time.Minute)),
|
||||||
Audience: validAud,
|
Audience: validAud,
|
||||||
ID: jti,
|
ID: jti,
|
||||||
},
|
},
|
||||||
SANS: []string{"test.smallstep.com"},
|
SANS: []string{"test.smallstep.com"},
|
||||||
}
|
}
|
||||||
raw, err := jwt.Signed(sig).Claims(cl).CompactSerialize()
|
raw, err := jose.Signed(sig).Claims(cl).CompactSerialize()
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
csr, err := getCSR(priv)
|
csr, err := getCSR(priv)
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
|
@ -244,19 +242,19 @@ ZEp7knvU2psWRw==
|
||||||
jti, err := randutil.ASCII(32)
|
jti, err := randutil.ASCII(32)
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
cl := struct {
|
cl := struct {
|
||||||
jwt.Claims
|
jose.Claims
|
||||||
SANS []string `json:"sans"`
|
SANS []string `json:"sans"`
|
||||||
}{
|
}{
|
||||||
Claims: jwt.Claims{
|
Claims: jose.Claims{
|
||||||
Subject: "test.smallstep.com",
|
Subject: "test.smallstep.com",
|
||||||
Issuer: "step-cli",
|
Issuer: "step-cli",
|
||||||
NotBefore: jwt.NewNumericDate(now),
|
NotBefore: jose.NewNumericDate(now),
|
||||||
Expiry: jwt.NewNumericDate(now.Add(time.Minute)),
|
Expiry: jose.NewNumericDate(now.Add(time.Minute)),
|
||||||
Audience: validAud,
|
Audience: validAud,
|
||||||
ID: jti,
|
ID: jti,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
raw, err := jwt.Signed(sig).Claims(cl).CompactSerialize()
|
raw, err := jose.Signed(sig).Claims(cl).CompactSerialize()
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
csr, err := getCSR(priv)
|
csr, err := getCSR(priv)
|
||||||
assert.FatalError(t, err)
|
assert.FatalError(t, err)
|
||||||
|
|
|
@ -7,9 +7,9 @@ import (
|
||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/smallstep/certificates/authority/provisioner"
|
"github.com/smallstep/certificates/authority/provisioner"
|
||||||
"github.com/smallstep/cli/jose"
|
|
||||||
"github.com/smallstep/cli/token"
|
"github.com/smallstep/cli/token"
|
||||||
"github.com/smallstep/cli/token/provision"
|
"github.com/smallstep/cli/token/provision"
|
||||||
|
"go.step.sm/crypto/jose"
|
||||||
"go.step.sm/crypto/randutil"
|
"go.step.sm/crypto/randutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -7,13 +7,13 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
"go.step.sm/crypto/pemutil"
|
"go.step.sm/crypto/pemutil"
|
||||||
"go.step.sm/crypto/x509util"
|
"go.step.sm/crypto/x509util"
|
||||||
)
|
)
|
||||||
|
|
||||||
func getTestProvisioner(t *testing.T, caURL string) *Provisioner {
|
func getTestProvisioner(t *testing.T, caURL string) *Provisioner {
|
||||||
jwk, err := jose.ParseKey("testdata/secrets/ott_mariano_priv.jwk", jose.WithPassword([]byte("password")))
|
jwk, err := jose.ReadKey("testdata/secrets/ott_mariano_priv.jwk", jose.WithPassword([]byte("password")))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,15 +18,13 @@ import (
|
||||||
|
|
||||||
"github.com/smallstep/certificates/api"
|
"github.com/smallstep/certificates/api"
|
||||||
"github.com/smallstep/certificates/authority"
|
"github.com/smallstep/certificates/authority"
|
||||||
stepJOSE "github.com/smallstep/cli/jose"
|
"go.step.sm/crypto/jose"
|
||||||
"go.step.sm/crypto/randutil"
|
"go.step.sm/crypto/randutil"
|
||||||
jose "gopkg.in/square/go-jose.v2"
|
|
||||||
"gopkg.in/square/go-jose.v2/jwt"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func generateOTT(subject string) string {
|
func generateOTT(subject string) string {
|
||||||
now := time.Now()
|
now := time.Now()
|
||||||
jwk, err := stepJOSE.ParseKey("testdata/secrets/ott_mariano_priv.jwk", stepJOSE.WithPassword([]byte("password")))
|
jwk, err := jose.ReadKey("testdata/secrets/ott_mariano_priv.jwk", jose.WithPassword([]byte("password")))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
@ -40,20 +38,20 @@ func generateOTT(subject string) string {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
cl := struct {
|
cl := struct {
|
||||||
jwt.Claims
|
jose.Claims
|
||||||
SANS []string `json:"sans"`
|
SANS []string `json:"sans"`
|
||||||
}{
|
}{
|
||||||
Claims: jwt.Claims{
|
Claims: jose.Claims{
|
||||||
ID: id,
|
ID: id,
|
||||||
Subject: subject,
|
Subject: subject,
|
||||||
Issuer: "mariano",
|
Issuer: "mariano",
|
||||||
NotBefore: jwt.NewNumericDate(now),
|
NotBefore: jose.NewNumericDate(now),
|
||||||
Expiry: jwt.NewNumericDate(now.Add(time.Minute)),
|
Expiry: jose.NewNumericDate(now.Add(time.Minute)),
|
||||||
Audience: []string{"https://127.0.0.1:0/sign"},
|
Audience: []string{"https://127.0.0.1:0/sign"},
|
||||||
},
|
},
|
||||||
SANS: []string{subject},
|
SANS: []string{subject},
|
||||||
}
|
}
|
||||||
raw, err := jwt.Signed(sig).Claims(cl).CompactSerialize()
|
raw, err := jose.Signed(sig).Claims(cl).CompactSerialize()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
6
go.mod
6
go.mod
|
@ -13,7 +13,7 @@ require (
|
||||||
github.com/pkg/errors v0.9.1
|
github.com/pkg/errors v0.9.1
|
||||||
github.com/rs/xid v1.2.1
|
github.com/rs/xid v1.2.1
|
||||||
github.com/sirupsen/logrus v1.4.2
|
github.com/sirupsen/logrus v1.4.2
|
||||||
github.com/smallstep/assert v0.0.0-20200103212524-b99dc1097b15
|
github.com/smallstep/assert v0.0.0-20200723003110-82e2b9b3b262
|
||||||
github.com/smallstep/cli v0.14.7-rc.1.0.20200721180458-731b7c4c8c95
|
github.com/smallstep/cli v0.14.7-rc.1.0.20200721180458-731b7c4c8c95
|
||||||
github.com/smallstep/nosql v0.3.0
|
github.com/smallstep/nosql v0.3.0
|
||||||
github.com/urfave/cli v1.22.2
|
github.com/urfave/cli v1.22.2
|
||||||
|
@ -23,9 +23,9 @@ require (
|
||||||
google.golang.org/api v0.15.0
|
google.golang.org/api v0.15.0
|
||||||
google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb
|
google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb
|
||||||
google.golang.org/grpc v1.26.0
|
google.golang.org/grpc v1.26.0
|
||||||
gopkg.in/square/go-jose.v2 v2.4.0
|
gopkg.in/square/go-jose.v2 v2.5.1
|
||||||
)
|
)
|
||||||
|
|
||||||
// replace github.com/smallstep/cli => ../cli
|
// replace github.com/smallstep/cli => ../cli
|
||||||
// replace github.com/smallstep/nosql => ../nosql
|
// replace github.com/smallstep/nosql => ../nosql
|
||||||
// replace go.step.sm/crypto => ../crypto
|
replace go.step.sm/crypto => ../crypto
|
||||||
|
|
4
go.sum
4
go.sum
|
@ -476,6 +476,8 @@ github.com/smallstep/assert v0.0.0-20180720014142-de77670473b5 h1:lX6ybsQW9Agn3q
|
||||||
github.com/smallstep/assert v0.0.0-20180720014142-de77670473b5/go.mod h1:TC9A4+RjIOS+HyTH7wG17/gSqVv95uDw2J64dQZx7RE=
|
github.com/smallstep/assert v0.0.0-20180720014142-de77670473b5/go.mod h1:TC9A4+RjIOS+HyTH7wG17/gSqVv95uDw2J64dQZx7RE=
|
||||||
github.com/smallstep/assert v0.0.0-20200103212524-b99dc1097b15 h1:kSImCuenAkXtCaBeQ1UhmzzJGRhSm8sVH7I3sHE2Qdg=
|
github.com/smallstep/assert v0.0.0-20200103212524-b99dc1097b15 h1:kSImCuenAkXtCaBeQ1UhmzzJGRhSm8sVH7I3sHE2Qdg=
|
||||||
github.com/smallstep/assert v0.0.0-20200103212524-b99dc1097b15/go.mod h1:MyOHs9Po2fbM1LHej6sBUT8ozbxmMOFG+E+rx/GSGuc=
|
github.com/smallstep/assert v0.0.0-20200103212524-b99dc1097b15/go.mod h1:MyOHs9Po2fbM1LHej6sBUT8ozbxmMOFG+E+rx/GSGuc=
|
||||||
|
github.com/smallstep/assert v0.0.0-20200723003110-82e2b9b3b262 h1:unQFBIznI+VYD1/1fApl1A+9VcBk+9dcqGfnePY87LY=
|
||||||
|
github.com/smallstep/assert v0.0.0-20200723003110-82e2b9b3b262/go.mod h1:MyOHs9Po2fbM1LHej6sBUT8ozbxmMOFG+E+rx/GSGuc=
|
||||||
github.com/smallstep/certificates v0.14.5/go.mod h1:zzpB8wMz967gL8FmK6zvCNB4pDVwFDKjPg1diTVc1h8=
|
github.com/smallstep/certificates v0.14.5/go.mod h1:zzpB8wMz967gL8FmK6zvCNB4pDVwFDKjPg1diTVc1h8=
|
||||||
github.com/smallstep/certinfo v1.3.0/go.mod h1:1gQJekdPwPvUwFWGTi7bZELmQT09cxC9wJ0VBkBNiwU=
|
github.com/smallstep/certinfo v1.3.0/go.mod h1:1gQJekdPwPvUwFWGTi7bZELmQT09cxC9wJ0VBkBNiwU=
|
||||||
github.com/smallstep/cli v0.14.5/go.mod h1:mRFuqC3cGwQESBGJvog4o76jZZZ7bMjkE+hAnq2QyR8=
|
github.com/smallstep/cli v0.14.5/go.mod h1:mRFuqC3cGwQESBGJvog4o76jZZZ7bMjkE+hAnq2QyR8=
|
||||||
|
@ -804,6 +806,8 @@ gopkg.in/ini.v1 v1.51.1/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
||||||
gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
|
gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
|
||||||
gopkg.in/square/go-jose.v2 v2.4.0 h1:0kXPskUMGAXXWJlP05ktEMOV0vmzFQUWw6d+aZJQU8A=
|
gopkg.in/square/go-jose.v2 v2.4.0 h1:0kXPskUMGAXXWJlP05ktEMOV0vmzFQUWw6d+aZJQU8A=
|
||||||
gopkg.in/square/go-jose.v2 v2.4.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
|
gopkg.in/square/go-jose.v2 v2.4.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
|
||||||
|
gopkg.in/square/go-jose.v2 v2.5.1 h1:7odma5RETjNHWJnR32wx8t+Io4djHE1PqxCFx3iiZ2w=
|
||||||
|
gopkg.in/square/go-jose.v2 v2.5.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
|
||||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
|
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
|
||||||
gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=
|
gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=
|
||||||
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
|
|
|
@ -23,9 +23,9 @@ import (
|
||||||
"github.com/smallstep/certificates/db"
|
"github.com/smallstep/certificates/db"
|
||||||
"github.com/smallstep/cli/config"
|
"github.com/smallstep/cli/config"
|
||||||
"github.com/smallstep/cli/errs"
|
"github.com/smallstep/cli/errs"
|
||||||
"github.com/smallstep/cli/jose"
|
|
||||||
"github.com/smallstep/cli/ui"
|
"github.com/smallstep/cli/ui"
|
||||||
"github.com/smallstep/cli/utils"
|
"github.com/smallstep/cli/utils"
|
||||||
|
"go.step.sm/crypto/jose"
|
||||||
"go.step.sm/crypto/keyutil"
|
"go.step.sm/crypto/keyutil"
|
||||||
"go.step.sm/crypto/pemutil"
|
"go.step.sm/crypto/pemutil"
|
||||||
"go.step.sm/crypto/x509util"
|
"go.step.sm/crypto/x509util"
|
||||||
|
|
Loading…
Reference in a new issue