...
1
16
17 package signer
18
19 import (
20 "context"
21 "crypto"
22 "strings"
23
24 "github.com/sigstore/sigstore/pkg/signature"
25 "github.com/sigstore/sigstore/pkg/signature/kms"
26 "golang.org/x/exp/slices"
27
28
29 _ "github.com/sigstore/sigstore/pkg/signature/kms/aws"
30 _ "github.com/sigstore/sigstore/pkg/signature/kms/azure"
31 _ "github.com/sigstore/sigstore/pkg/signature/kms/gcp"
32 _ "github.com/sigstore/sigstore/pkg/signature/kms/hashivault"
33 )
34
35 func New(ctx context.Context, signer string, pass string) (signature.Signer, error) {
36 switch {
37 case slices.ContainsFunc(kms.SupportedProviders(),
38 func(s string) bool {
39 return strings.HasPrefix(signer, s)
40 }):
41 return kms.Get(ctx, signer, crypto.SHA256)
42 case signer == MemoryScheme:
43 return NewMemory()
44 default:
45 return NewFile(signer, pass)
46 }
47 }
48
View as plain text