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

Commit

Permalink
Merge pull request #350 from fqutishat/update
Browse files Browse the repository at this point in the history
chore: add aws config
  • Loading branch information
fqutishat authored Jan 12, 2023
2 parents 5e9a31b + eaea1e9 commit 00c361f
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 17 deletions.
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

0 comments on commit 00c361f

Please sign in to comment.