Skip to content
This repository has been archived by the owner on Aug 25, 2023. It is now read-only.

chore: add aws config #350

Merged
merged 1 commit into from
Jan 12, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 9 additions & 3 deletions pkg/aws/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ package aws

import (
"crypto/elliptic"
"crypto/sha256"
"crypto/sha512"
"encoding/asn1"
"fmt"
Expand All @@ -22,7 +23,6 @@ import (
"github.com/aws/aws-sdk-go/service/kms"
"github.com/btcsuite/btcd/btcec"
arieskms "github.com/hyperledger/aries-framework-go/pkg/kms"
"github.com/minio/sha256-simd"
)

type awsClient interface { //nolint:dupl
Expand Down Expand Up @@ -75,14 +75,20 @@ var keySpecToCurve = map[string]elliptic.Curve{
}

// New return aws service.
func New(awsSession *session.Session, metrics metricsProvider, healthCheckKeyID string, opts ...Opts) *Service {
func New(awsSession *session.Session, awsConfig *aws.Config, metrics metricsProvider,
healthCheckKeyID string, opts ...Opts) *Service {
options := newOpts()

for _, opt := range opts {
opt(options)
}

return &Service{options: options, client: kms.New(awsSession), metrics: metrics, healthCheckKeyID: healthCheckKeyID}
return &Service{
options: options,
client: kms.New(awsSession, awsConfig),
metrics: metrics,
healthCheckKeyID: healthCheckKeyID,
}
}

// Sign data.
Expand Down
28 changes: 14 additions & 14 deletions pkg/aws/service_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ func TestSign(t *testing.T) {

require.NoError(t, err)

svc := New(awsSession, &mockMetrics{}, "", []Opts{}...)
svc := New(awsSession, nil, &mockMetrics{}, "", []Opts{}...)

svc.client = &mockAWSClient{signFunc: func(input *kms.SignInput) (*kms.SignOutput, error) {
return &kms.SignOutput{
Expand Down Expand Up @@ -63,7 +63,7 @@ func TestSign(t *testing.T) {
})
require.NoError(t, err)

svc := New(awsSession, &mockMetrics{}, "", []Opts{}...)
svc := New(awsSession, nil, &mockMetrics{}, "", []Opts{}...)

svc.client = &mockAWSClient{signFunc: func(input *kms.SignInput) (*kms.SignOutput, error) {
return nil, fmt.Errorf("failed to sign")
Expand All @@ -90,7 +90,7 @@ func TestSign(t *testing.T) {
})
require.NoError(t, err)

svc := New(awsSession, &mockMetrics{}, "", []Opts{}...)
svc := New(awsSession, nil, &mockMetrics{}, "", []Opts{}...)

_, err = svc.Sign([]byte("msg"), "aws-kms://arn:aws:kms:key1")
require.Error(t, err)
Expand All @@ -108,7 +108,7 @@ func TestHealthCheck(t *testing.T) {
})
require.NoError(t, err)

svc := New(awsSession, &mockMetrics{},
svc := New(awsSession, nil, &mockMetrics{},
"aws-kms://arn:aws:kms:ca-central-1:111122223333:key/800d5768-3fd7-4edd-a4b8-4c81c3e4c147",
[]Opts{}...)

Expand All @@ -129,7 +129,7 @@ func TestHealthCheck(t *testing.T) {
})
require.NoError(t, err)

svc := New(awsSession, &mockMetrics{},
svc := New(awsSession, nil, &mockMetrics{},
"aws-kms://arn:aws:kms:ca-central-1:111122223333:key/800d5768-3fd7-4edd-a4b8-4c81c3e4c147",
[]Opts{}...)

Expand All @@ -153,7 +153,7 @@ func TestCreate(t *testing.T) {
})
require.NoError(t, err)

svc := New(awsSession, &mockMetrics{}, "", []Opts{}...)
svc := New(awsSession, nil, &mockMetrics{}, "", []Opts{}...)

keyID := "key1"

Expand All @@ -175,7 +175,7 @@ func TestCreate(t *testing.T) {
})
require.NoError(t, err)

svc := New(awsSession, &mockMetrics{}, "", WithKeyAliasPrefix("dummyKeyAlias"))
svc := New(awsSession, nil, &mockMetrics{}, "", WithKeyAliasPrefix("dummyKeyAlias"))

keyID := "key1"

Expand All @@ -202,7 +202,7 @@ func TestCreate(t *testing.T) {
})
require.NoError(t, err)

svc := New(awsSession, &mockMetrics{}, "", []Opts{}...)
svc := New(awsSession, nil, &mockMetrics{}, "", []Opts{}...)

_, _, err = svc.Create(arieskms.ED25519)
require.Error(t, err)
Expand All @@ -220,7 +220,7 @@ func TestGet(t *testing.T) {
})
require.NoError(t, err)

svc := New(awsSession, &mockMetrics{}, "", []Opts{}...)
svc := New(awsSession, nil, &mockMetrics{}, "", []Opts{}...)

keyID, err := svc.Get("key1")
require.NoError(t, err)
Expand All @@ -240,7 +240,7 @@ func TestCreateAndPubKeyBytes(t *testing.T) {

keyID := "aws-kms://arn:aws:kms:ca-central-1:111122223333:key/800d5768-3fd7-4edd-a4b8-4c81c3e4c147"

svc := New(awsSession, &mockMetrics{}, "", []Opts{}...)
svc := New(awsSession, nil, &mockMetrics{}, "", []Opts{}...)

svc.client = &mockAWSClient{
getPublicKeyFunc: func(input *kms.GetPublicKeyInput) (*kms.GetPublicKeyOutput, error) {
Expand Down Expand Up @@ -272,7 +272,7 @@ func TestSignMulti(t *testing.T) {
})
require.NoError(t, err)

svc := New(awsSession, &mockMetrics{}, "", []Opts{}...)
svc := New(awsSession, nil, &mockMetrics{}, "", []Opts{}...)

_, err = svc.SignMulti(nil, nil)
require.Error(t, err)
Expand All @@ -289,7 +289,7 @@ func TestPubKeyBytes(t *testing.T) {
})
require.NoError(t, err)

svc := New(awsSession, &mockMetrics{}, "", []Opts{}...)
svc := New(awsSession, nil, &mockMetrics{}, "", []Opts{}...)

svc.client = &mockAWSClient{getPublicKeyFunc: func(input *kms.GetPublicKeyInput) (*kms.GetPublicKeyOutput, error) {
signingAlgo := "ECDSA_SHA_256"
Expand All @@ -316,7 +316,7 @@ func TestPubKeyBytes(t *testing.T) {
})
require.NoError(t, err)

svc := New(awsSession, &mockMetrics{}, "", []Opts{}...)
svc := New(awsSession, nil, &mockMetrics{}, "", []Opts{}...)

svc.client = &mockAWSClient{getPublicKeyFunc: func(input *kms.GetPublicKeyInput) (*kms.GetPublicKeyOutput, error) {
return nil, fmt.Errorf("failed to export public key")
Expand All @@ -337,7 +337,7 @@ func TestPubKeyBytes(t *testing.T) {
})
require.NoError(t, err)

svc := New(awsSession, &mockMetrics{}, "", []Opts{}...)
svc := New(awsSession, nil, &mockMetrics{}, "", []Opts{}...)

_, _, err = svc.ExportPubKeyBytes("aws-kms://arn:aws:kms:key1")
require.Error(t, err)
Expand Down