Files
attest/pkg/signerverifier/aws.go

28 lines
790 B
Go
Raw Permalink Normal View History

2024-04-19 09:08:31 -05:00
package signerverifier
import (
"context"
"fmt"
"github.com/aws/aws-sdk-go-v2/config"
"github.com/secure-systems-lab/go-securesystemslib/dsse"
awssigner "github.com/sigstore/sigstore/pkg/signature/kms/aws"
)
// using AWS KMS.
func GetAWSSigner(ctx context.Context, keyARN string, region string) (dsse.SignerVerifier, error) {
keyPath := fmt.Sprintf("awskms:///%s", keyARN)
sv, err := awssigner.LoadSignerVerifier(ctx, keyPath, config.WithRegion(region))
2024-04-19 09:08:31 -05:00
if err != nil {
return nil, fmt.Errorf("error loading aws signer verifier: %w", err)
}
cs, _, err := sv.CryptoSigner(context.Background(), func(_ error) {})
2024-04-19 09:08:31 -05:00
if err != nil {
return nil, fmt.Errorf("error getting aws crypto signer: %w", err)
}
signer := &ECDSA256SignerVerifier{
2024-04-19 09:08:31 -05:00
Signer: cs,
}
return signer, nil
}