22# SPDX-License-Identifier: Apache-2.0
33
44CORES =2
5+ ENABLE_EXTERN_PROCESSING =1
56TRANSPILE_TESTS_IN_RUST =1
67
78include ../SharedMakefile.mk
@@ -63,9 +64,9 @@ PROJECT_INDEX := \
6364 submodules/MaterialProviders/AwsCryptographicMaterialProviders/dafny/AwsCryptographyKeyStore/src/Index.dfy \
6465 submodules/MaterialProviders/TestVectorsAwsCryptographicMaterialProviders/dafny/KeyVectors/src/Index.dfy \
6566 DynamoDbEncryption/dafny/StructuredEncryption/src/Index.dfy \
67+ DynamoDbEncryption/dafny/DynamoDbEncryption/src/Index.dfy \
6668 DynamoDbEncryption/dafny/DynamoDbItemEncryptor/src/Index.dfy \
6769 DynamoDbEncryption/dafny/DynamoDbEncryptionTransforms/src/Index.dfy \
68- DynamoDbEncryption/dafny/DynamoDbEncryption/src/Index.dfy \
6970
7071STD_LIBRARY =submodules/MaterialProviders/StandardLibrary
7172SMITHY_DEPS =submodules/MaterialProviders/model
@@ -79,14 +80,80 @@ SERVICE_DEPS_DDBEncryption := \
7980 submodules/MaterialProviders/ComAmazonawsDynamodb \
8081 submodules/MaterialProviders/AwsCryptographicMaterialProviders/dafny/AwsCryptographicMaterialProviders \
8182 submodules/MaterialProviders/AwsCryptographicMaterialProviders/dafny/AwsCryptographyKeyStore \
82- DynamoDbEncryption/dafny/DynamoDbEncryptionTransforms \
83- DynamoDbEncryption/dafny/DynamoDbEncryption \
84- DynamoDbEncryption/dafny/DynamoDbItemEncryptor \
8583 DynamoDbEncryption/dafny/StructuredEncryption \
84+ DynamoDbEncryption/dafny/DynamoDbEncryption \
8685 submodules/MaterialProviders/TestVectorsAwsCryptographicMaterialProviders/dafny/TestVectorsAwsCryptographicMaterialProviders \
8786
8887transpile_implementation_rust : _remove_wrapped_client_rust
8988
9089_remove_wrapped_client_rust :
9190 $(MAKE ) _sed_file SED_FILE_PATH=" runtimes/rust/src/deps/aws_cryptography_materialProviders.rs" \
9291SED_BEFORE_STRING =' \# \[cfg(feature = "wrapped-client")\]' SED_AFTER_STRING='\/\/ Removed cfg(feature = "wrapped-client")'
92+
93+ # Go
94+ GO_MODULE_NAME ="github.com/aws/aws-database-encryption-sdk-dynamodb/testvectors"
95+
96+ GO_DEPENDENCY_MODULE_NAMES := \
97+ --dependency-library-name=aws.cryptography.primitives=github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives \
98+ --dependency-library-name=com.amazonaws.kms=github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms \
99+ --dependency-library-name=com.amazonaws.dynamodb=github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb \
100+ --dependency-library-name=aws.cryptography.materialProviders=github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl \
101+ --dependency-library-name=aws.cryptography.keyStore=github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl \
102+ --dependency-library-name=sdk.com.amazonaws.dynamodb=github.com/aws/aws-sdk-go-v2/service/dynamodb \
103+ --dependency-library-name=sdk.com.amazonaws.kms=github.com/aws/aws-sdk-go-v2/service/kms \
104+ --dependency-library-name=aws.cryptography.dbEncryptionSdk.structuredEncryption=github.com/aws/aws-database-encryption-sdk-dynamodb \
105+ --dependency-library-name=aws.cryptography.dbEncryptionSdk.dynamoDb=github.com/aws/aws-database-encryption-sdk-dynamodb \
106+ --dependency-library-name=aws.cryptography.dbEncryptionSdk.dynamoDb.itemEncryptor=github.com/aws/aws-database-encryption-sdk-dynamodb \
107+ --dependency-library-name=aws.cryptography.dbEncryptionSdk.dynamoDb.transforms=github.com/aws/aws-database-encryption-sdk-dynamodb
108+
109+ TRANSLATION_RECORD_GO := \
110+ DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/ImplementationFromDafny-go.dtr \
111+ submodules/MaterialProviders/StandardLibrary/runtimes/go/ImplementationFromDafny-go/ImplementationFromDafny-go.dtr \
112+ submodules/MaterialProviders/ComAmazonawsKms/runtimes/go/ImplementationFromDafny-go/ImplementationFromDafny-go.dtr \
113+ submodules/MaterialProviders/ComAmazonawsDynamodb/runtimes/go/ImplementationFromDafny-go/ImplementationFromDafny-go.dtr \
114+ submodules/MaterialProviders/AwsCryptographyPrimitives/runtimes/go/ImplementationFromDafny-go/ImplementationFromDafny-go.dtr \
115+ submodules/MaterialProviders/AwsCryptographicMaterialProviders/runtimes/go/ImplementationFromDafny-go/ImplementationFromDafny-go.dtr \
116+ submodules/MaterialProviders/TestVectorsAwsCryptographicMaterialProviders/runtimes/go/ImplementationFromDafny-go/ImplementationFromDafny-go.dtr
117+
118+ # Constants for languages that drop extern names (Python, Go)
119+
120+ INDEX_FILE_PATH =dafny/DDBEncryption/src/LibraryIndex.dfy
121+ INDEX_FILE_WITH_EXTERN_STRING ="module {:extern \"software.amazon.cryptography.dbencryptionsdk.dynamodb.internaldafny.wrapped\"} WrappedDynamoDbEncryption refines WrappedAbstractAwsCryptographyDynamoDbEncryptionService"
122+ INDEX_FILE_WITHOUT_EXTERN_STRING ="module WrappedDynamoDbEncryption refines WrappedAbstractAwsCryptographyDynamoDbEncryptionService"
123+
124+ _sed_types_file_remove_extern :
125+ echo " no types file"
126+
127+ _sed_types_file_add_extern :
128+ echo " no types file"
129+
130+ _polymorph_go : purge_polymorph_code
131+
132+ # Smithy-dafny generated shim needs a long term fix.
133+ # TODO: Remove this commands once smithy-dafny is fixed
134+ # This commands does not work on windows
135+ # https://taskei.amazon.dev/tasks/CrypTool-5283
136+ purge_polymorph_code :
137+ find .. -name " shim.go" | xargs sed -i $(SED_PARAMETER ) ' s/(_static \*CompanionStruct_Default___)//g'
138+ rm -rf runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated \
139+ runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes \
140+ runtimes/go/ImplementationFromDafny-go/WrappedAwsCryptographyDbEncryptionSdkDynamoDbService \
141+ runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated \
142+ runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes \
143+ runtimes/go/TestsFromDafny-go/WrappedAwsCryptographyDbEncryptionSdkDynamoDbService
144+
145+
146+ _transpile_implementation_all :
147+ @echo " No polymorphing of dependency"
148+
149+ _transpile_test_all :
150+ @echo " No polymorphing of dependency"
151+
152+ _transpile_dependencies :
153+ @echo " No polymorphing of dependency"
154+
155+ _transpile_dependencies_test :
156+ @echo " No polymorphing of dependency"
157+
158+ mvn_local_deploy_dependencies :
159+ @echo " No polymorphing of dependency"
0 commit comments