Skip to content

Commit 2d1f6d1

Browse files
author
Shubham Chaturvedi
committed
feat: kms externs for Go
1 parent 6a36141 commit 2d1f6d1

10 files changed

Lines changed: 15920 additions & 2 deletions

File tree

.github/workflows/library_go_tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
strategy:
2020
fail-fast: false
2121
matrix:
22-
library: [StandardLibrary]
22+
library: [StandardLibrary, ComAmazonawsKms]
2323
go-version: ["1.23"]
2424
os: [
2525
# TODO fix Dafny-generated tests on Windows;

ComAmazonawsKms/Makefile

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
# SPDX-License-Identifier: Apache-2.0
33

44
CORES=2
5-
65
ENABLE_EXTERN_PROCESSING=1
76

87
include ../SharedMakefileV2.mk
@@ -26,6 +25,14 @@ AWS_SDK_CMD := --aws-sdk
2625
STD_LIBRARY=StandardLibrary
2726
SMITHY_DEPS=model
2827

28+
GO_MODULE_NAME="github.com/aws/aws-cryptographic-material-providers-library/kms"
29+
30+
GO_DEPENDENCY_MODULE_NAMES := \
31+
--dependency-library-name=sdk.com.amazonaws.kms=github.com/aws/aws-sdk-go-v2/service/kms \
32+
33+
TRANSLATION_RECORD_GO := \
34+
StandardLibrary/runtimes/go/ImplementationFromDafny-go/ImplementationFromDafny-go.dtr
35+
2936
# Constants for languages that drop extern names (Python, Go)
3037

3138
TYPES_FILE_PATH=Model/ComAmazonawsKmsTypes.dfy
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package Com_Amazonaws_Kms
2+
3+
import (
4+
"context"
5+
6+
ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/kms/ComAmazonawsKmsTypes"
7+
"github.com/aws/aws-cryptographic-material-providers-library/kms/KMSwrapped"
8+
"github.com/aws/aws-sdk-go-v2/config"
9+
"github.com/aws/aws-sdk-go-v2/service/kms"
10+
_dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny"
11+
"github.com/dafny-lang/DafnyStandardLibGo/Wrappers"
12+
)
13+
14+
func (_static *CompanionStruct_Default___) KMSClientForRegion(regionInput _dafny.Sequence) Wrappers.Result {
15+
region := *toString(regionInput)
16+
cfg, err := config.LoadDefaultConfig(context.TODO())
17+
if err != nil {
18+
return Wrappers.Companion_Result_.Create_Failure_(ComAmazonawsKmsTypes.Companion_Error_.Create_KMSInternalException_(Wrappers.Companion_Option_.Create_Some_(_dafny.SeqOfChars([]_dafny.Char(err.Error())...))))
19+
}
20+
return Wrappers.Companion_Result_.Create_Success_(&KMSwrapped.Shim{Client: kms.NewFromConfig(cfg, func(o *kms.Options) {
21+
o.Region = region
22+
})})
23+
}
24+
25+
func (_static *CompanionStruct_Default___) KMSClient() Wrappers.Result {
26+
cfg, err := config.LoadDefaultConfig(context.TODO())
27+
if err != nil {
28+
return Wrappers.Companion_Result_.Create_Failure_(ComAmazonawsKmsTypes.Companion_Error_.Create_KMSInternalException_(Wrappers.Companion_Option_.Create_Some_(_dafny.SeqOfChars([]_dafny.Char(err.Error())...))))
29+
}
30+
return Wrappers.Companion_Result_.Create_Success_(&KMSwrapped.Shim{Client: kms.NewFromConfig(cfg, func(o *kms.Options) {
31+
o.Region = "us-west-2"
32+
})})
33+
}
34+
35+
func (_static *CompanionStruct_Default___) RegionMatch(ikmsClient ComAmazonawsKmsTypes.IKMSClient, regionInput _dafny.Sequence) Wrappers.Option {
36+
region := toString(regionInput)
37+
var kmsShim = ikmsClient.(*KMSwrapped.Shim).Client
38+
return Wrappers.Companion_Option_.Create_Some_(kmsShim.Options().Region == *region)
39+
}
40+
41+
func toString(input _dafny.Sequence) *string {
42+
var s string
43+
for i := _dafny.Iterate(input); ; {
44+
val, ok := i()
45+
if !ok {
46+
return &[]string{s}[0]
47+
} else {
48+
s = s + string(val.(_dafny.Char))
49+
}
50+
}
51+
}

ComAmazonawsKms/runtimes/go/ImplementationFromDafny-go/KMSwrapped/shim.go

Lines changed: 486 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ComAmazonawsKms/runtimes/go/ImplementationFromDafny-go/comamazonawskmssmithygenerated/to_dafny.go

Lines changed: 6402 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)