Skip to content

Commit babc81e

Browse files
Merge branch 'Golang/reviewed' of https://github.com/aws/aws-database-encryption-sdk-dynamodb into Golang/testSupportedAPI
2 parents 2cfe628 + 7a98eb6 commit babc81e

File tree

10 files changed

+143428
-46
lines changed

10 files changed

+143428
-46
lines changed

.github/workflows/daily_ci.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,11 @@ jobs:
6161
uses: ./.github/workflows/library_rust_tests.yml
6262
with:
6363
dafny: ${{needs.getVersion.outputs.version}}
64+
daily-ci-go:
65+
needs: getVersion
66+
uses: ./.github/workflows/ci_test_go.yml
67+
with:
68+
dafny: ${{needs.getVersion.outputs.version}}
6469
daily-ci-net-test-vectors:
6570
needs: getVersion
6671
uses: ./.github/workflows/ci_test_vector_net.yml

DynamoDbEncryption/Makefile

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,21 @@ STRUCTUREDENCRYPTION_INDEX_FILE_PATH=dafny/StructuredEncryption/src/Index.dfy
164164
STRUCTUREDENCRYPTION_INDEX_FILE_WITH_EXTERN_STRING="module {:extern \"software.amazon.cryptography.dbencryptionsdk.structuredencryption.internaldafny\" } StructuredEncryption"
165165
STRUCTUREDENCRYPTION_INDEX_FILE_WITHOUT_EXTERN_STRING="module StructuredEncryption"
166166

167+
# Target to restore all directories in a list
168+
# TODO: Remove this once we don't copy all of the directories into implementation and test https://sim.amazon.com/issues/CrypTool-5447
169+
RESTORE_DIRS := README.md
170+
_polymorph_go: restore_directories
171+
restore_directories:
172+
@for dir in $(RESTORE_DIRS); do \
173+
if [ -d "runtimes/go/ImplementationFromDafny-go/$$dir" ]; then \
174+
cp -Rf runtimes/go/ImplementationFromDafny-go/$$dir runtimes/go/; \
175+
rm -rf runtimes/go/ImplementationFromDafny-go/$$dir; \
176+
rm -rf runtimes/go/TestsFromDafny-go/$$dir; \
177+
else \
178+
echo "Directory $$dir not found"; \
179+
fi \
180+
done
181+
167182
_sed_types_file_remove_extern:
168183
$(MAKE) _sed_file SED_FILE_PATH=$(DYNAMODB_TYPES_FILE_PATH) SED_BEFORE_STRING=$(DYNAMODB_TYPES_FILE_WITH_EXTERN_STRING) SED_AFTER_STRING=$(DYNAMODB_TYPES_FILE_WITHOUT_EXTERN_STRING)
169184
$(MAKE) _sed_file SED_FILE_PATH=$(ITEMENCRYPTOR_TYPES_FILE_PATH) SED_BEFORE_STRING=$(ITEMENCRYPTOR_TYPES_FILE_WITH_EXTERN_STRING) SED_AFTER_STRING=$(ITEMENCRYPTOR_TYPES_FILE_WITHOUT_EXTERN_STRING)

DynamoDbEncryption/README.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,13 @@ Within `runtimes/java`:
4040
- `src/` contains all hand written Dotnet code, including externs, and also all Smithy to Rust generated code.
4141
- `src/implementation_from_dafny.cs` contains all Dafny to .NET transpiled code.
4242

43+
#### Go
44+
45+
`runtimes/go` contains the Go related code and build instructions for this project.
46+
47+
- `ImplementationFromDafny-go/` contains all the implementation code which is Smithy to Go generated code, Dafny to Go transpiled code and hand written Go code
48+
- `TestsFromDafny-go` contains all the test code which is Smithy to Go generated code, Dafny to Go transpiled code and hand written Go code.
49+
4350
### Development
4451

4552
Common Makefile targets are:
@@ -83,6 +90,8 @@ Common Makefile targets are:
8390
- `make test_net_mac_intel` builds and tests the transpiled code in .NET in an Intel-MacOS environment.
8491
- `make transpile_rust` transpiles all of the Dafny code into runtimes/rust/src/implementation_from_dafny.
8592
- `make polymorph_rust` transpiles the smithy files into untimes/rust/src/\*.rs
93+
- `make transpile_go` transpiles all of the Dafny code into runtimes/go/\*.go
94+
- `make polymorph_go` transpiles the smithy files into runtimes/go/\*.go
8695

8796
### Development Requirements
8897

DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/dbesdkmiddleware/middleware.go

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ func (m DBEsdkMiddleware) CreateMiddleware() func(options *dynamodb.Options) {
4444
}
4545

4646
func (m DBEsdkMiddleware) createRequestInterceptor() middleware.InitializeMiddleware {
47-
return middleware.InitializeMiddlewareFunc("RequestInterceptor", func(
47+
return middleware.InitializeMiddlewareFunc("aws-dbesdk-request-interceptor", func(
4848
ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler,
4949
) (
5050
out middleware.InitializeOutput, metadata middleware.Metadata, err error,
@@ -62,8 +62,8 @@ func (m DBEsdkMiddleware) handleRequestInterception(ctx context.Context, request
6262
switch v := request.(type) {
6363
case *dynamodb.PutItemInput:
6464
ctx = middleware.WithStackValue(ctx, ContextKeyOriginalInput, *v)
65-
// Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
66-
transformedRequest, err := m.client.PutItemInputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemInputTransformInput{
65+
// Note: this context is not propagated downstream into dafny layer https://issues.amazon.com/CrypTool-5403
66+
transformedRequest, err := m.client.PutItemInputTransform(ctx, awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemInputTransformInput{
6767
SdkInput: *v,
6868
})
6969
if err != nil {
@@ -72,8 +72,8 @@ func (m DBEsdkMiddleware) handleRequestInterception(ctx context.Context, request
7272
*v = transformedRequest.TransformedInput
7373
case *dynamodb.GetItemInput:
7474
ctx = middleware.WithStackValue(ctx, ContextKeyOriginalInput, *v)
75-
// Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
76-
transformedRequest, err := m.client.GetItemInputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemInputTransformInput{
75+
// Note: this context is not propagated downstream into dafny layer https://issues.amazon.com/CrypTool-5403
76+
transformedRequest, err := m.client.GetItemInputTransform(ctx, awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemInputTransformInput{
7777
SdkInput: *v,
7878
})
7979
if err != nil {
@@ -82,8 +82,8 @@ func (m DBEsdkMiddleware) handleRequestInterception(ctx context.Context, request
8282
*v = transformedRequest.TransformedInput
8383
case *dynamodb.BatchGetItemInput:
8484
ctx = middleware.WithStackValue(ctx, ContextKeyOriginalInput, *v)
85-
// Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
86-
transformedRequest, err := m.client.BatchGetItemInputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemInputTransformInput{
85+
// Note: this context is not propagated downstream into dafny layer https://issues.amazon.com/CrypTool-5403
86+
transformedRequest, err := m.client.BatchGetItemInputTransform(ctx, awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemInputTransformInput{
8787
SdkInput: *v,
8888
})
8989
if err != nil {
@@ -92,8 +92,8 @@ func (m DBEsdkMiddleware) handleRequestInterception(ctx context.Context, request
9292
*v = transformedRequest.TransformedInput
9393
case *dynamodb.BatchWriteItemInput:
9494
ctx = middleware.WithStackValue(ctx, ContextKeyOriginalInput, *v)
95-
// Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
96-
transformedRequest, err := m.client.BatchWriteItemInputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemInputTransformInput{
95+
// Note: this context is not propagated downstream into dafny layer https://issues.amazon.com/CrypTool-5403
96+
transformedRequest, err := m.client.BatchWriteItemInputTransform(ctx, awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemInputTransformInput{
9797
SdkInput: *v,
9898
})
9999
if err != nil {
@@ -142,8 +142,8 @@ func (m DBEsdkMiddleware) handleRequestInterception(ctx context.Context, request
142142
// *v = transformedRequest.TransformedInput
143143
case *dynamodb.QueryInput:
144144
ctx = middleware.WithStackValue(ctx, ContextKeyOriginalInput, *v)
145-
// Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
146-
transformedRequest, err := m.client.QueryInputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryInputTransformInput{
145+
// Note: this context is not propagated downstream into dafny layer https://issues.amazon.com/CrypTool-5403
146+
transformedRequest, err := m.client.QueryInputTransform(ctx, awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryInputTransformInput{
147147
SdkInput: *v,
148148
})
149149
if err != nil {
@@ -152,8 +152,8 @@ func (m DBEsdkMiddleware) handleRequestInterception(ctx context.Context, request
152152
*v = transformedRequest.TransformedInput
153153
case *dynamodb.ScanInput:
154154
ctx = middleware.WithStackValue(ctx, ContextKeyOriginalInput, *v)
155-
// Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
156-
transformedRequest, err := m.client.ScanInputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanInputTransformInput{
155+
// Note: this context is not propagated downstream into dafny layer https://issues.amazon.com/CrypTool-5403
156+
transformedRequest, err := m.client.ScanInputTransform(ctx, awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanInputTransformInput{
157157
SdkInput: *v,
158158
})
159159
if err != nil {
@@ -162,8 +162,8 @@ func (m DBEsdkMiddleware) handleRequestInterception(ctx context.Context, request
162162
*v = transformedRequest.TransformedInput
163163
case *dynamodb.TransactGetItemsInput:
164164
ctx = middleware.WithStackValue(ctx, ContextKeyOriginalInput, *v)
165-
// Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
166-
transformedRequest, err := m.client.TransactGetItemsInputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsInputTransformInput{
165+
// Note: this context is not propagated downstream into dafny layer https://issues.amazon.com/CrypTool-5403
166+
transformedRequest, err := m.client.TransactGetItemsInputTransform(ctx, awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsInputTransformInput{
167167
SdkInput: *v,
168168
})
169169
if err != nil {
@@ -172,8 +172,8 @@ func (m DBEsdkMiddleware) handleRequestInterception(ctx context.Context, request
172172
*v = transformedRequest.TransformedInput
173173
case *dynamodb.TransactWriteItemsInput:
174174
ctx = middleware.WithStackValue(ctx, ContextKeyOriginalInput, *v)
175-
// Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
176-
transformedRequest, err := m.client.TransactWriteItemsInputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsInputTransformInput{
175+
// Note: this context is not propagated downstream into dafny layer https://issues.amazon.com/CrypTool-5403
176+
transformedRequest, err := m.client.TransactWriteItemsInputTransform(ctx, awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsInputTransformInput{
177177
SdkInput: *v,
178178
})
179179
if err != nil {
@@ -196,7 +196,7 @@ func (m DBEsdkMiddleware) handleRequestInterception(ctx context.Context, request
196196

197197
// createResponseInterceptor creates and returns the middleware interceptor for responses
198198
func (m DBEsdkMiddleware) createResponseInterceptor() middleware.FinalizeMiddleware {
199-
return middleware.FinalizeMiddlewareFunc("ResponseInterceptor", func(
199+
return middleware.FinalizeMiddlewareFunc("aws-dbesdk-response-interceptor", func(
200200
ctx context.Context, in middleware.FinalizeInput, next middleware.FinalizeHandler,
201201
) (
202202
out middleware.FinalizeOutput, metadata middleware.Metadata, err error,
@@ -216,8 +216,8 @@ func (m DBEsdkMiddleware) createResponseInterceptor() middleware.FinalizeMiddlew
216216
func (m DBEsdkMiddleware) handleResponseInterception(ctx context.Context, response interface{}) error {
217217
switch v := response.(type) {
218218
case *dynamodb.PutItemOutput:
219-
// Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
220-
transformedRequest, err := m.client.PutItemOutputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemOutputTransformInput{
219+
// Note: this context is not propagated downstream into dafny layer https://issues.amazon.com/CrypTool-5403
220+
transformedRequest, err := m.client.PutItemOutputTransform(ctx, awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemOutputTransformInput{
221221
OriginalInput: middleware.GetStackValue(ctx, ContextKeyOriginalInput).(dynamodb.PutItemInput),
222222
SdkOutput: *v,
223223
})
@@ -226,8 +226,8 @@ func (m DBEsdkMiddleware) handleResponseInterception(ctx context.Context, respon
226226
}
227227
*v = transformedRequest.TransformedOutput
228228
case *dynamodb.GetItemOutput:
229-
// Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
230-
transformedRequest, err := m.client.GetItemOutputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemOutputTransformInput{
229+
// Note: this context is not propagated downstream into dafny layer https://issues.amazon.com/CrypTool-5403
230+
transformedRequest, err := m.client.GetItemOutputTransform(ctx, awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemOutputTransformInput{
231231
OriginalInput: middleware.GetStackValue(ctx, ContextKeyOriginalInput).(dynamodb.GetItemInput),
232232
SdkOutput: *v,
233233
})
@@ -236,8 +236,8 @@ func (m DBEsdkMiddleware) handleResponseInterception(ctx context.Context, respon
236236
}
237237
*v = transformedRequest.TransformedOutput
238238
case *dynamodb.BatchGetItemOutput:
239-
// Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
240-
transformedRequest, err := m.client.BatchGetItemOutputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemOutputTransformInput{
239+
// Note: this context is not propagated downstream into dafny layer https://issues.amazon.com/CrypTool-5403
240+
transformedRequest, err := m.client.BatchGetItemOutputTransform(ctx, awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemOutputTransformInput{
241241
OriginalInput: middleware.GetStackValue(ctx, ContextKeyOriginalInput).(dynamodb.BatchGetItemInput),
242242
SdkOutput: *v,
243243
})
@@ -246,8 +246,8 @@ func (m DBEsdkMiddleware) handleResponseInterception(ctx context.Context, respon
246246
}
247247
*v = transformedRequest.TransformedOutput
248248
case *dynamodb.BatchWriteItemOutput:
249-
// Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
250-
transformedRequest, err := m.client.BatchWriteItemOutputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemOutputTransformInput{
249+
// Note: this context is not propagated downstream into dafny layer https://issues.amazon.com/CrypTool-5403
250+
transformedRequest, err := m.client.BatchWriteItemOutputTransform(ctx, awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemOutputTransformInput{
251251
OriginalInput: middleware.GetStackValue(ctx, ContextKeyOriginalInput).(dynamodb.BatchWriteItemInput),
252252
SdkOutput: *v,
253253
})
@@ -296,8 +296,8 @@ func (m DBEsdkMiddleware) handleResponseInterception(ctx context.Context, respon
296296
// }
297297
// *v = transformedRequest.TransformedOutput
298298
case *dynamodb.QueryOutput:
299-
// Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
300-
transformedRequest, err := m.client.QueryOutputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryOutputTransformInput{
299+
// Note: this context is not propagated downstream into dafny layer https://issues.amazon.com/CrypTool-5403
300+
transformedRequest, err := m.client.QueryOutputTransform(ctx, awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryOutputTransformInput{
301301
OriginalInput: middleware.GetStackValue(ctx, ContextKeyOriginalInput).(dynamodb.QueryInput),
302302
SdkOutput: *v,
303303
})
@@ -306,8 +306,8 @@ func (m DBEsdkMiddleware) handleResponseInterception(ctx context.Context, respon
306306
}
307307
*v = transformedRequest.TransformedOutput
308308
case *dynamodb.ScanOutput:
309-
// Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
310-
transformedRequest, err := m.client.ScanOutputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanOutputTransformInput{
309+
// Note: this context is not propagated downstream into dafny layer https://issues.amazon.com/CrypTool-5403
310+
transformedRequest, err := m.client.ScanOutputTransform(ctx, awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanOutputTransformInput{
311311
OriginalInput: middleware.GetStackValue(ctx, ContextKeyOriginalInput).(dynamodb.ScanInput),
312312
SdkOutput: *v,
313313
})
@@ -316,8 +316,8 @@ func (m DBEsdkMiddleware) handleResponseInterception(ctx context.Context, respon
316316
}
317317
*v = transformedRequest.TransformedOutput
318318
case *dynamodb.TransactGetItemsOutput:
319-
// Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
320-
transformedRequest, err := m.client.TransactGetItemsOutputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsOutputTransformInput{
319+
// Note: this context is not propagated downstream into dafny layer https://issues.amazon.com/CrypTool-5403
320+
transformedRequest, err := m.client.TransactGetItemsOutputTransform(ctx, awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsOutputTransformInput{
321321
OriginalInput: middleware.GetStackValue(ctx, ContextKeyOriginalInput).(dynamodb.TransactGetItemsInput),
322322
SdkOutput: *v,
323323
})
@@ -326,8 +326,8 @@ func (m DBEsdkMiddleware) handleResponseInterception(ctx context.Context, respon
326326
}
327327
*v = transformedRequest.TransformedOutput
328328
case *dynamodb.TransactWriteItemsOutput:
329-
// Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
330-
transformedRequest, err := m.client.TransactWriteItemsOutputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsOutputTransformInput{
329+
// Note: this context is not propagated downstream into dafny layer https://issues.amazon.com/CrypTool-5403
330+
transformedRequest, err := m.client.TransactWriteItemsOutputTransform(ctx, awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsOutputTransformInput{
331331
OriginalInput: middleware.GetStackValue(ctx, ContextKeyOriginalInput).(dynamodb.TransactWriteItemsInput),
332332
SdkOutput: *v,
333333
})

0 commit comments

Comments
 (0)