Skip to content

Commit 8a8df7d

Browse files
authored
Merge pull request #145 from smallstep/mariano/mackms
Add support for the mackms
2 parents 3448d44 + 4a06c0c commit 8a8df7d

File tree

5 files changed

+122
-107
lines changed

5 files changed

+122
-107
lines changed

cmd/certificate.go

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,13 @@ package cmd
1616
import (
1717
"fmt"
1818
"io/fs"
19+
"net/url"
20+
"strings"
1921

2022
"github.com/spf13/cobra"
2123
"go.step.sm/crypto/kms"
2224
"go.step.sm/crypto/kms/apiv1"
25+
"go.step.sm/crypto/kms/uri"
2326
"go.step.sm/crypto/pemutil"
2427

2528
"github.com/smallstep/step-kms-plugin/internal/flagutil"
@@ -125,6 +128,16 @@ var certificateCmd = &cobra.Command{
125128
}
126129
defer km.Close()
127130

131+
// On mackms there's no need to specify a label (name), the keychain
132+
// will automatically use the common name by default. But we always need
133+
// a label to load the certificate.
134+
loadCertificateName := name
135+
if strings.EqualFold(loadCertificateName, "mackms:") {
136+
loadCertificateName = uri.New("mackms", url.Values{
137+
"label": []string{cert.Subject.CommonName},
138+
}).String()
139+
}
140+
128141
switch cm := km.(type) {
129142
case apiv1.CertificateChainManager:
130143
if err := cm.StoreCertificateChain(&apiv1.StoreCertificateChainRequest{
@@ -134,7 +147,7 @@ var certificateCmd = &cobra.Command{
134147
return err
135148
}
136149
certs, err = cm.LoadCertificateChain(&apiv1.LoadCertificateChainRequest{
137-
Name: name,
150+
Name: loadCertificateName,
138151
})
139152
if err != nil {
140153
return err
@@ -148,7 +161,7 @@ var certificateCmd = &cobra.Command{
148161
return err
149162
}
150163
cert, err = cm.LoadCertificate(&apiv1.LoadCertificateRequest{
151-
Name: name,
164+
Name: loadCertificateName,
152165
})
153166
if err != nil {
154167
return err
@@ -160,13 +173,14 @@ var certificateCmd = &cobra.Command{
160173
switch {
161174
case bundle:
162175
for _, c := range certs {
163-
outputCert(c)
176+
if err := outputCert(c); err != nil {
177+
return err
178+
}
164179
}
180+
return nil
165181
default:
166-
outputCert(cert)
182+
return outputCert(cert)
167183
}
168-
169-
return nil
170184
},
171185
}
172186

cmd/version.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ var versionCmd = &cobra.Command{
3333
Use: "version",
3434
Short: "print the current version",
3535
Long: "Prints the current version.",
36-
Run: func(cmd *cobra.Command, args []string) {
36+
Run: func(cmd *cobra.Command, _ []string) {
3737
if Version == "" {
3838
Version = "0000000-dev"
3939
}

go.mod

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,18 @@ require (
77
github.com/spf13/cobra v1.8.0
88
github.com/spf13/pflag v1.0.5
99
go.step.sm/cli-utils v0.9.0
10-
go.step.sm/crypto v0.43.1
10+
go.step.sm/crypto v0.44.0
1111
golang.org/x/crypto v0.21.0
1212
golang.org/x/term v0.18.0
1313
)
1414

1515
require (
16-
cloud.google.com/go/compute v1.23.3 // indirect
16+
cloud.google.com/go/compute v1.23.4 // indirect
1717
cloud.google.com/go/compute/metadata v0.2.3 // indirect
18-
cloud.google.com/go/iam v1.1.5 // indirect
19-
cloud.google.com/go/kms v1.15.6 // indirect
18+
cloud.google.com/go/iam v1.1.6 // indirect
19+
cloud.google.com/go/kms v1.15.7 // indirect
2020
filippo.io/edwards25519 v1.1.0 // indirect
21-
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.2 // indirect
21+
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.10.0 // indirect
2222
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.1 // indirect
2323
github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.2 // indirect
2424
github.com/Azure/azure-sdk-for-go/sdk/keyvault/azkeys v0.10.0 // indirect
@@ -28,20 +28,20 @@ require (
2828
github.com/Masterminds/semver/v3 v3.2.1 // indirect
2929
github.com/Masterminds/sprig/v3 v3.2.3 // indirect
3030
github.com/ThalesIgnite/crypto11 v1.2.5 // indirect
31-
github.com/aws/aws-sdk-go-v2 v1.24.1 // indirect
32-
github.com/aws/aws-sdk-go-v2/config v1.26.6 // indirect
33-
github.com/aws/aws-sdk-go-v2/credentials v1.16.16 // indirect
34-
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.11 // indirect
35-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.10 // indirect
36-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.10 // indirect
37-
github.com/aws/aws-sdk-go-v2/internal/ini v1.7.3 // indirect
38-
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4 // indirect
39-
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.10 // indirect
40-
github.com/aws/aws-sdk-go-v2/service/kms v1.27.9 // indirect
41-
github.com/aws/aws-sdk-go-v2/service/sso v1.18.7 // indirect
42-
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.7 // indirect
43-
github.com/aws/aws-sdk-go-v2/service/sts v1.26.7 // indirect
44-
github.com/aws/smithy-go v1.19.0 // indirect
31+
github.com/aws/aws-sdk-go-v2 v1.26.0 // indirect
32+
github.com/aws/aws-sdk-go-v2/config v1.27.8 // indirect
33+
github.com/aws/aws-sdk-go-v2/credentials v1.17.8 // indirect
34+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.15.4 // indirect
35+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.4 // indirect
36+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.4 // indirect
37+
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect
38+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.1 // indirect
39+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.6 // indirect
40+
github.com/aws/aws-sdk-go-v2/service/kms v1.30.0 // indirect
41+
github.com/aws/aws-sdk-go-v2/service/sso v1.20.3 // indirect
42+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.3 // indirect
43+
github.com/aws/aws-sdk-go-v2/service/sts v1.28.5 // indirect
44+
github.com/aws/smithy-go v1.20.1 // indirect
4545
github.com/chzyer/readline v1.5.1 // indirect
4646
github.com/cpuguy83/go-md2man/v2 v2.0.3 // indirect
4747
github.com/felixge/httpsnoop v1.0.4 // indirect
@@ -54,12 +54,12 @@ require (
5454
github.com/google/btree v1.1.2 // indirect
5555
github.com/google/certificate-transparency-go v1.1.6 // indirect
5656
github.com/google/go-tpm v0.9.0 // indirect
57-
github.com/google/go-tpm-tools v0.4.2 // indirect
57+
github.com/google/go-tpm-tools v0.4.3 // indirect
5858
github.com/google/go-tspi v0.3.0 // indirect
5959
github.com/google/s2a-go v0.1.7 // indirect
6060
github.com/google/uuid v1.6.0 // indirect
6161
github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect
62-
github.com/googleapis/gax-go/v2 v2.12.0 // indirect
62+
github.com/googleapis/gax-go/v2 v2.12.3 // indirect
6363
github.com/huandu/xstrings v1.4.0 // indirect
6464
github.com/imdario/mergo v0.3.16 // indirect
6565
github.com/inconshreveable/mousetrap v1.1.0 // indirect
@@ -80,22 +80,22 @@ require (
8080
github.com/urfave/cli v1.22.14 // indirect
8181
github.com/x448/float16 v0.8.4 // indirect
8282
go.opencensus.io v0.24.0 // indirect
83-
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0 // indirect
84-
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 // indirect
85-
go.opentelemetry.io/otel v1.23.0 // indirect
86-
go.opentelemetry.io/otel/metric v1.23.0 // indirect
87-
go.opentelemetry.io/otel/trace v1.23.0 // indirect
88-
golang.org/x/net v0.21.0 // indirect
83+
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect
84+
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect
85+
go.opentelemetry.io/otel v1.24.0 // indirect
86+
go.opentelemetry.io/otel/metric v1.24.0 // indirect
87+
go.opentelemetry.io/otel/trace v1.24.0 // indirect
88+
golang.org/x/net v0.22.0 // indirect
8989
golang.org/x/oauth2 v0.17.0 // indirect
9090
golang.org/x/sync v0.6.0 // indirect
9191
golang.org/x/sys v0.18.0 // indirect
9292
golang.org/x/text v0.14.0 // indirect
9393
golang.org/x/time v0.5.0 // indirect
94-
google.golang.org/api v0.164.0 // indirect
94+
google.golang.org/api v0.169.0 // indirect
9595
google.golang.org/appengine v1.6.8 // indirect
96-
google.golang.org/genproto v0.0.0-20240125205218-1f4bbc51befe // indirect
97-
google.golang.org/genproto/googleapis/api v0.0.0-20240125205218-1f4bbc51befe // indirect
98-
google.golang.org/genproto/googleapis/rpc v0.0.0-20240205150955-31a09d347014 // indirect
99-
google.golang.org/grpc v1.61.0 // indirect
96+
google.golang.org/genproto v0.0.0-20240205150955-31a09d347014 // indirect
97+
google.golang.org/genproto/googleapis/api v0.0.0-20240311132316-a219d84964c2 // indirect
98+
google.golang.org/genproto/googleapis/rpc v0.0.0-20240311132316-a219d84964c2 // indirect
99+
google.golang.org/grpc v1.62.1 // indirect
100100
google.golang.org/protobuf v1.33.0 // indirect
101101
)

0 commit comments

Comments
 (0)