From d2baee1629c1e90c100fdc0ad2033b5bc457398c Mon Sep 17 00:00:00 2001 From: Jose Corella Date: Tue, 3 Dec 2024 15:52:56 -0800 Subject: [PATCH 01/50] progress --- AwsEncryptionSDK/Makefile | 2 + AwsEncryptionSDK/project.properties | 9 + AwsEncryptionSDK/runtimes/python/poetry.lock | 420 ++++++ .../runtimes/python/pyproject.toml | 22 + .../python/src/aws_encryption_sdk/__init__.py | 6 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 307 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 284 bytes .../AwsCryptographyEncryptionSdkTypes.py | 403 +++++ .../generated/AwsEncryptionSdkOperations.py | 558 +++++++ .../generated/EncryptDecryptHelpers.py | 633 ++++++++ .../generated/EncryptedDataKeys.py | 237 +++ .../generated/EncryptionContext.py | 352 +++++ .../internaldafny/generated/EncryptionSdk.py | 233 +++ .../internaldafny/generated/Frames.py | 345 +++++ .../internaldafny/generated/Header.py | 226 +++ .../internaldafny/generated/HeaderAuth.py | 210 +++ .../internaldafny/generated/HeaderTypes.py | 364 +++++ .../internaldafny/generated/KeyDerivation.py | 352 +++++ .../internaldafny/generated/MessageBody.py | 526 +++++++ .../generated/SerializableTypes.py | 257 ++++ .../generated/SerializeFunctions.py | 333 ++++ .../generated/SharedHeaderFunctions.py | 235 +++ .../internaldafny/generated/V1HeaderBody.py | 293 ++++ .../internaldafny/generated/V2HeaderBody.py | 211 +++ .../internaldafny/generated/__main__.py | 15 + ...tographyEncryptionSdkTypes.cpython-311.pyc | Bin 0 -> 54096 bytes ...tographyEncryptionSdkTypes.cpython-312.pyc | Bin 0 -> 47199 bytes ...AwsEncryptionSdkOperations.cpython-311.pyc | Bin 0 -> 54846 bytes ...AwsEncryptionSdkOperations.cpython-312.pyc | Bin 0 -> 50624 bytes .../EncryptDecryptHelpers.cpython-311.pyc | Bin 0 -> 57077 bytes .../EncryptDecryptHelpers.cpython-312.pyc | Bin 0 -> 51191 bytes .../EncryptedDataKeys.cpython-311.pyc | Bin 0 -> 26856 bytes .../EncryptedDataKeys.cpython-312.pyc | Bin 0 -> 22286 bytes .../EncryptionContext.cpython-311.pyc | Bin 0 -> 35977 bytes .../EncryptionContext.cpython-312.pyc | Bin 0 -> 31141 bytes .../__pycache__/EncryptionSdk.cpython-311.pyc | Bin 0 -> 26784 bytes .../__pycache__/EncryptionSdk.cpython-312.pyc | Bin 0 -> 22116 bytes .../__pycache__/Frames.cpython-311.pyc | Bin 0 -> 41850 bytes .../__pycache__/Frames.cpython-312.pyc | Bin 0 -> 36946 bytes .../__pycache__/Header.cpython-311.pyc | Bin 0 -> 29091 bytes .../__pycache__/Header.cpython-312.pyc | Bin 0 -> 24598 bytes .../__pycache__/HeaderAuth.cpython-311.pyc | Bin 0 -> 25856 bytes .../__pycache__/HeaderAuth.cpython-312.pyc | Bin 0 -> 21259 bytes .../__pycache__/HeaderTypes.cpython-311.pyc | Bin 0 -> 43572 bytes .../__pycache__/HeaderTypes.cpython-312.pyc | Bin 0 -> 37568 bytes .../__pycache__/KeyDerivation.cpython-311.pyc | Bin 0 -> 36990 bytes .../__pycache__/KeyDerivation.cpython-312.pyc | Bin 0 -> 31937 bytes .../__pycache__/MessageBody.cpython-311.pyc | Bin 0 -> 50315 bytes .../__pycache__/MessageBody.cpython-312.pyc | Bin 0 -> 43798 bytes .../SerializableTypes.cpython-311.pyc | Bin 0 -> 30069 bytes .../SerializableTypes.cpython-312.pyc | Bin 0 -> 25283 bytes .../SerializeFunctions.cpython-311.pyc | Bin 0 -> 36832 bytes .../SerializeFunctions.cpython-312.pyc | Bin 0 -> 30999 bytes .../SharedHeaderFunctions.cpython-311.pyc | Bin 0 -> 27256 bytes .../SharedHeaderFunctions.cpython-312.pyc | Bin 0 -> 22808 bytes .../__pycache__/V1HeaderBody.cpython-311.pyc | Bin 0 -> 33389 bytes .../__pycache__/V1HeaderBody.cpython-312.pyc | Bin 0 -> 28734 bytes .../__pycache__/V2HeaderBody.cpython-311.pyc | Bin 0 -> 27181 bytes .../__pycache__/V2HeaderBody.cpython-312.pyc | Bin 0 -> 22974 bytes .../__pycache__/module_.cpython-311.pyc | Bin 0 -> 28488 bytes .../__pycache__/module_.cpython-312.pyc | Bin 0 -> 22558 bytes .../internaldafny/generated/dafny_src-py.dtr | 59 + .../internaldafny/generated/module_.py | 192 +++ .../__init__.py | 3 + .../aws_cryptography_encryptionsdk/client.py | 342 +++++ .../aws_cryptography_encryptionsdk/config.py | 150 ++ .../dafnyImplInterface.py | 32 + .../dafny_protocol.py | 33 + .../dafny_to_smithy.py | 166 ++ .../deserialize.py | 78 + .../aws_cryptography_encryptionsdk/errors.py | 303 ++++ .../aws_cryptography_encryptionsdk/models.py | 371 +++++ .../aws_cryptography_encryptionsdk/plugin.py | 49 + .../serialize.py | 27 + .../smithy_to_dafny.py | 226 +++ .../python/test/internaldafny/__init__.py | 2 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 232 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 220 bytes ...dafny_wrapper.cpython-311-pytest-7.4.4.pyc | Bin 0 -> 1307 bytes ...dafny_wrapper.cpython-312-pytest-7.4.4.pyc | Bin 0 -> 1191 bytes .../test/internaldafny/generated/Fixtures.py | 534 +++++++ .../generated/TestCreateEsdkClient.py | 241 +++ .../generated/TestEncryptDecrypt.py | 219 +++ .../TestReproducedEncryptionContext.py | 363 +++++ .../TestRequiredEncryptionContext.py | 1343 +++++++++++++++++ .../test/internaldafny/generated/__main__.py | 15 + .../__pycache__/Fixtures.cpython-311.pyc | Bin 0 -> 53648 bytes .../__pycache__/Fixtures.cpython-312.pyc | Bin 0 -> 47241 bytes .../TestCreateEsdkClient.cpython-311.pyc | Bin 0 -> 32493 bytes .../TestCreateEsdkClient.cpython-312.pyc | Bin 0 -> 27755 bytes .../TestEncryptDecrypt.cpython-311.pyc | Bin 0 -> 26843 bytes .../TestEncryptDecrypt.cpython-312.pyc | Bin 0 -> 22236 bytes ...eproducedEncryptionContext.cpython-311.pyc | Bin 0 -> 38318 bytes ...eproducedEncryptionContext.cpython-312.pyc | Bin 0 -> 33231 bytes ...tRequiredEncryptionContext.cpython-311.pyc | Bin 0 -> 114314 bytes ...tRequiredEncryptionContext.cpython-312.pyc | Bin 0 -> 107696 bytes .../__pycache__/__main__.cpython-311.pyc | Bin 0 -> 1230 bytes .../__pycache__/__main__.cpython-312.pyc | Bin 0 -> 1056 bytes .../__pycache__/module_.cpython-311.pyc | Bin 0 -> 45418 bytes .../__pycache__/module_.cpython-312.pyc | Bin 0 -> 39265 bytes .../internaldafny/generated/dafny_test-py.dtr | 12 + .../test/internaldafny/generated/module_.py | 392 +++++ .../test/internaldafny/test_dafny_wrapper.py | 21 + AwsEncryptionSDK/runtimes/python/tox.ini | 14 + mpl | 2 +- 105 files changed, 11430 insertions(+), 1 deletion(-) create mode 100644 AwsEncryptionSDK/project.properties create mode 100644 AwsEncryptionSDK/runtimes/python/poetry.lock create mode 100644 AwsEncryptionSDK/runtimes/python/pyproject.toml create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/__init__.py create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/__pycache__/__init__.cpython-311.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/__pycache__/__init__.cpython-312.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/AwsCryptographyEncryptionSdkTypes.py create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/AwsEncryptionSdkOperations.py create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptDecryptHelpers.py create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptedDataKeys.py create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptionContext.py create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptionSdk.py create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/Frames.py create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/Header.py create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/HeaderAuth.py create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/HeaderTypes.py create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/KeyDerivation.py create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/MessageBody.py create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/SerializableTypes.py create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/SerializeFunctions.py create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/SharedHeaderFunctions.py create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/V1HeaderBody.py create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/V2HeaderBody.py create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__main__.py create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/AwsCryptographyEncryptionSdkTypes.cpython-311.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/AwsCryptographyEncryptionSdkTypes.cpython-312.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/AwsEncryptionSdkOperations.cpython-311.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/AwsEncryptionSdkOperations.cpython-312.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/EncryptDecryptHelpers.cpython-311.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/EncryptDecryptHelpers.cpython-312.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/EncryptedDataKeys.cpython-311.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/EncryptedDataKeys.cpython-312.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/EncryptionContext.cpython-311.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/EncryptionContext.cpython-312.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/EncryptionSdk.cpython-311.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/EncryptionSdk.cpython-312.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/Frames.cpython-311.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/Frames.cpython-312.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/Header.cpython-311.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/Header.cpython-312.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/HeaderAuth.cpython-311.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/HeaderAuth.cpython-312.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/HeaderTypes.cpython-311.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/HeaderTypes.cpython-312.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/KeyDerivation.cpython-311.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/KeyDerivation.cpython-312.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/MessageBody.cpython-311.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/MessageBody.cpython-312.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/SerializableTypes.cpython-311.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/SerializableTypes.cpython-312.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/SerializeFunctions.cpython-311.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/SerializeFunctions.cpython-312.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/SharedHeaderFunctions.cpython-311.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/SharedHeaderFunctions.cpython-312.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/V1HeaderBody.cpython-311.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/V1HeaderBody.cpython-312.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/V2HeaderBody.cpython-311.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/V2HeaderBody.cpython-312.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/module_.cpython-311.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/module_.cpython-312.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/dafny_src-py.dtr create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/module_.py create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/__init__.py create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/client.py create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/config.py create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafnyImplInterface.py create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafny_protocol.py create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafny_to_smithy.py create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/deserialize.py create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/errors.py create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/models.py create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/plugin.py create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/serialize.py create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/smithy_to_dafny.py create mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/__init__.py create mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/__pycache__/__init__.cpython-311.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/__pycache__/__init__.cpython-312.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/__pycache__/test_dafny_wrapper.cpython-311-pytest-7.4.4.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/__pycache__/test_dafny_wrapper.cpython-312-pytest-7.4.4.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/Fixtures.py create mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestCreateEsdkClient.py create mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestEncryptDecrypt.py create mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestReproducedEncryptionContext.py create mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestRequiredEncryptionContext.py create mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__main__.py create mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/Fixtures.cpython-311.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/Fixtures.cpython-312.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestCreateEsdkClient.cpython-311.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestCreateEsdkClient.cpython-312.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestEncryptDecrypt.cpython-311.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestEncryptDecrypt.cpython-312.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestReproducedEncryptionContext.cpython-311.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestReproducedEncryptionContext.cpython-312.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestRequiredEncryptionContext.cpython-311.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestRequiredEncryptionContext.cpython-312.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/__main__.cpython-311.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/__main__.cpython-312.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/module_.cpython-311.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/module_.cpython-312.pyc create mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/dafny_test-py.dtr create mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/module_.py create mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/test_dafny_wrapper.py create mode 100644 AwsEncryptionSDK/runtimes/python/tox.ini diff --git a/AwsEncryptionSDK/Makefile b/AwsEncryptionSDK/Makefile index 0fea756cc..d58a52b7e 100644 --- a/AwsEncryptionSDK/Makefile +++ b/AwsEncryptionSDK/Makefile @@ -5,6 +5,8 @@ ENABLE_EXTERN_PROCESSING=1 TRANSPILE_TESTS_IN_RUST := 1 +ENABLE_EXTERN_PROCESSING=1 + include ../SharedMakefileV2.mk DIR_STRUCTURE_V2=V2 diff --git a/AwsEncryptionSDK/project.properties b/AwsEncryptionSDK/project.properties new file mode 100644 index 000000000..44810c894 --- /dev/null +++ b/AwsEncryptionSDK/project.properties @@ -0,0 +1,9 @@ +# This file stores the top level dafny version information. +# All elements of the project need to agree on this version. +dafnyVersion=4.9.0 +dafnyVerifyVersion=4.9.0 +dafnyFormatVersion=4.9.0 +projectJavaVersion=4.1.0 +mplDependencyJavaVersion=1.9.0-SNAPSHOT +dafnyRuntimeJavaVersion=4.9.0 +smithyDafnyJavaConversionVersion=0.1.1 diff --git a/AwsEncryptionSDK/runtimes/python/poetry.lock b/AwsEncryptionSDK/runtimes/python/poetry.lock new file mode 100644 index 000000000..b8e5f2a13 --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/poetry.lock @@ -0,0 +1,420 @@ +# This file is automatically @generated by Poetry 1.8.4 and should not be changed by hand. + +[[package]] +name = "aws-cryptographic-material-providers" +version = "1.7.4" +description = "AWS Cryptographic Material Providers Library for Python" +optional = false +python-versions = "<4.0.0,>=3.11.0" +files = [ + {file = "aws_cryptographic_material_providers-1.7.4-py3-none-any.whl", hash = "sha256:e7acf347268bdf12b0adabceefc7415b0c721e6f0e88c9172d274b0eb3898256"}, + {file = "aws_cryptographic_material_providers-1.7.4.tar.gz", hash = "sha256:5798fd931142d69fdda5c5a2178fea868667448fc56cc7004992e8f0f9556846"}, +] + +[package.dependencies] +aws-cryptography-internal-dynamodb = "1.7.4" +aws-cryptography-internal-kms = "1.7.4" +aws-cryptography-internal-primitives = "1.7.4" +aws-cryptography-internal-standard-library = "1.7.4" + +[[package]] +name = "aws-cryptography-internal-dynamodb" +version = "1.7.4" +description = "" +optional = false +python-versions = "<4.0.0,>=3.11.0" +files = [ + {file = "aws_cryptography_internal_dynamodb-1.7.4-py3-none-any.whl", hash = "sha256:94e38ff50bba8f6c216c2c20fcabba989b202e4353e56f4a4c1cd5148a4cf740"}, + {file = "aws_cryptography_internal_dynamodb-1.7.4.tar.gz", hash = "sha256:89c927aec348fd5e80293bc88d0e23b346cefefa792d4172fa41ce593d0f27c1"}, +] + +[package.dependencies] +aws-cryptography-internal-standard-library = "1.7.4" +boto3 = ">=1.35.42,<2.0.0" + +[[package]] +name = "aws-cryptography-internal-kms" +version = "1.7.4" +description = "" +optional = false +python-versions = "<4.0.0,>=3.11.0" +files = [ + {file = "aws_cryptography_internal_kms-1.7.4-py3-none-any.whl", hash = "sha256:e74602e428743ef281fa907e3bc45ac5074ffe055b539e5ebe7b7420bda25477"}, + {file = "aws_cryptography_internal_kms-1.7.4.tar.gz", hash = "sha256:0205d2ceaffd577b20440d7af29b7b877184b362e26c3685c4024d604d2a4102"}, +] + +[package.dependencies] +aws-cryptography-internal-standard-library = "1.7.4" +boto3 = ">=1.35.42,<2.0.0" + +[[package]] +name = "aws-cryptography-internal-primitives" +version = "1.7.4" +description = "" +optional = false +python-versions = "<4.0.0,>=3.11.0" +files = [ + {file = "aws_cryptography_internal_primitives-1.7.4-py3-none-any.whl", hash = "sha256:697e970d568bb5b07765490f7f0654bc65bcaba9daffaf8e24de9f37ecee9f30"}, + {file = "aws_cryptography_internal_primitives-1.7.4.tar.gz", hash = "sha256:35d2d9e7e1574b1991f4834db6ee7e457672596c3d88cd48757399a62be56ffb"}, +] + +[package.dependencies] +aws-cryptography-internal-standard-library = "1.7.4" +cryptography = ">=43.0.1,<44.0.0" + +[[package]] +name = "aws-cryptography-internal-standard-library" +version = "1.7.4" +description = "" +optional = false +python-versions = "<4.0.0,>=3.11.0" +files = [ + {file = "aws_cryptography_internal_standard_library-1.7.4-py3-none-any.whl", hash = "sha256:117ae5b8e2061cc81d4f2f2353ee0a82b671476f8688d1ce41d5eacbbe6cbfdc"}, + {file = "aws_cryptography_internal_standard_library-1.7.4.tar.gz", hash = "sha256:65af8259087b5e2645fcc93570aa289d9b68bfcf9428b03161f48e0729be033a"}, +] + +[package.dependencies] +DafnyRuntimePython = "4.8.1.post1" +pytz = ">=2023.3.post1,<2024.0" + +[[package]] +name = "boto3" +version = "1.35.74" +description = "The AWS SDK for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "boto3-1.35.74-py3-none-any.whl", hash = "sha256:dab5bddbbe57dc707b6f6a1f25dc2823b8e234b6fe99fafef7fc406ab73031b9"}, + {file = "boto3-1.35.74.tar.gz", hash = "sha256:88370c6845ba71a4dae7f6b357099df29b3965da584be040c8e72c9902bc9492"}, +] + +[package.dependencies] +botocore = ">=1.35.74,<1.36.0" +jmespath = ">=0.7.1,<2.0.0" +s3transfer = ">=0.10.0,<0.11.0" + +[package.extras] +crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] + +[[package]] +name = "botocore" +version = "1.35.74" +description = "Low-level, data-driven core of boto 3." +optional = false +python-versions = ">=3.8" +files = [ + {file = "botocore-1.35.74-py3-none-any.whl", hash = "sha256:9ac9d33d84dd9f05b35085de081552342a2c9ae22e3c4ee105723c9e92c07bd9"}, + {file = "botocore-1.35.74.tar.gz", hash = "sha256:de5c4fa9a24cef3a758974857b5c5820a12fad345ebf33c052a5988e88f33634"}, +] + +[package.dependencies] +jmespath = ">=0.7.1,<2.0.0" +python-dateutil = ">=2.1,<3.0.0" +urllib3 = {version = ">=1.25.4,<2.2.0 || >2.2.0,<3", markers = "python_version >= \"3.10\""} + +[package.extras] +crt = ["awscrt (==0.22.0)"] + +[[package]] +name = "cffi" +version = "1.17.1" +description = "Foreign Function Interface for Python calling C code." +optional = false +python-versions = ">=3.8" +files = [ + {file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"}, + {file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be"}, + {file = "cffi-1.17.1-cp310-cp310-win32.whl", hash = "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c"}, + {file = "cffi-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"}, + {file = "cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655"}, + {file = "cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8"}, + {file = "cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65"}, + {file = "cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9"}, + {file = "cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d"}, + {file = "cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a"}, + {file = "cffi-1.17.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1"}, + {file = "cffi-1.17.1-cp38-cp38-win32.whl", hash = "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8"}, + {file = "cffi-1.17.1-cp38-cp38-win_amd64.whl", hash = "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e"}, + {file = "cffi-1.17.1-cp39-cp39-win32.whl", hash = "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7"}, + {file = "cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662"}, + {file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"}, +] + +[package.dependencies] +pycparser = "*" + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "cryptography" +version = "43.0.3" +description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." +optional = false +python-versions = ">=3.7" +files = [ + {file = "cryptography-43.0.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:bf7a1932ac4176486eab36a19ed4c0492da5d97123f1406cf15e41b05e787d2e"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63efa177ff54aec6e1c0aefaa1a241232dcd37413835a9b674b6e3f0ae2bfd3e"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e1ce50266f4f70bf41a2c6dc4358afadae90e2a1e5342d3c08883df1675374f"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:443c4a81bb10daed9a8f334365fe52542771f25aedaf889fd323a853ce7377d6"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:74f57f24754fe349223792466a709f8e0c093205ff0dca557af51072ff47ab18"}, + {file = "cryptography-43.0.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9762ea51a8fc2a88b70cf2995e5675b38d93bf36bd67d91721c309df184f49bd"}, + {file = "cryptography-43.0.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:81ef806b1fef6b06dcebad789f988d3b37ccaee225695cf3e07648eee0fc6b73"}, + {file = "cryptography-43.0.3-cp37-abi3-win32.whl", hash = "sha256:cbeb489927bd7af4aa98d4b261af9a5bc025bd87f0e3547e11584be9e9427be2"}, + {file = "cryptography-43.0.3-cp37-abi3-win_amd64.whl", hash = "sha256:f46304d6f0c6ab8e52770addfa2fc41e6629495548862279641972b6215451cd"}, + {file = "cryptography-43.0.3-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:8ac43ae87929a5982f5948ceda07001ee5e83227fd69cf55b109144938d96984"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:846da004a5804145a5f441b8530b4bf35afbf7da70f82409f151695b127213d5"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f996e7268af62598f2fc1204afa98a3b5712313a55c4c9d434aef49cadc91d4"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:f7b178f11ed3664fd0e995a47ed2b5ff0a12d893e41dd0494f406d1cf555cab7"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:c2e6fc39c4ab499049df3bdf567f768a723a5e8464816e8f009f121a5a9f4405"}, + {file = "cryptography-43.0.3-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e1be4655c7ef6e1bbe6b5d0403526601323420bcf414598955968c9ef3eb7d16"}, + {file = "cryptography-43.0.3-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:df6b6c6d742395dd77a23ea3728ab62f98379eff8fb61be2744d4679ab678f73"}, + {file = "cryptography-43.0.3-cp39-abi3-win32.whl", hash = "sha256:d56e96520b1020449bbace2b78b603442e7e378a9b3bd68de65c782db1507995"}, + {file = "cryptography-43.0.3-cp39-abi3-win_amd64.whl", hash = "sha256:0c580952eef9bf68c4747774cde7ec1d85a6e61de97281f2dba83c7d2c806362"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d03b5621a135bffecad2c73e9f4deb1a0f977b9a8ffe6f8e002bf6c9d07b918c"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:a2a431ee15799d6db9fe80c82b055bae5a752bef645bba795e8e52687c69efe3"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:281c945d0e28c92ca5e5930664c1cefd85efe80e5c0d2bc58dd63383fda29f83"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:f18c716be16bc1fea8e95def49edf46b82fccaa88587a45f8dc0ff6ab5d8e0a7"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:4a02ded6cd4f0a5562a8887df8b3bd14e822a90f97ac5e544c162899bc467664"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:53a583b6637ab4c4e3591a15bc9db855b8d9dee9a669b550f311480acab6eb08"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1ec0bcf7e17c0c5669d881b1cd38c4972fade441b27bda1051665faaa89bdcaa"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2ce6fae5bdad59577b44e4dfed356944fbf1d925269114c28be377692643b4ff"}, + {file = "cryptography-43.0.3.tar.gz", hash = "sha256:315b9001266a492a6ff443b61238f956b214dbec9910a081ba5b6646a055a805"}, +] + +[package.dependencies] +cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""} + +[package.extras] +docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"] +docstest = ["pyenchant (>=1.6.11)", "readme-renderer", "sphinxcontrib-spelling (>=4.0.1)"] +nox = ["nox"] +pep8test = ["check-sdist", "click", "mypy", "ruff"] +sdist = ["build"] +ssh = ["bcrypt (>=3.1.5)"] +test = ["certifi", "cryptography-vectors (==43.0.3)", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] +test-randomorder = ["pytest-randomly"] + +[[package]] +name = "dafnyruntimepython" +version = "4.8.1.post1" +description = "Dafny runtime for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "DafnyRuntimePython-4.8.1.post1-py3-none-any.whl", hash = "sha256:72e5d9e27413301b2ca5fb0be304bca96e63e6ea4e1dbcc5ee5b4bd68a5a415f"}, + {file = "dafnyruntimepython-4.8.1.post1.tar.gz", hash = "sha256:71a4983ae4a55272c7edfef012a5ff36e2db02441f3a3ac0c2bd02cf57324c4c"}, +] + +[[package]] +name = "iniconfig" +version = "2.0.0" +description = "brain-dead simple config-ini parsing" +optional = false +python-versions = ">=3.7" +files = [ + {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, + {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, +] + +[[package]] +name = "jmespath" +version = "1.0.1" +description = "JSON Matching Expressions" +optional = false +python-versions = ">=3.7" +files = [ + {file = "jmespath-1.0.1-py3-none-any.whl", hash = "sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980"}, + {file = "jmespath-1.0.1.tar.gz", hash = "sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe"}, +] + +[[package]] +name = "packaging" +version = "24.2" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, + {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, +] + +[[package]] +name = "pluggy" +version = "1.5.0" +description = "plugin and hook calling mechanisms for python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, + {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, +] + +[package.extras] +dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] + +[[package]] +name = "pycparser" +version = "2.22" +description = "C parser in Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, + {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, +] + +[[package]] +name = "pytest" +version = "7.4.4" +description = "pytest: simple powerful testing with Python" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8"}, + {file = "pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "sys_platform == \"win32\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=0.12,<2.0" + +[package.extras] +testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +description = "Extensions to the standard Python datetime module" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +files = [ + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, +] + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "pytz" +version = "2023.4" +description = "World timezone definitions, modern and historical" +optional = false +python-versions = "*" +files = [ + {file = "pytz-2023.4-py2.py3-none-any.whl", hash = "sha256:f90ef520d95e7c46951105338d918664ebfd6f1d995bd7d153127ce90efafa6a"}, + {file = "pytz-2023.4.tar.gz", hash = "sha256:31d4583c4ed539cd037956140d695e42c033a19e984bfce9964a3f7d59bc2b40"}, +] + +[[package]] +name = "s3transfer" +version = "0.10.4" +description = "An Amazon S3 Transfer Manager" +optional = false +python-versions = ">=3.8" +files = [ + {file = "s3transfer-0.10.4-py3-none-any.whl", hash = "sha256:244a76a24355363a68164241438de1b72f8781664920260c48465896b712a41e"}, + {file = "s3transfer-0.10.4.tar.gz", hash = "sha256:29edc09801743c21eb5ecbc617a152df41d3c287f67b615f73e5f750583666a7"}, +] + +[package.dependencies] +botocore = ">=1.33.2,<2.0a.0" + +[package.extras] +crt = ["botocore[crt] (>=1.33.2,<2.0a.0)"] + +[[package]] +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] + +[[package]] +name = "urllib3" +version = "2.2.3" +description = "HTTP library with thread-safe connection pooling, file post, and more." +optional = false +python-versions = ">=3.8" +files = [ + {file = "urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac"}, + {file = "urllib3-2.2.3.tar.gz", hash = "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9"}, +] + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +h2 = ["h2 (>=4,<5)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] + +[metadata] +lock-version = "2.0" +python-versions = "^3.11.0" +content-hash = "38b29d6067d8a9455b9f0e85cc235be9cfc7722459199c2c9f3aef68959cda4b" diff --git a/AwsEncryptionSDK/runtimes/python/pyproject.toml b/AwsEncryptionSDK/runtimes/python/pyproject.toml new file mode 100644 index 000000000..eb6fb62b4 --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/pyproject.toml @@ -0,0 +1,22 @@ +[tool.poetry] +name = "aws-encryption-sdk" +version = "0.1.0" +description = "" +authors = ["AWS Crypto Tools "] +packages = [ + { include = "aws_encryption_sdk", from = "src" } +] +# Include generated internaldafny files in package distributions, +# even though they are not included in version control +include = ["**/internaldafny/generated/*.py"] + +[tool.poetry.dependencies] +python = "^3.11.0" +aws-cryptographic-material-providers = "1.7.4" + +[tool.poetry.group.test.dependencies] +pytest = "^7.4.0" + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/__init__.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/__init__.py new file mode 100644 index 000000000..203a67fb7 --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/__init__.py @@ -0,0 +1,6 @@ +# Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + +# Initialize generated Dafny +from .internaldafny.generated import module_ + diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/__pycache__/__init__.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fa1a4b097ff59f91c92243ef32f810b8f6f3d65e GIT binary patch literal 307 zcmZWky-EW?5Z<{14S_T^mevPu_60-`v=X!kHa5#~JI2$!-D74$xXQQCM-ai<=dey| zWfw@7Ds%C#a2V$Q`}pR0G#V80o8*ta`LXP~SnWyiq?~f#RRh-m%4HK(N(dB=8BQn+{G#qdT%P~+7xw) z(X&Bz_iV~JYYf{(9fOvc-cp*AIiLN`C#UCzW+BxLvT3_?8-ro0dbIsRTR|IZ>rf|a i$8EPB9DPYXrh(|`-{1oY%NzifLk0R>9sYOPk(&*ATwC)1 literal 0 HcmV?d00001 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/__pycache__/__init__.cpython-312.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..612e139079614ebec4448d2c3bd6fd63850125a8 GIT binary patch literal 284 zcmX@j%ge<81Z$@Gr*8w&k3k$5V1hC}3ji6@8B!Qh7;_kM8KW2(87i4HnO`yjg*6#( zvFGNel;)(y`)M-W63@&lNiE7t%t=X1%d6B&Pt8j$N-RlDDPjhyUCHnnWa6)S{m|mn zqGJ85{N((i)SMjs8g{QR6^{nX-=>|*`I@?zc8Jg`J&ex5E+Oc!jVzGHc@ zD_lI-#aq9qG_NExH?>&5pt2+*KTp57C>f+X9-%uPs9QfiJ~J<~BtBlRpz;=n4aCWI cMI1o)fV@!*3WX2MjEs!mxEL69i`al%0Pdbt!~g&Q literal 0 HcmV?d00001 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/AwsCryptographyEncryptionSdkTypes.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/AwsCryptographyEncryptionSdkTypes.py new file mode 100644 index 000000000..7fe290606 --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/AwsCryptographyEncryptionSdkTypes.py @@ -0,0 +1,403 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import aws_encryption_sdk.internaldafny.generated.module_ as module_ +import _dafny as _dafny +import System_ as System_ +import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers +import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary +import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom +import aws_cryptography_primitives.internaldafny.generated.Random as Random +import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption +import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest +import aws_cryptography_primitives.internaldafny.generated.Digest as Digest +import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC +import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC +import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF +import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF +import aws_cryptography_primitives.internaldafny.generated.Signature as Signature +import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr +import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption +import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives +import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 +import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites +import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials +import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring +import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations +import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort +import smithy_dafny_standard_library.internaldafny.generated.Math as Math +import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq +import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils +import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants +import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID +import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping +import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets +import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext +import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping +import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring +import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms +import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.Time as Time +import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker +import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC +import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring +import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring +import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM +import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults +import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment +import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM +import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier +import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils +import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders +import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn +import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure +import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable +import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore +import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr +import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode +import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions +import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings +import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO +import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals +import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals +import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul +import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals +import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals +import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod +import smithy_dafny_standard_library.internaldafny.generated.Power as Power +import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm +import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop +import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams +import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting +import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings +import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt +import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare +import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall +import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas + +# Module: AwsCryptographyEncryptionSdkTypes + +class default__: + def __init__(self): + pass + + @staticmethod + def IsValid__CountingNumbers(x): + return (1) <= (x) + + @staticmethod + def IsValid__FrameLength(x): + return ((1) <= (x)) and ((x) <= (4294967296)) + + +class DafnyCallEvent: + @classmethod + def default(cls, default_I, default_O): + return lambda: DafnyCallEvent_DafnyCallEvent(default_I(), default_O()) + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_DafnyCallEvent(self) -> bool: + return isinstance(self, DafnyCallEvent_DafnyCallEvent) + +class DafnyCallEvent_DafnyCallEvent(DafnyCallEvent, NamedTuple('DafnyCallEvent', [('input', Any), ('output', Any)])): + def __dafnystr__(self) -> str: + return f'AwsCryptographyEncryptionSdkTypes.DafnyCallEvent.DafnyCallEvent({_dafny.string_of(self.input)}, {_dafny.string_of(self.output)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, DafnyCallEvent_DafnyCallEvent) and self.input == __o.input and self.output == __o.output + def __hash__(self) -> int: + return super().__hash__() + + +class IAwsEncryptionSdkClientCallHistory: + def __init__(self): + pass + + def __dafnystr__(self) -> str: + return "AwsCryptographyEncryptionSdkTypes.IAwsEncryptionSdkClientCallHistory" + +class IAwsEncryptionSdkClient: + pass + def Encrypt(self, input): + pass + + def Decrypt(self, input): + pass + + +class AwsEncryptionSdkConfig: + @classmethod + def default(cls, ): + return lambda: AwsEncryptionSdkConfig_AwsEncryptionSdkConfig(Wrappers.Option.default()(), Wrappers.Option.default()(), Wrappers.Option.default()()) + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_AwsEncryptionSdkConfig(self) -> bool: + return isinstance(self, AwsEncryptionSdkConfig_AwsEncryptionSdkConfig) + +class AwsEncryptionSdkConfig_AwsEncryptionSdkConfig(AwsEncryptionSdkConfig, NamedTuple('AwsEncryptionSdkConfig', [('commitmentPolicy', Any), ('maxEncryptedDataKeys', Any), ('netV4__0__0__RetryPolicy', Any)])): + def __dafnystr__(self) -> str: + return f'AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig.AwsEncryptionSdkConfig({_dafny.string_of(self.commitmentPolicy)}, {_dafny.string_of(self.maxEncryptedDataKeys)}, {_dafny.string_of(self.netV4__0__0__RetryPolicy)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, AwsEncryptionSdkConfig_AwsEncryptionSdkConfig) and self.commitmentPolicy == __o.commitmentPolicy and self.maxEncryptedDataKeys == __o.maxEncryptedDataKeys and self.netV4__0__0__RetryPolicy == __o.netV4__0__0__RetryPolicy + def __hash__(self) -> int: + return super().__hash__() + + +class CountingNumbers: + def __init__(self): + pass + + @staticmethod + def default(): + return int(0) + def _Is(source__): + d_0_x_: int = source__ + if True: + return default__.IsValid__CountingNumbers(d_0_x_) + return False + +class DecryptInput: + @classmethod + def default(cls, ): + return lambda: DecryptInput_DecryptInput(_dafny.Seq({}), Wrappers.Option.default()(), Wrappers.Option.default()(), Wrappers.Option.default()()) + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_DecryptInput(self) -> bool: + return isinstance(self, DecryptInput_DecryptInput) + +class DecryptInput_DecryptInput(DecryptInput, NamedTuple('DecryptInput', [('ciphertext', Any), ('materialsManager', Any), ('keyring', Any), ('encryptionContext', Any)])): + def __dafnystr__(self) -> str: + return f'AwsCryptographyEncryptionSdkTypes.DecryptInput.DecryptInput({_dafny.string_of(self.ciphertext)}, {_dafny.string_of(self.materialsManager)}, {_dafny.string_of(self.keyring)}, {_dafny.string_of(self.encryptionContext)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, DecryptInput_DecryptInput) and self.ciphertext == __o.ciphertext and self.materialsManager == __o.materialsManager and self.keyring == __o.keyring and self.encryptionContext == __o.encryptionContext + def __hash__(self) -> int: + return super().__hash__() + + +class DecryptOutput: + @classmethod + def default(cls, ): + return lambda: DecryptOutput_DecryptOutput(_dafny.Seq({}), _dafny.Map({}), AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId.default()()) + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_DecryptOutput(self) -> bool: + return isinstance(self, DecryptOutput_DecryptOutput) + +class DecryptOutput_DecryptOutput(DecryptOutput, NamedTuple('DecryptOutput', [('plaintext', Any), ('encryptionContext', Any), ('algorithmSuiteId', Any)])): + def __dafnystr__(self) -> str: + return f'AwsCryptographyEncryptionSdkTypes.DecryptOutput.DecryptOutput({_dafny.string_of(self.plaintext)}, {_dafny.string_of(self.encryptionContext)}, {_dafny.string_of(self.algorithmSuiteId)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, DecryptOutput_DecryptOutput) and self.plaintext == __o.plaintext and self.encryptionContext == __o.encryptionContext and self.algorithmSuiteId == __o.algorithmSuiteId + def __hash__(self) -> int: + return super().__hash__() + + +class EncryptInput: + @classmethod + def default(cls, ): + return lambda: EncryptInput_EncryptInput(_dafny.Seq({}), Wrappers.Option.default()(), Wrappers.Option.default()(), Wrappers.Option.default()(), Wrappers.Option.default()(), Wrappers.Option.default()()) + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_EncryptInput(self) -> bool: + return isinstance(self, EncryptInput_EncryptInput) + +class EncryptInput_EncryptInput(EncryptInput, NamedTuple('EncryptInput', [('plaintext', Any), ('encryptionContext', Any), ('materialsManager', Any), ('keyring', Any), ('algorithmSuiteId', Any), ('frameLength', Any)])): + def __dafnystr__(self) -> str: + return f'AwsCryptographyEncryptionSdkTypes.EncryptInput.EncryptInput({_dafny.string_of(self.plaintext)}, {_dafny.string_of(self.encryptionContext)}, {_dafny.string_of(self.materialsManager)}, {_dafny.string_of(self.keyring)}, {_dafny.string_of(self.algorithmSuiteId)}, {_dafny.string_of(self.frameLength)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, EncryptInput_EncryptInput) and self.plaintext == __o.plaintext and self.encryptionContext == __o.encryptionContext and self.materialsManager == __o.materialsManager and self.keyring == __o.keyring and self.algorithmSuiteId == __o.algorithmSuiteId and self.frameLength == __o.frameLength + def __hash__(self) -> int: + return super().__hash__() + + +class EncryptOutput: + @classmethod + def default(cls, ): + return lambda: EncryptOutput_EncryptOutput(_dafny.Seq({}), _dafny.Map({}), AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId.default()()) + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_EncryptOutput(self) -> bool: + return isinstance(self, EncryptOutput_EncryptOutput) + +class EncryptOutput_EncryptOutput(EncryptOutput, NamedTuple('EncryptOutput', [('ciphertext', Any), ('encryptionContext', Any), ('algorithmSuiteId', Any)])): + def __dafnystr__(self) -> str: + return f'AwsCryptographyEncryptionSdkTypes.EncryptOutput.EncryptOutput({_dafny.string_of(self.ciphertext)}, {_dafny.string_of(self.encryptionContext)}, {_dafny.string_of(self.algorithmSuiteId)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, EncryptOutput_EncryptOutput) and self.ciphertext == __o.ciphertext and self.encryptionContext == __o.encryptionContext and self.algorithmSuiteId == __o.algorithmSuiteId + def __hash__(self) -> int: + return super().__hash__() + + +class FrameLength: + def __init__(self): + pass + + @staticmethod + def default(): + return int(0) + def _Is(source__): + d_1_x_: int = source__ + if True: + return default__.IsValid__FrameLength(d_1_x_) + return False + +class NetV4__0__0__RetryPolicy: + @_dafny.classproperty + def AllSingletonConstructors(cls): + return [NetV4__0__0__RetryPolicy_FORBID__RETRY(), NetV4__0__0__RetryPolicy_ALLOW__RETRY()] + @classmethod + def default(cls, ): + return lambda: NetV4__0__0__RetryPolicy_FORBID__RETRY() + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_FORBID__RETRY(self) -> bool: + return isinstance(self, NetV4__0__0__RetryPolicy_FORBID__RETRY) + @property + def is_ALLOW__RETRY(self) -> bool: + return isinstance(self, NetV4__0__0__RetryPolicy_ALLOW__RETRY) + +class NetV4__0__0__RetryPolicy_FORBID__RETRY(NetV4__0__0__RetryPolicy, NamedTuple('FORBID__RETRY', [])): + def __dafnystr__(self) -> str: + return f'AwsCryptographyEncryptionSdkTypes.NetV4_0_0_RetryPolicy.FORBID_RETRY' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, NetV4__0__0__RetryPolicy_FORBID__RETRY) + def __hash__(self) -> int: + return super().__hash__() + +class NetV4__0__0__RetryPolicy_ALLOW__RETRY(NetV4__0__0__RetryPolicy, NamedTuple('ALLOW__RETRY', [])): + def __dafnystr__(self) -> str: + return f'AwsCryptographyEncryptionSdkTypes.NetV4_0_0_RetryPolicy.ALLOW_RETRY' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, NetV4__0__0__RetryPolicy_ALLOW__RETRY) + def __hash__(self) -> int: + return super().__hash__() + + +class Error: + @classmethod + def default(cls, ): + return lambda: Error_AwsEncryptionSdkException(_dafny.Seq("")) + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_AwsEncryptionSdkException(self) -> bool: + return isinstance(self, Error_AwsEncryptionSdkException) + @property + def is_AwsCryptographyMaterialProviders(self) -> bool: + return isinstance(self, Error_AwsCryptographyMaterialProviders) + @property + def is_AwsCryptographyPrimitives(self) -> bool: + return isinstance(self, Error_AwsCryptographyPrimitives) + @property + def is_CollectionOfErrors(self) -> bool: + return isinstance(self, Error_CollectionOfErrors) + @property + def is_Opaque(self) -> bool: + return isinstance(self, Error_Opaque) + +class Error_AwsEncryptionSdkException(Error, NamedTuple('AwsEncryptionSdkException', [('message', Any)])): + def __dafnystr__(self) -> str: + return f'AwsCryptographyEncryptionSdkTypes.Error.AwsEncryptionSdkException({_dafny.string_of(self.message)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, Error_AwsEncryptionSdkException) and self.message == __o.message + def __hash__(self) -> int: + return super().__hash__() + +class Error_AwsCryptographyMaterialProviders(Error, NamedTuple('AwsCryptographyMaterialProviders', [('AwsCryptographyMaterialProviders', Any)])): + def __dafnystr__(self) -> str: + return f'AwsCryptographyEncryptionSdkTypes.Error.AwsCryptographyMaterialProviders({_dafny.string_of(self.AwsCryptographyMaterialProviders)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, Error_AwsCryptographyMaterialProviders) and self.AwsCryptographyMaterialProviders == __o.AwsCryptographyMaterialProviders + def __hash__(self) -> int: + return super().__hash__() + +class Error_AwsCryptographyPrimitives(Error, NamedTuple('AwsCryptographyPrimitives', [('AwsCryptographyPrimitives', Any)])): + def __dafnystr__(self) -> str: + return f'AwsCryptographyEncryptionSdkTypes.Error.AwsCryptographyPrimitives({_dafny.string_of(self.AwsCryptographyPrimitives)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, Error_AwsCryptographyPrimitives) and self.AwsCryptographyPrimitives == __o.AwsCryptographyPrimitives + def __hash__(self) -> int: + return super().__hash__() + +class Error_CollectionOfErrors(Error, NamedTuple('CollectionOfErrors', [('list', Any), ('message', Any)])): + def __dafnystr__(self) -> str: + return f'AwsCryptographyEncryptionSdkTypes.Error.CollectionOfErrors({_dafny.string_of(self.list)}, {_dafny.string_of(self.message)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, Error_CollectionOfErrors) and self.list == __o.list and self.message == __o.message + def __hash__(self) -> int: + return super().__hash__() + +class Error_Opaque(Error, NamedTuple('Opaque', [('obj', Any), ('alt__text', Any)])): + def __dafnystr__(self) -> str: + return f'AwsCryptographyEncryptionSdkTypes.Error.Opaque({_dafny.string_of(self.obj)}, {_dafny.string_of(self.alt__text)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, Error_Opaque) and self.obj == __o.obj and self.alt__text == __o.alt__text + def __hash__(self) -> int: + return super().__hash__() + + +class OpaqueError: + def __init__(self): + pass + + @staticmethod + def default(): + return Error.default()() + def _Is(source__): + d_2_e_: Error = source__ + return (d_2_e_).is_Opaque diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/AwsEncryptionSdkOperations.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/AwsEncryptionSdkOperations.py new file mode 100644 index 000000000..e3df2958c --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/AwsEncryptionSdkOperations.py @@ -0,0 +1,558 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import aws_encryption_sdk.internaldafny.generated.module_ as module_ +import _dafny as _dafny +import System_ as System_ +import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers +import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary +import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom +import aws_cryptography_primitives.internaldafny.generated.Random as Random +import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption +import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest +import aws_cryptography_primitives.internaldafny.generated.Digest as Digest +import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC +import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC +import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF +import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF +import aws_cryptography_primitives.internaldafny.generated.Signature as Signature +import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr +import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption +import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives +import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 +import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites +import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials +import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring +import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations +import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort +import smithy_dafny_standard_library.internaldafny.generated.Math as Math +import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq +import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils +import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants +import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID +import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping +import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets +import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext +import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping +import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring +import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms +import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.Time as Time +import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker +import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC +import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring +import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring +import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM +import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults +import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment +import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM +import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier +import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils +import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders +import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn +import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure +import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable +import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore +import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr +import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode +import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions +import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings +import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO +import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals +import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals +import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul +import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals +import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals +import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod +import smithy_dafny_standard_library.internaldafny.generated.Power as Power +import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm +import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop +import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams +import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting +import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings +import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt +import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare +import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall +import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas +import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk.internaldafny.generated.Header as Header +import aws_encryption_sdk.internaldafny.generated.Frames as Frames +import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers + +# Module: AwsEncryptionSdkOperations + +class default__: + def __init__(self): + pass + + @staticmethod + def Encrypt(config, input): + output: Wrappers.Result = Wrappers.Result.default(AwsCryptographyEncryptionSdkTypes.EncryptOutput.default())() + d_0_valueOrError1_: Wrappers.Result = Wrappers.Result.default(BoundedInts.int64.default)() + if ((input).frameLength).is_Some: + d_1_valueOrError0_ = Wrappers.default__.Need(((0) < (((input).frameLength).value)) and ((((input).frameLength).value) <= (4294967295)), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("FrameLength must be greater than 0 and less than 2^32"))) + if (d_1_valueOrError0_).IsFailure(): + d_0_valueOrError1_ = (d_1_valueOrError0_).PropagateFailure() + elif True: + d_0_valueOrError1_ = Wrappers.Result_Success(((input).frameLength).value) + elif True: + d_0_valueOrError1_ = Wrappers.Result_Success(EncryptDecryptHelpers.default__.DEFAULT__FRAME__LENGTH) + if (d_0_valueOrError1_).IsFailure(): + output = (d_0_valueOrError1_).PropagateFailure() + return output + d_2_frameLength_: int + d_2_frameLength_ = (d_0_valueOrError1_).Extract() + d_3_valueOrError2_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_3_valueOrError2_ = EncryptDecryptHelpers.default__.ValidateEncryptionContext((input).encryptionContext) + if (d_3_valueOrError2_).IsFailure(): + output = (d_3_valueOrError2_).PropagateFailure() + return output + d_4_encryptionContext_: _dafny.Map + if ((input).encryptionContext).is_Some: + d_4_encryptionContext_ = ((input).encryptionContext).value + elif True: + d_4_encryptionContext_ = _dafny.Map({}) + d_5_valueOrError3_: Wrappers.Result = None + out0_: Wrappers.Result + out0_ = EncryptDecryptHelpers.default__.CreateCmmFromInput((input).materialsManager, (input).keyring) + d_5_valueOrError3_ = out0_ + if (d_5_valueOrError3_).IsFailure(): + output = (d_5_valueOrError3_).PropagateFailure() + return output + d_6_cmm_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager + d_6_cmm_ = (d_5_valueOrError3_).Extract() + d_7_algorithmSuiteId_: Wrappers.Option + if ((input).algorithmSuiteId).is_Some: + d_7_algorithmSuiteId_ = Wrappers.Option_Some(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId_ESDK(((input).algorithmSuiteId).value)) + elif True: + d_7_algorithmSuiteId_ = Wrappers.Option_None() + if (d_7_algorithmSuiteId_).is_Some: + d_8_valueOrError4_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() + def lambda0_(d_9_e_): + return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyMaterialProviders(d_9_e_) + + d_8_valueOrError4_ = (((config).mpl).ValidateCommitmentPolicyOnEncrypt(AwsCryptographyMaterialProvidersTypes.ValidateCommitmentPolicyOnEncryptInput_ValidateCommitmentPolicyOnEncryptInput((d_7_algorithmSuiteId_).value, AwsCryptographyMaterialProvidersTypes.CommitmentPolicy_ESDK((config).commitmentPolicy)))).MapFailure(lambda0_) + if (d_8_valueOrError4_).IsFailure(): + output = (d_8_valueOrError4_).PropagateFailure() + return output + d_10___v0_: tuple + d_10___v0_ = (d_8_valueOrError4_).Extract() + d_11_valueOrError5_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_11_valueOrError5_ = Wrappers.default__.Need((len((input).plaintext)) < (StandardLibrary_UInt.default__.INT64__MAX__LIMIT), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Plaintext exceeds maximum allowed size"))) + if (d_11_valueOrError5_).IsFailure(): + output = (d_11_valueOrError5_).PropagateFailure() + return output + d_12_valueOrError6_: Wrappers.Result = None + out1_: Wrappers.Result + out1_ = EncryptDecryptHelpers.default__.GetEncryptionMaterials(d_6_cmm_, d_7_algorithmSuiteId_, d_4_encryptionContext_, len((input).plaintext), (config).commitmentPolicy, (config).mpl) + d_12_valueOrError6_ = out1_ + if (d_12_valueOrError6_).IsFailure(): + output = (d_12_valueOrError6_).PropagateFailure() + return output + d_13_materials_: AwsCryptographyMaterialProvidersTypes.EncryptionMaterials + d_13_materials_ = (d_12_valueOrError6_).Extract() + d_14_valueOrError7_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_14_valueOrError7_ = Wrappers.default__.Need((((d_13_materials_).algorithmSuite).id).is_ESDK, AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Encryption materials contain incompatible algorithm suite for the AWS Encryption SDK."))) + if (d_14_valueOrError7_).IsFailure(): + output = (d_14_valueOrError7_).PropagateFailure() + return output + d_15_valueOrError8_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_15_valueOrError8_ = EncryptDecryptHelpers.default__.ValidateMaxEncryptedDataKeys((config).maxEncryptedDataKeys, (d_13_materials_).encryptedDataKeys) + if (d_15_valueOrError8_).IsFailure(): + output = (d_15_valueOrError8_).PropagateFailure() + return output + d_16_encryptedDataKeys_: _dafny.Seq + d_16_encryptedDataKeys_ = (d_13_materials_).encryptedDataKeys + d_17_valueOrError9_: Wrappers.Result = None + out2_: Wrappers.Result + out2_ = EncryptDecryptHelpers.default__.GenerateMessageId((d_13_materials_).algorithmSuite, (config).crypto) + d_17_valueOrError9_ = out2_ + if (d_17_valueOrError9_).IsFailure(): + output = (d_17_valueOrError9_).PropagateFailure() + return output + d_18_messageId_: _dafny.Seq + d_18_messageId_ = (d_17_valueOrError9_).Extract() + d_19_maybeDerivedDataKeys_: Wrappers.Result + out3_: Wrappers.Result + out3_ = KeyDerivation.default__.DeriveKeys(d_18_messageId_, ((d_13_materials_).plaintextDataKey).value, (d_13_materials_).algorithmSuite, (config).crypto, (config).netV4__0__0__RetryPolicy, False) + d_19_maybeDerivedDataKeys_ = out3_ + d_20_valueOrError10_: Wrappers.Result = Wrappers.Result.default(KeyDerivation.ExpandedKeyMaterial.default())() + def lambda1_(d_21_e_): + return AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Failed to derive data keys")) + + d_20_valueOrError10_ = (d_19_maybeDerivedDataKeys_).MapFailure(lambda1_) + if (d_20_valueOrError10_).IsFailure(): + output = (d_20_valueOrError10_).PropagateFailure() + return output + d_22_derivedDataKeys_: KeyDerivation.ExpandedKeyMaterial + d_22_derivedDataKeys_ = (d_20_valueOrError10_).Extract() + d_23_maybeHeader_: Wrappers.Result + out4_: Wrappers.Result + out4_ = EncryptDecryptHelpers.default__.BuildHeaderForEncrypt(d_18_messageId_, (d_13_materials_).algorithmSuite, (d_13_materials_).encryptionContext, (d_13_materials_).requiredEncryptionContextKeys, d_16_encryptedDataKeys_, d_2_frameLength_, d_22_derivedDataKeys_, (config).crypto) + d_23_maybeHeader_ = out4_ + d_24_valueOrError11_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_24_valueOrError11_ = Wrappers.default__.Need((d_23_maybeHeader_).is_Success, AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Failed to build header body"))) + if (d_24_valueOrError11_).IsFailure(): + output = (d_24_valueOrError11_).PropagateFailure() + return output + d_25_header_: Header.HeaderInfo + d_25_header_ = (d_23_maybeHeader_).value + d_26_valueOrError12_: Wrappers.Result = None + out5_: Wrappers.Result + out5_ = MessageBody.default__.EncryptMessageBody((input).plaintext, d_25_header_, (d_22_derivedDataKeys_).dataKey, (config).crypto) + d_26_valueOrError12_ = out5_ + if (d_26_valueOrError12_).IsFailure(): + output = (d_26_valueOrError12_).PropagateFailure() + return output + d_27_framedMessage_: MessageBody.FramedMessageBody + d_27_framedMessage_ = (d_26_valueOrError12_).Extract() + d_28_maybeSignedMessage_: Wrappers.Result + out6_: Wrappers.Result + out6_ = default__.SignAndSerializeMessage(config, d_25_header_, d_27_framedMessage_, d_13_materials_) + d_28_maybeSignedMessage_ = out6_ + output = d_28_maybeSignedMessage_ + return output + + @staticmethod + def SignAndSerializeMessage(config, header, framedMessage, materials): + output: Wrappers.Result = Wrappers.Result.default(AwsCryptographyEncryptionSdkTypes.EncryptOutput.default())() + if (((((framedMessage).finalFrame).header).suite).signature).is_ECDSA: + d_0_valueOrError0_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_0_valueOrError0_ = EncryptDecryptHelpers.default__.SerializeMessageWithoutSignature(framedMessage, (materials).algorithmSuite) + if (d_0_valueOrError0_).IsFailure(): + output = (d_0_valueOrError0_).PropagateFailure() + return output + d_1_msg_: _dafny.Seq + d_1_msg_ = (d_0_valueOrError0_).Extract() + d_2_ecdsaParams_: AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm + d_2_ecdsaParams_ = ((((((framedMessage).finalFrame).header).suite).signature).ECDSA).curve + d_3_valueOrError1_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_3_valueOrError1_ = Wrappers.default__.Need(((materials).signingKey).is_Some, AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Missing signing key."))) + if (d_3_valueOrError1_).IsFailure(): + output = (d_3_valueOrError1_).PropagateFailure() + return output + d_4_maybeBytes_: Wrappers.Result + out0_: Wrappers.Result + out0_ = ((config).crypto).ECDSASign(AwsCryptographyPrimitivesTypes.ECDSASignInput_ECDSASignInput(d_2_ecdsaParams_, ((materials).signingKey).value, d_1_msg_)) + d_4_maybeBytes_ = out0_ + d_5_valueOrError2_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + def lambda0_(d_6_e_): + return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyPrimitives(d_6_e_) + + d_5_valueOrError2_ = (d_4_maybeBytes_).MapFailure(lambda0_) + if (d_5_valueOrError2_).IsFailure(): + output = (d_5_valueOrError2_).PropagateFailure() + return output + d_7_bytes_: _dafny.Seq + d_7_bytes_ = (d_5_valueOrError2_).Extract() + d_8_valueOrError3_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_8_valueOrError3_ = Wrappers.default__.Need((len(d_7_bytes_)) < (StandardLibrary_UInt.default__.UINT16__LIMIT), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Length of signature bytes is larger than the uint16 limit."))) + if (d_8_valueOrError3_).IsFailure(): + output = (d_8_valueOrError3_).PropagateFailure() + return output + d_9_signature_: _dafny.Seq + d_9_signature_ = (StandardLibrary_UInt.default__.UInt16ToSeq(len(d_7_bytes_))) + (d_7_bytes_) + d_1_msg_ = (d_1_msg_) + (d_9_signature_) + output = Wrappers.Result_Success(AwsCryptographyEncryptionSdkTypes.EncryptOutput_EncryptOutput(d_1_msg_, (header).encryptionContext, (((header).suite).id).ESDK)) + return output + elif True: + d_10_valueOrError4_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_10_valueOrError4_ = EncryptDecryptHelpers.default__.SerializeMessageWithoutSignature(framedMessage, (materials).algorithmSuite) + if (d_10_valueOrError4_).IsFailure(): + output = (d_10_valueOrError4_).PropagateFailure() + return output + d_11_msg_: _dafny.Seq + d_11_msg_ = (d_10_valueOrError4_).Extract() + output = Wrappers.Result_Success(AwsCryptographyEncryptionSdkTypes.EncryptOutput_EncryptOutput(d_11_msg_, (header).encryptionContext, (((header).suite).id).ESDK)) + return output + return output + + @staticmethod + def Decrypt(config, input): + output: Wrappers.Result = Wrappers.Result.default(AwsCryptographyEncryptionSdkTypes.DecryptOutput.default())() + d_0_valueOrError0_: Wrappers.Result = None + out0_: Wrappers.Result + out0_ = EncryptDecryptHelpers.default__.CreateCmmFromInput((input).materialsManager, (input).keyring) + d_0_valueOrError0_ = out0_ + if (d_0_valueOrError0_).IsFailure(): + output = (d_0_valueOrError0_).PropagateFailure() + return output + d_1_cmm_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager + d_1_cmm_ = (d_0_valueOrError0_).Extract() + d_2_buffer_: SerializeFunctions.ReadableBuffer + d_2_buffer_ = SerializeFunctions.ReadableBuffer_ReadableBuffer((input).ciphertext, 0) + out1_: Wrappers.Result + out1_ = default__.InternalDecrypt(config, d_1_cmm_, d_2_buffer_, (input).encryptionContext) + output = out1_ + return output + + @staticmethod + def InternalDecrypt(config, cmm, buffer, inputEncryptionContext): + output: Wrappers.Result = Wrappers.Result.default(AwsCryptographyEncryptionSdkTypes.DecryptOutput.default())() + d_0_v4Retry_: bool + d_0_v4Retry_ = False + d_1_valueOrError0_: Wrappers.Result = None + d_1_valueOrError0_ = (Header.default__.ReadHeaderBody(buffer, (config).maxEncryptedDataKeys, (config).mpl)).MapFailure(EncryptDecryptHelpers.default__.MapSerializeFailure(_dafny.Seq(": ReadHeaderBody"))) + if (d_1_valueOrError0_).IsFailure(): + output = (d_1_valueOrError0_).PropagateFailure() + return output + d_2_headerBody_: SerializeFunctions.SuccessfulRead + d_2_headerBody_ = (d_1_valueOrError0_).Extract() + d_3_rawHeader_: _dafny.Seq + d_3_rawHeader_ = _dafny.Seq(((buffer).bytes)[(buffer).start:((d_2_headerBody_).tail).start:]) + d_4_algorithmSuite_: AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + d_4_algorithmSuite_ = ((d_2_headerBody_).data).algorithmSuite + d_5_valueOrError1_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() + def lambda0_(d_6_e_): + return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyMaterialProviders(d_6_e_) + + d_5_valueOrError1_ = (((config).mpl).ValidateCommitmentPolicyOnDecrypt(AwsCryptographyMaterialProvidersTypes.ValidateCommitmentPolicyOnDecryptInput_ValidateCommitmentPolicyOnDecryptInput((d_4_algorithmSuite_).id, AwsCryptographyMaterialProvidersTypes.CommitmentPolicy_ESDK((config).commitmentPolicy)))).MapFailure(lambda0_) + if (d_5_valueOrError1_).IsFailure(): + output = (d_5_valueOrError1_).PropagateFailure() + return output + d_7___v1_: tuple + d_7___v1_ = (d_5_valueOrError1_).Extract() + d_8_valueOrError2_: Wrappers.Result = None + out0_: Wrappers.Result + out0_ = EncryptDecryptHelpers.default__.GetDecryptionMaterials(cmm, (d_4_algorithmSuite_).id, (d_2_headerBody_).data, inputEncryptionContext, (config).commitmentPolicy, (config).mpl) + d_8_valueOrError2_ = out0_ + if (d_8_valueOrError2_).IsFailure(): + output = (d_8_valueOrError2_).PropagateFailure() + return output + d_9_decMat_: AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + d_9_decMat_ = (d_8_valueOrError2_).Extract() + d_10_suite_: AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + d_10_suite_ = (d_9_decMat_).algorithmSuite + d_11_valueOrError3_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_11_valueOrError3_ = Wrappers.default__.Need((d_10_suite_) == (d_4_algorithmSuite_), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Stored header algorithm suite does not match decryption algorithm suite."))) + if (d_11_valueOrError3_).IsFailure(): + output = (d_11_valueOrError3_).PropagateFailure() + return output + d_12_valueOrError4_: Wrappers.Result = None + d_12_valueOrError4_ = (HeaderAuth.default__.ReadHeaderAuthTag((d_2_headerBody_).tail, d_10_suite_)).MapFailure(EncryptDecryptHelpers.default__.MapSerializeFailure(_dafny.Seq(": ReadHeaderAuthTag"))) + if (d_12_valueOrError4_).IsFailure(): + output = (d_12_valueOrError4_).PropagateFailure() + return output + d_13_headerAuth_: SerializeFunctions.SuccessfulRead + d_13_headerAuth_ = (d_12_valueOrError4_).Extract() + d_14_maybeDerivedDataKeys_: Wrappers.Result + out1_: Wrappers.Result + out1_ = KeyDerivation.default__.DeriveKeys(((d_2_headerBody_).data).messageId, ((d_9_decMat_).plaintextDataKey).value, d_10_suite_, (config).crypto, (config).netV4__0__0__RetryPolicy, False) + d_14_maybeDerivedDataKeys_ = out1_ + d_15_valueOrError5_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_15_valueOrError5_ = Wrappers.default__.Need((d_14_maybeDerivedDataKeys_).is_Success, AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Failed to derive data keys"))) + if (d_15_valueOrError5_).IsFailure(): + output = (d_15_valueOrError5_).PropagateFailure() + return output + d_16_derivedDataKeys_: KeyDerivation.ExpandedKeyMaterial + d_16_derivedDataKeys_ = (d_14_maybeDerivedDataKeys_).value + d_17_valueOrError6_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_17_valueOrError6_ = Wrappers.default__.Need(Header.default__.HeaderVersionSupportsCommitment_q(d_10_suite_, (d_2_headerBody_).data), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Invalid commitment values found in header body"))) + if (d_17_valueOrError6_).IsFailure(): + output = (d_17_valueOrError6_).PropagateFailure() + return output + if ((d_10_suite_).commitment).is_HKDF: + d_18_valueOrError7_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() + out2_: Wrappers.Result + out2_ = EncryptDecryptHelpers.default__.ValidateSuiteData(d_10_suite_, (d_2_headerBody_).data, ((d_16_derivedDataKeys_).commitmentKey).value) + d_18_valueOrError7_ = out2_ + if (d_18_valueOrError7_).IsFailure(): + output = (d_18_valueOrError7_).PropagateFailure() + return output + d_19___v2_: tuple + d_19___v2_ = (d_18_valueOrError7_).Extract() + d_20_headerEncryptionContext_: _dafny.Map + d_20_headerEncryptionContext_ = EncryptionContext.default__.GetEncryptionContext(((d_2_headerBody_).data).encryptionContext) + d_21_encryptionContextToOnlyAuthenticate_: _dafny.Map + d_21_encryptionContextToOnlyAuthenticate_ = default__.buildEncryptionContextToOnlyAuthenticate(d_9_decMat_) + d_22_canonicalReqEncryptionContext_: _dafny.Seq + d_22_canonicalReqEncryptionContext_ = EncryptionContext.default__.GetCanonicalEncryptionContext(d_21_encryptionContextToOnlyAuthenticate_) + d_23_serializedReqEncryptionContext_: _dafny.Seq + d_23_serializedReqEncryptionContext_ = EncryptionContext.default__.WriteEmptyEcOrWriteAAD(d_22_canonicalReqEncryptionContext_) + d_24_maybeHeaderAuth_: Wrappers.Result + out3_: Wrappers.Result + out3_ = ((config).crypto).AESDecrypt(AwsCryptographyPrimitivesTypes.AESDecryptInput_AESDecryptInput(((d_10_suite_).encrypt).AES__GCM, (d_16_derivedDataKeys_).dataKey, _dafny.Seq([]), ((d_13_headerAuth_).data).headerAuthTag, ((d_13_headerAuth_).data).headerIv, (d_3_rawHeader_) + (d_23_serializedReqEncryptionContext_))) + d_24_maybeHeaderAuth_ = out3_ + if (((d_24_maybeHeaderAuth_).is_Failure) and (((config).netV4__0__0__RetryPolicy) == (AwsCryptographyEncryptionSdkTypes.NetV4__0__0__RetryPolicy_ALLOW__RETRY()))) and ((d_0_v4Retry_) == (False)): + d_0_v4Retry_ = True + out4_: Wrappers.Result + out4_ = KeyDerivation.default__.DeriveKeys(((d_2_headerBody_).data).messageId, ((d_9_decMat_).plaintextDataKey).value, d_10_suite_, (config).crypto, (config).netV4__0__0__RetryPolicy, True) + d_14_maybeDerivedDataKeys_ = out4_ + d_25_valueOrError8_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_25_valueOrError8_ = Wrappers.default__.Need((d_14_maybeDerivedDataKeys_).is_Success, AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Failed to derive data keys"))) + if (d_25_valueOrError8_).IsFailure(): + output = (d_25_valueOrError8_).PropagateFailure() + return output + d_16_derivedDataKeys_ = (d_14_maybeDerivedDataKeys_).value + d_23_serializedReqEncryptionContext_ = EncryptionContext.default__.WriteAAD(d_22_canonicalReqEncryptionContext_) + out5_: Wrappers.Result + out5_ = ((config).crypto).AESDecrypt(AwsCryptographyPrimitivesTypes.AESDecryptInput_AESDecryptInput(((d_10_suite_).encrypt).AES__GCM, (d_16_derivedDataKeys_).dataKey, _dafny.Seq([]), ((d_13_headerAuth_).data).headerAuthTag, ((d_13_headerAuth_).data).headerIv, (d_3_rawHeader_) + (d_23_serializedReqEncryptionContext_))) + d_24_maybeHeaderAuth_ = out5_ + d_26_valueOrError9_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + def lambda1_(d_27_e_): + return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyPrimitives(d_27_e_) + + d_26_valueOrError9_ = (d_24_maybeHeaderAuth_).MapFailure(lambda1_) + if (d_26_valueOrError9_).IsFailure(): + output = (d_26_valueOrError9_).PropagateFailure() + return output + d_28___v3_: _dafny.Seq + d_28___v3_ = (d_26_valueOrError9_).Extract() + d_29_header_: Header.HeaderInfo + d_29_header_ = Header.HeaderInfo_HeaderInfo((d_2_headerBody_).data, d_3_rawHeader_, d_20_headerEncryptionContext_, d_10_suite_, (d_13_headerAuth_).data) + d_30_key_: _dafny.Seq + d_30_key_ = (d_16_derivedDataKeys_).dataKey + d_31_plaintext_: _dafny.Seq = _dafny.Seq({}) + d_32_messageBodyTail_: SerializeFunctions.ReadableBuffer = SerializeFunctions.ReadableBuffer.default()() + source0_ = ((d_29_header_).body).contentType + with _dafny.label("match0"): + if True: + if source0_.is_NonFramed: + d_33_valueOrError10_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple(_dafny.Seq, SerializeFunctions.ReadableBuffer.default()))() + out6_: Wrappers.Result + out6_ = EncryptDecryptHelpers.default__.ReadAndDecryptNonFramedMessageBody((d_13_headerAuth_).tail, d_29_header_, d_30_key_, (config).crypto) + d_33_valueOrError10_ = out6_ + if (d_33_valueOrError10_).IsFailure(): + output = (d_33_valueOrError10_).PropagateFailure() + return output + d_34_decryptRes_: tuple + d_34_decryptRes_ = (d_33_valueOrError10_).Extract() + d_31_plaintext_ = (d_34_decryptRes_)[0] + d_32_messageBodyTail_ = (d_34_decryptRes_)[1] + raise _dafny.Break("match0") + if True: + d_35_valueOrError11_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple(_dafny.Seq, SerializeFunctions.ReadableBuffer.default()))() + out7_: Wrappers.Result + out7_ = EncryptDecryptHelpers.default__.ReadAndDecryptFramedMessageBody((d_13_headerAuth_).tail, d_29_header_, d_30_key_, (config).crypto) + d_35_valueOrError11_ = out7_ + if (d_35_valueOrError11_).IsFailure(): + output = (d_35_valueOrError11_).PropagateFailure() + return output + d_36_decryptRes_: tuple + d_36_decryptRes_ = (d_35_valueOrError11_).Extract() + d_31_plaintext_ = (d_36_decryptRes_)[0] + d_32_messageBodyTail_ = (d_36_decryptRes_)[1] + pass + d_37_valueOrError12_: Wrappers.Result = Wrappers.Result.default(SerializeFunctions.ReadableBuffer.default())() + out8_: Wrappers.Result + out8_ = EncryptDecryptHelpers.default__.VerifySignature(d_32_messageBodyTail_, _dafny.Seq(((d_32_messageBodyTail_).bytes)[(buffer).start:(d_32_messageBodyTail_).start:]), d_9_decMat_, (config).crypto) + d_37_valueOrError12_ = out8_ + if (d_37_valueOrError12_).IsFailure(): + output = (d_37_valueOrError12_).PropagateFailure() + return output + d_38_signature_: SerializeFunctions.ReadableBuffer + d_38_signature_ = (d_37_valueOrError12_).Extract() + d_39_valueOrError13_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_39_valueOrError13_ = Wrappers.default__.Need(((d_38_signature_).start) == (len((d_38_signature_).bytes)), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Data after message footer."))) + if (d_39_valueOrError13_).IsFailure(): + output = (d_39_valueOrError13_).PropagateFailure() + return output + output = Wrappers.Result_Success(AwsCryptographyEncryptionSdkTypes.DecryptOutput_DecryptOutput(d_31_plaintext_, ((d_29_header_).encryptionContext) | (d_21_encryptionContextToOnlyAuthenticate_), (((d_29_header_).suite).id).ESDK)) + return output + + @staticmethod + def buildEncryptionContextToOnlyAuthenticate(decMat): + def iife0_(): + coll0_ = _dafny.Map() + compr_0_: _dafny.Seq + for compr_0_ in ((decMat).encryptionContext).keys.Elements: + d_0_k_: _dafny.Seq = compr_0_ + if UTF8.ValidUTF8Bytes._Is(d_0_k_): + if ((d_0_k_) in ((decMat).encryptionContext)) and ((d_0_k_) in ((decMat).requiredEncryptionContextKeys)): + coll0_[d_0_k_] = ((decMat).encryptionContext)[d_0_k_] + return _dafny.Map(coll0_) + return iife0_() + + + +class Config: + @classmethod + def default(cls, ): + return lambda: Config_Config(None, None, AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy.default()(), Wrappers.Option.default()(), AwsCryptographyEncryptionSdkTypes.NetV4__0__0__RetryPolicy.default()()) + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_Config(self) -> bool: + return isinstance(self, Config_Config) + +class Config_Config(Config, NamedTuple('Config', [('crypto', Any), ('mpl', Any), ('commitmentPolicy', Any), ('maxEncryptedDataKeys', Any), ('netV4__0__0__RetryPolicy', Any)])): + def __dafnystr__(self) -> str: + return f'AwsEncryptionSdkOperations.Config.Config({_dafny.string_of(self.crypto)}, {_dafny.string_of(self.mpl)}, {_dafny.string_of(self.commitmentPolicy)}, {_dafny.string_of(self.maxEncryptedDataKeys)}, {_dafny.string_of(self.netV4__0__0__RetryPolicy)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, Config_Config) and self.crypto == __o.crypto and self.mpl == __o.mpl and self.commitmentPolicy == __o.commitmentPolicy and self.maxEncryptedDataKeys == __o.maxEncryptedDataKeys and self.netV4__0__0__RetryPolicy == __o.netV4__0__0__RetryPolicy + def __hash__(self) -> int: + return super().__hash__() + + +class FrameLength: + def __init__(self): + pass + + @staticmethod + def default(): + return int(0) + def _Is(source__): + d_0_frameLength_: int = source__ + if True: + return ((0) < (d_0_frameLength_)) and ((d_0_frameLength_) <= (4294967295)) + return False diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptDecryptHelpers.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptDecryptHelpers.py new file mode 100644 index 000000000..4e2fcd6a3 --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptDecryptHelpers.py @@ -0,0 +1,633 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import aws_encryption_sdk.internaldafny.generated.module_ as module_ +import _dafny as _dafny +import System_ as System_ +import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers +import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary +import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom +import aws_cryptography_primitives.internaldafny.generated.Random as Random +import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption +import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest +import aws_cryptography_primitives.internaldafny.generated.Digest as Digest +import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC +import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC +import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF +import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF +import aws_cryptography_primitives.internaldafny.generated.Signature as Signature +import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr +import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption +import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives +import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 +import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites +import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials +import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring +import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations +import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort +import smithy_dafny_standard_library.internaldafny.generated.Math as Math +import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq +import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils +import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants +import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID +import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping +import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets +import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext +import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping +import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring +import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms +import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.Time as Time +import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker +import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC +import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring +import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring +import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM +import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults +import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment +import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM +import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier +import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils +import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders +import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn +import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure +import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable +import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore +import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr +import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode +import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions +import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings +import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO +import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals +import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals +import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul +import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals +import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals +import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod +import smithy_dafny_standard_library.internaldafny.generated.Power as Power +import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm +import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop +import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams +import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting +import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings +import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt +import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare +import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall +import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas +import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk.internaldafny.generated.Header as Header +import aws_encryption_sdk.internaldafny.generated.Frames as Frames +import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation + +# Module: EncryptDecryptHelpers + +class default__: + def __init__(self): + pass + + @staticmethod + def SerializeMessageWithSignature(framedMessage, signature, suite): + d_0_serializedSignature_ = SerializeFunctions.default__.WriteShortLengthSeq(signature) + d_1_valueOrError0_ = default__.SerializeMessageWithoutSignature(framedMessage, suite) + if (d_1_valueOrError0_).IsFailure(): + return (d_1_valueOrError0_).PropagateFailure() + elif True: + d_2_serializedMessage_ = (d_1_valueOrError0_).Extract() + return Wrappers.Result_Success((d_2_serializedMessage_) + (d_0_serializedSignature_)) + + @staticmethod + def SerializeMessageWithoutSignature(framedMessage, suite): + d_0_valueOrError0_ = HeaderAuth.default__.WriteHeaderAuthTag((((framedMessage).finalFrame).header).headerAuth, suite) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + d_1_headerAuth_ = (d_0_valueOrError0_).Extract() + return Wrappers.Result_Success((((((framedMessage).finalFrame).header).rawHeader) + (d_1_headerAuth_)) + (MessageBody.default__.WriteFramedMessageBody(framedMessage))) + + @staticmethod + def VerifySignature(buffer, msg, decMat, crypto): + res: Wrappers.Result = Wrappers.Result.default(SerializeFunctions.ReadableBuffer.default())() + if ((decMat).verificationKey).is_None: + res = Wrappers.Result_Success(buffer) + return res + d_0_valueOrError0_: Wrappers.Result = Wrappers.Result.default(SerializeFunctions.SuccessfulRead.default(StandardLibrary_UInt.seq16.default))() + d_0_valueOrError0_ = (SerializeFunctions.default__.ReadShortLengthSeq(buffer)).MapFailure(default__.MapSerializeFailure(_dafny.Seq(": ReadShortLengthSeq"))) + if (d_0_valueOrError0_).IsFailure(): + res = (d_0_valueOrError0_).PropagateFailure() + return res + d_1_signature_: SerializeFunctions.SuccessfulRead + d_1_signature_ = (d_0_valueOrError0_).Extract() + d_2_ecdsaParams_: AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm + d_2_ecdsaParams_ = ((((decMat).algorithmSuite).signature).ECDSA).curve + d_3_maybeSignatureVerifiedResult_: Wrappers.Result + out0_: Wrappers.Result + out0_ = (crypto).ECDSAVerify(AwsCryptographyPrimitivesTypes.ECDSAVerifyInput_ECDSAVerifyInput(d_2_ecdsaParams_, ((decMat).verificationKey).value, msg, (d_1_signature_).data)) + d_3_maybeSignatureVerifiedResult_ = out0_ + d_4_valueOrError1_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.bool)() + def lambda0_(d_5_e_): + return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyPrimitives(d_5_e_) + + d_4_valueOrError1_ = (d_3_maybeSignatureVerifiedResult_).MapFailure(lambda0_) + if (d_4_valueOrError1_).IsFailure(): + res = (d_4_valueOrError1_).PropagateFailure() + return res + d_6_signatureVerifiedResult_: bool + d_6_signatureVerifiedResult_ = (d_4_valueOrError1_).Extract() + if not(d_6_signatureVerifiedResult_): + res = Wrappers.Result_Failure(AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Invalid signature"))) + return res + res = Wrappers.Result_Success((d_1_signature_).tail) + return res + return res + + @staticmethod + def MapSerializeFailure(s): + def lambda0_(d_0_s_): + def lambda1_(d_1_e_): + def lambda2_(): + source0_ = d_1_e_ + if True: + if source0_.is_Error: + d_2_e_ = source0_.message + return AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(d_2_e_) + if True: + return AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException((_dafny.Seq("Incomplete message")) + (d_0_s_)) + + return lambda2_() + + return lambda1_ + + return lambda0_(s) + + @staticmethod + def ValidateEncryptionContext(input): + def lambda0_(exists_var_0_): + d_0_key_: _dafny.Seq = exists_var_0_ + if UTF8.ValidUTF8Bytes._Is(d_0_key_): + return ((d_0_key_) in (((input).value).keys)) and ((default__.RESERVED__ENCRYPTION__CONTEXT) <= (d_0_key_)) + elif True: + return False + + if ((input).is_Some) and (_dafny.quantifier((((input).value).keys).Elements, False, lambda0_)): + return Wrappers.Outcome_Fail(AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Encryption context keys cannot contain reserved prefix 'aws-crypto-'"))) + elif True: + return Wrappers.Outcome_Pass() + + @staticmethod + def CreateCmmFromInput(inputCmm, inputKeyring): + res: Wrappers.Result = None + d_0_valueOrError0_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_0_valueOrError0_ = Wrappers.default__.Need(((inputCmm).is_None) or ((inputKeyring).is_None), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Cannot provide both a keyring and a CMM"))) + if (d_0_valueOrError0_).IsFailure(): + res = (d_0_valueOrError0_).PropagateFailure() + return res + d_1_valueOrError1_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_1_valueOrError1_ = Wrappers.default__.Need(((inputCmm).is_Some) or ((inputKeyring).is_Some), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Must provide either a keyring or a CMM"))) + if (d_1_valueOrError1_).IsFailure(): + res = (d_1_valueOrError1_).PropagateFailure() + return res + d_2_cmm_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager = None + if (inputCmm).is_Some: + res = Wrappers.Result_Success((inputCmm).value) + return res + elif True: + d_3_maybeMaterialsProviders_: Wrappers.Result + out0_: Wrappers.Result + out0_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) + d_3_maybeMaterialsProviders_ = out0_ + d_4_valueOrError2_: Wrappers.Result = None + def lambda0_(d_5_e_): + return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyMaterialProviders(d_5_e_) + + d_4_valueOrError2_ = (d_3_maybeMaterialsProviders_).MapFailure(lambda0_) + if (d_4_valueOrError2_).IsFailure(): + res = (d_4_valueOrError2_).PropagateFailure() + return res + d_6_materialProviders_: MaterialProviders.MaterialProvidersClient + d_6_materialProviders_ = (d_4_valueOrError2_).Extract() + d_7_maybeCmm_: Wrappers.Result + out1_: Wrappers.Result + out1_ = (d_6_materialProviders_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput((inputKeyring).value)) + d_7_maybeCmm_ = out1_ + def lambda1_(d_8_e_): + return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyMaterialProviders(d_8_e_) + + res = (d_7_maybeCmm_).MapFailure(lambda1_) + return res + return res + + @staticmethod + def ValidateMaxEncryptedDataKeys(maxEncryptedDataKeys, edks): + if ((maxEncryptedDataKeys).is_Some) and ((len(edks)) > ((maxEncryptedDataKeys).value)): + return Wrappers.Outcome_Fail(AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Encrypted data keys exceed maxEncryptedDataKeys"))) + elif True: + return Wrappers.Outcome_Pass() + + @staticmethod + def GenerateMessageId(suite, crypto): + res: Wrappers.Result = None + d_0_maybeId_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + if ((suite).messageVersion) == (1): + out0_: Wrappers.Result + out0_ = (crypto).GenerateRandomBytes(AwsCryptographyPrimitivesTypes.GenerateRandomBytesInput_GenerateRandomBytesInput(HeaderTypes.default__.MESSAGE__ID__LEN__V1)) + d_0_maybeId_ = out0_ + elif True: + out1_: Wrappers.Result + out1_ = (crypto).GenerateRandomBytes(AwsCryptographyPrimitivesTypes.GenerateRandomBytesInput_GenerateRandomBytesInput(HeaderTypes.default__.MESSAGE__ID__LEN__V2)) + d_0_maybeId_ = out1_ + d_1_valueOrError0_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + def lambda0_(d_2_e_): + return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyPrimitives(d_2_e_) + + d_1_valueOrError0_ = (d_0_maybeId_).MapFailure(lambda0_) + if (d_1_valueOrError0_).IsFailure(): + res = (d_1_valueOrError0_).PropagateFailure() + return res + d_3_id_: _dafny.Seq + d_3_id_ = (d_1_valueOrError0_).Extract() + res = Wrappers.Result_Success(d_3_id_) + return res + return res + + @staticmethod + def BuildHeaderForEncrypt(messageId, suite, encryptionContext, requiredEncryptionContextKeys, encryptedDataKeys, frameLength, derivedDataKeys, crypto): + res: Wrappers.Result = None + d_0_reqKeySet_: _dafny.Set + def iife0_(): + coll0_ = _dafny.Set() + compr_0_: _dafny.Seq + for compr_0_ in (requiredEncryptionContextKeys).Elements: + d_1_k_: _dafny.Seq = compr_0_ + if UTF8.ValidUTF8Bytes._Is(d_1_k_): + if (d_1_k_) in (requiredEncryptionContextKeys): + coll0_ = coll0_.union(_dafny.Set([d_1_k_])) + return _dafny.Set(coll0_) + d_0_reqKeySet_ = iife0_() + + d_2_storedEncryptionContext_: _dafny.Map + def iife1_(): + coll1_ = _dafny.Map() + compr_1_: _dafny.Seq + for compr_1_ in ((encryptionContext) - (d_0_reqKeySet_)).keys.Elements: + d_3_f_: _dafny.Seq = compr_1_ + if UTF8.ValidUTF8Bytes._Is(d_3_f_): + if (d_3_f_) in ((encryptionContext) - (d_0_reqKeySet_)): + coll1_[d_3_f_] = (encryptionContext)[d_3_f_] + return _dafny.Map(coll1_) + d_2_storedEncryptionContext_ = iife1_() + + d_4_canonicalStoredEncryptionContext_: _dafny.Seq + d_4_canonicalStoredEncryptionContext_ = EncryptionContext.default__.GetCanonicalEncryptionContext(d_2_storedEncryptionContext_) + d_5_body_: HeaderTypes.HeaderBody + out0_: HeaderTypes.HeaderBody + out0_ = default__.BuildHeaderBody(messageId, suite, d_4_canonicalStoredEncryptionContext_, encryptedDataKeys, frameLength, (derivedDataKeys).commitmentKey) + d_5_body_ = out0_ + d_6_requiredEncryptionContextMap_: _dafny.Map + def iife2_(): + coll2_ = _dafny.Map() + compr_2_: _dafny.Seq + for compr_2_ in (d_0_reqKeySet_).Elements: + d_7_r_: _dafny.Seq = compr_2_ + if UTF8.ValidUTF8Bytes._Is(d_7_r_): + if (d_7_r_) in (d_0_reqKeySet_): + coll2_[d_7_r_] = (encryptionContext)[d_7_r_] + return _dafny.Map(coll2_) + d_6_requiredEncryptionContextMap_ = iife2_() + + d_8_canonicalReqEncryptionContext_: _dafny.Seq + d_8_canonicalReqEncryptionContext_ = EncryptionContext.default__.GetCanonicalEncryptionContext(d_6_requiredEncryptionContextMap_) + d_9_serializedReqEncryptionContext_: _dafny.Seq + d_9_serializedReqEncryptionContext_ = EncryptionContext.default__.WriteEmptyEcOrWriteAAD(d_8_canonicalReqEncryptionContext_) + d_10_rawHeader_: _dafny.Seq + d_10_rawHeader_ = Header.default__.WriteHeaderBody(d_5_body_) + d_11_valueOrError0_: Wrappers.Result = Wrappers.Result.default(HeaderTypes.HeaderAuth.default())() + out1_: Wrappers.Result + out1_ = default__.BuildHeaderAuthTag(suite, (derivedDataKeys).dataKey, d_10_rawHeader_, d_9_serializedReqEncryptionContext_, crypto) + d_11_valueOrError0_ = out1_ + if (d_11_valueOrError0_).IsFailure(): + res = (d_11_valueOrError0_).PropagateFailure() + return res + d_12_headerAuth_: HeaderTypes.HeaderAuth + d_12_headerAuth_ = (d_11_valueOrError0_).Extract() + d_13_header_: Header.HeaderInfo + d_13_header_ = Header.HeaderInfo_HeaderInfo(d_5_body_, d_10_rawHeader_, encryptionContext, suite, d_12_headerAuth_) + res = Wrappers.Result_Success(d_13_header_) + return res + return res + + @staticmethod + def BuildHeaderBody(messageId, suite, encryptionContext, encryptedDataKeys, frameLength, suiteData): + res: HeaderTypes.HeaderBody = None + d_0_contentType_: HeaderTypes.ContentType + d_0_contentType_ = HeaderTypes.ContentType_Framed() + source0_ = (suite).commitment + with _dafny.label("match0"): + if True: + if source0_.is_None: + res = HeaderTypes.HeaderBody_V1HeaderBody(HeaderTypes.MessageType_TYPE__CUSTOMER__AED(), suite, messageId, encryptionContext, encryptedDataKeys, d_0_contentType_, SerializableTypes.default__.GetIvLength(suite), frameLength) + return res + raise _dafny.Break("match0") + if True: + res = HeaderTypes.HeaderBody_V2HeaderBody(suite, messageId, encryptionContext, encryptedDataKeys, d_0_contentType_, frameLength, (suiteData).value) + return res + pass + return res + + @staticmethod + def BuildHeaderAuthTag(suite, dataKey, rawHeader, serializedReqEncryptionContext, crypto): + res: Wrappers.Result = Wrappers.Result.default(HeaderTypes.HeaderAuth.default())() + d_0_keyLength_: int + d_0_keyLength_ = SerializableTypes.default__.GetEncryptKeyLength(suite) + d_1_valueOrError0_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_1_valueOrError0_ = Wrappers.default__.Need((len(dataKey)) == (d_0_keyLength_), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Incorrect data key length"))) + if (d_1_valueOrError0_).IsFailure(): + res = (d_1_valueOrError0_).PropagateFailure() + return res + d_2_ivLength_: int + d_2_ivLength_ = SerializableTypes.default__.GetIvLength(suite) + d_3_iv_: _dafny.Seq + d_3_iv_ = _dafny.Seq([0 for d_4___v3_ in range(d_2_ivLength_)]) + d_5_maybeEncryptionOutput_: Wrappers.Result + out0_: Wrappers.Result + out0_ = (crypto).AESEncrypt(AwsCryptographyPrimitivesTypes.AESEncryptInput_AESEncryptInput(((suite).encrypt).AES__GCM, d_3_iv_, dataKey, _dafny.Seq([]), (rawHeader) + (serializedReqEncryptionContext))) + d_5_maybeEncryptionOutput_ = out0_ + d_6_valueOrError1_: Wrappers.Result = Wrappers.Result.default(AwsCryptographyPrimitivesTypes.AESEncryptOutput.default())() + def lambda0_(d_7_e_): + return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyPrimitives(d_7_e_) + + d_6_valueOrError1_ = (d_5_maybeEncryptionOutput_).MapFailure(lambda0_) + if (d_6_valueOrError1_).IsFailure(): + res = (d_6_valueOrError1_).PropagateFailure() + return res + d_8_encryptionOutput_: AwsCryptographyPrimitivesTypes.AESEncryptOutput + d_8_encryptionOutput_ = (d_6_valueOrError1_).Extract() + d_9_headerAuth_: HeaderTypes.HeaderAuth + d_9_headerAuth_ = HeaderTypes.HeaderAuth_AESMac(d_3_iv_, (d_8_encryptionOutput_).authTag) + res = Wrappers.Result_Success(d_9_headerAuth_) + return res + return res + + @staticmethod + def GetEncryptionMaterials(cmm, algorithmSuiteId, encryptionContext, maxPlaintextLength, commitmentPolicy, mpl): + res: Wrappers.Result = None + d_0_encMatRequest_: AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsInput + d_0_encMatRequest_ = AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsInput_GetEncryptionMaterialsInput(encryptionContext, AwsCryptographyMaterialProvidersTypes.CommitmentPolicy_ESDK(commitmentPolicy), algorithmSuiteId, Wrappers.Option_Some(maxPlaintextLength), Wrappers.Option_None()) + d_1_getEncMatResult_: Wrappers.Result + out0_: Wrappers.Result + out0_ = (cmm).GetEncryptionMaterials(d_0_encMatRequest_) + d_1_getEncMatResult_ = out0_ + d_2_valueOrError0_: Wrappers.Result = None + def lambda0_(d_3_e_): + return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyMaterialProviders(d_3_e_) + + d_2_valueOrError0_ = (d_1_getEncMatResult_).MapFailure(lambda0_) + if (d_2_valueOrError0_).IsFailure(): + res = (d_2_valueOrError0_).PropagateFailure() + return res + d_4_output_: AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsOutput + d_4_output_ = (d_2_valueOrError0_).Extract() + d_5_materials_: AwsCryptographyMaterialProvidersTypes.EncryptionMaterials + d_5_materials_ = (d_4_output_).encryptionMaterials + d_6_valueOrError1_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() + def lambda1_(d_7_e_): + return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyMaterialProviders(d_7_e_) + + d_6_valueOrError1_ = ((mpl).ValidateCommitmentPolicyOnEncrypt(AwsCryptographyMaterialProvidersTypes.ValidateCommitmentPolicyOnEncryptInput_ValidateCommitmentPolicyOnEncryptInput(((d_5_materials_).algorithmSuite).id, AwsCryptographyMaterialProvidersTypes.CommitmentPolicy_ESDK(commitmentPolicy)))).MapFailure(lambda1_) + if (d_6_valueOrError1_).IsFailure(): + res = (d_6_valueOrError1_).PropagateFailure() + return res + d_8___v4_: tuple + d_8___v4_ = (d_6_valueOrError1_).Extract() + d_9_valueOrError2_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() + def lambda2_(d_10_e_): + return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyMaterialProviders(d_10_e_) + + d_9_valueOrError2_ = ((mpl).EncryptionMaterialsHasPlaintextDataKey(d_5_materials_)).MapFailure(lambda2_) + if (d_9_valueOrError2_).IsFailure(): + res = (d_9_valueOrError2_).PropagateFailure() + return res + d_11___v5_: tuple + d_11___v5_ = (d_9_valueOrError2_).Extract() + d_12_valueOrError3_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_12_valueOrError3_ = Wrappers.default__.Need(SerializableTypes.default__.IsESDKEncryptionContext((d_5_materials_).encryptionContext), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("CMM failed to return serializable encryption materials."))) + if (d_12_valueOrError3_).IsFailure(): + res = (d_12_valueOrError3_).PropagateFailure() + return res + d_13_valueOrError4_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_13_valueOrError4_ = Wrappers.default__.Need(StandardLibrary_UInt.default__.HasUint16Len((d_5_materials_).encryptedDataKeys), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("CMM returned EDKs that exceed the allowed maximum."))) + if (d_13_valueOrError4_).IsFailure(): + res = (d_13_valueOrError4_).PropagateFailure() + return res + d_14_valueOrError5_: Wrappers.Outcome = Wrappers.Outcome.default()() + def lambda3_(forall_var_0_): + d_15_edk_: AwsCryptographyMaterialProvidersTypes.EncryptedDataKey = forall_var_0_ + return not ((d_15_edk_) in ((d_5_materials_).encryptedDataKeys)) or (SerializableTypes.default__.IsESDKEncryptedDataKey(d_15_edk_)) + + d_14_valueOrError5_ = Wrappers.default__.Need(_dafny.quantifier(((d_5_materials_).encryptedDataKeys).UniqueElements, True, lambda3_), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("CMM returned non-serializable encrypted data key."))) + if (d_14_valueOrError5_).IsFailure(): + res = (d_14_valueOrError5_).PropagateFailure() + return res + res = Wrappers.Result_Success(d_5_materials_) + return res + return res + + @staticmethod + def GetDecryptionMaterials(cmm, algorithmSuiteId, headerBody, reproducedEncryptionContext, commitmentPolicy, mpl): + res: Wrappers.Result = None + d_0_encryptionContext_: _dafny.Map + d_0_encryptionContext_ = EncryptionContext.default__.GetEncryptionContext((headerBody).encryptionContext) + d_1_decMatRequest_: AwsCryptographyMaterialProvidersTypes.DecryptMaterialsInput + d_1_decMatRequest_ = AwsCryptographyMaterialProvidersTypes.DecryptMaterialsInput_DecryptMaterialsInput(algorithmSuiteId, AwsCryptographyMaterialProvidersTypes.CommitmentPolicy_ESDK(commitmentPolicy), (headerBody).encryptedDataKeys, d_0_encryptionContext_, reproducedEncryptionContext) + d_2_decMatResult_: Wrappers.Result + out0_: Wrappers.Result + out0_ = (cmm).DecryptMaterials(d_1_decMatRequest_) + d_2_decMatResult_ = out0_ + d_3_valueOrError0_: Wrappers.Result = None + def lambda0_(d_4_e_): + return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyMaterialProviders(d_4_e_) + + d_3_valueOrError0_ = (d_2_decMatResult_).MapFailure(lambda0_) + if (d_3_valueOrError0_).IsFailure(): + res = (d_3_valueOrError0_).PropagateFailure() + return res + d_5_output_: AwsCryptographyMaterialProvidersTypes.DecryptMaterialsOutput + d_5_output_ = (d_3_valueOrError0_).Extract() + d_6_materials_: AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + d_6_materials_ = (d_5_output_).decryptionMaterials + d_7_valueOrError1_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() + def lambda1_(d_8_e_): + return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyMaterialProviders(d_8_e_) + + d_7_valueOrError1_ = ((mpl).ValidateCommitmentPolicyOnDecrypt(AwsCryptographyMaterialProvidersTypes.ValidateCommitmentPolicyOnDecryptInput_ValidateCommitmentPolicyOnDecryptInput(((d_6_materials_).algorithmSuite).id, AwsCryptographyMaterialProvidersTypes.CommitmentPolicy_ESDK(commitmentPolicy)))).MapFailure(lambda1_) + if (d_7_valueOrError1_).IsFailure(): + res = (d_7_valueOrError1_).PropagateFailure() + return res + d_9___v6_: tuple + d_9___v6_ = (d_7_valueOrError1_).Extract() + d_10_valueOrError2_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() + def lambda2_(d_11_e_): + return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyMaterialProviders(d_11_e_) + + d_10_valueOrError2_ = ((mpl).DecryptionMaterialsWithPlaintextDataKey(d_6_materials_)).MapFailure(lambda2_) + if (d_10_valueOrError2_).IsFailure(): + res = (d_10_valueOrError2_).PropagateFailure() + return res + d_12___v7_: tuple + d_12___v7_ = (d_10_valueOrError2_).Extract() + d_13_valueOrError3_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_13_valueOrError3_ = Wrappers.default__.Need(SerializableTypes.default__.IsESDKEncryptionContext((d_6_materials_).encryptionContext), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("CMM failed to return serializable encryption materials."))) + if (d_13_valueOrError3_).IsFailure(): + res = (d_13_valueOrError3_).PropagateFailure() + return res + res = Wrappers.Result_Success(d_6_materials_) + return res + return res + + @staticmethod + def ValidateSuiteData(suite, header, expectedSuiteData): + res: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() + d_0_valueOrError0_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_0_valueOrError0_ = Wrappers.default__.Need((len((header).suiteData)) == ((((suite).commitment).HKDF).outputKeyLength), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Commitment key is invalid"))) + if (d_0_valueOrError0_).IsFailure(): + res = (d_0_valueOrError0_).PropagateFailure() + return res + d_1_valueOrError1_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_1_valueOrError1_ = Wrappers.default__.Need((expectedSuiteData) == ((header).suiteData), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Commitment key does not match"))) + if (d_1_valueOrError1_).IsFailure(): + res = (d_1_valueOrError1_).PropagateFailure() + return res + res = Wrappers.Result_Success(()) + return res + return res + + @staticmethod + def ReadAndDecryptFramedMessageBody(buffer, header, key, crypto): + res: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple(_dafny.Seq, SerializeFunctions.ReadableBuffer.default()))() + d_0_valueOrError0_: Wrappers.Result = None + d_0_valueOrError0_ = (MessageBody.default__.ReadFramedMessageBody(buffer, header, _dafny.Seq([]), buffer)).MapFailure(default__.MapSerializeFailure(_dafny.Seq(": ReadFramedMessageBody"))) + if (d_0_valueOrError0_).IsFailure(): + res = (d_0_valueOrError0_).PropagateFailure() + return res + d_1_messageBody_: SerializeFunctions.SuccessfulRead + d_1_messageBody_ = (d_0_valueOrError0_).Extract() + d_2_valueOrError1_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + out0_: Wrappers.Result + out0_ = MessageBody.default__.DecryptFramedMessageBody((d_1_messageBody_).data, key, crypto) + d_2_valueOrError1_ = out0_ + if (d_2_valueOrError1_).IsFailure(): + res = (d_2_valueOrError1_).PropagateFailure() + return res + d_3_plaintext_: _dafny.Seq + d_3_plaintext_ = (d_2_valueOrError1_).Extract() + d_4_messageBodyTail_: SerializeFunctions.ReadableBuffer + d_4_messageBodyTail_ = (d_1_messageBody_).tail + res = Wrappers.Result_Success((d_3_plaintext_, d_4_messageBodyTail_)) + return res + return res + + @staticmethod + def ReadAndDecryptNonFramedMessageBody(buffer, header, key, crypto): + res: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple(_dafny.Seq, SerializeFunctions.ReadableBuffer.default()))() + d_0_valueOrError0_: Wrappers.Result = None + d_0_valueOrError0_ = (MessageBody.default__.ReadNonFramedMessageBody(buffer, header)).MapFailure(default__.MapSerializeFailure(_dafny.Seq(": ReadNonFramedMessageBody"))) + if (d_0_valueOrError0_).IsFailure(): + res = (d_0_valueOrError0_).PropagateFailure() + return res + d_1_messageBody_: SerializeFunctions.SuccessfulRead + d_1_messageBody_ = (d_0_valueOrError0_).Extract() + d_2_frame_: Frames.Frame + d_2_frame_ = (d_1_messageBody_).data + d_3_valueOrError1_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + out0_: Wrappers.Result + out0_ = MessageBody.default__.DecryptFrame(d_2_frame_, key, crypto) + d_3_valueOrError1_ = out0_ + if (d_3_valueOrError1_).IsFailure(): + res = (d_3_valueOrError1_).PropagateFailure() + return res + d_4_plaintext_: _dafny.Seq + d_4_plaintext_ = (d_3_valueOrError1_).Extract() + d_5_messageBodyTail_: SerializeFunctions.ReadableBuffer + d_5_messageBodyTail_ = (d_1_messageBody_).tail + res = Wrappers.Result_Success((d_4_plaintext_, d_5_messageBodyTail_)) + return res + return res + + @_dafny.classproperty + def DEFAULT__FRAME__LENGTH(instance): + return 4096 + @_dafny.classproperty + def RESERVED__ENCRYPTION__CONTEXT(instance): + d_0_s_ = _dafny.Seq([97, 119, 115, 45, 99, 114, 121, 112, 116, 111, 45]) + return d_0_s_ + +class FrameLength: + def __init__(self): + pass + + @staticmethod + def default(): + return int(0) + def _Is(source__): + d_1_frameLength_: int = source__ + if True: + return ((0) < (d_1_frameLength_)) and ((d_1_frameLength_) <= (4294967295)) + return False diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptedDataKeys.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptedDataKeys.py new file mode 100644 index 000000000..e622d8036 --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptedDataKeys.py @@ -0,0 +1,237 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import aws_encryption_sdk.internaldafny.generated.module_ as module_ +import _dafny as _dafny +import System_ as System_ +import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers +import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary +import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom +import aws_cryptography_primitives.internaldafny.generated.Random as Random +import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption +import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest +import aws_cryptography_primitives.internaldafny.generated.Digest as Digest +import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC +import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC +import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF +import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF +import aws_cryptography_primitives.internaldafny.generated.Signature as Signature +import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr +import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption +import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives +import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 +import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites +import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials +import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring +import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations +import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort +import smithy_dafny_standard_library.internaldafny.generated.Math as Math +import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq +import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils +import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants +import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID +import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping +import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets +import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext +import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping +import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring +import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms +import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.Time as Time +import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker +import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC +import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring +import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring +import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM +import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults +import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment +import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM +import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier +import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils +import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders +import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn +import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure +import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable +import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore +import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr +import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode +import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions +import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings +import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO +import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals +import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals +import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul +import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals +import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals +import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod +import smithy_dafny_standard_library.internaldafny.generated.Power as Power +import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm +import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop +import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams +import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting +import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings +import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt +import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare +import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall +import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas +import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions + +# Module: EncryptedDataKeys + +class default__: + def __init__(self): + pass + + @staticmethod + def WriteEncryptedDataKey(edk): + return ((SerializeFunctions.default__.WriteShortLengthSeq((edk).keyProviderId)) + (SerializeFunctions.default__.WriteShortLengthSeq((edk).keyProviderInfo))) + (SerializeFunctions.default__.WriteShortLengthSeq((edk).ciphertext)) + + @staticmethod + def WriteEncryptedDataKeys(edks): + d_0___accumulator_ = _dafny.Seq([]) + while True: + with _dafny.label(): + if (len(edks)) == (0): + return (_dafny.Seq([])) + (d_0___accumulator_) + elif True: + d_0___accumulator_ = (default__.WriteEncryptedDataKey(Seq.default__.Last(edks))) + (d_0___accumulator_) + in0_ = Seq.default__.DropLast(edks) + edks = in0_ + raise _dafny.TailCall() + break + + @staticmethod + def WriteEncryptedDataKeysSection(edks): + return (StandardLibrary_UInt.default__.UInt16ToSeq(len(edks))) + (default__.WriteEncryptedDataKeys(edks)) + + @staticmethod + def ReadEncryptedDataKey(buffer): + d_0_valueOrError0_ = SerializeFunctions.default__.ReadShortLengthSeq(buffer) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + let_tmp_rhs0_ = (d_0_valueOrError0_).Extract() + d_1_providerId_ = let_tmp_rhs0_.data + d_2_providerIdPos_ = let_tmp_rhs0_.tail + d_3_valueOrError1_ = Wrappers.default__.Need(UTF8.default__.ValidUTF8Seq(d_1_providerId_), SerializeFunctions.ReadProblems_Error(_dafny.Seq("Invalid providerID"))) + if (d_3_valueOrError1_).IsFailure(): + return (d_3_valueOrError1_).PropagateFailure() + elif True: + d_4_valueOrError2_ = SerializeFunctions.default__.ReadShortLengthSeq(d_2_providerIdPos_) + if (d_4_valueOrError2_).IsFailure(): + return (d_4_valueOrError2_).PropagateFailure() + elif True: + let_tmp_rhs1_ = (d_4_valueOrError2_).Extract() + d_5_providerInfo_ = let_tmp_rhs1_.data + d_6_providerInfoPos_ = let_tmp_rhs1_.tail + d_7_valueOrError3_ = SerializeFunctions.default__.ReadShortLengthSeq(d_6_providerInfoPos_) + if (d_7_valueOrError3_).IsFailure(): + return (d_7_valueOrError3_).PropagateFailure() + elif True: + let_tmp_rhs2_ = (d_7_valueOrError3_).Extract() + d_8_cipherText_ = let_tmp_rhs2_.data + d_9_tail_ = let_tmp_rhs2_.tail + d_10_edk_ = AwsCryptographyMaterialProvidersTypes.EncryptedDataKey_EncryptedDataKey(d_1_providerId_, d_5_providerInfo_, d_8_cipherText_) + return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_10_edk_, d_9_tail_)) + + @staticmethod + def ReadEncryptedDataKeys(buffer, accumulator, count, nextEdkStart): + while True: + with _dafny.label(): + if (count) > (len(accumulator)): + d_0_valueOrError0_ = default__.ReadEncryptedDataKey(nextEdkStart) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + let_tmp_rhs0_ = (d_0_valueOrError0_).Extract() + d_1_edk_ = let_tmp_rhs0_.data + d_2_newPos_ = let_tmp_rhs0_.tail + d_3_nextAcc_ = (accumulator) + (_dafny.Seq([d_1_edk_])) + in0_ = buffer + in1_ = d_3_nextAcc_ + in2_ = count + in3_ = d_2_newPos_ + buffer = in0_ + accumulator = in1_ + count = in2_ + nextEdkStart = in3_ + raise _dafny.TailCall() + elif True: + return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(accumulator, nextEdkStart)) + break + + @staticmethod + def ReadEncryptedDataKeysSection(buffer, maxEdks): + d_0_valueOrError0_ = SerializeFunctions.default__.ReadUInt16(buffer) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + let_tmp_rhs0_ = (d_0_valueOrError0_).Extract() + d_1_count_ = let_tmp_rhs0_.data + d_2_edkStart_ = let_tmp_rhs0_.tail + if ((maxEdks).is_Some) and ((d_1_count_) > ((maxEdks).value)): + return Wrappers.Result_Failure(SerializeFunctions.ReadProblems_Error(_dafny.Seq("Ciphertext encrypted data keys exceed maxEncryptedDataKeys"))) + elif True: + d_3_valueOrError1_ = default__.ReadEncryptedDataKeys(d_2_edkStart_, _dafny.Seq([]), d_1_count_, d_2_edkStart_) + if (d_3_valueOrError1_).IsFailure(): + return (d_3_valueOrError1_).PropagateFailure() + elif True: + let_tmp_rhs1_ = (d_3_valueOrError1_).Extract() + d_4_edks_ = let_tmp_rhs1_.data + d_5_tail_ = let_tmp_rhs1_.tail + return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_4_edks_, d_5_tail_)) + diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptionContext.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptionContext.py new file mode 100644 index 000000000..5906d3d3f --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptionContext.py @@ -0,0 +1,352 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import aws_encryption_sdk.internaldafny.generated.module_ as module_ +import _dafny as _dafny +import System_ as System_ +import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers +import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary +import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom +import aws_cryptography_primitives.internaldafny.generated.Random as Random +import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption +import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest +import aws_cryptography_primitives.internaldafny.generated.Digest as Digest +import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC +import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC +import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF +import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF +import aws_cryptography_primitives.internaldafny.generated.Signature as Signature +import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr +import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption +import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives +import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 +import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites +import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials +import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring +import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations +import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort +import smithy_dafny_standard_library.internaldafny.generated.Math as Math +import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq +import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils +import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants +import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID +import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping +import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets +import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext +import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping +import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring +import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms +import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.Time as Time +import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker +import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC +import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring +import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring +import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM +import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults +import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment +import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM +import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier +import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils +import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders +import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn +import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure +import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable +import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore +import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr +import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode +import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions +import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings +import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO +import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals +import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals +import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul +import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals +import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals +import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod +import smithy_dafny_standard_library.internaldafny.generated.Power as Power +import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm +import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop +import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams +import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting +import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings +import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt +import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare +import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall +import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas +import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions + +# Module: EncryptionContext + +class default__: + def __init__(self): + pass + + @staticmethod + def GetCanonicalEncryptionContext(encryptionContext): + return SerializableTypes.default__.GetCanonicalLinearPairs(encryptionContext) + + @staticmethod + def GetEncryptionContext(canonicalEncryptionContext): + def iife0_(): + coll0_ = _dafny.Map() + compr_0_: int + for compr_0_ in _dafny.IntegerRange(0, len(canonicalEncryptionContext)): + d_0_i_: int = compr_0_ + if ((0) <= (d_0_i_)) and ((d_0_i_) < (len(canonicalEncryptionContext))): + coll0_[((canonicalEncryptionContext)[d_0_i_]).key] = ((canonicalEncryptionContext)[d_0_i_]).value + return _dafny.Map(coll0_) + return iife0_() + + + @staticmethod + def WriteAADSection(ec): + if (len(ec)) == (0): + return SerializeFunctions.default__.WriteUint16(0) + elif True: + d_0_aad_ = default__.WriteAAD(ec) + return (SerializeFunctions.default__.WriteUint16(len(d_0_aad_))) + (d_0_aad_) + + @staticmethod + def WriteEmptyEcOrWriteAAD(ec): + if (len(ec)) == (0): + return _dafny.Seq([]) + elif True: + return default__.WriteAAD(ec) + + @staticmethod + def WriteAAD(ec): + return (SerializeFunctions.default__.WriteUint16(len(ec))) + (default__.WriteAADPairs(ec)) + + @staticmethod + def WriteAADPairs(ec): + d_0___accumulator_ = _dafny.Seq([]) + while True: + with _dafny.label(): + if (len(ec)) == (0): + return (_dafny.Seq([])) + (d_0___accumulator_) + elif True: + d_0___accumulator_ = (default__.WriteAADPair(Seq.default__.Last(ec))) + (d_0___accumulator_) + in0_ = Seq.default__.DropLast(ec) + ec = in0_ + raise _dafny.TailCall() + break + + @staticmethod + def WriteAADPair(pair): + return (SerializeFunctions.default__.WriteShortLengthSeq((pair).key)) + (SerializeFunctions.default__.WriteShortLengthSeq((pair).value)) + + @staticmethod + def ReadAADPair(buffer): + d_0_valueOrError0_ = SerializeFunctions.default__.ReadShortLengthSeq(buffer) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + let_tmp_rhs0_ = (d_0_valueOrError0_).Extract() + d_1_key_ = let_tmp_rhs0_.data + d_2_keyEnd_ = let_tmp_rhs0_.tail + d_3_valueOrError1_ = Wrappers.default__.Need(UTF8.default__.ValidUTF8Seq(d_1_key_), SerializeFunctions.ReadProblems_Error(_dafny.Seq("Invalid Encryption Context key"))) + if (d_3_valueOrError1_).IsFailure(): + return (d_3_valueOrError1_).PropagateFailure() + elif True: + d_4_valueOrError2_ = SerializeFunctions.default__.ReadShortLengthSeq(d_2_keyEnd_) + if (d_4_valueOrError2_).IsFailure(): + return (d_4_valueOrError2_).PropagateFailure() + elif True: + let_tmp_rhs1_ = (d_4_valueOrError2_).Extract() + d_5_value_ = let_tmp_rhs1_.data + d_6_tail_ = let_tmp_rhs1_.tail + d_7_valueOrError3_ = Wrappers.default__.Need(UTF8.default__.ValidUTF8Seq(d_5_value_), SerializeFunctions.ReadProblems_Error(_dafny.Seq("Invalid Encryption Context value"))) + if (d_7_valueOrError3_).IsFailure(): + return (d_7_valueOrError3_).PropagateFailure() + elif True: + d_8_pair_ = SerializableTypes.Pair_Pair(d_1_key_, d_5_value_) + return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_8_pair_, d_6_tail_)) + + @staticmethod + def ReadAADPairs(buffer, accumulator, keys, count, nextPair): + while True: + with _dafny.label(): + if (count) > (len(accumulator)): + d_0_valueOrError0_ = default__.ReadAADPair(nextPair) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + let_tmp_rhs0_ = (d_0_valueOrError0_).Extract() + d_1_pair_ = let_tmp_rhs0_.data + d_2_newPos_ = let_tmp_rhs0_.tail + d_3_valueOrError1_ = Wrappers.default__.Need(((d_1_pair_).key) not in (keys), SerializeFunctions.ReadProblems_Error(_dafny.Seq("Duplicate Encryption Context key value."))) + if (d_3_valueOrError1_).IsFailure(): + return (d_3_valueOrError1_).PropagateFailure() + elif True: + d_4_valueOrError2_ = Wrappers.default__.Need((((d_2_newPos_).start) - ((buffer).start)) < (SerializableTypes.default__.ESDK__CANONICAL__ENCRYPTION__CONTEXT__MAX__LENGTH), SerializeFunctions.ReadProblems_Error(_dafny.Seq("Encryption Context exceeds maximum length."))) + if (d_4_valueOrError2_).IsFailure(): + return (d_4_valueOrError2_).PropagateFailure() + elif True: + d_5_nextAcc_ = (accumulator) + (_dafny.Seq([d_1_pair_])) + d_6_nextKeys_ = (keys) | (default__.KeysToSet(_dafny.Seq([d_1_pair_]))) + in0_ = buffer + in1_ = d_5_nextAcc_ + in2_ = d_6_nextKeys_ + in3_ = count + in4_ = d_2_newPos_ + buffer = in0_ + accumulator = in1_ + keys = in2_ + count = in3_ + nextPair = in4_ + raise _dafny.TailCall() + elif True: + return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(accumulator, nextPair)) + break + + @staticmethod + def ReadAAD(buffer): + d_0_valueOrError0_ = SerializeFunctions.default__.ReadUInt16(buffer) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + let_tmp_rhs0_ = (d_0_valueOrError0_).Extract() + d_1_count_ = let_tmp_rhs0_.data + d_2_ecPos_ = let_tmp_rhs0_.tail + if (d_1_count_) == (0): + d_3_edks_ = _dafny.Seq([]) + return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_3_edks_, d_2_ecPos_)) + elif True: + d_4_accumulator_ = _dafny.Seq([]) + d_5_keys_ = default__.KeysToSet(d_4_accumulator_) + d_6_valueOrError1_ = default__.ReadAADPairs(d_2_ecPos_, d_4_accumulator_, d_5_keys_, d_1_count_, d_2_ecPos_) + if (d_6_valueOrError1_).IsFailure(): + return (d_6_valueOrError1_).PropagateFailure() + elif True: + let_tmp_rhs1_ = (d_6_valueOrError1_).Extract() + d_7_pairs_ = let_tmp_rhs1_.data + d_8_tail_ = let_tmp_rhs1_.tail + return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_7_pairs_, d_8_tail_)) + + @staticmethod + def ReadAADSection(buffer): + d_0_valueOrError0_ = SerializeFunctions.default__.ReadUInt16(buffer) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + d_1_length_ = (d_0_valueOrError0_).Extract() + if ((d_1_length_).data) == (0): + d_2_empty_ = _dafny.Seq([]) + return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_2_empty_, (d_1_length_).tail)) + elif True: + d_3_valueOrError1_ = Wrappers.default__.Need(((((d_1_length_).tail).start) + ((d_1_length_).data)) <= (len(((d_1_length_).tail).bytes)), SerializeFunctions.ReadProblems_MoreNeeded((((d_1_length_).tail).start) + ((d_1_length_).data))) + if (d_3_valueOrError1_).IsFailure(): + return (d_3_valueOrError1_).PropagateFailure() + elif True: + d_4_valueOrError2_ = SerializeFunctions.default__.ReadUInt16((d_1_length_).tail) + if (d_4_valueOrError2_).IsFailure(): + return (d_4_valueOrError2_).PropagateFailure() + elif True: + d_5_verifyCount_ = (d_4_valueOrError2_).Extract() + if ((d_1_length_).data) == (2): + d_6_valueOrError3_ = Wrappers.default__.Need(((d_5_verifyCount_).data) == (0), SerializeFunctions.ReadProblems_Error(_dafny.Seq("Encryption Context pairs count can not exceed byte length"))) + if (d_6_valueOrError3_).IsFailure(): + return (d_6_valueOrError3_).PropagateFailure() + elif True: + d_7_empty_ = _dafny.Seq([]) + return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_7_empty_, (d_5_verifyCount_).tail)) + elif True: + d_8_valueOrError4_ = Wrappers.default__.Need((0) < ((d_5_verifyCount_).data), SerializeFunctions.ReadProblems_Error(_dafny.Seq("Encryption Context byte length exceeds pairs count."))) + if (d_8_valueOrError4_).IsFailure(): + return (d_8_valueOrError4_).PropagateFailure() + elif True: + d_9_valueOrError5_ = default__.ReadAAD((d_1_length_).tail) + if (d_9_valueOrError5_).IsFailure(): + return (d_9_valueOrError5_).PropagateFailure() + elif True: + d_10_aad_ = (d_9_valueOrError5_).Extract() + d_11_valueOrError6_ = Wrappers.default__.Need(((((d_10_aad_).tail).start) - (((d_1_length_).tail).start)) == ((d_1_length_).data), SerializeFunctions.ReadProblems_Error(_dafny.Seq("AAD Length did not match stored length."))) + if (d_11_valueOrError6_).IsFailure(): + return (d_11_valueOrError6_).PropagateFailure() + elif True: + return Wrappers.Result_Success(d_10_aad_) + + @staticmethod + def KeysToSet(pairs): + def iife0_(): + coll0_ = _dafny.Set() + compr_0_: SerializableTypes.Pair + for compr_0_ in (pairs).Elements: + d_0_p_: SerializableTypes.Pair = compr_0_ + if (d_0_p_) in (pairs): + coll0_ = coll0_.union(_dafny.Set([(d_0_p_).key])) + return _dafny.Set(coll0_) + return iife0_() + + + +class ESDKEncryptionContextPair: + def __init__(self): + pass + + @staticmethod + def default(): + return SerializableTypes.Pair.default(UTF8.ValidUTF8Bytes.default, UTF8.ValidUTF8Bytes.default)() + def _Is(source__): + d_0_p_: SerializableTypes.Pair = source__ + return (((StandardLibrary_UInt.default__.HasUint16Len((d_0_p_).key)) and (UTF8.default__.ValidUTF8Seq((d_0_p_).key))) and (StandardLibrary_UInt.default__.HasUint16Len((d_0_p_).value))) and (UTF8.default__.ValidUTF8Seq((d_0_p_).value)) + +class ESDKCanonicalEncryptionContext: + def __init__(self): + pass + + @staticmethod + def default(): + return _dafny.Seq({}) diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptionSdk.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptionSdk.py new file mode 100644 index 000000000..62f1d83c5 --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptionSdk.py @@ -0,0 +1,233 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import aws_encryption_sdk.internaldafny.generated.module_ as module_ +import _dafny as _dafny +import System_ as System_ +import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers +import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary +import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom +import aws_cryptography_primitives.internaldafny.generated.Random as Random +import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption +import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest +import aws_cryptography_primitives.internaldafny.generated.Digest as Digest +import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC +import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC +import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF +import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF +import aws_cryptography_primitives.internaldafny.generated.Signature as Signature +import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr +import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption +import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives +import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 +import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites +import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials +import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring +import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations +import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort +import smithy_dafny_standard_library.internaldafny.generated.Math as Math +import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq +import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils +import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants +import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID +import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping +import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets +import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext +import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping +import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring +import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms +import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.Time as Time +import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker +import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC +import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring +import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring +import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM +import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults +import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment +import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM +import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier +import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils +import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders +import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn +import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure +import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable +import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore +import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr +import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode +import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions +import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings +import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO +import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals +import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals +import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul +import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals +import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals +import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod +import smithy_dafny_standard_library.internaldafny.generated.Power as Power +import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm +import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop +import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams +import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting +import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings +import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt +import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare +import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall +import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas +import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk.internaldafny.generated.Header as Header +import aws_encryption_sdk.internaldafny.generated.Frames as Frames +import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations + +# Module: EncryptionSdk + +class default__: + def __init__(self): + pass + + @staticmethod + def DefaultAwsEncryptionSdkConfig(): + return AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig_AwsEncryptionSdkConfig(Wrappers.Option_Some(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT()), Wrappers.Option_None(), Wrappers.Option_Some(AwsCryptographyEncryptionSdkTypes.NetV4__0__0__RetryPolicy_ALLOW__RETRY())) + + @staticmethod + def ESDK(config): + res: Wrappers.Result = None + d_0_maybeCrypto_: Wrappers.Result + out0_: Wrappers.Result + out0_ = AtomicPrimitives.default__.AtomicPrimitives(AtomicPrimitives.default__.DefaultCryptoConfig()) + d_0_maybeCrypto_ = out0_ + d_1_valueOrError0_: Wrappers.Result = None + def lambda0_(d_2_e_): + return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyPrimitives(d_2_e_) + + d_1_valueOrError0_ = (d_0_maybeCrypto_).MapFailure(lambda0_) + if (d_1_valueOrError0_).IsFailure(): + res = (d_1_valueOrError0_).PropagateFailure() + return res + d_3_cryptoX_: AwsCryptographyPrimitivesTypes.IAwsCryptographicPrimitivesClient + d_3_cryptoX_ = (d_1_valueOrError0_).Extract() + d_4_crypto_: AtomicPrimitives.AtomicPrimitivesClient + d_4_crypto_ = d_3_cryptoX_ + d_5_maybeMpl_: Wrappers.Result + out1_: Wrappers.Result + out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) + d_5_maybeMpl_ = out1_ + d_6_valueOrError1_: Wrappers.Result = None + def lambda1_(d_7_e_): + return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyMaterialProviders(d_7_e_) + + d_6_valueOrError1_ = (d_5_maybeMpl_).MapFailure(lambda1_) + if (d_6_valueOrError1_).IsFailure(): + res = (d_6_valueOrError1_).PropagateFailure() + return res + d_8_mplX_: AwsCryptographyMaterialProvidersTypes.IAwsCryptographicMaterialProvidersClient + d_8_mplX_ = (d_6_valueOrError1_).Extract() + d_9_mpl_: MaterialProviders.MaterialProvidersClient + d_9_mpl_ = d_8_mplX_ + d_10_internalConfig_: AwsEncryptionSdkOperations.Config + d_10_internalConfig_ = AwsEncryptionSdkOperations.Config_Config(d_4_crypto_, d_9_mpl_, ((config).commitmentPolicy).UnwrapOr(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT()), (config).maxEncryptedDataKeys, ((config).netV4__0__0__RetryPolicy).UnwrapOr(AwsCryptographyEncryptionSdkTypes.NetV4__0__0__RetryPolicy_ALLOW__RETRY())) + d_11_client_: ESDKClient + nw0_ = ESDKClient() + nw0_.ctor__(d_10_internalConfig_) + d_11_client_ = nw0_ + res = Wrappers.Result_Success(d_11_client_) + return res + return res + + @staticmethod + def CreateSuccessOfClient(client): + return Wrappers.Result_Success(client) + + @staticmethod + def CreateFailureOfError(error): + return Wrappers.Result_Failure(error) + + +class ESDKClient(AwsCryptographyEncryptionSdkTypes.IAwsEncryptionSdkClient): + def __init__(self): + self._config: AwsEncryptionSdkOperations.Config = None + pass + + def __dafnystr__(self) -> str: + return "EncryptionSdk.ESDKClient" + def ctor__(self, config): + (self)._config = config + + def Encrypt(self, input): + output: Wrappers.Result = Wrappers.Result.default(AwsCryptographyEncryptionSdkTypes.EncryptOutput.default())() + out0_: Wrappers.Result + out0_ = AwsEncryptionSdkOperations.default__.Encrypt((self).config, input) + output = out0_ + return output + + def Decrypt(self, input): + output: Wrappers.Result = Wrappers.Result.default(AwsCryptographyEncryptionSdkTypes.DecryptOutput.default())() + out0_: Wrappers.Result + out0_ = AwsEncryptionSdkOperations.default__.Decrypt((self).config, input) + output = out0_ + return output + + @property + def config(self): + return self._config diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/Frames.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/Frames.py new file mode 100644 index 000000000..ce1ce5118 --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/Frames.py @@ -0,0 +1,345 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import aws_encryption_sdk.internaldafny.generated.module_ as module_ +import _dafny as _dafny +import System_ as System_ +import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers +import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary +import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom +import aws_cryptography_primitives.internaldafny.generated.Random as Random +import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption +import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest +import aws_cryptography_primitives.internaldafny.generated.Digest as Digest +import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC +import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC +import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF +import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF +import aws_cryptography_primitives.internaldafny.generated.Signature as Signature +import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr +import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption +import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives +import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 +import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites +import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials +import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring +import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations +import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort +import smithy_dafny_standard_library.internaldafny.generated.Math as Math +import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq +import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils +import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants +import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID +import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping +import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets +import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext +import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping +import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring +import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms +import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.Time as Time +import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker +import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC +import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring +import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring +import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM +import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults +import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment +import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM +import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier +import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils +import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders +import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn +import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure +import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable +import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore +import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr +import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode +import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions +import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings +import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO +import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals +import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals +import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul +import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals +import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals +import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod +import smithy_dafny_standard_library.internaldafny.generated.Power as Power +import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm +import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop +import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams +import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting +import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings +import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt +import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare +import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall +import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas +import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk.internaldafny.generated.Header as Header + +# Module: Frames + +class default__: + def __init__(self): + pass + + @staticmethod + def WriteRegularFrame(regularFrame): + return (((SerializeFunctions.default__.WriteUint32((regularFrame).seqNum)) + (SerializeFunctions.default__.Write((regularFrame).iv))) + (SerializeFunctions.default__.Write((regularFrame).encContent))) + (SerializeFunctions.default__.Write((regularFrame).authTag)) + + @staticmethod + def ReadRegularFrame(buffer, header): + d_0_valueOrError0_ = SerializeFunctions.default__.ReadUInt32(buffer) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + d_1_sequenceNumber_ = (d_0_valueOrError0_).Extract() + d_2_valueOrError1_ = Wrappers.default__.Need(((d_1_sequenceNumber_).data) < (default__.ENDFRAME__SEQUENCE__NUMBER), SerializeFunctions.ReadProblems_Error(_dafny.Seq("Regular frame sequence number can not equal or exceed the final frame."))) + if (d_2_valueOrError1_).IsFailure(): + return (d_2_valueOrError1_).PropagateFailure() + elif True: + d_3_valueOrError2_ = SerializeFunctions.default__.Read((d_1_sequenceNumber_).tail, SerializableTypes.default__.GetIvLength((header).suite)) + if (d_3_valueOrError2_).IsFailure(): + return (d_3_valueOrError2_).PropagateFailure() + elif True: + d_4_iv_ = (d_3_valueOrError2_).Extract() + d_5_valueOrError3_ = SerializeFunctions.default__.Read((d_4_iv_).tail, ((header).body).frameLength) + if (d_5_valueOrError3_).IsFailure(): + return (d_5_valueOrError3_).PropagateFailure() + elif True: + d_6_encContent_ = (d_5_valueOrError3_).Extract() + d_7_valueOrError4_ = SerializeFunctions.default__.Read((d_6_encContent_).tail, SerializableTypes.default__.GetTagLength((header).suite)) + if (d_7_valueOrError4_).IsFailure(): + return (d_7_valueOrError4_).PropagateFailure() + elif True: + d_8_authTag_ = (d_7_valueOrError4_).Extract() + d_9_regularFrame_ = Frame_RegularFrame(header, (d_1_sequenceNumber_).data, (d_4_iv_).data, (d_6_encContent_).data, (d_8_authTag_).data) + return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_9_regularFrame_, (d_8_authTag_).tail)) + + @staticmethod + def WriteFinalFrame(finalFrame): + return ((((SerializeFunctions.default__.WriteUint32(default__.ENDFRAME__SEQUENCE__NUMBER)) + (SerializeFunctions.default__.WriteUint32((finalFrame).seqNum))) + (SerializeFunctions.default__.Write((finalFrame).iv))) + (SerializeFunctions.default__.WriteUint32Seq((finalFrame).encContent))) + (SerializeFunctions.default__.Write((finalFrame).authTag)) + + @staticmethod + def ReadFinalFrame(buffer, header): + d_0_valueOrError0_ = SerializeFunctions.default__.ReadUInt32(buffer) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + d_1_finalFrameSignal_ = (d_0_valueOrError0_).Extract() + d_2_valueOrError1_ = Wrappers.default__.Need(((d_1_finalFrameSignal_).data) == (default__.ENDFRAME__SEQUENCE__NUMBER), SerializeFunctions.ReadProblems_Error(_dafny.Seq("Final frame sequence number MUST be the end-frame sequence number."))) + if (d_2_valueOrError1_).IsFailure(): + return (d_2_valueOrError1_).PropagateFailure() + elif True: + d_3_valueOrError2_ = SerializeFunctions.default__.ReadUInt32((d_1_finalFrameSignal_).tail) + if (d_3_valueOrError2_).IsFailure(): + return (d_3_valueOrError2_).PropagateFailure() + elif True: + d_4_sequenceNumber_ = (d_3_valueOrError2_).Extract() + d_5_valueOrError3_ = SerializeFunctions.default__.Read((d_4_sequenceNumber_).tail, SerializableTypes.default__.GetIvLength((header).suite)) + if (d_5_valueOrError3_).IsFailure(): + return (d_5_valueOrError3_).PropagateFailure() + elif True: + d_6_iv_ = (d_5_valueOrError3_).Extract() + d_7_valueOrError4_ = SerializeFunctions.default__.ReadUInt32((d_6_iv_).tail) + if (d_7_valueOrError4_).IsFailure(): + return (d_7_valueOrError4_).PropagateFailure() + elif True: + d_8_contentLength_ = (d_7_valueOrError4_).Extract() + d_9_valueOrError5_ = Wrappers.default__.Need(((d_8_contentLength_).data) <= (((header).body).frameLength), SerializeFunctions.ReadProblems_Error(_dafny.Seq("Content length MUST NOT exceed the frame length."))) + if (d_9_valueOrError5_).IsFailure(): + return (d_9_valueOrError5_).PropagateFailure() + elif True: + d_10_valueOrError6_ = SerializeFunctions.default__.ReadUint32Seq((d_6_iv_).tail) + if (d_10_valueOrError6_).IsFailure(): + return (d_10_valueOrError6_).PropagateFailure() + elif True: + d_11_encContent_ = (d_10_valueOrError6_).Extract() + d_12_valueOrError7_ = SerializeFunctions.default__.Read((d_11_encContent_).tail, SerializableTypes.default__.GetTagLength((header).suite)) + if (d_12_valueOrError7_).IsFailure(): + return (d_12_valueOrError7_).PropagateFailure() + elif True: + d_13_authTag_ = (d_12_valueOrError7_).Extract() + d_14_finalFrame_ = Frame_FinalFrame(header, (d_4_sequenceNumber_).data, (d_6_iv_).data, (d_11_encContent_).data, (d_13_authTag_).data) + return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_14_finalFrame_, (d_13_authTag_).tail)) + + @staticmethod + def ReadNonFrame(buffer, header): + d_0_valueOrError0_ = SerializeFunctions.default__.Read(buffer, SerializableTypes.default__.GetIvLength((header).suite)) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + d_1_iv_ = (d_0_valueOrError0_).Extract() + d_2_valueOrError1_ = SerializeFunctions.default__.ReadUInt64((d_1_iv_).tail) + if (d_2_valueOrError1_).IsFailure(): + return (d_2_valueOrError1_).PropagateFailure() + elif True: + d_3_contentLength_ = (d_2_valueOrError1_).Extract() + d_4_valueOrError2_ = Wrappers.default__.Need(((d_3_contentLength_).data) < (default__.SAFE__MAX__ENCRYPT), SerializeFunctions.ReadProblems_Error(_dafny.Seq("Frame exceeds AES-GCM cryptographic safety for a single key/iv."))) + if (d_4_valueOrError2_).IsFailure(): + return (d_4_valueOrError2_).PropagateFailure() + elif True: + d_5_valueOrError3_ = SerializeFunctions.default__.ReadUint64Seq((d_1_iv_).tail) + if (d_5_valueOrError3_).IsFailure(): + return (d_5_valueOrError3_).PropagateFailure() + elif True: + d_6_encContent_ = (d_5_valueOrError3_).Extract() + d_7_valueOrError4_ = SerializeFunctions.default__.Read((d_6_encContent_).tail, SerializableTypes.default__.GetTagLength((header).suite)) + if (d_7_valueOrError4_).IsFailure(): + return (d_7_valueOrError4_).PropagateFailure() + elif True: + d_8_authTag_ = (d_7_valueOrError4_).Extract() + d_9_nonFramed_ = Frame_NonFramed(header, (d_1_iv_).data, (d_6_encContent_).data, (d_8_authTag_).data) + return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_9_nonFramed_, (d_8_authTag_).tail)) + + @_dafny.classproperty + def ENDFRAME__SEQUENCE__NUMBER(instance): + return 4294967295 + @_dafny.classproperty + def SAFE__MAX__ENCRYPT(instance): + return 68719476704 + @_dafny.classproperty + def START__SEQUENCE__NUMBER(instance): + return 1 + @_dafny.classproperty + def NONFRAMED__SEQUENCE__NUMBER(instance): + return 1 + +class FramedHeader: + def __init__(self): + pass + + @staticmethod + def default(): + return Header.HeaderInfo.default()() + +class NonFramedHeader: + def __init__(self): + pass + + @staticmethod + def default(): + return Header.HeaderInfo.default()() + +class Frame: + @classmethod + def default(cls, ): + return lambda: Frame_RegularFrame(Header.HeaderInfo.default()(), int(0), _dafny.Seq({}), _dafny.Seq({}), _dafny.Seq({})) + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_RegularFrame(self) -> bool: + return isinstance(self, Frame_RegularFrame) + @property + def is_FinalFrame(self) -> bool: + return isinstance(self, Frame_FinalFrame) + @property + def is_NonFramed(self) -> bool: + return isinstance(self, Frame_NonFramed) + +class Frame_RegularFrame(Frame, NamedTuple('RegularFrame', [('header', Any), ('seqNum', Any), ('iv', Any), ('encContent', Any), ('authTag', Any)])): + def __dafnystr__(self) -> str: + return f'Frames.Frame.RegularFrame({_dafny.string_of(self.header)}, {_dafny.string_of(self.seqNum)}, {_dafny.string_of(self.iv)}, {_dafny.string_of(self.encContent)}, {_dafny.string_of(self.authTag)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, Frame_RegularFrame) and self.header == __o.header and self.seqNum == __o.seqNum and self.iv == __o.iv and self.encContent == __o.encContent and self.authTag == __o.authTag + def __hash__(self) -> int: + return super().__hash__() + +class Frame_FinalFrame(Frame, NamedTuple('FinalFrame', [('header', Any), ('seqNum', Any), ('iv', Any), ('encContent', Any), ('authTag', Any)])): + def __dafnystr__(self) -> str: + return f'Frames.Frame.FinalFrame({_dafny.string_of(self.header)}, {_dafny.string_of(self.seqNum)}, {_dafny.string_of(self.iv)}, {_dafny.string_of(self.encContent)}, {_dafny.string_of(self.authTag)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, Frame_FinalFrame) and self.header == __o.header and self.seqNum == __o.seqNum and self.iv == __o.iv and self.encContent == __o.encContent and self.authTag == __o.authTag + def __hash__(self) -> int: + return super().__hash__() + +class Frame_NonFramed(Frame, NamedTuple('NonFramed', [('header', Any), ('iv', Any), ('encContent', Any), ('authTag', Any)])): + def __dafnystr__(self) -> str: + return f'Frames.Frame.NonFramed({_dafny.string_of(self.header)}, {_dafny.string_of(self.iv)}, {_dafny.string_of(self.encContent)}, {_dafny.string_of(self.authTag)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, Frame_NonFramed) and self.header == __o.header and self.iv == __o.iv and self.encContent == __o.encContent and self.authTag == __o.authTag + def __hash__(self) -> int: + return super().__hash__() + + +class RegularFrame: + def __init__(self): + pass + + @staticmethod + def default(): + return Frame.default()() + +class FinalFrame: + def __init__(self): + pass + + @staticmethod + def default(): + return Frame.default()() + +class NonFramed: + def __init__(self): + pass + + @staticmethod + def default(): + return Frame.default()() diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/Header.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/Header.py new file mode 100644 index 000000000..633df517f --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/Header.py @@ -0,0 +1,226 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import aws_encryption_sdk.internaldafny.generated.module_ as module_ +import _dafny as _dafny +import System_ as System_ +import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers +import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary +import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom +import aws_cryptography_primitives.internaldafny.generated.Random as Random +import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption +import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest +import aws_cryptography_primitives.internaldafny.generated.Digest as Digest +import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC +import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC +import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF +import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF +import aws_cryptography_primitives.internaldafny.generated.Signature as Signature +import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr +import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption +import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives +import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 +import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites +import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials +import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring +import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations +import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort +import smithy_dafny_standard_library.internaldafny.generated.Math as Math +import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq +import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils +import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants +import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID +import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping +import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets +import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext +import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping +import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring +import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms +import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.Time as Time +import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker +import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC +import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring +import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring +import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM +import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults +import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment +import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM +import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier +import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils +import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders +import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn +import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure +import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable +import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore +import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr +import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode +import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions +import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings +import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO +import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals +import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals +import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul +import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals +import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals +import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod +import smithy_dafny_standard_library.internaldafny.generated.Power as Power +import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm +import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop +import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams +import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting +import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings +import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt +import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare +import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall +import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas +import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth + +# Module: Header + +class default__: + def __init__(self): + pass + + @staticmethod + def HeaderVersionSupportsCommitment_q(suite, body): + return (not (((suite).commitment).is_HKDF) or (((body).is_V2HeaderBody) and ((len((body).suiteData)) == ((((suite).commitment).HKDF).outputKeyLength)))) and (not (not(((suite).commitment).is_HKDF)) or ((True) and ((body).is_V1HeaderBody))) + + @staticmethod + def ReadHeaderBody(buffer, maxEdks, mpl): + d_0_valueOrError0_ = SharedHeaderFunctions.default__.ReadMessageFormatVersion(buffer) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + d_1_version_ = (d_0_valueOrError0_).Extract() + def lambda0_(): + source0_ = (d_1_version_).data + if True: + if source0_.is_V1: + d_3_valueOrError2_ = V1HeaderBody.default__.ReadV1HeaderBody(buffer, maxEdks, mpl) + if (d_3_valueOrError2_).IsFailure(): + return (d_3_valueOrError2_).PropagateFailure() + elif True: + d_4_b_ = (d_3_valueOrError2_).Extract() + d_5_body_ = (d_4_b_).data + return Wrappers.Result_Success((d_5_body_, (d_4_b_).tail)) + if True: + d_6_valueOrError3_ = V2HeaderBody.default__.ReadV2HeaderBody(buffer, maxEdks, mpl) + if (d_6_valueOrError3_).IsFailure(): + return (d_6_valueOrError3_).PropagateFailure() + elif True: + d_7_b_ = (d_6_valueOrError3_).Extract() + d_8_body_ = (d_7_b_).data + return Wrappers.Result_Success((d_8_body_, (d_7_b_).tail)) + + d_2_valueOrError1_ = lambda0_() + if (d_2_valueOrError1_).IsFailure(): + return (d_2_valueOrError1_).PropagateFailure() + elif True: + let_tmp_rhs0_ = (d_2_valueOrError1_).Extract() + d_9_body_ = let_tmp_rhs0_[0] + d_10_tail_ = let_tmp_rhs0_[1] + d_11_valueOrError4_ = Wrappers.default__.Need((((d_9_body_).contentType).is_Framed) == (((d_9_body_).frameLength) > (0)), SerializeFunctions.ReadProblems_Error(_dafny.Seq("Frame length must be positive if content is framed"))) + if (d_11_valueOrError4_).IsFailure(): + return (d_11_valueOrError4_).PropagateFailure() + elif True: + d_12_valueOrError5_ = Wrappers.default__.Need((((d_9_body_).contentType).is_NonFramed) == (((d_9_body_).frameLength) == (0)), SerializeFunctions.ReadProblems_Error(_dafny.Seq("Frame length must be zero if content is non-framed"))) + if (d_12_valueOrError5_).IsFailure(): + return (d_12_valueOrError5_).PropagateFailure() + elif True: + return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_9_body_, d_10_tail_)) + + @staticmethod + def WriteHeaderBody(body): + source0_ = body + if True: + if source0_.is_V1HeaderBody: + return V1HeaderBody.default__.WriteV1HeaderBody(body) + if True: + return V2HeaderBody.default__.WriteV2HeaderBody(body) + + +class HeaderInfo: + @classmethod + def default(cls, ): + return lambda: HeaderInfo_HeaderInfo(HeaderTypes.HeaderBody.default()(), _dafny.Seq({}), _dafny.Map({}), AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo.default()(), HeaderTypes.HeaderAuth.default()()) + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_HeaderInfo(self) -> bool: + return isinstance(self, HeaderInfo_HeaderInfo) + +class HeaderInfo_HeaderInfo(HeaderInfo, NamedTuple('HeaderInfo', [('body', Any), ('rawHeader', Any), ('encryptionContext', Any), ('suite', Any), ('headerAuth', Any)])): + def __dafnystr__(self) -> str: + return f'Header.HeaderInfo.HeaderInfo({_dafny.string_of(self.body)}, {_dafny.string_of(self.rawHeader)}, {_dafny.string_of(self.encryptionContext)}, {_dafny.string_of(self.suite)}, {_dafny.string_of(self.headerAuth)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, HeaderInfo_HeaderInfo) and self.body == __o.body and self.rawHeader == __o.rawHeader and self.encryptionContext == __o.encryptionContext and self.suite == __o.suite and self.headerAuth == __o.headerAuth + def __hash__(self) -> int: + return super().__hash__() + + +class Header: + def __init__(self): + pass + + @staticmethod + def default(): + return HeaderInfo.default()() diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/HeaderAuth.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/HeaderAuth.py new file mode 100644 index 000000000..2f07b5eda --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/HeaderAuth.py @@ -0,0 +1,210 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import aws_encryption_sdk.internaldafny.generated.module_ as module_ +import _dafny as _dafny +import System_ as System_ +import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers +import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary +import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom +import aws_cryptography_primitives.internaldafny.generated.Random as Random +import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption +import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest +import aws_cryptography_primitives.internaldafny.generated.Digest as Digest +import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC +import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC +import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF +import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF +import aws_cryptography_primitives.internaldafny.generated.Signature as Signature +import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr +import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption +import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives +import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 +import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites +import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials +import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring +import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations +import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort +import smithy_dafny_standard_library.internaldafny.generated.Math as Math +import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq +import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils +import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants +import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID +import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping +import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets +import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext +import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping +import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring +import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms +import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.Time as Time +import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker +import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC +import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring +import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring +import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM +import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults +import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment +import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM +import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier +import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils +import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders +import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn +import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure +import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable +import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore +import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr +import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode +import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions +import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings +import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO +import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals +import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals +import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul +import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals +import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals +import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod +import smithy_dafny_standard_library.internaldafny.generated.Power as Power +import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm +import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop +import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams +import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting +import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings +import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt +import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare +import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall +import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas +import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody + +# Module: HeaderAuth + +class default__: + def __init__(self): + pass + + @staticmethod + def WriteHeaderAuthTagV2(headerAuth): + return SerializeFunctions.default__.Write((headerAuth).headerAuthTag) + + @staticmethod + def WriteHeaderAuthTagV1(headerAuth): + return (SerializeFunctions.default__.Write((headerAuth).headerIv)) + (SerializeFunctions.default__.Write((headerAuth).headerAuthTag)) + + @staticmethod + def WriteHeaderAuthTag(headerAuth, suite): + source0_ = (suite).messageVersion + if True: + if (source0_) == (1): + return Wrappers.Result_Success(default__.WriteHeaderAuthTagV1(headerAuth)) + if True: + if (source0_) == (2): + return Wrappers.Result_Success(default__.WriteHeaderAuthTagV2(headerAuth)) + if True: + return Wrappers.Result_Failure(AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Unexpected message version"))) + + @staticmethod + def ReadHeaderAuthTagV1(buffer, suite): + d_0_valueOrError0_ = SerializeFunctions.default__.Read(buffer, SerializableTypes.default__.GetIvLength(suite)) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + d_1_headerIv_ = (d_0_valueOrError0_).Extract() + d_2_valueOrError1_ = SerializeFunctions.default__.Read((d_1_headerIv_).tail, SerializableTypes.default__.GetTagLength(suite)) + if (d_2_valueOrError1_).IsFailure(): + return (d_2_valueOrError1_).PropagateFailure() + elif True: + d_3_headerAuthTag_ = (d_2_valueOrError1_).Extract() + d_4_auth_ = HeaderTypes.HeaderAuth_AESMac((d_1_headerIv_).data, (d_3_headerAuthTag_).data) + return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_4_auth_, (d_3_headerAuthTag_).tail)) + + @staticmethod + def ReadHeaderAuthTagV2(buffer, suite): + d_0_headerIv_ = _dafny.Seq([0 for d_1___v1_ in range(SerializableTypes.default__.GetIvLength(suite))]) + d_2_valueOrError0_ = SerializeFunctions.default__.Read(buffer, SerializableTypes.default__.GetTagLength(suite)) + if (d_2_valueOrError0_).IsFailure(): + return (d_2_valueOrError0_).PropagateFailure() + elif True: + d_3_headerAuthTag_ = (d_2_valueOrError0_).Extract() + d_4_auth_ = HeaderTypes.HeaderAuth_AESMac(d_0_headerIv_, (d_3_headerAuthTag_).data) + return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_4_auth_, (d_3_headerAuthTag_).tail)) + + @staticmethod + def ReadHeaderAuthTag(buffer, suite): + source0_ = (suite).messageVersion + if True: + if (source0_) == (1): + return default__.ReadHeaderAuthTagV1(buffer, suite) + if True: + if (source0_) == (2): + return default__.ReadHeaderAuthTagV2(buffer, suite) + if True: + return Wrappers.Result_Failure(SerializeFunctions.ReadProblems_Error(_dafny.Seq("Unexpected message version"))) + + +class AESMac: + def __init__(self): + pass + + @staticmethod + def default(): + return HeaderTypes.HeaderAuth.default()() + def _Is(source__): + d_0_a_: HeaderTypes.HeaderAuth = source__ + return True diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/HeaderTypes.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/HeaderTypes.py new file mode 100644 index 000000000..ff5ee535d --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/HeaderTypes.py @@ -0,0 +1,364 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import aws_encryption_sdk.internaldafny.generated.module_ as module_ +import _dafny as _dafny +import System_ as System_ +import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers +import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary +import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom +import aws_cryptography_primitives.internaldafny.generated.Random as Random +import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption +import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest +import aws_cryptography_primitives.internaldafny.generated.Digest as Digest +import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC +import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC +import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF +import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF +import aws_cryptography_primitives.internaldafny.generated.Signature as Signature +import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr +import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption +import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives +import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 +import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites +import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials +import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring +import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations +import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort +import smithy_dafny_standard_library.internaldafny.generated.Math as Math +import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq +import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils +import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants +import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID +import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping +import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets +import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext +import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping +import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring +import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms +import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.Time as Time +import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker +import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC +import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring +import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring +import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM +import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults +import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment +import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM +import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier +import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils +import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders +import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn +import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure +import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable +import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore +import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr +import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode +import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions +import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings +import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO +import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals +import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals +import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul +import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals +import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals +import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod +import smithy_dafny_standard_library.internaldafny.generated.Power as Power +import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm +import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop +import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams +import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting +import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings +import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt +import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare +import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall +import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas +import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext + +# Module: HeaderTypes + +class default__: + def __init__(self): + pass + + @_dafny.classproperty + def MESSAGE__ID__LEN__V1(instance): + return 16 + @_dafny.classproperty + def MESSAGE__ID__LEN__V2(instance): + return 32 + +class MessageFormatVersion: + @_dafny.classproperty + def AllSingletonConstructors(cls): + return [MessageFormatVersion_V1(), MessageFormatVersion_V2()] + @classmethod + def default(cls, ): + return lambda: MessageFormatVersion_V1() + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_V1(self) -> bool: + return isinstance(self, MessageFormatVersion_V1) + @property + def is_V2(self) -> bool: + return isinstance(self, MessageFormatVersion_V2) + def Serialize(self): + source0_ = self + if True: + if source0_.is_V1: + return _dafny.Seq([1]) + if True: + return _dafny.Seq([2]) + + @staticmethod + def Get(x): + d_0_valueOrError0_ = Wrappers.default__.Need(((x) == (_dafny.Seq([1]))) or ((x) == (_dafny.Seq([2]))), _dafny.Seq("Unsupported Version value.")) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + def lambda0_(): + source0_ = (x)[0] + if True: + if (source0_) == (1): + return MessageFormatVersion_V1() + if True: + return MessageFormatVersion_V2() + + return Wrappers.Result_Success(lambda0_()) + + +class MessageFormatVersion_V1(MessageFormatVersion, NamedTuple('V1', [])): + def __dafnystr__(self) -> str: + return f'HeaderTypes.MessageFormatVersion.V1' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, MessageFormatVersion_V1) + def __hash__(self) -> int: + return super().__hash__() + +class MessageFormatVersion_V2(MessageFormatVersion, NamedTuple('V2', [])): + def __dafnystr__(self) -> str: + return f'HeaderTypes.MessageFormatVersion.V2' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, MessageFormatVersion_V2) + def __hash__(self) -> int: + return super().__hash__() + + +class ESDKAlgorithmSuite: + def __init__(self): + pass + + @staticmethod + def default(): + return AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo.default()() + +class HeaderBody: + @classmethod + def default(cls, ): + return lambda: HeaderBody_V1HeaderBody(MessageType.default()(), AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo.default()(), _dafny.Seq({}), _dafny.Seq({}), _dafny.Seq({}), ContentType.default()(), int(0), int(0)) + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_V1HeaderBody(self) -> bool: + return isinstance(self, HeaderBody_V1HeaderBody) + @property + def is_V2HeaderBody(self) -> bool: + return isinstance(self, HeaderBody_V2HeaderBody) + +class HeaderBody_V1HeaderBody(HeaderBody, NamedTuple('V1HeaderBody', [('messageType', Any), ('algorithmSuite', Any), ('messageId', Any), ('encryptionContext', Any), ('encryptedDataKeys', Any), ('contentType', Any), ('headerIvLength', Any), ('frameLength', Any)])): + def __dafnystr__(self) -> str: + return f'HeaderTypes.HeaderBody.V1HeaderBody({_dafny.string_of(self.messageType)}, {_dafny.string_of(self.algorithmSuite)}, {_dafny.string_of(self.messageId)}, {_dafny.string_of(self.encryptionContext)}, {_dafny.string_of(self.encryptedDataKeys)}, {_dafny.string_of(self.contentType)}, {_dafny.string_of(self.headerIvLength)}, {_dafny.string_of(self.frameLength)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, HeaderBody_V1HeaderBody) and self.messageType == __o.messageType and self.algorithmSuite == __o.algorithmSuite and self.messageId == __o.messageId and self.encryptionContext == __o.encryptionContext and self.encryptedDataKeys == __o.encryptedDataKeys and self.contentType == __o.contentType and self.headerIvLength == __o.headerIvLength and self.frameLength == __o.frameLength + def __hash__(self) -> int: + return super().__hash__() + +class HeaderBody_V2HeaderBody(HeaderBody, NamedTuple('V2HeaderBody', [('algorithmSuite', Any), ('messageId', Any), ('encryptionContext', Any), ('encryptedDataKeys', Any), ('contentType', Any), ('frameLength', Any), ('suiteData', Any)])): + def __dafnystr__(self) -> str: + return f'HeaderTypes.HeaderBody.V2HeaderBody({_dafny.string_of(self.algorithmSuite)}, {_dafny.string_of(self.messageId)}, {_dafny.string_of(self.encryptionContext)}, {_dafny.string_of(self.encryptedDataKeys)}, {_dafny.string_of(self.contentType)}, {_dafny.string_of(self.frameLength)}, {_dafny.string_of(self.suiteData)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, HeaderBody_V2HeaderBody) and self.algorithmSuite == __o.algorithmSuite and self.messageId == __o.messageId and self.encryptionContext == __o.encryptionContext and self.encryptedDataKeys == __o.encryptedDataKeys and self.contentType == __o.contentType and self.frameLength == __o.frameLength and self.suiteData == __o.suiteData + def __hash__(self) -> int: + return super().__hash__() + + +class HeaderAuth: + @classmethod + def default(cls, ): + return lambda: HeaderAuth_AESMac(_dafny.Seq({}), _dafny.Seq({})) + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_AESMac(self) -> bool: + return isinstance(self, HeaderAuth_AESMac) + +class HeaderAuth_AESMac(HeaderAuth, NamedTuple('AESMac', [('headerIv', Any), ('headerAuthTag', Any)])): + def __dafnystr__(self) -> str: + return f'HeaderTypes.HeaderAuth.AESMac({_dafny.string_of(self.headerIv)}, {_dafny.string_of(self.headerAuthTag)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, HeaderAuth_AESMac) and self.headerIv == __o.headerIv and self.headerAuthTag == __o.headerAuthTag + def __hash__(self) -> int: + return super().__hash__() + + +class MessageType: + @_dafny.classproperty + def AllSingletonConstructors(cls): + return [MessageType_TYPE__CUSTOMER__AED()] + @classmethod + def default(cls, ): + return lambda: MessageType_TYPE__CUSTOMER__AED() + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_TYPE__CUSTOMER__AED(self) -> bool: + return isinstance(self, MessageType_TYPE__CUSTOMER__AED) + def Serialize(self): + source0_ = self + if True: + return 128 + + @staticmethod + def Get(x): + d_0_valueOrError0_ = Wrappers.default__.Need((x) == (128), _dafny.Seq("Unsupported ContentType value.")) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + def lambda0_(): + source0_ = x + if True: + return MessageType_TYPE__CUSTOMER__AED() + + return Wrappers.Result_Success(lambda0_()) + + +class MessageType_TYPE__CUSTOMER__AED(MessageType, NamedTuple('TYPE__CUSTOMER__AED', [])): + def __dafnystr__(self) -> str: + return f'HeaderTypes.MessageType.TYPE_CUSTOMER_AED' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, MessageType_TYPE__CUSTOMER__AED) + def __hash__(self) -> int: + return super().__hash__() + + +class ContentType: + @_dafny.classproperty + def AllSingletonConstructors(cls): + return [ContentType_NonFramed(), ContentType_Framed()] + @classmethod + def default(cls, ): + return lambda: ContentType_NonFramed() + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_NonFramed(self) -> bool: + return isinstance(self, ContentType_NonFramed) + @property + def is_Framed(self) -> bool: + return isinstance(self, ContentType_Framed) + def Serialize(self): + source0_ = self + if True: + if source0_.is_NonFramed: + return 1 + if True: + return 2 + + @staticmethod + def Get(x): + d_0_valueOrError0_ = Wrappers.default__.Need(((x) == (1)) or ((x) == (2)), _dafny.Seq("Unsupported ContentType value.")) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + def lambda0_(): + source0_ = x + if True: + if (source0_) == (1): + return ContentType_NonFramed() + if True: + return ContentType_Framed() + + return Wrappers.Result_Success(lambda0_()) + + +class ContentType_NonFramed(ContentType, NamedTuple('NonFramed', [])): + def __dafnystr__(self) -> str: + return f'HeaderTypes.ContentType.NonFramed' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, ContentType_NonFramed) + def __hash__(self) -> int: + return super().__hash__() + +class ContentType_Framed(ContentType, NamedTuple('Framed', [])): + def __dafnystr__(self) -> str: + return f'HeaderTypes.ContentType.Framed' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, ContentType_Framed) + def __hash__(self) -> int: + return super().__hash__() + + +class MessageId: + def __init__(self): + pass + + @staticmethod + def default(): + return _dafny.Seq({}) + def _Is(source__): + d_1_x_: _dafny.Seq = source__ + return ((len(d_1_x_)) == (default__.MESSAGE__ID__LEN__V1)) or ((len(d_1_x_)) == (default__.MESSAGE__ID__LEN__V2)) diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/KeyDerivation.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/KeyDerivation.py new file mode 100644 index 000000000..baba5aec9 --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/KeyDerivation.py @@ -0,0 +1,352 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import aws_encryption_sdk.internaldafny.generated.module_ as module_ +import _dafny as _dafny +import System_ as System_ +import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers +import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary +import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom +import aws_cryptography_primitives.internaldafny.generated.Random as Random +import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption +import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest +import aws_cryptography_primitives.internaldafny.generated.Digest as Digest +import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC +import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC +import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF +import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF +import aws_cryptography_primitives.internaldafny.generated.Signature as Signature +import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr +import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption +import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives +import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 +import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites +import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials +import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring +import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations +import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort +import smithy_dafny_standard_library.internaldafny.generated.Math as Math +import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq +import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils +import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants +import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID +import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping +import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets +import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext +import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping +import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring +import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms +import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.Time as Time +import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker +import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC +import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring +import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring +import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM +import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults +import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment +import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM +import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier +import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils +import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders +import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn +import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure +import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable +import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore +import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr +import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode +import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions +import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings +import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO +import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals +import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals +import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul +import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals +import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals +import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod +import smithy_dafny_standard_library.internaldafny.generated.Power as Power +import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm +import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop +import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams +import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting +import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings +import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt +import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare +import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall +import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas +import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk.internaldafny.generated.Header as Header +import aws_encryption_sdk.internaldafny.generated.Frames as Frames +import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody + +# Module: KeyDerivation + +class default__: + def __init__(self): + pass + + @staticmethod + def DeriveKey(messageId, plaintextDataKey, suite, crypto, onNetV4Retry): + res: Wrappers.Result = Wrappers.Result.default(ExpandedKeyMaterial.default())() + source0_ = (suite).kdf + with _dafny.label("match0"): + if True: + if source0_.is_IDENTITY: + d_0_i_ = source0_.IDENTITY + if True: + res = Wrappers.Result_Success(ExpandedKeyMaterial_ExpandedKeyMaterial(plaintextDataKey, Wrappers.Option_None())) + return res + raise _dafny.Break("match0") + if True: + if source0_.is_HKDF: + d_1_hkdf_ = source0_.HKDF + if True: + d_2_hkdfInput_: AwsCryptographyPrimitivesTypes.HkdfInput + d_2_hkdfInput_ = AwsCryptographyPrimitivesTypes.HkdfInput_HkdfInput((d_1_hkdf_).hmac, Wrappers.Option_None(), plaintextDataKey, ((suite).binaryId) + (messageId), (d_1_hkdf_).outputKeyLength) + if onNetV4Retry: + d_2_hkdfInput_ = AwsCryptographyPrimitivesTypes.HkdfInput_HkdfInput((d_1_hkdf_).hmac, Wrappers.Option_None(), plaintextDataKey, (suite).binaryId, (d_1_hkdf_).outputKeyLength) + d_3_maybeDerivedKey_: Wrappers.Result + out0_: Wrappers.Result + out0_ = (crypto).Hkdf(d_2_hkdfInput_) + d_3_maybeDerivedKey_ = out0_ + d_4_valueOrError0_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + def lambda0_(d_5_e_): + return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyPrimitives(d_5_e_) + + d_4_valueOrError0_ = (d_3_maybeDerivedKey_).MapFailure(lambda0_) + if (d_4_valueOrError0_).IsFailure(): + res = (d_4_valueOrError0_).PropagateFailure() + return res + d_6_derivedKey_: _dafny.Seq + d_6_derivedKey_ = (d_4_valueOrError0_).Extract() + res = Wrappers.Result_Success(ExpandedKeyMaterial_ExpandedKeyMaterial(d_6_derivedKey_, Wrappers.Option_None())) + return res + raise _dafny.Break("match0") + if True: + d_7_None_ = source0_ + if True: + res = Wrappers.Result_Failure(AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("None is not a valid Key Derivation Function"))) + return res + pass + return res + + @staticmethod + def ExpandKeyMaterial(messageId, plaintextKey, suite, crypto): + res: Wrappers.Result = Wrappers.Result.default(ExpandedKeyMaterial.default())() + d_0_digest_: AwsCryptographyPrimitivesTypes.DigestAlgorithm + d_0_digest_ = (((suite).commitment).HKDF).hmac + d_1_info_: _dafny.Seq + d_1_info_ = ((suite).binaryId) + (default__.KEY__LABEL) + d_2_hkdfExtractInput_: AwsCryptographyPrimitivesTypes.HkdfExtractInput + d_2_hkdfExtractInput_ = AwsCryptographyPrimitivesTypes.HkdfExtractInput_HkdfExtractInput(d_0_digest_, Wrappers.Option_Some(messageId), plaintextKey) + d_3_maybePseudoRandomKey_: Wrappers.Result + out0_: Wrappers.Result + out0_ = (crypto).HkdfExtract(d_2_hkdfExtractInput_) + d_3_maybePseudoRandomKey_ = out0_ + d_4_valueOrError0_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + def lambda0_(d_5_e_): + return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyPrimitives(d_5_e_) + + d_4_valueOrError0_ = (d_3_maybePseudoRandomKey_).MapFailure(lambda0_) + if (d_4_valueOrError0_).IsFailure(): + res = (d_4_valueOrError0_).PropagateFailure() + return res + d_6_pseudoRandomKey_: _dafny.Seq + d_6_pseudoRandomKey_ = (d_4_valueOrError0_).Extract() + d_7_encryptKeyInput_: AwsCryptographyPrimitivesTypes.HkdfExpandInput + d_7_encryptKeyInput_ = AwsCryptographyPrimitivesTypes.HkdfExpandInput_HkdfExpandInput(d_0_digest_, d_6_pseudoRandomKey_, d_1_info_, (((suite).kdf).HKDF).outputKeyLength) + d_8_commitKeyInput_: AwsCryptographyPrimitivesTypes.HkdfExpandInput + d_9_dt__update__tmp_h0_ = d_7_encryptKeyInput_ + d_10_dt__update_hexpectedLength_h0_ = (((suite).commitment).HKDF).outputKeyLength + d_11_dt__update_hinfo_h0_ = default__.COMMIT__LABEL + d_8_commitKeyInput_ = AwsCryptographyPrimitivesTypes.HkdfExpandInput_HkdfExpandInput((d_9_dt__update__tmp_h0_).digestAlgorithm, (d_9_dt__update__tmp_h0_).prk, d_11_dt__update_hinfo_h0_, d_10_dt__update_hexpectedLength_h0_) + d_12_maybeEncryptKey_: Wrappers.Result + out1_: Wrappers.Result + out1_ = (crypto).HkdfExpand(d_7_encryptKeyInput_) + d_12_maybeEncryptKey_ = out1_ + d_13_maybeCommitKey_: Wrappers.Result + out2_: Wrappers.Result + out2_ = (crypto).HkdfExpand(d_8_commitKeyInput_) + d_13_maybeCommitKey_ = out2_ + d_14_valueOrError1_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + def lambda1_(d_15_e_): + return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyPrimitives(d_15_e_) + + d_14_valueOrError1_ = (d_12_maybeEncryptKey_).MapFailure(lambda1_) + if (d_14_valueOrError1_).IsFailure(): + res = (d_14_valueOrError1_).PropagateFailure() + return res + d_16_encryptKey_: _dafny.Seq + d_16_encryptKey_ = (d_14_valueOrError1_).Extract() + d_17_valueOrError2_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + def lambda2_(d_18_e_): + return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyPrimitives(d_18_e_) + + d_17_valueOrError2_ = (d_13_maybeCommitKey_).MapFailure(lambda2_) + if (d_17_valueOrError2_).IsFailure(): + res = (d_17_valueOrError2_).PropagateFailure() + return res + d_19_commitKey_: _dafny.Seq + d_19_commitKey_ = (d_17_valueOrError2_).Extract() + res = Wrappers.Result_Success(ExpandedKeyMaterial_ExpandedKeyMaterial(d_16_encryptKey_, Wrappers.Option_Some(d_19_commitKey_))) + return res + return res + + @staticmethod + def DeriveKeys(messageId, plaintextKey, suite, crypto, netV4__0__0__RetryPolicy, onNetV4Retry): + res: Wrappers.Result = Wrappers.Result.default(ExpandedKeyMaterial.default())() + d_0_keys_: ExpandedKeyMaterial = ExpandedKeyMaterial.default()() + if ((suite).messageVersion) == (2): + d_1_valueOrError0_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_1_valueOrError0_ = Wrappers.default__.Need((((suite).commitment).is_HKDF) and (((suite).kdf) == ((suite).commitment)), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Suites with message version 2 must have commitment"))) + if (d_1_valueOrError0_).IsFailure(): + res = (d_1_valueOrError0_).PropagateFailure() + return res + d_2_valueOrError1_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_2_valueOrError1_ = Wrappers.default__.Need(((SerializableTypes.default__.GetEncryptKeyLength(suite)) == ((((suite).kdf).HKDF).outputKeyLength)) and ((len(plaintextKey)) == ((((suite).kdf).HKDF).inputKeyLength)), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Invalid Materials"))) + if (d_2_valueOrError1_).IsFailure(): + res = (d_2_valueOrError1_).PropagateFailure() + return res + d_3_valueOrError2_: Wrappers.Result = Wrappers.Result.default(ExpandedKeyMaterial.default())() + out0_: Wrappers.Result + out0_ = default__.ExpandKeyMaterial(messageId, plaintextKey, suite, crypto) + d_3_valueOrError2_ = out0_ + if (d_3_valueOrError2_).IsFailure(): + res = (d_3_valueOrError2_).PropagateFailure() + return res + d_0_keys_ = (d_3_valueOrError2_).Extract() + elif ((suite).messageVersion) == (1): + d_4_valueOrError3_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_4_valueOrError3_ = Wrappers.default__.Need(((suite).commitment).is_None, AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Suites with message version 1 must not have commitment"))) + if (d_4_valueOrError3_).IsFailure(): + res = (d_4_valueOrError3_).PropagateFailure() + return res + d_5_valueOrError4_: Wrappers.Outcome = Wrappers.Outcome.default()() + def lambda0_(): + source0_ = (suite).kdf + if True: + if source0_.is_IDENTITY: + d_6_i_ = source0_.IDENTITY + return (len(plaintextKey)) == (SerializableTypes.default__.GetEncryptKeyLength(suite)) + if True: + if source0_.is_HKDF: + d_7_hkdf_ = source0_.HKDF + return ((len(plaintextKey)) == ((((suite).kdf).HKDF).inputKeyLength)) and (((((suite).kdf).HKDF).outputKeyLength) == (SerializableTypes.default__.GetEncryptKeyLength(suite))) + if True: + d_8_None_ = source0_ + return False + + d_5_valueOrError4_ = Wrappers.default__.Need(lambda0_(), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Suites with message version 1 must not have commitment"))) + if (d_5_valueOrError4_).IsFailure(): + res = (d_5_valueOrError4_).PropagateFailure() + return res + if ((netV4__0__0__RetryPolicy) == (AwsCryptographyEncryptionSdkTypes.NetV4__0__0__RetryPolicy_ALLOW__RETRY())) and (onNetV4Retry): + d_9_valueOrError5_: Wrappers.Result = Wrappers.Result.default(ExpandedKeyMaterial.default())() + out1_: Wrappers.Result + out1_ = default__.DeriveKey(messageId, plaintextKey, suite, crypto, True) + d_9_valueOrError5_ = out1_ + if (d_9_valueOrError5_).IsFailure(): + res = (d_9_valueOrError5_).PropagateFailure() + return res + d_0_keys_ = (d_9_valueOrError5_).Extract() + elif True: + d_10_valueOrError6_: Wrappers.Result = Wrappers.Result.default(ExpandedKeyMaterial.default())() + out2_: Wrappers.Result + out2_ = default__.DeriveKey(messageId, plaintextKey, suite, crypto, False) + d_10_valueOrError6_ = out2_ + if (d_10_valueOrError6_).IsFailure(): + res = (d_10_valueOrError6_).PropagateFailure() + return res + d_0_keys_ = (d_10_valueOrError6_).Extract() + elif True: + res = Wrappers.Result_Failure(AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Unknown message version"))) + return res + res = Wrappers.Result_Success(d_0_keys_) + return res + return res + + @_dafny.classproperty + def KEY__LABEL(instance): + d_0_s_ = _dafny.Seq([68, 69, 82, 73, 86, 69, 75, 69, 89]) + return d_0_s_ + @_dafny.classproperty + def COMMIT__LABEL(instance): + d_0_s_ = _dafny.Seq([67, 79, 77, 77, 73, 84, 75, 69, 89]) + return d_0_s_ + +class ExpandedKeyMaterial: + @classmethod + def default(cls, ): + return lambda: ExpandedKeyMaterial_ExpandedKeyMaterial(_dafny.Seq({}), Wrappers.Option.default()()) + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_ExpandedKeyMaterial(self) -> bool: + return isinstance(self, ExpandedKeyMaterial_ExpandedKeyMaterial) + +class ExpandedKeyMaterial_ExpandedKeyMaterial(ExpandedKeyMaterial, NamedTuple('ExpandedKeyMaterial', [('dataKey', Any), ('commitmentKey', Any)])): + def __dafnystr__(self) -> str: + return f'KeyDerivation.ExpandedKeyMaterial.ExpandedKeyMaterial({_dafny.string_of(self.dataKey)}, {_dafny.string_of(self.commitmentKey)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, ExpandedKeyMaterial_ExpandedKeyMaterial) and self.dataKey == __o.dataKey and self.commitmentKey == __o.commitmentKey + def __hash__(self) -> int: + return super().__hash__() + diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/MessageBody.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/MessageBody.py new file mode 100644 index 000000000..09b5f5b68 --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/MessageBody.py @@ -0,0 +1,526 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import aws_encryption_sdk.internaldafny.generated.module_ as module_ +import _dafny as _dafny +import System_ as System_ +import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers +import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary +import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom +import aws_cryptography_primitives.internaldafny.generated.Random as Random +import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption +import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest +import aws_cryptography_primitives.internaldafny.generated.Digest as Digest +import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC +import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC +import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF +import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF +import aws_cryptography_primitives.internaldafny.generated.Signature as Signature +import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr +import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption +import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives +import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 +import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites +import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials +import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring +import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations +import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort +import smithy_dafny_standard_library.internaldafny.generated.Math as Math +import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq +import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils +import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants +import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID +import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping +import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets +import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext +import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping +import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring +import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms +import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.Time as Time +import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker +import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC +import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring +import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring +import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM +import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults +import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment +import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM +import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier +import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils +import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders +import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn +import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure +import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable +import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore +import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr +import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode +import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions +import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings +import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO +import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals +import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals +import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul +import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals +import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals +import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod +import smithy_dafny_standard_library.internaldafny.generated.Power as Power +import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm +import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop +import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams +import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting +import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings +import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt +import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare +import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall +import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas +import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk.internaldafny.generated.Header as Header +import aws_encryption_sdk.internaldafny.generated.Frames as Frames + +# Module: MessageBody + +class default__: + def __init__(self): + pass + + @staticmethod + def BodyAADContentTypeString(bc): + source0_ = bc + if True: + if source0_.is_AADRegularFrame: + return default__.BODY__AAD__CONTENT__REGULAR__FRAME + if True: + if source0_.is_AADFinalFrame: + return default__.BODY__AAD__CONTENT__FINAL__FRAME + if True: + return default__.BODY__AAD__CONTENT__SINGLE__BLOCK + + @staticmethod + def IVSeq(suite, sequenceNumber): + return (_dafny.Seq([0 for d_0___v0_ in range((SerializableTypes.default__.GetIvLength(suite)) - (4))])) + (StandardLibrary_UInt.default__.UInt32ToSeq(sequenceNumber)) + + @staticmethod + def EncryptMessageBody(plaintext, header, key, crypto): + result: Wrappers.Result = None + d_0_n_: int + d_1_sequenceNumber_: int + rhs0_ = 0 + rhs1_ = default__.START__SEQUENCE__NUMBER + d_0_n_ = rhs0_ + d_1_sequenceNumber_ = rhs1_ + d_2_regularFrames_: _dafny.Seq + d_2_regularFrames_ = _dafny.Seq([]) + while ((d_0_n_) + (((header).body).frameLength)) < (len(plaintext)): + d_3_valueOrError0_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_3_valueOrError0_ = Wrappers.default__.Need((d_1_sequenceNumber_) < (default__.ENDFRAME__SEQUENCE__NUMBER), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("too many frames"))) + if (d_3_valueOrError0_).IsFailure(): + result = (d_3_valueOrError0_).PropagateFailure() + return result + d_4_plaintextFrame_: _dafny.Seq + d_4_plaintextFrame_ = _dafny.Seq((plaintext)[d_0_n_:(d_0_n_) + (((header).body).frameLength):]) + d_5_valueOrError1_: Wrappers.Result = None + out0_: Wrappers.Result + out0_ = default__.EncryptRegularFrame(key, header, d_4_plaintextFrame_, d_1_sequenceNumber_, crypto) + d_5_valueOrError1_ = out0_ + if (d_5_valueOrError1_).IsFailure(): + result = (d_5_valueOrError1_).PropagateFailure() + return result + d_6_regularFrame_: Frames.Frame + d_6_regularFrame_ = (d_5_valueOrError1_).Extract() + d_2_regularFrames_ = (d_2_regularFrames_) + (_dafny.Seq([d_6_regularFrame_])) + d_0_n_ = (d_0_n_) + (((header).body).frameLength) + d_1_sequenceNumber_ = (d_1_sequenceNumber_) + (1) + d_7_valueOrError2_: Wrappers.Result = None + out1_: Wrappers.Result + out1_ = default__.EncryptFinalFrame(key, header, _dafny.Seq((plaintext)[d_0_n_::]), d_1_sequenceNumber_, crypto) + d_7_valueOrError2_ = out1_ + if (d_7_valueOrError2_).IsFailure(): + result = (d_7_valueOrError2_).PropagateFailure() + return result + d_8_finalFrame_: Frames.Frame + d_8_finalFrame_ = (d_7_valueOrError2_).Extract() + result = Wrappers.Result_Success(FramedMessageBody_FramedMessageBody(d_2_regularFrames_, d_8_finalFrame_)) + return result + + @staticmethod + def EncryptRegularFrame(key, header, plaintext, sequenceNumber, crypto): + res: Wrappers.Result = None + d_0_iv_: _dafny.Seq + d_0_iv_ = default__.IVSeq((header).suite, sequenceNumber) + d_1_aad_: _dafny.Seq + d_1_aad_ = default__.BodyAAD(((header).body).messageId, BodyAADContent_AADRegularFrame(), sequenceNumber, len(plaintext)) + d_2_aesEncryptInput_: AwsCryptographyPrimitivesTypes.AESEncryptInput + d_2_aesEncryptInput_ = AwsCryptographyPrimitivesTypes.AESEncryptInput_AESEncryptInput((((header).suite).encrypt).AES__GCM, d_0_iv_, key, plaintext, d_1_aad_) + d_3_maybeEncryptionOutput_: Wrappers.Result + out0_: Wrappers.Result + out0_ = (crypto).AESEncrypt(d_2_aesEncryptInput_) + d_3_maybeEncryptionOutput_ = out0_ + d_4_valueOrError0_: Wrappers.Result = Wrappers.Result.default(AwsCryptographyPrimitivesTypes.AESEncryptOutput.default())() + def lambda0_(d_5_e_): + return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyPrimitives(d_5_e_) + + d_4_valueOrError0_ = (d_3_maybeEncryptionOutput_).MapFailure(lambda0_) + if (d_4_valueOrError0_).IsFailure(): + res = (d_4_valueOrError0_).PropagateFailure() + return res + d_6_encryptionOutput_: AwsCryptographyPrimitivesTypes.AESEncryptOutput + d_6_encryptionOutput_ = (d_4_valueOrError0_).Extract() + d_7_frame_: Frames.Frame + d_7_frame_ = Frames.Frame_RegularFrame(header, sequenceNumber, d_0_iv_, (d_6_encryptionOutput_).cipherText, (d_6_encryptionOutput_).authTag) + res = Wrappers.Result_Success(d_7_frame_) + return res + return res + + @staticmethod + def EncryptFinalFrame(key, header, plaintext, sequenceNumber, crypto): + res: Wrappers.Result = None + d_0_iv_: _dafny.Seq + d_0_iv_ = default__.IVSeq((header).suite, sequenceNumber) + d_1_aad_: _dafny.Seq + d_1_aad_ = default__.BodyAAD(((header).body).messageId, BodyAADContent_AADFinalFrame(), sequenceNumber, len(plaintext)) + d_2_aesEncryptInput_: AwsCryptographyPrimitivesTypes.AESEncryptInput + d_2_aesEncryptInput_ = AwsCryptographyPrimitivesTypes.AESEncryptInput_AESEncryptInput((((header).suite).encrypt).AES__GCM, d_0_iv_, key, plaintext, d_1_aad_) + d_3_maybeEncryptionOutput_: Wrappers.Result + out0_: Wrappers.Result + out0_ = (crypto).AESEncrypt(d_2_aesEncryptInput_) + d_3_maybeEncryptionOutput_ = out0_ + d_4_valueOrError0_: Wrappers.Result = Wrappers.Result.default(AwsCryptographyPrimitivesTypes.AESEncryptOutput.default())() + def lambda0_(d_5_e_): + return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyPrimitives(d_5_e_) + + d_4_valueOrError0_ = (d_3_maybeEncryptionOutput_).MapFailure(lambda0_) + if (d_4_valueOrError0_).IsFailure(): + res = (d_4_valueOrError0_).PropagateFailure() + return res + d_6_encryptionOutput_: AwsCryptographyPrimitivesTypes.AESEncryptOutput + d_6_encryptionOutput_ = (d_4_valueOrError0_).Extract() + d_7_finalFrame_: Frames.Frame + d_7_finalFrame_ = Frames.Frame_FinalFrame(header, sequenceNumber, d_0_iv_, (d_6_encryptionOutput_).cipherText, (d_6_encryptionOutput_).authTag) + res = Wrappers.Result_Success(d_7_finalFrame_) + return res + return res + + @staticmethod + def DecryptFramedMessageBody(body, key, crypto): + res: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_0_plaintext_: _dafny.Seq + d_0_plaintext_ = _dafny.Seq([]) + hi0_ = len((body).regularFrames) + for d_1_i_ in range(0, hi0_): + d_2_valueOrError0_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + out0_: Wrappers.Result + out0_ = default__.DecryptFrame(((body).regularFrames)[d_1_i_], key, crypto) + d_2_valueOrError0_ = out0_ + if (d_2_valueOrError0_).IsFailure(): + res = (d_2_valueOrError0_).PropagateFailure() + return res + d_3_plaintextSegment_: _dafny.Seq + d_3_plaintextSegment_ = (d_2_valueOrError0_).Extract() + d_0_plaintext_ = (d_0_plaintext_) + (d_3_plaintextSegment_) + d_4_valueOrError1_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + out1_: Wrappers.Result + out1_ = default__.DecryptFrame((body).finalFrame, key, crypto) + d_4_valueOrError1_ = out1_ + if (d_4_valueOrError1_).IsFailure(): + res = (d_4_valueOrError1_).PropagateFailure() + return res + d_5_finalPlaintextSegment_: _dafny.Seq + d_5_finalPlaintextSegment_ = (d_4_valueOrError1_).Extract() + d_0_plaintext_ = (d_0_plaintext_) + (d_5_finalPlaintextSegment_) + res = Wrappers.Result_Success(d_0_plaintext_) + return res + + @staticmethod + def DecryptFrame(frame, key, crypto): + res: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_0_aad_: _dafny.Seq + d_0_aad_ = default__.BodyAADByFrameType(frame) + d_1_maybePlaintextSegment_: Wrappers.Result + out0_: Wrappers.Result + out0_ = (crypto).AESDecrypt(AwsCryptographyPrimitivesTypes.AESDecryptInput_AESDecryptInput(((((frame).header).suite).encrypt).AES__GCM, key, (frame).encContent, (frame).authTag, (frame).iv, d_0_aad_)) + d_1_maybePlaintextSegment_ = out0_ + d_2_valueOrError0_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + def lambda0_(d_3_e_): + return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyPrimitives(d_3_e_) + + d_2_valueOrError0_ = (d_1_maybePlaintextSegment_).MapFailure(lambda0_) + if (d_2_valueOrError0_).IsFailure(): + res = (d_2_valueOrError0_).PropagateFailure() + return res + d_4_plaintextSegment_: _dafny.Seq + d_4_plaintextSegment_ = (d_2_valueOrError0_).Extract() + res = Wrappers.Result_Success(d_4_plaintextSegment_) + return res + return res + + @staticmethod + def BodyAADByFrameType(frame): + def lambda0_(): + source0_ = frame + if True: + if source0_.is_RegularFrame: + d_0_header_ = source0_.header + d_1_seqNum_ = source0_.seqNum + return (d_1_seqNum_, BodyAADContent_AADRegularFrame(), ((d_0_header_).body).frameLength) + if True: + if source0_.is_FinalFrame: + d_2_seqNum_ = source0_.seqNum + d_3_encContent_ = source0_.encContent + return (d_2_seqNum_, BodyAADContent_AADFinalFrame(), len(d_3_encContent_)) + if True: + d_4_encContent_ = source0_.encContent + return (default__.NONFRAMED__SEQUENCE__NUMBER, BodyAADContent_AADSingleBlock(), len(d_4_encContent_)) + + let_tmp_rhs0_ = lambda0_() + d_5_sequenceNumber_ = let_tmp_rhs0_[0] + d_6_bc_ = let_tmp_rhs0_[1] + d_7_length_ = let_tmp_rhs0_[2] + return default__.BodyAAD((((frame).header).body).messageId, d_6_bc_, d_5_sequenceNumber_, d_7_length_) + + @staticmethod + def BodyAAD(messageID, bc, sequenceNumber, length): + d_0_contentAAD_ = UTF8.default__.Encode(default__.BodyAADContentTypeString(bc)) + return (((messageID) + ((d_0_contentAAD_).value)) + (StandardLibrary_UInt.default__.UInt32ToSeq(sequenceNumber))) + (StandardLibrary_UInt.default__.UInt64ToSeq(length)) + + @staticmethod + def WriteFramedMessageBody(body): + return (default__.WriteMessageRegularFrames((body).regularFrames)) + (Frames.default__.WriteFinalFrame((body).finalFrame)) + + @staticmethod + def WriteMessageRegularFrames(frames): + d_0___accumulator_ = _dafny.Seq([]) + while True: + with _dafny.label(): + if (len(frames)) == (0): + return (_dafny.Seq([])) + (d_0___accumulator_) + elif True: + d_0___accumulator_ = (Frames.default__.WriteRegularFrame(Seq.default__.Last(frames))) + (d_0___accumulator_) + in0_ = Seq.default__.DropLast(frames) + frames = in0_ + raise _dafny.TailCall() + break + + @staticmethod + def ReadFramedMessageBody(buffer, header, regularFrames, continuation): + while True: + with _dafny.label(): + d_0_valueOrError0_ = SerializeFunctions.default__.ReadUInt32(continuation) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + d_1_sequenceNumber_ = (d_0_valueOrError0_).Extract() + if ((d_1_sequenceNumber_).data) != (default__.ENDFRAME__SEQUENCE__NUMBER): + d_2_valueOrError1_ = Frames.default__.ReadRegularFrame(continuation, header) + if (d_2_valueOrError1_).IsFailure(): + return (d_2_valueOrError1_).PropagateFailure() + elif True: + d_3_regularFrame_ = (d_2_valueOrError1_).Extract() + d_4_valueOrError2_ = Wrappers.default__.Need((((d_3_regularFrame_).data).seqNum) == ((len(regularFrames)) + (1)), SerializeFunctions.ReadProblems_Error(_dafny.Seq("Sequence number out of order."))) + if (d_4_valueOrError2_).IsFailure(): + return (d_4_valueOrError2_).PropagateFailure() + elif True: + d_5_nextRegularFrames_ = (regularFrames) + (_dafny.Seq([(d_3_regularFrame_).data])) + in0_ = buffer + in1_ = header + in2_ = d_5_nextRegularFrames_ + in3_ = (d_3_regularFrame_).tail + buffer = in0_ + header = in1_ + regularFrames = in2_ + continuation = in3_ + raise _dafny.TailCall() + elif True: + d_6_valueOrError3_ = Frames.default__.ReadFinalFrame(continuation, header) + if (d_6_valueOrError3_).IsFailure(): + return (d_6_valueOrError3_).PropagateFailure() + elif True: + d_7_finalFrame_ = (d_6_valueOrError3_).Extract() + d_8_valueOrError4_ = Wrappers.default__.Need((((d_7_finalFrame_).data).seqNum) == ((len(regularFrames)) + (1)), SerializeFunctions.ReadProblems_Error(_dafny.Seq("Sequence number out of order."))) + if (d_8_valueOrError4_).IsFailure(): + return (d_8_valueOrError4_).PropagateFailure() + elif True: + d_9_body_ = FramedMessageBody_FramedMessageBody(regularFrames, (d_7_finalFrame_).data) + return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_9_body_, (d_7_finalFrame_).tail)) + break + + @staticmethod + def ReadNonFramedMessageBody(buffer, header): + d_0_valueOrError0_ = Frames.default__.ReadNonFrame(buffer, header) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + d_1_block_ = (d_0_valueOrError0_).Extract() + return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead((d_1_block_).data, (d_1_block_).tail)) + + @_dafny.classproperty + def BODY__AAD__CONTENT__REGULAR__FRAME(instance): + return _dafny.Seq("AWSKMSEncryptionClient Frame") + @_dafny.classproperty + def BODY__AAD__CONTENT__FINAL__FRAME(instance): + return _dafny.Seq("AWSKMSEncryptionClient Final Frame") + @_dafny.classproperty + def BODY__AAD__CONTENT__SINGLE__BLOCK(instance): + return _dafny.Seq("AWSKMSEncryptionClient Single Block") + @_dafny.classproperty + def ENDFRAME__SEQUENCE__NUMBER(instance): + return Frames.default__.ENDFRAME__SEQUENCE__NUMBER + @_dafny.classproperty + def START__SEQUENCE__NUMBER(instance): + return Frames.default__.START__SEQUENCE__NUMBER + @_dafny.classproperty + def NONFRAMED__SEQUENCE__NUMBER(instance): + return Frames.default__.NONFRAMED__SEQUENCE__NUMBER + +class BodyAADContent: + @_dafny.classproperty + def AllSingletonConstructors(cls): + return [BodyAADContent_AADRegularFrame(), BodyAADContent_AADFinalFrame(), BodyAADContent_AADSingleBlock()] + @classmethod + def default(cls, ): + return lambda: BodyAADContent_AADRegularFrame() + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_AADRegularFrame(self) -> bool: + return isinstance(self, BodyAADContent_AADRegularFrame) + @property + def is_AADFinalFrame(self) -> bool: + return isinstance(self, BodyAADContent_AADFinalFrame) + @property + def is_AADSingleBlock(self) -> bool: + return isinstance(self, BodyAADContent_AADSingleBlock) + +class BodyAADContent_AADRegularFrame(BodyAADContent, NamedTuple('AADRegularFrame', [])): + def __dafnystr__(self) -> str: + return f'MessageBody.BodyAADContent.AADRegularFrame' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, BodyAADContent_AADRegularFrame) + def __hash__(self) -> int: + return super().__hash__() + +class BodyAADContent_AADFinalFrame(BodyAADContent, NamedTuple('AADFinalFrame', [])): + def __dafnystr__(self) -> str: + return f'MessageBody.BodyAADContent.AADFinalFrame' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, BodyAADContent_AADFinalFrame) + def __hash__(self) -> int: + return super().__hash__() + +class BodyAADContent_AADSingleBlock(BodyAADContent, NamedTuple('AADSingleBlock', [])): + def __dafnystr__(self) -> str: + return f'MessageBody.BodyAADContent.AADSingleBlock' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, BodyAADContent_AADSingleBlock) + def __hash__(self) -> int: + return super().__hash__() + + +class MessageRegularFrames: + def __init__(self): + pass + + @staticmethod + def default(): + return _dafny.Seq({}) + +class FramedMessageBody: + @classmethod + def default(cls, ): + return lambda: FramedMessageBody_FramedMessageBody(_dafny.Seq({}), Frames.Frame.default()()) + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_FramedMessageBody(self) -> bool: + return isinstance(self, FramedMessageBody_FramedMessageBody) + +class FramedMessageBody_FramedMessageBody(FramedMessageBody, NamedTuple('FramedMessageBody', [('regularFrames', Any), ('finalFrame', Any)])): + def __dafnystr__(self) -> str: + return f'MessageBody.FramedMessageBody.FramedMessageBody({_dafny.string_of(self.regularFrames)}, {_dafny.string_of(self.finalFrame)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, FramedMessageBody_FramedMessageBody) and self.regularFrames == __o.regularFrames and self.finalFrame == __o.finalFrame + def __hash__(self) -> int: + return super().__hash__() + + +class FramedMessage: + def __init__(self): + pass + + @staticmethod + def default(): + return FramedMessageBody.default()() + +class MessageFrame: + def __init__(self): + pass + + @staticmethod + def default(): + return Frames.Frame.default()() + +class Frame: + def __init__(self): + pass + + @staticmethod + def default(): + return Frames.Frame.default()() diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/SerializableTypes.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/SerializableTypes.py new file mode 100644 index 000000000..bd18bae25 --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/SerializableTypes.py @@ -0,0 +1,257 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import aws_encryption_sdk.internaldafny.generated.module_ as module_ +import _dafny as _dafny +import System_ as System_ +import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers +import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary +import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom +import aws_cryptography_primitives.internaldafny.generated.Random as Random +import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption +import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest +import aws_cryptography_primitives.internaldafny.generated.Digest as Digest +import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC +import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC +import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF +import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF +import aws_cryptography_primitives.internaldafny.generated.Signature as Signature +import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr +import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption +import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives +import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 +import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites +import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials +import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring +import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations +import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort +import smithy_dafny_standard_library.internaldafny.generated.Math as Math +import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq +import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils +import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants +import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID +import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping +import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets +import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext +import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping +import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring +import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms +import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.Time as Time +import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker +import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC +import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring +import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring +import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM +import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults +import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment +import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM +import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier +import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils +import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders +import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn +import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure +import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable +import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore +import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr +import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode +import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions +import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings +import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO +import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals +import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals +import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul +import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals +import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals +import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod +import smithy_dafny_standard_library.internaldafny.generated.Power as Power +import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm +import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop +import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams +import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting +import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings +import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt +import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare +import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall +import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas +import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes + +# Module: SerializableTypes + +class default__: + def __init__(self): + pass + + @staticmethod + def IsESDKEncryptedDataKey(edk): + return (((StandardLibrary_UInt.default__.HasUint16Len((edk).keyProviderId)) and (UTF8.default__.ValidUTF8Seq((edk).keyProviderId))) and (StandardLibrary_UInt.default__.HasUint16Len((edk).keyProviderInfo))) and (StandardLibrary_UInt.default__.HasUint16Len((edk).ciphertext)) + + @staticmethod + def IsESDKEncryptionContext(ec): + def lambda0_(forall_var_0_): + d_0_element_: _dafny.Seq = forall_var_0_ + if UTF8.ValidUTF8Bytes._Is(d_0_element_): + return not ((d_0_element_) in ((_dafny.MultiSet((ec).keys)) | (_dafny.MultiSet((ec).values)))) or ((StandardLibrary_UInt.default__.HasUint16Len(d_0_element_)) and (UTF8.default__.ValidUTF8Seq(d_0_element_))) + elif True: + return True + + return (((len(ec)) < (StandardLibrary_UInt.default__.UINT16__LIMIT)) and ((default__.Length(ec)) < (default__.ESDK__CANONICAL__ENCRYPTION__CONTEXT__MAX__LENGTH))) and (_dafny.quantifier(((_dafny.MultiSet((ec).keys)) | (_dafny.MultiSet((ec).values))).UniqueElements, True, lambda0_)) + + @staticmethod + def GetIvLength(a): + source0_ = (a).encrypt + if True: + d_0_e_ = source0_.AES__GCM + return (d_0_e_).ivLength + + @staticmethod + def GetTagLength(a): + source0_ = (a).encrypt + if True: + d_0_e_ = source0_.AES__GCM + return (d_0_e_).tagLength + + @staticmethod + def GetEncryptKeyLength(a): + source0_ = (a).encrypt + if True: + d_0_e_ = source0_.AES__GCM + return (d_0_e_).keyLength + + @staticmethod + def Length(encryptionContext): + if (len(encryptionContext)) == (0): + return 0 + elif True: + d_0_pairs_ = default__.GetCanonicalLinearPairs(encryptionContext) + return default__.LinearLength(d_0_pairs_) + + @staticmethod + def GetCanonicalLinearPairs(encryptionContext): + d_0_keys_ = SortedSets.default__.SetToOrderedSequence2((encryptionContext).keys, StandardLibrary_UInt.default__.UInt8Less) + return _dafny.Seq([Pair_Pair((d_0_keys_)[d_1_i_], (encryptionContext)[(d_0_keys_)[d_1_i_]]) for d_1_i_ in range(len(d_0_keys_))]) + + @staticmethod + def LinearLength(pairs): + d_0___accumulator_ = 0 + while True: + with _dafny.label(): + if (len(pairs)) == (0): + return (0) + (d_0___accumulator_) + elif True: + d_0___accumulator_ = (default__.PairLength(Seq.default__.Last(pairs))) + (d_0___accumulator_) + in0_ = Seq.default__.DropLast(pairs) + pairs = in0_ + raise _dafny.TailCall() + break + + @staticmethod + def PairLength(pair): + return (((2) + (len((pair).key))) + (2)) + (len((pair).value)) + + @_dafny.classproperty + def ESDK__CANONICAL__ENCRYPTION__CONTEXT__MAX__LENGTH(instance): + return (StandardLibrary_UInt.default__.UINT16__LIMIT) - (2) + +class ShortUTF8Seq: + def __init__(self): + pass + + @staticmethod + def default(): + return UTF8.ValidUTF8Bytes.default() + def _Is(source__): + d_0_s_: _dafny.Seq = source__ + if UTF8.ValidUTF8Bytes._Is(d_0_s_): + return StandardLibrary_UInt.default__.HasUint16Len(d_0_s_) + return False + +class Pair: + @classmethod + def default(cls, default_K, default_V): + return lambda: Pair_Pair(default_K(), default_V()) + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_Pair(self) -> bool: + return isinstance(self, Pair_Pair) + +class Pair_Pair(Pair, NamedTuple('Pair', [('key', Any), ('value', Any)])): + def __dafnystr__(self) -> str: + return f'SerializableTypes.Pair.Pair({_dafny.string_of(self.key)}, {_dafny.string_of(self.value)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, Pair_Pair) and self.key == __o.key and self.value == __o.value + def __hash__(self) -> int: + return super().__hash__() + + +class ESDKEncryptedDataKey: + def __init__(self): + pass + + @staticmethod + def default(): + return AwsCryptographyMaterialProvidersTypes.EncryptedDataKey.default()() + def _Is(source__): + d_1_e_: AwsCryptographyMaterialProvidersTypes.EncryptedDataKey = source__ + return default__.IsESDKEncryptedDataKey(d_1_e_) + +class ESDKEncryptionContext: + def __init__(self): + pass + + @staticmethod + def default(): + return _dafny.Map({}) + def _Is(source__): + d_2_ec_: _dafny.Map = source__ + return default__.IsESDKEncryptionContext(d_2_ec_) diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/SerializeFunctions.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/SerializeFunctions.py new file mode 100644 index 000000000..eb42a743f --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/SerializeFunctions.py @@ -0,0 +1,333 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import aws_encryption_sdk.internaldafny.generated.module_ as module_ +import _dafny as _dafny +import System_ as System_ +import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers +import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary +import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom +import aws_cryptography_primitives.internaldafny.generated.Random as Random +import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption +import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest +import aws_cryptography_primitives.internaldafny.generated.Digest as Digest +import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC +import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC +import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF +import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF +import aws_cryptography_primitives.internaldafny.generated.Signature as Signature +import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr +import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption +import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives +import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 +import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites +import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials +import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring +import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations +import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort +import smithy_dafny_standard_library.internaldafny.generated.Math as Math +import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq +import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils +import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants +import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID +import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping +import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets +import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext +import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping +import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring +import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms +import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.Time as Time +import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker +import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC +import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring +import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring +import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM +import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults +import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment +import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM +import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier +import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils +import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders +import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn +import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure +import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable +import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore +import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr +import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode +import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions +import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings +import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO +import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals +import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals +import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul +import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals +import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals +import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod +import smithy_dafny_standard_library.internaldafny.generated.Power as Power +import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm +import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop +import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams +import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting +import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings +import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt +import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare +import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall +import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas +import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes + +# Module: SerializeFunctions + +class default__: + def __init__(self): + pass + + @staticmethod + def Write(data): + return data + + @staticmethod + def Read(buffer, length): + d_0_end_ = ((buffer).start) + (length) + d_1_valueOrError0_ = Wrappers.default__.Need((len((buffer).bytes)) >= (d_0_end_), ReadProblems_MoreNeeded(d_0_end_)) + if (d_1_valueOrError0_).IsFailure(): + return (d_1_valueOrError0_).PropagateFailure() + elif True: + def iife0_(_pat_let0_0): + def iife1_(d_2_dt__update__tmp_h0_): + def iife2_(_pat_let1_0): + def iife3_(d_3_dt__update_hstart_h0_): + return ReadableBuffer_ReadableBuffer((d_2_dt__update__tmp_h0_).bytes, d_3_dt__update_hstart_h0_) + return iife3_(_pat_let1_0) + return iife2_(d_0_end_) + return iife1_(_pat_let0_0) + return Wrappers.Result_Success(SuccessfulRead_SuccessfulRead(_dafny.Seq(((buffer).bytes)[(buffer).start:d_0_end_:]), iife0_(buffer))) + + @staticmethod + def WriteUint16(number): + return default__.Write(StandardLibrary_UInt.default__.UInt16ToSeq(number)) + + @staticmethod + def ReadUInt16(buffer): + d_0_valueOrError0_ = default__.Read(buffer, 2) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + let_tmp_rhs0_ = (d_0_valueOrError0_).Extract() + d_1_uint16Bytes_ = let_tmp_rhs0_.data + d_2_tail_ = let_tmp_rhs0_.tail + return Wrappers.Result_Success(SuccessfulRead_SuccessfulRead(StandardLibrary_UInt.default__.SeqToUInt16(d_1_uint16Bytes_), d_2_tail_)) + + @staticmethod + def WriteUint32(number): + return default__.Write(StandardLibrary_UInt.default__.UInt32ToSeq(number)) + + @staticmethod + def ReadUInt32(buffer): + d_0_valueOrError0_ = default__.Read(buffer, 4) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + let_tmp_rhs0_ = (d_0_valueOrError0_).Extract() + d_1_uint32Bytes_ = let_tmp_rhs0_.data + d_2_tail_ = let_tmp_rhs0_.tail + return Wrappers.Result_Success(SuccessfulRead_SuccessfulRead(StandardLibrary_UInt.default__.SeqToUInt32(d_1_uint32Bytes_), d_2_tail_)) + + @staticmethod + def WriteUint64(number): + return default__.Write(StandardLibrary_UInt.default__.UInt64ToSeq(number)) + + @staticmethod + def ReadUInt64(buffer): + d_0_valueOrError0_ = default__.Read(buffer, 8) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + let_tmp_rhs0_ = (d_0_valueOrError0_).Extract() + d_1_uint64Bytes_ = let_tmp_rhs0_.data + d_2_tail_ = let_tmp_rhs0_.tail + return Wrappers.Result_Success(SuccessfulRead_SuccessfulRead(StandardLibrary_UInt.default__.SeqToUInt64(d_1_uint64Bytes_), d_2_tail_)) + + @staticmethod + def WriteShortLengthSeq(d): + return (default__.WriteUint16(len(d))) + (default__.Write(d)) + + @staticmethod + def ReadShortLengthSeq(buffer): + d_0_valueOrError0_ = default__.ReadUInt16(buffer) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + d_1_length_ = (d_0_valueOrError0_).Extract() + d_2_valueOrError1_ = default__.Read((d_1_length_).tail, (d_1_length_).data) + if (d_2_valueOrError1_).IsFailure(): + return (d_2_valueOrError1_).PropagateFailure() + elif True: + d_3_d_ = (d_2_valueOrError1_).Extract() + return Wrappers.Result_Success(d_3_d_) + + @staticmethod + def WriteUint32Seq(d): + return (default__.WriteUint32(len(d))) + (default__.Write(d)) + + @staticmethod + def ReadUint32Seq(buffer): + d_0_valueOrError0_ = default__.ReadUInt32(buffer) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + d_1_length_ = (d_0_valueOrError0_).Extract() + d_2_valueOrError1_ = default__.Read((d_1_length_).tail, (d_1_length_).data) + if (d_2_valueOrError1_).IsFailure(): + return (d_2_valueOrError1_).PropagateFailure() + elif True: + d_3_d_ = (d_2_valueOrError1_).Extract() + return Wrappers.Result_Success(d_3_d_) + + @staticmethod + def WriteUint64Seq(d): + return (default__.WriteUint64(len(d))) + (default__.Write(d)) + + @staticmethod + def ReadUint64Seq(buffer): + d_0_valueOrError0_ = default__.ReadUInt64(buffer) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + d_1_length_ = (d_0_valueOrError0_).Extract() + d_2_valueOrError1_ = default__.Read((d_1_length_).tail, (d_1_length_).data) + if (d_2_valueOrError1_).IsFailure(): + return (d_2_valueOrError1_).PropagateFailure() + elif True: + d_3_d_ = (d_2_valueOrError1_).Extract() + return Wrappers.Result_Success(d_3_d_) + + +class ReadProblems: + @classmethod + def default(cls, ): + return lambda: ReadProblems_MoreNeeded(int(0)) + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_MoreNeeded(self) -> bool: + return isinstance(self, ReadProblems_MoreNeeded) + @property + def is_Error(self) -> bool: + return isinstance(self, ReadProblems_Error) + +class ReadProblems_MoreNeeded(ReadProblems, NamedTuple('MoreNeeded', [('pos', Any)])): + def __dafnystr__(self) -> str: + return f'SerializeFunctions.ReadProblems.MoreNeeded({_dafny.string_of(self.pos)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, ReadProblems_MoreNeeded) and self.pos == __o.pos + def __hash__(self) -> int: + return super().__hash__() + +class ReadProblems_Error(ReadProblems, NamedTuple('Error', [('message', Any)])): + def __dafnystr__(self) -> str: + return f'SerializeFunctions.ReadProblems.Error({_dafny.string_of(self.message)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, ReadProblems_Error) and self.message == __o.message + def __hash__(self) -> int: + return super().__hash__() + + +class MoreNeeded: + def __init__(self): + pass + + @staticmethod + def default(): + return ReadProblems.default()() + def _Is(source__): + d_0_p_: ReadProblems = source__ + return (d_0_p_).is_MoreNeeded + +class ReadableBuffer: + @classmethod + def default(cls, ): + return lambda: ReadableBuffer_ReadableBuffer(_dafny.Seq({}), int(0)) + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_ReadableBuffer(self) -> bool: + return isinstance(self, ReadableBuffer_ReadableBuffer) + +class ReadableBuffer_ReadableBuffer(ReadableBuffer, NamedTuple('ReadableBuffer', [('bytes', Any), ('start', Any)])): + def __dafnystr__(self) -> str: + return f'SerializeFunctions.ReadableBuffer.ReadableBuffer({_dafny.string_of(self.bytes)}, {_dafny.string_of(self.start)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, ReadableBuffer_ReadableBuffer) and self.bytes == __o.bytes and self.start == __o.start + def __hash__(self) -> int: + return super().__hash__() + + +class SuccessfulRead: + @classmethod + def default(cls, default_T): + return lambda: SuccessfulRead_SuccessfulRead(default_T(), ReadableBuffer.default()()) + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_SuccessfulRead(self) -> bool: + return isinstance(self, SuccessfulRead_SuccessfulRead) + +class SuccessfulRead_SuccessfulRead(SuccessfulRead, NamedTuple('SuccessfulRead', [('data', Any), ('tail', Any)])): + def __dafnystr__(self) -> str: + return f'SerializeFunctions.SuccessfulRead.SuccessfulRead({_dafny.string_of(self.data)}, {_dafny.string_of(self.tail)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, SuccessfulRead_SuccessfulRead) and self.data == __o.data and self.tail == __o.tail + def __hash__(self) -> int: + return super().__hash__() + diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/SharedHeaderFunctions.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/SharedHeaderFunctions.py new file mode 100644 index 000000000..a50d37e17 --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/SharedHeaderFunctions.py @@ -0,0 +1,235 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import aws_encryption_sdk.internaldafny.generated.module_ as module_ +import _dafny as _dafny +import System_ as System_ +import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers +import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary +import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom +import aws_cryptography_primitives.internaldafny.generated.Random as Random +import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption +import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest +import aws_cryptography_primitives.internaldafny.generated.Digest as Digest +import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC +import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC +import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF +import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF +import aws_cryptography_primitives.internaldafny.generated.Signature as Signature +import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr +import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption +import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives +import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 +import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites +import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials +import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring +import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations +import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort +import smithy_dafny_standard_library.internaldafny.generated.Math as Math +import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq +import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils +import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants +import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID +import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping +import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets +import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext +import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping +import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring +import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms +import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.Time as Time +import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker +import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC +import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring +import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring +import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM +import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults +import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment +import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM +import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier +import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils +import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders +import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn +import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure +import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable +import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore +import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr +import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode +import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions +import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings +import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO +import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals +import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals +import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul +import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals +import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals +import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod +import smithy_dafny_standard_library.internaldafny.generated.Power as Power +import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm +import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop +import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams +import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting +import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings +import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt +import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare +import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall +import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas +import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes + +# Module: SharedHeaderFunctions + +class default__: + def __init__(self): + pass + + @staticmethod + def WriteMessageFormatVersion(version): + return SerializeFunctions.default__.Write((version).Serialize()) + + @staticmethod + def ReadMessageFormatVersion(buffer): + d_0_valueOrError0_ = SerializeFunctions.default__.Read(buffer, 1) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + d_1_rawVersion_ = (d_0_valueOrError0_).Extract() + def lambda0_(d_3_e_): + return SerializeFunctions.ReadProblems_Error(d_3_e_) + + d_2_valueOrError1_ = (HeaderTypes.MessageFormatVersion.Get((d_1_rawVersion_).data)).MapFailure(lambda0_) + if (d_2_valueOrError1_).IsFailure(): + return (d_2_valueOrError1_).PropagateFailure() + elif True: + d_4_version_ = (d_2_valueOrError1_).Extract() + return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_4_version_, (d_1_rawVersion_).tail)) + + @staticmethod + def WriteESDKSuiteId(suite): + return SerializeFunctions.default__.Write((suite).binaryId) + + @staticmethod + def ReadESDKSuiteId(buffer, mpl): + d_0_valueOrError0_ = SerializeFunctions.default__.Read(buffer, 2) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + d_1_esdkSuiteIdBytes_ = (d_0_valueOrError0_).Extract() + def lambda0_(d_3___v0_): + return SerializeFunctions.ReadProblems_Error(_dafny.Seq("Algorithm suite ID not supported.")) + + d_2_valueOrError1_ = ((mpl).GetAlgorithmSuiteInfo((d_1_esdkSuiteIdBytes_).data)).MapFailure(lambda0_) + if (d_2_valueOrError1_).IsFailure(): + return (d_2_valueOrError1_).PropagateFailure() + elif True: + d_4_suite_ = (d_2_valueOrError1_).Extract() + d_5_valueOrError2_ = Wrappers.default__.Need(((d_4_suite_).binaryId) == ((d_1_esdkSuiteIdBytes_).data), SerializeFunctions.ReadProblems_Error(_dafny.Seq("Algorithm suite ID not supported."))) + if (d_5_valueOrError2_).IsFailure(): + return (d_5_valueOrError2_).PropagateFailure() + elif True: + d_6_valueOrError3_ = Wrappers.default__.Need(((d_4_suite_).id).is_ESDK, SerializeFunctions.ReadProblems_Error(_dafny.Seq("Algorithm suite ID not supported."))) + if (d_6_valueOrError3_).IsFailure(): + return (d_6_valueOrError3_).PropagateFailure() + elif True: + d_7_esdkSuite_ = d_4_suite_ + return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_7_esdkSuite_, (d_1_esdkSuiteIdBytes_).tail)) + + @staticmethod + def WriteMessageId(messageId): + return SerializeFunctions.default__.Write(messageId) + + @staticmethod + def ReadMessageIdV1(buffer): + d_0_valueOrError0_ = SerializeFunctions.default__.Read(buffer, HeaderTypes.default__.MESSAGE__ID__LEN__V1) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + d_1_messageIdRead_ = (d_0_valueOrError0_).Extract() + d_2_messageId_ = (d_1_messageIdRead_).data + return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_2_messageId_, (d_1_messageIdRead_).tail)) + + @staticmethod + def ReadMessageIdV2(buffer): + d_0_valueOrError0_ = SerializeFunctions.default__.Read(buffer, HeaderTypes.default__.MESSAGE__ID__LEN__V2) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + d_1_messageIdRead_ = (d_0_valueOrError0_).Extract() + d_2_messageId_ = (d_1_messageIdRead_).data + return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_2_messageId_, (d_1_messageIdRead_).tail)) + + @staticmethod + def WriteContentType(contentType): + return SerializeFunctions.default__.Write(_dafny.Seq([(contentType).Serialize()])) + + @staticmethod + def ReadContentType(buffer): + d_0_valueOrError0_ = SerializeFunctions.default__.Read(buffer, 1) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + let_tmp_rhs0_ = (d_0_valueOrError0_).Extract() + d_1_raw_ = let_tmp_rhs0_.data + d_2_tail_ = let_tmp_rhs0_.tail + def lambda0_(d_4_e_): + return SerializeFunctions.ReadProblems_Error(d_4_e_) + + d_3_valueOrError1_ = (HeaderTypes.ContentType.Get((d_1_raw_)[0])).MapFailure(lambda0_) + if (d_3_valueOrError1_).IsFailure(): + return (d_3_valueOrError1_).PropagateFailure() + elif True: + d_5_contentType_ = (d_3_valueOrError1_).Extract() + return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_5_contentType_, d_2_tail_)) + diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/V1HeaderBody.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/V1HeaderBody.py new file mode 100644 index 000000000..a9b35ab31 --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/V1HeaderBody.py @@ -0,0 +1,293 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import aws_encryption_sdk.internaldafny.generated.module_ as module_ +import _dafny as _dafny +import System_ as System_ +import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers +import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary +import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom +import aws_cryptography_primitives.internaldafny.generated.Random as Random +import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption +import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest +import aws_cryptography_primitives.internaldafny.generated.Digest as Digest +import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC +import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC +import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF +import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF +import aws_cryptography_primitives.internaldafny.generated.Signature as Signature +import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr +import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption +import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives +import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 +import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites +import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials +import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring +import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations +import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort +import smithy_dafny_standard_library.internaldafny.generated.Math as Math +import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq +import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils +import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants +import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID +import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping +import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets +import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext +import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping +import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring +import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms +import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.Time as Time +import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker +import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC +import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring +import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring +import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM +import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults +import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment +import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM +import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier +import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils +import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders +import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn +import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure +import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable +import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore +import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr +import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode +import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions +import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings +import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO +import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals +import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals +import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul +import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals +import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals +import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod +import smithy_dafny_standard_library.internaldafny.generated.Power as Power +import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm +import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop +import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams +import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting +import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings +import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt +import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare +import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall +import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas +import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys + +# Module: V1HeaderBody + +class default__: + def __init__(self): + pass + + @staticmethod + def WriteV1HeaderBody(body): + return (((((((((SharedHeaderFunctions.default__.WriteMessageFormatVersion(HeaderTypes.MessageFormatVersion_V1())) + (default__.WriteV1MessageType((body).messageType))) + (SharedHeaderFunctions.default__.WriteESDKSuiteId((body).algorithmSuite))) + (SharedHeaderFunctions.default__.WriteMessageId((body).messageId))) + (EncryptionContext.default__.WriteAADSection((body).encryptionContext))) + (EncryptedDataKeys.default__.WriteEncryptedDataKeysSection((body).encryptedDataKeys))) + (SharedHeaderFunctions.default__.WriteContentType((body).contentType))) + (default__.WriteV1ReservedBytes(default__.RESERVED__BYTES))) + (default__.WriteV1HeaderIvLength(SerializableTypes.default__.GetIvLength((body).algorithmSuite)))) + (SerializeFunctions.default__.WriteUint32((body).frameLength)) + + @staticmethod + def ReadV1HeaderBody(buffer, maxEdks, mpl): + d_0_valueOrError0_ = SharedHeaderFunctions.default__.ReadMessageFormatVersion(buffer) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + d_1_version_ = (d_0_valueOrError0_).Extract() + d_2_valueOrError1_ = Wrappers.default__.Need(((d_1_version_).data).is_V1, SerializeFunctions.ReadProblems_Error(_dafny.Seq("Message version must be version 1."))) + if (d_2_valueOrError1_).IsFailure(): + return (d_2_valueOrError1_).PropagateFailure() + elif True: + d_3_valueOrError2_ = default__.ReadV1MessageType((d_1_version_).tail) + if (d_3_valueOrError2_).IsFailure(): + return (d_3_valueOrError2_).PropagateFailure() + elif True: + d_4_messageType_ = (d_3_valueOrError2_).Extract() + d_5_valueOrError3_ = SharedHeaderFunctions.default__.ReadESDKSuiteId((d_4_messageType_).tail, mpl) + if (d_5_valueOrError3_).IsFailure(): + return (d_5_valueOrError3_).PropagateFailure() + elif True: + d_6_suite_ = (d_5_valueOrError3_).Extract() + d_7_valueOrError4_ = Wrappers.default__.Need((((d_6_suite_).data).commitment).is_None, SerializeFunctions.ReadProblems_Error(_dafny.Seq("Algorithm suite must not support commitment."))) + if (d_7_valueOrError4_).IsFailure(): + return (d_7_valueOrError4_).PropagateFailure() + elif True: + d_8_valueOrError5_ = SharedHeaderFunctions.default__.ReadMessageIdV1((d_6_suite_).tail) + if (d_8_valueOrError5_).IsFailure(): + return (d_8_valueOrError5_).PropagateFailure() + elif True: + d_9_messageId_ = (d_8_valueOrError5_).Extract() + d_10_valueOrError6_ = EncryptionContext.default__.ReadAADSection((d_9_messageId_).tail) + if (d_10_valueOrError6_).IsFailure(): + return (d_10_valueOrError6_).PropagateFailure() + elif True: + d_11_encryptionContext_ = (d_10_valueOrError6_).Extract() + d_12_valueOrError7_ = EncryptedDataKeys.default__.ReadEncryptedDataKeysSection((d_11_encryptionContext_).tail, maxEdks) + if (d_12_valueOrError7_).IsFailure(): + return (d_12_valueOrError7_).PropagateFailure() + elif True: + d_13_encryptedDataKeys_ = (d_12_valueOrError7_).Extract() + d_14_valueOrError8_ = SharedHeaderFunctions.default__.ReadContentType((d_13_encryptedDataKeys_).tail) + if (d_14_valueOrError8_).IsFailure(): + return (d_14_valueOrError8_).PropagateFailure() + elif True: + d_15_contentType_ = (d_14_valueOrError8_).Extract() + d_16_valueOrError9_ = default__.ReadV1ReservedBytes((d_15_contentType_).tail) + if (d_16_valueOrError9_).IsFailure(): + return (d_16_valueOrError9_).PropagateFailure() + elif True: + d_17_reservedBytes_ = (d_16_valueOrError9_).Extract() + d_18_valueOrError10_ = default__.ReadV1HeaderIvLength((d_17_reservedBytes_).tail, (d_6_suite_).data) + if (d_18_valueOrError10_).IsFailure(): + return (d_18_valueOrError10_).PropagateFailure() + elif True: + d_19_headerIvLength_ = (d_18_valueOrError10_).Extract() + d_20_valueOrError11_ = SerializeFunctions.default__.ReadUInt32((d_19_headerIvLength_).tail) + if (d_20_valueOrError11_).IsFailure(): + return (d_20_valueOrError11_).PropagateFailure() + elif True: + d_21_frameLength_ = (d_20_valueOrError11_).Extract() + d_22_body_ = HeaderTypes.HeaderBody_V1HeaderBody((d_4_messageType_).data, (d_6_suite_).data, (d_9_messageId_).data, (d_11_encryptionContext_).data, (d_13_encryptedDataKeys_).data, (d_15_contentType_).data, (d_19_headerIvLength_).data, (d_21_frameLength_).data) + return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_22_body_, (d_21_frameLength_).tail)) + + @staticmethod + def WriteV1MessageType(messageType): + return _dafny.Seq([(messageType).Serialize()]) + + @staticmethod + def ReadV1MessageType(buffer): + d_0_valueOrError0_ = SerializeFunctions.default__.Read(buffer, 1) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + let_tmp_rhs0_ = (d_0_valueOrError0_).Extract() + d_1_raw_ = let_tmp_rhs0_.data + d_2_tail_ = let_tmp_rhs0_.tail + def lambda0_(d_4_e_): + return SerializeFunctions.ReadProblems_Error(d_4_e_) + + d_3_valueOrError1_ = (HeaderTypes.MessageType.Get((d_1_raw_)[0])).MapFailure(lambda0_) + if (d_3_valueOrError1_).IsFailure(): + return (d_3_valueOrError1_).PropagateFailure() + elif True: + d_5_messageType_ = (d_3_valueOrError1_).Extract() + return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_5_messageType_, d_2_tail_)) + + @staticmethod + def WriteV1ReservedBytes(reservedBytes): + return reservedBytes + + @staticmethod + def ReadV1ReservedBytes(buffer): + d_0_valueOrError0_ = SerializeFunctions.default__.Read(buffer, len(default__.RESERVED__BYTES)) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + let_tmp_rhs0_ = (d_0_valueOrError0_).Extract() + d_1_raw_ = let_tmp_rhs0_.data + d_2_tail_ = let_tmp_rhs0_.tail + d_3_valueOrError1_ = Wrappers.default__.Need((d_1_raw_) == (default__.RESERVED__BYTES), SerializeFunctions.ReadProblems_Error(_dafny.Seq("Incorrect reserved bytes."))) + if (d_3_valueOrError1_).IsFailure(): + return (d_3_valueOrError1_).PropagateFailure() + elif True: + d_4_reservedBytes_ = d_1_raw_ + return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_4_reservedBytes_, d_2_tail_)) + + @staticmethod + def WriteV1HeaderIvLength(ivLength): + return _dafny.Seq([ivLength]) + + @staticmethod + def ReadV1HeaderIvLength(buffer, suite): + d_0_valueOrError0_ = SerializeFunctions.default__.Read(buffer, 1) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + let_tmp_rhs0_ = (d_0_valueOrError0_).Extract() + d_1_raw_ = let_tmp_rhs0_.data + d_2_tail_ = let_tmp_rhs0_.tail + d_3_valueOrError1_ = Wrappers.default__.Need(((d_1_raw_)[0]) == (SerializableTypes.default__.GetIvLength(suite)), SerializeFunctions.ReadProblems_Error(_dafny.Seq("HeaderIv Length does not match Algorithm Suite."))) + if (d_3_valueOrError1_).IsFailure(): + return (d_3_valueOrError1_).PropagateFailure() + elif True: + return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead((d_1_raw_)[0], d_2_tail_)) + + @_dafny.classproperty + def RESERVED__BYTES(instance): + return _dafny.Seq([0, 0, 0, 0]) + +class V1HeaderBody: + def __init__(self): + pass + + @staticmethod + def default(): + return HeaderTypes.HeaderBody.default()() + def _Is(source__): + d_0_h_: HeaderTypes.HeaderBody = source__ + return (d_0_h_).is_V1HeaderBody + +class ReservedBytes: + def __init__(self): + pass + + @staticmethod + def default(): + return default__.RESERVED__BYTES + def _Is(source__): + d_1_s_: _dafny.Seq = source__ + return (d_1_s_) == (default__.RESERVED__BYTES) diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/V2HeaderBody.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/V2HeaderBody.py new file mode 100644 index 000000000..78d75ae5a --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/V2HeaderBody.py @@ -0,0 +1,211 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import aws_encryption_sdk.internaldafny.generated.module_ as module_ +import _dafny as _dafny +import System_ as System_ +import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers +import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary +import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom +import aws_cryptography_primitives.internaldafny.generated.Random as Random +import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption +import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest +import aws_cryptography_primitives.internaldafny.generated.Digest as Digest +import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC +import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC +import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF +import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF +import aws_cryptography_primitives.internaldafny.generated.Signature as Signature +import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr +import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption +import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives +import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 +import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites +import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials +import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring +import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations +import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort +import smithy_dafny_standard_library.internaldafny.generated.Math as Math +import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq +import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils +import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants +import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID +import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping +import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets +import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext +import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping +import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring +import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms +import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.Time as Time +import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker +import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC +import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring +import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring +import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM +import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults +import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment +import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM +import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier +import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils +import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders +import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn +import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure +import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable +import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore +import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr +import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode +import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions +import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings +import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO +import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals +import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals +import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul +import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals +import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals +import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod +import smithy_dafny_standard_library.internaldafny.generated.Power as Power +import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm +import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop +import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams +import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting +import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings +import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt +import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare +import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall +import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas +import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody + +# Module: V2HeaderBody + +class default__: + def __init__(self): + pass + + @staticmethod + def WriteV2HeaderBody(body): + return (((((((SharedHeaderFunctions.default__.WriteMessageFormatVersion(HeaderTypes.MessageFormatVersion_V2())) + (SharedHeaderFunctions.default__.WriteESDKSuiteId((body).algorithmSuite))) + (SharedHeaderFunctions.default__.WriteMessageId((body).messageId))) + (EncryptionContext.default__.WriteAADSection((body).encryptionContext))) + (EncryptedDataKeys.default__.WriteEncryptedDataKeysSection((body).encryptedDataKeys))) + (SharedHeaderFunctions.default__.WriteContentType((body).contentType))) + (SerializeFunctions.default__.WriteUint32((body).frameLength))) + (SerializeFunctions.default__.Write((body).suiteData)) + + @staticmethod + def ReadV2HeaderBody(buffer, maxEdks, mpl): + d_0_valueOrError0_ = SharedHeaderFunctions.default__.ReadMessageFormatVersion(buffer) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + d_1_version_ = (d_0_valueOrError0_).Extract() + d_2_valueOrError1_ = Wrappers.default__.Need(((d_1_version_).data).is_V2, SerializeFunctions.ReadProblems_Error(_dafny.Seq("Message version must be version 2."))) + if (d_2_valueOrError1_).IsFailure(): + return (d_2_valueOrError1_).PropagateFailure() + elif True: + d_3_valueOrError2_ = SharedHeaderFunctions.default__.ReadESDKSuiteId((d_1_version_).tail, mpl) + if (d_3_valueOrError2_).IsFailure(): + return (d_3_valueOrError2_).PropagateFailure() + elif True: + d_4_suite_ = (d_3_valueOrError2_).Extract() + d_5_valueOrError3_ = Wrappers.default__.Need((((d_4_suite_).data).commitment).is_HKDF, SerializeFunctions.ReadProblems_Error(_dafny.Seq("Algorithm suite must support commitment."))) + if (d_5_valueOrError3_).IsFailure(): + return (d_5_valueOrError3_).PropagateFailure() + elif True: + d_6_valueOrError4_ = SharedHeaderFunctions.default__.ReadMessageIdV2((d_4_suite_).tail) + if (d_6_valueOrError4_).IsFailure(): + return (d_6_valueOrError4_).PropagateFailure() + elif True: + d_7_messageId_ = (d_6_valueOrError4_).Extract() + d_8_valueOrError5_ = EncryptionContext.default__.ReadAADSection((d_7_messageId_).tail) + if (d_8_valueOrError5_).IsFailure(): + return (d_8_valueOrError5_).PropagateFailure() + elif True: + d_9_encryptionContext_ = (d_8_valueOrError5_).Extract() + d_10_valueOrError6_ = EncryptedDataKeys.default__.ReadEncryptedDataKeysSection((d_9_encryptionContext_).tail, maxEdks) + if (d_10_valueOrError6_).IsFailure(): + return (d_10_valueOrError6_).PropagateFailure() + elif True: + d_11_encryptedDataKeys_ = (d_10_valueOrError6_).Extract() + d_12_valueOrError7_ = SharedHeaderFunctions.default__.ReadContentType((d_11_encryptedDataKeys_).tail) + if (d_12_valueOrError7_).IsFailure(): + return (d_12_valueOrError7_).PropagateFailure() + elif True: + d_13_contentType_ = (d_12_valueOrError7_).Extract() + d_14_valueOrError8_ = SerializeFunctions.default__.ReadUInt32((d_13_contentType_).tail) + if (d_14_valueOrError8_).IsFailure(): + return (d_14_valueOrError8_).PropagateFailure() + elif True: + d_15_frameLength_ = (d_14_valueOrError8_).Extract() + d_16_valueOrError9_ = SerializeFunctions.default__.Read((d_15_frameLength_).tail, ((((d_4_suite_).data).commitment).HKDF).outputKeyLength) + if (d_16_valueOrError9_).IsFailure(): + return (d_16_valueOrError9_).PropagateFailure() + elif True: + d_17_suiteData_ = (d_16_valueOrError9_).Extract() + d_18_body_ = HeaderTypes.HeaderBody_V2HeaderBody((d_4_suite_).data, (d_7_messageId_).data, (d_9_encryptionContext_).data, (d_11_encryptedDataKeys_).data, (d_13_contentType_).data, (d_15_frameLength_).data, (d_17_suiteData_).data) + return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_18_body_, (d_17_suiteData_).tail)) + + @_dafny.classproperty + def headerBytesToAADStart(instance): + return ((1) + (2)) + (32) + +class V2HeaderBody: + def __init__(self): + pass + + @staticmethod + def default(): + return HeaderTypes.HeaderBody.default()() + def _Is(source__): + d_0_h_: HeaderTypes.HeaderBody = source__ + return (d_0_h_).is_V2HeaderBody diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__main__.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__main__.py new file mode 100644 index 000000000..8c5e63fc4 --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__main__.py @@ -0,0 +1,15 @@ +# Dafny program the_program compiled into Python +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import aws_encryption_sdk.internaldafny.generated.module_ as module_ +import _dafny as _dafny + +try: + dafnyArgs = [_dafny.Seq(a) for a in sys.argv] + module_.default__.Test____Main____(dafnyArgs) +except _dafny.HaltException as e: + _dafny.print("[Program halted] " + e.message + "\n") + sys.exit(1) diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/AwsCryptographyEncryptionSdkTypes.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/AwsCryptographyEncryptionSdkTypes.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..53c73c99bec6498069f603bbf26ac9eceef3e593 GIT binary patch literal 54096 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 literal 0 HcmV?d00001 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/AwsCryptographyEncryptionSdkTypes.cpython-312.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/AwsCryptographyEncryptionSdkTypes.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6e66d2de81a0f58de42de0e5ddca72ef1563b740 GIT binary patch literal 47199 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

0T$ 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 b5ZCklS-QgK%vR%lgnftxaYdsLtrh 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 T6vX<;@l;dJ3kojMNsIpqK?x3{ literal 0 HcmV?d00001 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/EncryptDecryptHelpers.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/EncryptDecryptHelpers.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..dec9d20df5d8d00827a167cbf09a33006c869b97 GIT binary patch literal 57077 zcmeHw349#adEe}T`@RW+xJ2;)MdBg}@UlqU06`ES0A3?P!{zP(SYUw#XBQ*^Ekvbp zVkl7>xt1%rIZQjYELUsL7li11ZX4u_K!dhvnrf!;sw(Q1nnz-Nh=6tgY z?k+$#`L!7=-pu>IH}5{a?|a{S^O=HzTn4V9S4L-U-eH(OLyLAf)ra@@7BI}qjEC{q zd<=_syU(^@XYC6P*0JDZoeLRkh7ECtFLNP_%_7fEU-m){n?s&$zTAa8x824pEm8fIQg|6#rsCxkUcpwVcqN5bu~jO*jl!$hY8Bs3;WccH zitnKCTDDfj>nOaQtyl2|3U6c^Rs1mu-^uP&@y98A7rRTvcT@Ntc8`khrSK-UNyYb3 z_!I0CD!!k>53mPRyqUsV*cKIUrSLYkO~uUm+oj^&6yC%3sCX}h_pyB{-cR8J?0||7 zQuq)%q~fP3e3%_p@iP=Y!j7o;SqdLzM^$``!q2hiRD7JmC)f!UpQP~f?0FTxK;akJ ziz{VKjh;n&&gDlSlXfDNd4kiwVQWfi|c z;WycvDt?Q?SJ)L5U#0M8*k@EcMB!`fnur zRs3I2_(#}}sQ611{!#X$D*i7i{AKoK6@P`oKgNDc#s3wB{~Y^sD*p2n{tN6csQ52Z z_{Z6gtN0xX{{;I975^lK{}TI4D*h=7|1|q)6@Qh&Kf``T#b2ZF&$6FY@qbO>ud}bK z_!|`dIreiZ{%>sMQMB(??dn*1PDLl$XRXj%Ff5iTgipv!K$Lt@g_@7YtefGYJ|0fFnCi_hlf0x4l zl>Ji`|IZZuXY8M;_?pfCY@0na)^6^bJIb+)A_Y3&o_Af66-D+Iq zrp5gJTQ=mtc!srk7}oBweUM=tywhXdL9hh_rmj6<^kgnV+MucF+`;@r1+%Aqw>$T=Q<+O_Npa-16~QNQrn0srr3f`QES z1oK(j+0TL@I|ICLI)EM;e(@GWiG$a_cmS{i9@q5ZN=w(xK%b6J^bWTO(7?P4e4u4%B{=I}YzYW%e48`g=HTrX z?_!V_7F|9ilo@`J7hFN!)1n5}%agbUdEXKwt$Arh&gMApq8GBbTB_%^S;Jn$TxNms z923jVUw6I_kBl4hu3ac-AZ1ZUnt4#e;XbFA*&VGjm|PhqWP25S0JWoDYmT7F-yL%- zninR-gzR+ZU2}$KCwRf@@_ASJ{^dn?5b8Z3pd?2wyC`^r{KTwZ2%g~=XM(d6 z{B^lO_dUV~03iP|YK71@56Z}iA8K`j$$?Cfm6kP70 zoPAMnEn%h0h2wkx8}-Dp+YLcBWy%H90uF0x1aeM54?82U3`vr=dAL>%8ncpYj~+KC zmwLE1?uN^^%#R9vg5VcgIl0oqwVQma!EymC(*|-0#hBmPL|N0rUfpA~$A^0S2!s__ z2je;By`6`pohPF^Cn7s1#L21f&ZniFPm9?N_iJ}YYX>5=19uC=i&w(6Q&R1en7uug zUl+}5isUtg^PZ6Mo_N4GbFSH9<-4P0M)ktOg#Qojk02hAZYPifLmAS-xmrw?YahuvQgE=R?WIFv`!p!MCVNP%7 zb9zgLUIZ~26Wy9UWKX5_LVvK|!LA*5(XE{H2m2kpb(_7@KB50&#?@<%2q)1JN}Pi{ z&8N~^g4;AZHFALXGX4r#`qsw1tx(P#_|u znX}{tIaj%p7cp%@H5%K|s6k@~7;=u_x~T*u=c($ZOvZ)fa(jW@UbJId_=1M=wW_HUz2P`n6e+aEx)JctmO;H@BN zS9+D+10Yk_CP}Z#hTiZp6VzuCss)+*A-temLF|$0W%R1V^Az36=~10_gSp6V^vpRu z4xy4to8IfJ?HK2>iOuIj@1u$H5iHem4CSNu&N;n&EIFg*W=lRZsPfZ$@*SMv;x210 z?cv5g% zD02?SDRR9Eedl$(|Ip>MmL1Ao%b{AS-kUaPO?6th(3)^iBiEdc(&1amEf?9JwY*SH z;DyE#FWEjoR}D?bJc%>0!16j^c;Sv-yj-UV;adxH-Evy|!K4s$%GuuBR_nC){dT=TeExz#6( zS?&T5p3^HjVc2}a=Xbk&fhU_a&%cg2!M^nzbHD76R5mG|e=1ydMJl@@=3gQ6#%jsX zB2cMbPlHa|Hti(yxSXkw!*Z4yp@3ZziDZ`t1pwX4)6={l7u~=_c-=0f*N1r!33vnC zSwFB>*uUgLm6)Dh_Th_i`9#pQ=y3_2Gu~^0OIYE~4=o1ei~xVVtwSY4;%i9G9dRvb zgnJo0>twG6W^#nDlO4br2sBY57rJ~ieqbPG7bcKq7qBPF8GSvy6I~#mSQc*ZavrfM z#VOZqST#xoHkv#SEiNqwIV&J%5W-(}dR#%5oUN8$Kz3dO4p(P0)U*rjm>#25P)(-q zmYZL~l9io7U}c&L=5{XaDbFM(o1@ka&j@U9=zKV zaE-ZunhS7p2GB#mlQep`gWQ5^8C8>WV+V79_`++38ZtFwh>bh-MxlJI!HDH@W8{WXyavm*U;`2rF ze9;b6;{Cc-sqR>`ZX{ASa(6mhcV4PHAFXvoYF+oP%}1}@j$FG95p>xH@Rct6Fp_U) z?AI`uF1uR+-Dq>$JZQrk*y?z+fSHI8g$%~Zc124&Bc+|;(xX!8Q8kC}Zr>lRJ{+k& z9Ioz^syo*U->u&z)g6{ePuZWwo6GJ;@Tz?oQ?~mCTEK+olAHJp=6XhKf18-yWGdpXPJhKO^|RsT zr=;em!p&1sGxC@Z?6#aK+XKdAW-|4sY|+}`NbT_5!Eo()srGz&ncjOWx~C_yrzgCp zPukNbWU`2@*_IlTpy3`t)A@*C2QH?Tc1f)+60x$G=HgQ+!} z!b+)d*PUmj-N(a)C#1p?(AbJf*K-vLT&D}5)#5ZlC~zEXKoSPR%{7}HBs=j_N0a?5 zH3K2pNoF9VvpxhbuQSs&2q1gS7D8FH>A&Z>YXD~;52j17i^4RH# z`+0jJ2DZs@c5=0JXwmIo0BLiOZ&*;|KOnEkhPj7KuX2_OlF?NdgV=-~G6#Ck_9AeW(16{x9&EvQ18~rO7Qt(_QM@&bp%a+kQaz?{kphm{ zO%7oOZo(`Y(_jR!g0D8vMbXBsc5S&RzJa0RRPueu`2%}a38vX`lvY#vMoR+ zMv?+eG|`PIsC{S(ei!3IG8qcNS&*~i0izprO!2n$Td&xjf98c}U@VLuX^{TK`g#BF z!JvnW=gl2>Du}++%iwLnkB%GszPU?6rv@Ld>%N2|L2M;jNILx;EYUFN(t7u%V%2$T zPZ~5o8AQx6>Rff)xaOosQcN-#*Vf_Tqqdh}M1zsbNTq2+OU%ky$1|ZWWP9G8sK9P8 z{-U6sJt%-oEt-&Ro{XEA4UZiLUl_gmo3do*`N{qxa^VG}z45VoB?!!cgBuD6!|<-` zoaa|m@ptWb-$dW|g}z>n>pR;setB$iX!I<{^^BgK?7KAC?=7t>TRWY0q(S+X=DinXe8>z4PMrl}Hct z+h<_N0xwlNUR);axqr3Sh`hnA#NL4UZ*aR77yUtkxx9-FK;H5|uX`Gn1b*6kt6>i; z^c+xV-vfJ^@(J%T;a}j%STE;ZUv|OT(6pBqNSO*tSg_fBK7N5;3+f#cqLO{b-%xqI{1rTJwT z;&0m4aMbtNp2cAwZ(!SZ8!ceMbNML;Jc9|I3%~^O>9fz(`!1@1_e0GXNNjy`4?zO3tTxIU4djFXOswyinSEInO9NlH(*rB!+s@{K0u zEUPiNI+I5EOBRsGS{*o580^Lu$B|bN-Wz8lqnY-954#2*PZlc;i7x#0w^mezbtUNs2>rK*k7Nu@4^7mJurQp4|zh zfFR2uYss)$jp-Hw!Xb#lBnKpu&uX(VtMmvwywkI=&@cEGh%_pG+J-#}x)iYLh*ZUi zSEs{OGg8%zSUeL?QEnxB!WyJkkzgL7C76UXPcP+d9B4!_!fgnWq_U|}nX6#@-(b; z3gH6g>j35}PIaM;(3I_*dtreSE~6Ka{HanyEh7OvCq(yw78tgx0z*)M=m24(rI9PL zNQk7s!*wdMNJt*1FmpIs=n_Qopm5}+@hyLK$HV%?UqC>CmtYEij(N9!=epy5OQ+Ow zGTJf_X&DH^(rn96xMf&s83r!ve(f%)wk2A7C{laq&0A8(pm>7OJua0VSA}U0>{U5c-^*kw zc1z_g(ekcHdDp$}38{N3+8v5?hr->@O5M+f%Wq5Nx7Yh(Pqd2pdt>b#VtyTR53?vZ zG|Wr}lv^54M;cGxJrZu5lo}_&U#u87lLL{W1L2|;si+0yC3MUyPJrymx60YV5M@X(WuVI(%4MoFjk*blDa}8{WWH zv5XclA-Ovm*GCejv%E1{x<697|Fuiu(hjM#LoJMW%39~^W6*Aqb)AE|atUK*uG-3^ zf=``7pC`03aO^sl4$V@hpMxf<)L>W>>ux2XjA5KM^wkK*ZjMox2GG_wlgq0l>G^!qTTNoudFj-Z zNZXXyHnjn-HmmSzUWHfl5?*bN@M?2}SDVM@@_Cfq6@Zx%uZH{)&h78N0_`JxUX9Xh z(AyAAfzkE5=76@Sb7daeJZYE0(U2{%9#-O(w}Ezs-gYf1pjslX{H{3`kAg7!QN*e9 z6%UOQbSZ#$g>-0_AvjOW1#hBcGf^R$XhY~cjTRf;Ls@hR*MPG~tUE&281Sl@cM|eA zv_FMQ0>3HnIBVHdS(Iq$3}su=s8H|Dv#|YvVICdDEwn*!O*VmtTO1{Q!068ds!Fh` ztv2L|C#3g5%7jh`M=RIu zCbuPUQAoRu9OOJjv5ruT3i(?;(l;^DHPFX#Lm(tP(+ASQ3vF^Dv|XWJ=_PVP5I5xz z?K|N-W&(*pIUnVSWNCQFqtJcAhtaVS4HP4SY5ILvrM<)9y(7}zk@fsoL8+Ag*lV^(-aavJ z-@6qx(elMfyEB6^w=*cw*?$G+ZWLSCOlV=rA#nkx~^$hKeK)Y zR$X!$A5CEN>gQY-^!}R9g_|d&<_RFCaJ-IR`g|f<+Yzblc=J{m7HMlwrA2hTi;KX` zk<#XHX{%J)x}J4kS*n}~7dA_U&D1)jt_=rurpxapVP^P{{X>oqZ6h;7_PRq|bj*Pj z#2mW!|J1hiZR>VeVYI^vV=lPo((Y?{K?qvAl8t_GI!*a0X}jA(`5`B0lxG_B%&VC| zg}}dZf!v^Atx!#=15#Q9DJ`<3v^cGl7F$NFk`3P0=R7Sfcn_6W-YyO5^9fL8(DIcl zvF>rG(DHU!;`Nrqav-w~p&=bh?3XSfI#$|k4OCFIRD*6};+Y6F?R1Gxs4P?pa}$)$ z>v|cjRfH%rqLPwv>N2lTVW{kRJFM7OTGCrZ zmAo$d3RTf%g_?sv;li4f5i>&+-ihppfeObpDQa@m8-XQ>up(~|^}Wp0DCz=$s6EpN z+UN#}H*>)D5D48M(uMsY`}2+)jIcMvY(S3bsWCUtkbUN%iluAJ3uB4%6tDWAZ2ZVl zR%<|YD=6HA3<(QpETZ8DL(W)Ugeepj?K9nepAXl!aOIz@biv|%8#m9%wE};A*(>lK zV;xCd#6pfi(-l`2urs~hX;}F;uL^fBdwm{dR_*r-Y9Pk^ue@*^%0pYFzh6=F68qsR zFI`#hf4BCSw4)ccNEGw}Q;Oz`*|1vwV&?s_Dya;%Ozex4?R%{wT-Gj?wF47c(rb%t zs}mpZ605r57i-+}nH`_p@ww?Y=HA);&bDxKx76GnZtRg7dtS->{{6D*myW$M9WL7? zmF*JqcPV@#l!|^KB~BXDpTGkuZzL}KxCZ5X-mwazGox7=S~5;f3VpkY9RLC15sq3b4xg>4~R9J-C0X_(; zBK}2C)%C^sk&8@Cnrzf5fSv;y$+%JuT}9ou)3>k`Tu2jo8Dw8$jQ8*W@ zLg5XJL+jLr)JV=FTltjjgK`n9t$?nzE>kj?9^rEs$lDkQ$hcv*UJ$mZ#!oApybG0L zK|Mh!(1{JaDbn&B)aSkirNRlnjv<52Z3m7)iKi?W+Bo?!4|l`}ew@D^S7n^M)59G# zZ6{3Z2{%r`fT!)o;^Z;_tUD74UxzxvZSCewR>%Ri9aIsep9F9SZ)muB6$Z$->y*Oz zRhVknm`+#g4el?YhfeG@B|uSrAGN`VjQ)W$J7@O;CV^4PY;Sm_@?+b6e%pHCgUkdT zjF(E8z0G%SeB#!pZh=B52%OuxZBpxSwACAF^@99t-Zp^jVA~+FhG2@>2f$Ow_Goca zq`2v|rZ>-vCtRXC2wri&7To&mL>;&nly>385~8dNCTPBvSFh)6oMw`wQs%(H*ZMy@ z_{Jb8$wEZUC#3^}(F4;!5&qxDP(E&a(z=sEB zq=A`m%dFHg8*Z7CTIR&;n)iyUqs99p#rt17|0X9L8o7HLB62}QaO<}dwb&A(77Hfi zvTi556U(oU=IsLpJe;>*%0n$hR7Kt$EjY);G0A5+!n{6XlKQ_)o|4_Qq?o-`6}P)3l|=g3J+3ztBKfUkaJRGnb2qm z$C{aVzOc|eS+M@B^DH2lGE1p-nWk0NeHdtUkRWCo6p(O{icL=$h3a9`X+Ry|kUiuG zWd(~N7wTnb%q8Z^;-vh}SAjNrU8m1b!soWbadYrTYg*V~7e44SKsjlb!2ud+L0)=J z=ipw2w7;&W|KVZpWZIa3^QQfl<1%y*8*>>-%f^H}YfHQzxN@%Rb zAj+;dWf!QNYs@qXCy)ULOz=Lknk!c+!#++aAks1{a=j{6A|Xv)9s}7|&-sbT(UHD! zj_c~{l}ofuBDh(_BrD5_%&y>I_$(MO67Jr&?s%_ew^Va9 zTytEiISxGtMjBuU*0b*yl)Z4}mA&DDol?Qh2TV>*iDKBD1#L0hg$x=F$kHLYIOwUl1V86R}6L9@)6md+Mq92#Tn#SP_zY>87hV`)n` z+u>p;El0DY3G~Q7Zfu^V^ykEFF1T0AJ=8aLQ*tHtOZN;qX4(yO&TwU|Ae48<5LRe` z!#!lxIfGrWDYlvX)Y}Y%iTqF8Wl3uxMZf4R1!|_yw7Z#Z<3&^%>-&>IG7jZ!hzD^; zIFVkiR^v_^LEzm%eSN+GmfqnMmc&YNC_sIgnE{Q3Dd!p-?et;$3m6idV*n27W)0ci z+zN*X0SCo#Hx6><1^6H2p74P(JIZaITy0IrGN@dmA)hnecm*;+#_Z=9v9@3N-5Gkt zrCSsMn%=Y^NjPW|0op#2aH@E8f7Xtv?)W8Zi;B8ir$yb3sM(to^-S}7T>7=`y1xkV znbsHUHe{lOKgP1efdy9VdMENoTG^A+E3pfJ&Pfak=Fzmm&pF z*!p6H&iXQ@8*4W;nberM0;eQ){h7Df(VymxsOXf4+E6jFm%V2>);uE2^PP-QdrZlwRN*n5!v z!yDLGTQA!12DZ9Bw1An`66Sl`nxt(9quWkKww?T9MtEDlw5@-=;JwmqFYQx$@7on` zu7%tBq_#e=him&KFiQud(t-6Xbt~)6Nb$~lk9SLtUlaK`$rF&=3W+;_2_FJF5^^)H zEC`PSISJsDokMPV+{3+pcq%DKO!=WE`Kt1ZH^GJ~8_- z({k^2sb<_H9RS1*S?3ef9E?{V)sR<>uPwrOWN)N>4366><<@qNQE66 z^4UoD5vtY+)Y^xt9>!^h=$#)p+LJ5fq-PeO8g$MQW^SOCRezQ}VU#bO(xzuXnxX)G zm<^V);`Cw2sU99?Etl-f#q%~yY0^>zvwfoTHgsCp@Mqo20Tg0xV)~X&KXTTvPMMpS z=ePI;N@GsfditpYq_$Hgvwmq zl(WGe^UZLNYY;C>Az4>%5e%ZrhKR&LV#&f5iWn4CVHK1*Qj45#k$zI! zIXLd#TE^~hnMW$~i1{9p{2z3}p23D`*ig=U8iIbvalW1HUFoMCDMR4-RBjIca@y9nUA2_6v|~?R)|d z{ItROW*$)70&N^*z}5V7)JX-hdgj?dF8x|M$o(nQQeY5L_5w}UcVbQ1Ta)6LJ2-KZD|&QQj4{8@>t5looRz(hd86cbFb+>W zkTnY)zb02EjxLe@w_IklMtyJ*j$rj7d7`M+j9?xzf_TEa+^B7Sv8HTvQLTP?B&ioA zt;^j=@)^`j(^ziQehJ79;TTuh%g2ihrb;VY%k zVf9q1%a6sz(x+0hvIEXEQkD|QDY#HCP$3}qTIK^mRcKWX-G`eYQa|EG&aB2wo9&di z3Y0#Gj(#4BS^Y!~#|hBd8M3burLRX&`g({+x{gw>!gkGBOmZ&7)P|l8D{3Qj1P2xH zAoVH)hYBY2_Rqtdkd5Ozd{{w|&RWG{s$J0^5#TEc%xXij$?tO**g+5sKnEwvBJb69 zOSP-eSwprFl=O_krcCI;qxRFdL^D^l<2^rY88qyg?Qj(xcHP*dq+V-dIw(tY~lSi}tUW17K)BoErjPRBveI{@2h#~5bdv||$c=y}HwCi1l7 zG^P@7U>md#qYZDEfiolnXC7Gw@L+q?I!J7OFPo{~qu0>e(^AL4-DYWMUK)G`()+BU zB-X3wO?48zDKH^lqsnISQ4lDD?VRHx=JFhjOYqhe$0+9HoMQ~Lf;X^@+Rvd4Z1-(Zyb%iRJ0<_DtJw+GJX>NFjW0rN|k!Ijv`QNnAZ>Ug# z7}$(MtjZN9F1F9Px*&y;w$b4Iu#9`4p2gJQ_xH1v>=5HjR4dq+X z4+oK?B8CEiVO~myt0*Ghyu?R>TLe-dtTdFe)(R=HP!ch2P-ogfgro~!6EFMIvC{dc z-PVeT$hR28hviz0neSAcR%kA;9IcDx3{e^7cfo%>TP*I9CSd>N$ z7Nt~!CI1NOtdxj+%b?D5H3_X|@NV5&wn3?u(Ph6@8Y)e(R7=w+)zXwowVWzdT~Q;Y z1r5ltNja&4S{eb8Qn?a~af3)utCwj+MB+d0f;PXwh!{L>cs7K)!JQ_wUVBbUF zgSuxOkuom48BYEBa<-+ zKL&|PA_z+%k!@TC%&$LUK^QsT7Mps5qK<&PUi#(P&cTLSMzCR_qRdXfW2TxKh2Owu zY=&|eh-pTVhER^hf-6zVkyk`= zf#VUJl~sjK+c0qTi#@1UEY}D;9Czkfb|=`?B5cQ3YS6d=1f&NaA zS#HsezB&_$C_vu~sgcAo2xSKg%FYs0h(#!oz{g)g*#&OFz^}<98r!AD6Vb+Vk;Zf4 z#FR9?6mGmOHC`99>xj5wQS{@X@ZI(qWQMx!Ysg|hYd?#kif+(9A>b%72*}QX?VQ7p zw(E`oWS58F6Nuomjz`V_OyuMh0mSY|@osU?(QxrGsrVQOAa*p0+0_pdK(t0{k4I{c zzXRv4_er&IcKSaFARd7L!n6nH##e4f2d+d0u7n4kmIj^Gvyr-4(R)2yCrEWdTI~9}l}*u#_DDs0xZ;ph zap?aA0mR0ftxkDCKS%Bm?eDW-J`%-zT^R{N)i0XHqG@H?&2l(UrWQm>s>|TnM7`37 zyy|>%VvgAS5jxlgrBjM@TH(khUCGE$t~a<)RR!O?Jgjq~lzKq1manu_@bOsK675a% zoi0P5VVx-*PYQ?hS`O9SN_l4lO-VB35{b(j)ZR^{yoqwNoY+9u6U`St@(*~$mz%D% zWj(wdj`@Nz#?LEN8_Pj>j9Y^@(BM_RF0@)}aq{^2Km#7_y@30}6t(d3htp@)C7q8# zT?pSqBMOG>931ZLmy48@4nq~%LK`6mtbDMLP)V7Jw((vJpoG7*1X}LAhkPbT-_u3T z#1vitA93I5EYTLP^f$~$9K|^{0=*pgG*Ae%QtyqoZbv)ML^{ueJI_j;XT$ZQQvGPS z{+v{QF6C1yL3_7DI(8=9F(P%0h!>uc&d*4b3(~~1k;4joLB2234cfXuZS*=$BPr4A zIE$pjsACSPjb6vR0?sS62RY}k+wMbK-2ys+nHE)$qT;a#($i^ago_-$3Tbo0S}eqc z-@XAGZzl)c@$lIhNa>QIkjsPo6ujUK(&n}i#az5$N{MDJnCYcdnMtmN3!9|ECQ3%? zgnHL5eJ1(jk8~!X)O7UGDyVO10(l;$gj^}j8PMzubtTIv0->1a6OfN)BtCF2vBUtj zveN3jdV1qF0WtJv_7cl^g5_$);Fef{kD6oj*pkdK(C6r_Eh!#`myycW9{pp7`iy7f z!KxT+*;WVXQm(}Hn7Ac8v<9;_sJ#*`Ci5MRX3{0YxJipv;v%0u#4T~AmS?>EDm)r3 z2j=6Hw$7<#mD={X97vx&>#XHcD#Cg@fz3|2)0UZ1{otSd>}r+r!N2(L%~m9tYX~D< z0eKXTq45M7M5s}LpQnopPZ2?Mqc3BI!7W_!HkC_^f8`ANK8FUGit>bUd?r(o17=TS zV~cVsGoH@CsV82L?a=W{{=g((#yEkSKFBR;8WEff8Uu&SuTFwy5*I)+&%^{PoNqm5 zuWQk>QL0y)jCJ`WUfXfH`})Sy-8U|LoxOK?Ub?&ri@+>w_Wh1>gJGOizQTq#upJ>Q zg5SBLhHH+(-fq~{O|Ms5PYrypxJD}86)k=;Qv9TN zYD_wLLA>;oIOPr(d!%9y@c6Zlr5AtPC*m4frTPv~R8TjEJS%n%i@VQ+3rD2Fk>s=D zv;QY_UA{5b2}95jEOVW38Zgv8Yv-o%)AK|gOiPhXQ{5rUR0j&B$_D{)mQXda4`7wF|OO(IW{ToepiF^;^jQ7qz#Ef?)Qg`O=1^l{i-4&_sO0;%1QagLk zi~4?ZaJ~`DZFqyZ4Zi^h6W5@99Ot$PV60&N8dMZh@CLRy8__1h8_sRy`}1I?H@C#i zZSPj@mMZpx*pbpn+h~q!j}*7RdF-9Q7yHA-!&33^|JB(|ADN)l;4_gPBC7%0AC)g~ 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 IT$XI0PJFc1>Y`60$PYl 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 literal 0 HcmV?d00001 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/EncryptedDataKeys.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/EncryptedDataKeys.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0076e482bfb0e0f3b7a0a8c0ed175356bda7ed92 GIT binary patch literal 26856 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 literal 0 HcmV?d00001 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/EncryptionContext.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/EncryptionContext.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..04c7ea02e04da7bda7e8f648477b597497c9b84d GIT binary patch literal 35977 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 ML2S_=hG_FrqwZByj() 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 KDR87?-v19yAx577 literal 0 HcmV?d00001 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/EncryptionSdk.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/EncryptionSdk.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..815db141b2f7b92db71904f628ab4a19c9c03be0 GIT binary patch literal 26784 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 literal 0 HcmV?d00001 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/EncryptionSdk.cpython-312.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/EncryptionSdk.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..01c9603ba500cb9bc87f49da0ffdbdecd8ad7212 GIT binary patch literal 22116 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 literal 0 HcmV?d00001 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/Header.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/Header.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..af82e8e254f81f4bf85f9b18dc4b2ffd612aee1a GIT binary patch literal 29091 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 literal 0 HcmV?d00001 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/Header.cpython-312.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/Header.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f305adca35c9536dc15cffcc9216417f08199c1c GIT binary patch literal 24598 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≤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 literal 0 HcmV?d00001 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/HeaderAuth.cpython-312.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/HeaderAuth.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0afe68b6543b79a62517dfba440512a1f57980cb GIT binary patch literal 21259 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 literal 0 HcmV?d00001 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/HeaderTypes.cpython-312.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/HeaderTypes.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..91327e7b4f467724ca48a3bcacc04a0a502e9df8 GIT binary patch literal 37568 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 HO$q-GSGt~2 literal 0 HcmV?d00001 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/KeyDerivation.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/KeyDerivation.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a52a2267ae0aec53aaa4ed9b14e2d28ae802e191 GIT binary patch literal 36990 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 BWBvdD literal 0 HcmV?d00001 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/KeyDerivation.cpython-312.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/KeyDerivation.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..00dbaa042ab6f06a34ca161ce03eb9b7779ffeb5 GIT binary patch literal 31937 zcmc(I31A%8dEV?Sj>UZvAOVuNcnF{f5FiPVghUd=OZg}+#LYBSnPtc3zC2q zqEgEhY1c93#1&oJwVlgSWY>1nL{c0_mgCfNZPz;*SObsgLavp#YMO=;?Z|fOCjUS4 zW_I6VNCLZ5yQ1Fly*K~+-~Wzz|Nq__d?zO-lYw8}&7p~JUSOD?V#N4mk-(j%9EN$8 zaWih4kKxc~eYR_;zkP!5^aVTCSGh zbrimX+d=S$DSRilli>9f-oP~wd>4f`a*YIUqVV0^Zi4Tj@V(q#f;Urm3)e#MeH6Z* z+fVQV6yD0U68sSgf0TQa;0G!E5O;{+hbg>`Ya{p(3UBAy3En~Bom?luyC}Sy>n3;) zh4*s31V2jQeOw>G`zd^Y8zA@~g%5E<1V2XMk8zI?e3-&VxDkSnQur7*M)2bleu6te z@RJmNiaSMcj>1oKrwM+B!q0MN34V^kd5$Oec?x%OPJ&;ca2MwyxSPTSP9XR=g->u3 z1fQgE59cAcm%^vGDT4bbe43jkxSzrUT!7#+6n>GrNN|zDgIti{Aqt=6W(j_Y!Y^}| z34Vpb=eRk7&r|s0+~WifQ}_b6K=3Ch{3>^q;7?NcZ*jjx@P9?&AK*Sf@TVyJgWLxR z{;w(gY3^x)U!(Br+;xI~h{8Y2eVE|?hQdF>eT3k@P2nHqK1%Q#6#fkN48cD};lIQE z4#9ty!avS^oZ$bK!k^`yCHPGW{{;65g8w@T|0MTGf`5v_Kh1rb;QyY&Kf`^7;Gd=N z&vBn4`0r8p?{mLT@IRpNKji+9;D1EnpXWYL@aHJ}dG2|F|1pKXz`a25FHrawxi1p@ zKT!CWxGxd>%M|_tMBKR!||1tMtg8w%PU*?tx{w9V0g!>7>|2u{Ml=~^c-=grp z;r@o;e@o#%<9IS};lJX3Metu!_&;&~MDYJZ;lJU2L-7Ag;s4D2 zvyR_@6?$yS4coNshK;kCscc-T9a8OPYD!#cDx{{GscCVk>5!UkraIzMGaxm?OwEi- z&4Sb{Gc`LdH3w32%+%bt)I3PdGgI^9QVSrpz)UTSOD%%bA{)ap-Hbc+DaM`l0;_8| zfER0MI-rgibe)D~0GfHjCO}L`bvxWyf_^|*=lp%#^_*eit1>0 z`h3m{K0&p&`RCO1(YYDnxKmU!2c6S`dvtcjC)C>1)Nx-RAY#B3nDvKTIx*cPTrzh) z1o3AXf#Ga!hGX5frx?yIq`29qm={QXE*0YTn0Ok*Q)1%jg2P)FOI#15JWLvycgd3$ zlP7B~z1E>-xP@`&tS`j#E?XQ?JH+pxOrB-tnCESS&x50;1O?xC5VKbP`cn;KK|u^Q zcmuA0DENF0E^%%q6xbOG1bo2;A?Th8HaIT_cM5(j!4vTB1Z=0SaaiGfCaqbBB{A~l4XrMg%!62N~(nvEIJ zc`b`RZ-j2x#2|3H(TGR=1qX0jVZ^kSfwccZMmR<6{r|w*{kXDwYYkqbemKMEGYgsF%!RBN`K-2&YsM#}=&g&=H9`h; zqem=c<21LB6VCGPH1b6KaE_6GAv>JyZHT5AA%l)s4(W{s8ug9zyY)19YIiiZ5i+03 zjj8{=M?h@O2Q&f}@~9EG$KWpNhgyuVcb^f8`Z2SEMN7EthHT^gyUD7CX=H-7%V6?5 z1@noG38#)QSL~;l%eLB-K{ajK8FEeTqFxv{Sr)tnOij-N{w5paYuwHxyBdS z=o7JP%7JOrPb;-^N)#v8RrB@!$8tIuY^RWE2J9LB?)3FHgL3CP<^KJic8SySevhAz`7#n zoDhJa{28AU*AQ1i9nO#w_)=4Yv!0Nkrs=B}H9O!R6hg=M3=1J~PPL2B@f^XxtmqPU z@z}q1@g5$QO?)Fi2{qx>TsPmO1$9xVsZe9cS?uO_^V80`3xeL)u!VWG(9Q4Rp}))u zL!#E3ckyC5RwB>MH}h^>z-WCzE1^Ye9X^QNxH9gi_w5X`AI}$AbncJAgTX(5+5Ac7 zt%~iRx%!E#N=36&(Y)AlRB0KOT88D8QMqDFt~hbczEr&7+16)TuQ_hz6n*r}^)ojg z`aw?3QeM$gQMppI{q>^lOPjVTo9d-a^*6efO3QC;-llBcD{bDp*nBo}&c8TwS=)wb8$8<3 zZc}y+N;?N%yCUyA2`Nh(>y`5TQu+SH^46uAy-IbrRNXCC_ugz@s@e8l3lZ`G=HY`% zU6)kXCD--b%%dA^dNFVrc%89zUxx zvTCKQQ7UU(Y#LFTf>Kj(F*L7)o{&OMfFursK!DJ!&5z#h0J`Nf?2Y!N^3Ct{*?^#u zQ-d905NH-%%lvf^*KDtrw&nEhw|}F)V+VNOs%c}vd#$030q@)UQ;*uyT`7>w_?gS} zG+1um@2z9C5KnNKo?^XB_nHeLgF#ptSuEGJWxmA%J(O=eXQkoc0u&Shb1Ck%SbT(2 zW0o=N4Qf$8`sNMWUch%Y{1(!~b}vpsaldf7@s?h2gdGbRF_c%kKs1-{-pz5uA!<-J zmtdKw4=-eeGrUzRbBD8x{J328)~w87&=CtEee2!R7gEA0BMju(evdraF>-!rWxjA~ zI6IsMy})9*W!VdGSrqp(>+maIUw> z0?iNSnYPjG-6dCn*`~$e;)QkZdk-toRFKkek!24nHMuDXm)xg^ zm8_zNmE5z3t$*KZy8-P;3uWPTmbEQ2Yr7%5;Xbw9u!`DlxMyw4V`|&HvcH7(8(272 zE><&Gxxu$#Mlj;~xCRB~0V*aU&avVKaAH&nZN)afGrHi?7uYdN_?244_mBk9DvI_f zMWa&DXk_fPTy!RqeMZwN9yHfriA;x8>Rr^KMt)5dXypGEDsX2-1eTg9@Zp`IDii7aJ8F6d^w4m(7~6Jh$ba9(-oKoZE{-hheVv(MKo22IH8L8 zZdWt=I#2O@f7_AHesKo^RjAGo^(3kb#R8_PH4>N>)U25NBEIItMs#qR6?db9y1$4s zs#>9EMg1_AvKbdEF)Lb1)SULAfq~vp!Wk$No(UlsYV%D5L{DgPTD8xJQ)*_Eo`|nU z5lvaO8%4AysM)4k1l?FXfXS`sJc@}~sP*VHiR$C=j|X^louT@~)|VHL;4>Rc{pVOv zm~{t+p&Ef{RD#3~B&=yYpd>Z(GjZvtI<**PUwDA%Ri$ozKko*6?(B>kbVHsGP0#R? zplQ`WF9-IbDU-sL8NmfcVO{0aG66e{jZ`MB3iy1Ho8QOl?H(-+wYWyDhK)_S8b_2% ztbwNEHEB9tBT@3&wSJ=|0=-6B$!p}rew0Z*q%_CWOe?#wg;EHcc<~tK1%)MY=fva9b?a6tm-Tq zacly0r*OTJzeUR564`n{&TqYzy0oP>;;6b+-~6S(^8uy4Q>yR$=J>a~uX^SB$K?8v zh@%WNrHr$vDOK!KHnmHe+P~f-ZyJDvrR>d0R;`p(yO_0Osc5TG*di6S$c6i_wJ#Nw zTs!(^Ws_3TDpj<~6^}+78{evURH-;CRe(k7KokGHBa<_iKDC&OXy|Cu>|x0oMhYV;I-SwQOT^Butyx_ zM0Pb&eobV{J~@9s$gXm0RH%AFi=4j?5-PR;hqoG9zI65Zt4c$c)X??KOW&G*bzW{5 zmK#Qa8VdCs3bk^tviY#I`S91*%bSlv!cumHl2s>V)h%W{yi~MJDcmO&?vo1-7((6H zpp@^E%J<3T2O^I3t1DuUviXp-`Ow!L^5))E6j5HUl(k4@EpplZYk9YFOO)KLQtsBp zZ3B_PbBpIEmGdF#d&-Kh z%>ZzfZ$`|3l}dZXCT_4XkRKNoaX)J+ShG;6k=1LlKn$6xtkv$3n>Ch;rcabvRC2xM zzLHS_sHr3fYNf+#p_m%!3u)oBk=T8-L?xcFc8Q0o4Sp@#$U+&uZpy)0`d0f~UJFGS z+XGthVH*?LVeoL>+>KlVZ40F~>9$_E?_soc1{fLc-PV>yh`Y8mp=(G0eXG%xpt&hC zlxuVr%)EbZ1|vzMQF7EbrI3Du^?wf9*bz-LLhcl7 zJ(z<=9>5%wz4j4dJ$qQ0Gm@H3Qq5U}>~kARskV!GZ~156U;Yn3b~)E<*I>QiPJ7C+ zkh^v{vP?MFXz%w)QeghN&sfa4zofz`G2HDjdSTQz>VUmc{9rg${6LIs-`~-j7c+WW zq8u3^WAwVy&2t3#;rxZXaNd2SlD7(}A1myyJc`W_WFdQJXpVHa66J(+KWc z1}iUvieE`KI4du~HZ$z&RyI{m&jv%4lg>**Wz?oIU(oBI1TL6#U-Z7rAMc2jGQw$k~ z%(srE!98bX(bvt{8fO9R>=9#mPHGNVB1-xgIEneV@MbEuKaiI3|LqqM^Ct z$tN{Chi-!17PV}c8{xr~w%2m#kHNQqz%Svn-^QxXw0@%Xh66S*mr5&?(jBjt?pUg- zRjQh#s-~N1w<>Es+b>r(F1GaOTjWa1xYRNpnefRi(^7>$vfghzx&8Ih?Mqu8{`|n_ z25x5Ds@n3|GjdhaOM740@$wF3f1k9!PuX``f`64~-UZ&f?Lb2rzbK7gRD{ctfLpHu zY$$_1kKWJGsGykR}Gt_RjG<@cg3FNpwf2iq0vmux_1igV%1_i+_K8CHKHESh? zPzw|Bg%)GS+>KFu{fZ%UX3?ob2isf>qH_ryKRTL~6Aztehfua^r!IJ~G~z$)^u@7& z&*Pfo+xq*5P5{(7I($m(#wT$HL9=1j7HQ_oXh+ekmg;&xp5U;cB|d^rYDP`yX1n+) zVJ@hh%4npFa9|aLlNwDF2G&5pc2gJ_>y7}ymB%`EYnk^_nfH*R9zbP3m9Uo=$B_ye z4tG&0&Ad1XDZwIeD$k$C0TBDsO@5itzCT}VH6nh4B&y+%;;&Y54&+wtBT8+DRNEof zcFDCp*D{uJ3YF|?DZBbPo19g5Yj>-%yItDduI%oUcK6A<2jtyDk?hU4a0u;|s&*?? z`=qLUFLf%d15)dNa^Sdh;5hXE108IHcPr;S5*XHI(84uiJAyr%c<10)2aJI(IFAi! zU2HdYaP$D|u@B_E_w8ZeW|qUM&>H3u-MwKv>umQk1MTSsnr{qnvq*CM&_>qC-eF_7xW-D zXY0d?pa-!lwlf$bUh7#FEAPZ=2<#+|VGlct1}TBPWQ=Hd>It?N>xLf07T6(-p$D-r z%VUgqZuUG9bJ;smAkAfWr$8EdSVGDaf5uEX;7MarKaA+qi2<)f^<}nk50%8{*;eIrbcSCv7}>)#vT^=lO1Y{esQTsrvaw zrn)Y65WKwpt7VIwH0Y5Br{rdz-0Y9! zSHHEsN?E@{TEFAD-Y2zr3*( z3d||ERamAJ)=Gu7i*=e!{B-p56axx1J3fi0Z+f(iOw)O zz33bVNBl5``pnQN2tCh6->7gh*5UC7Lr%X7jws?QE64|N`CnP7FNBa>?6e=a@Asjq?NH>~L+EI`t)GC9_z{ebV(6pj zV5P+y=sbhY$H1W~bpn9-(&)R4+TJ`0Jc}R4=L*3Ytj)%&9)7rr!}Dq;&rb*3vpx)G z^ZdnGr%z823m~tW4T21LT+;&FFmdZk32h~E4XIUOjvSZI84S+A2~PfLD`PILHeK5!rw%G$|IvnrLn{IaYh9k=0~hZ_ z@c*4BwM(U z;=5PAfA!l}m7#HIXj~qel!v^FrBixCV##oP!|w70gD7A!)bW_YeEB^JKZZr2fSzQ2 zk~bA`=;YK=s}tZnA5haoAv7!cT|_qUpx&5TgQ9$%MNJ(!i2K3eL4szR5{1L}JTF}2 z`C3-YgZ$zjffGBbG2IUXbH2=~3VPZI)}R<31Wm1|6b~fd48r-~NM23EQKJcm>U}AY zQ)9Lo08x%Z`CC2??p0|G*?!v$!v-xH)XlR<3e&f)pXINkl&9e_zs>nId5{6kp z_jl8jo|96~$;hd*$|*rQCCEMFk?x7eglEw^qj={f?|kHO)O*5kS_9UW=)qEI$~J@x zSFi0DddJwu(972rvl+vz)@jroR;*ZJe1MvU%#n@nS88P2R*q~ipzVQ6N|wgMu+8e# zLdU$Z&u~VP;JOK0ct8XftN6%m* z;TjPxBEbw&vslq3=XJjeG9G1L>-c{ExBDY!c;(E51poRcbUfmlQG8EGK0JZn&UT@i z(aw%yqY-b~Hj2%ZF{(EZHPmpJX+y0N0w1@5)WO$(*KJ|uBVa)=UZ>Hy6mHMJQVEw} zlg{9zIs2;_aHANPQao9%61&~kfZqJB)eAx=dJaW_D>$&=-O4Mzep$+^kn^hG*o@ZA zz+4$Onc87+h%dnd;+N3*GCJ4>svYkBh{%MRLl|_y&1GQQCjKR$+DqWDzQo&x5214k zOUFHdUp~d)Bst99bm624T^%OUQC6QxM_GL;1^EJ6eY560$Wr|dI{E~v(KEZsL#04f zwFl?mR#<3m2Ic?}WiMjK7eUgDh#gQ(fxC8-A|4A-Gr-y}YImzee8;OzD{n{FQ@5k* z&D+uSWKpc1D`F!n9|LY#gblbCnL?|olTKQDVY5yEi16z=@% zCrH(7Ds~_ddW2FM@!Jxi(bhQ6)H(9tAn*`XcXHEKy>3DuH3n@0S7iPW-ZpsgLQ zY@&N8k>~Y!z^xI;ij5@34O~vux0I4%2Cul9%wXivM5;F8neaP7eS*8I(O^Oi)#n~> z4~c3T@e}Hf!y|36-I0zaB<#-ijvh5db5A59pEmkFcl4U}5UdxpHFHp{Sxu&ngh~$u zrai7`p=y3xJTkh1uJLl@-E&|y3b-%ab*h8o-fh#)`G6m2bdb#Yt>_JRPda+{0;i^f zt17E+I;a;@99xWuo{B5M|y1P&!8#$mxn#&$+D*q#_I_(lLfAczyfNI(p!Idn9^H4exN zzCob5`xE9$yR)PACfA1W9SDyh?CgQqSo}P(ww8oZ(kA+kIpG`-v}X<-9ZHI4paoOS zfH>7A3S)lH#aTfuw7?!sOt5X*_cDTNx)B(AFw8<@yC%B=VuzqDXw~&5%ke2a51_!Y zkjDq=ie82uNp7&W2ej=U(19|d!32B%*jR4|tnkqtNUE+NIqfKrwxq*;mcIfyoLDcw zu`akr1gLLjOgMfCvbHhN?(_%z9{A2nbd3bE#E*ceW%o#nUm>imP|z*~5k3&-0a?L7 zH$_!?w}j-nU#EM@EFvp5lH7EneWheT|9nbN&7q^ok=DnEF$dyI1+$A0O>U+_1=|&( zX4OIqY$T~cpflXz3AzGs>~hZFyyPx;cU)m}@O?VeYn?uR>fXyg-dt<)AR)B?)_!r& zV|S;$nzd{UHDfiame8e`c)V#~ZG*y;7S%TEtl{HvwOU(IdNaV=$|P>I(1yDwaY+@4 zug1$xQ7}uSYPsp&$;r*gW|fRe=C44Kn?nueErwCqJ<>W7dku8pM?alp7aM z@clOmADC2AG`BOUhVI9YhP4m0s}3_1KLpp-Sx4slu1OJIQuAYI1EvYlHHk|FV;qsm z!YU~_f$8IOIEWu1({wK~Vq=ixw9rnMdop$*kQWam*BNd6SzSR&b#f ztb~&5CNO&O1t!oM&pK~(umPa^$=M5FeKzYN`x0g_Nl^^oG#Nx`#I*Lh zK1(>cqB=T`SQTXrCpWpY!$(gw%^WNZG2vrLHKj>N>pP>`SL2JUz~s!eaN!EYq^28z zb4hU>H*SqS9@E(IpXas6lH3c)AgDUbP(s^sZ9j zz6A^>ylAj1F~w*sG`&*lx)Y|{*i4Zw0Mc<#g6bR*AnK0(2~g+a z;tB5Aba{M2?~s~C`~)T1t^ExFpJtTgcB^I!*j{13~M-1$;L1Yl8uceNHLZ@ zHJgehI0AqMFs8y856y2)tPdRvT!s~Js_rE?$Mpv$ochP+GNQo;bBs!B>A=j2V^jv7 z;Oq{Qk>CV#YPu0fln(4z;1)>02yfXfVO8u1hCv0c7^ zGX(0~3>Y=lY$}%En*aHUn4We9)od!J*-!-YPtD*T zky-5th^VeLLjDGU{>Ax6aIv*Yk}I#w0G1uLQE zHB_@laKhOV{h&rxY(%qmthS<)(9PWX)6u%F8?l5FsIK59-~5L?6jI$7sAUb+J>IBu zc_iSTQ?seqn#eR!WMX4`*T9WVq-_?CHo(k*4WWe_*Gxi9(;rvY@@SU`ckkd7Gx68b zYskK$CdI6nh<3A1zs{nanx^l$z*Q{$u<}6>{(v6?|Crzx;qdfryUk|%5tF&h?3J0l zKW0jP%#{C(>5!R@A2FprVm2%@kIBqq%ghOxIkC)mWX7}1Ov}vlGQ-OZzs&T?Oz$%D zxXe6m-1xv!c_RarvCLoaE-FA$jlX;2TX0l z`xM|}Si7bQ?lLnVGXu-axXg?%Gn~wD%gk|^Iljz{$jrzxb6RFj8$9bgoR^vN%ghCt zxvxyCWoB@h(W#x0nKR3b?&@3(%gk`RRL^P>J`23*)byOAGBaw(B(_F6 zHNVXGb(tfzK8->jP|(ZO+gg{f-Xcz!aT@Z`Ypu7Sj!((Vl+l;;_R^79T<>Z6Q+hAb zDeJvdFH3jzzNhEZpVCXz!+MMBeCj>t5I%_AZ0&&x_M+)lz-is|O;3uE@kpM4XL`La`W literal 0 HcmV?d00001 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/MessageBody.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/MessageBody.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1649692a73a5285b29c48cb745b9eca7b5bb9093 GIT binary patch literal 50315 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 MlJ=)XMNZH7PY6ELkN^Mx literal 0 HcmV?d00001 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/MessageBody.cpython-312.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/MessageBody.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a042fc5f26938f9a71e375de4698c71db0a3d9d1 GIT binary patch literal 43798 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 literal 0 HcmV?d00001 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/SerializableTypes.cpython-312.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/SerializableTypes.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c4913cb7ee7cef73e6b0723b0fc280ed7a39e17b GIT binary patch literal 25283 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 PH)eU1b=M)pA6@@HC2#`< literal 0 HcmV?d00001 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/SerializeFunctions.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/SerializeFunctions.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7750829c1a30fca68eac4a5a43795c568ddc10e6 GIT binary patch literal 36832 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 literal 0 HcmV?d00001 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/SerializeFunctions.cpython-312.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/SerializeFunctions.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a13891805503877bd5e608d160e96ff2eb1f42f8 GIT binary patch literal 30999 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 ao9G`(91kaak;LAp);#==NDMvH{{H}%!xoYN literal 0 HcmV?d00001 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/SharedHeaderFunctions.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/SharedHeaderFunctions.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b3479a185226cf02d79f95b1d8e77cde1d991223 GIT binary patch literal 27256 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 UTl3i##&%)4F4?Cikzc3(JFnEO>i_@% literal 0 HcmV?d00001 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/V1HeaderBody.cpython-312.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/V1HeaderBody.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2ce8664d1464d79aa54a738d4983ff5c6bf6aade GIT binary patch literal 28734 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%0D$X@-eddF&Uq_Sjy;u-B%9?8UD7J{vqeXnPp5 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 literal 0 HcmV?d00001 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/V2HeaderBody.cpython-312.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/V2HeaderBody.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..da6dd78cf2867d522717c6f74fa5c4b2b8a00719 GIT binary patch literal 22974 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 literal 0 HcmV?d00001 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/module_.cpython-312.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/module_.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b1440ff10cf41d0811cb9eecbbdda358920b4acb GIT binary patch literal 22558 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,0): " + _dafny.string_of(_dafny.Seq("Test failures occurred: see above.\n"))) + diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/__init__.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/__init__.py new file mode 100644 index 000000000..09be6133b --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/__init__.py @@ -0,0 +1,3 @@ +# Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 +# Do not modify this file. This file is machine generated, and any changes to it will be overwritten. diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/client.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/client.py new file mode 100644 index 000000000..1bd818624 --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/client.py @@ -0,0 +1,342 @@ +# Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 +# Do not modify this file. This file is machine generated, and any changes to it will be overwritten. + +from aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes import ( + IAwsEncryptionSdkClient, +) +from typing import Callable, TypeVar, cast + +from .config import AwsEncryptionSdkConfig, Config +from .dafny_protocol import DafnyRequest, DafnyResponse +from .plugin import set_config_impl +from smithy_python.exceptions import SmithyRetryException +from smithy_python.interfaces.interceptor import Interceptor, InterceptorContext +from smithy_python.interfaces.retries import RetryErrorInfo, RetryErrorType + +from .config import Plugin +from .deserialize import _deserialize_decrypt, _deserialize_encrypt +from .errors import ServiceError +from .models import DecryptInput, DecryptOutput, EncryptInput, EncryptOutput +from .serialize import _serialize_decrypt, _serialize_encrypt + + +Input = TypeVar("Input") +Output = TypeVar("Output") + + +class AwsEncryptionSdk: + """Client for AwsEncryptionSdk. + + :param config: Configuration for the client. + """ + + def __init__( + self, + config: AwsEncryptionSdkConfig | None = None, + dafny_client: IAwsEncryptionSdkClient | None = None, + ): + if config is None: + self._config = Config() + else: + self._config = config + + client_plugins: list[Plugin] = [ + set_config_impl, + ] + + for plugin in client_plugins: + plugin(self._config) + + if dafny_client is not None: + self._config.dafnyImplInterface.impl = dafny_client + + def encrypt(self, input: EncryptInput) -> EncryptOutput: + """Invokes the Encrypt operation. + + :param input: The operation's input. + """ + return self._execute_operation( + input=input, + plugins=[], + serialize=_serialize_encrypt, + deserialize=_deserialize_encrypt, + config=self._config, + operation_name="Encrypt", + ) + + def decrypt(self, input: DecryptInput) -> DecryptOutput: + """Invokes the Decrypt operation. + + :param input: The operation's input. + """ + return self._execute_operation( + input=input, + plugins=[], + serialize=_serialize_decrypt, + deserialize=_deserialize_decrypt, + config=self._config, + operation_name="Decrypt", + ) + + def _execute_operation( + self, + input: Input, + plugins: list[Plugin], + serialize: Callable[[Input, Config], DafnyRequest], + deserialize: Callable[[DafnyResponse, Config], Output], + config: Config, + operation_name: str, + ) -> Output: + try: + return self._handle_execution( + input, plugins, serialize, deserialize, config, operation_name + ) + except Exception as e: + # Make sure every exception that we throw is an instance of ServiceError so + # customers can reliably catch everything we throw. + if not isinstance(e, ServiceError): + raise ServiceError(e) from e + raise e + + def _handle_execution( + self, + input: Input, + plugins: list[Plugin], + serialize: Callable[[Input, Config], DafnyRequest], + deserialize: Callable[[DafnyResponse, Config], Output], + config: Config, + operation_name: str, + ) -> Output: + context: InterceptorContext[Input, None, None, None] = InterceptorContext( + request=input, + response=None, + transport_request=None, + transport_response=None, + ) + _client_interceptors = config.interceptors + client_interceptors = cast( + list[Interceptor[Input, Output, DafnyRequest, DafnyResponse]], + _client_interceptors, + ) + interceptors = client_interceptors + + try: + # Step 1a: Invoke read_before_execution on client-level interceptors + for interceptor in client_interceptors: + interceptor.read_before_execution(context) + + # Step 1b: Run operation-level plugins + for plugin in plugins: + plugin(config) + + _client_interceptors = config.interceptors + interceptors = cast( + list[Interceptor[Input, Output, DafnyRequest, DafnyResponse]], + _client_interceptors, + ) + + # Step 1c: Invoke the read_before_execution hooks on newly added + # interceptors. + for interceptor in interceptors: + if interceptor not in client_interceptors: + interceptor.read_before_execution(context) + + # Step 2: Invoke the modify_before_serialization hooks + for interceptor in interceptors: + context._request = interceptor.modify_before_serialization(context) + + # Step 3: Invoke the read_before_serialization hooks + for interceptor in interceptors: + interceptor.read_before_serialization(context) + + # Step 4: Serialize the request + context_with_transport_request = cast( + InterceptorContext[Input, None, DafnyRequest, None], context + ) + context_with_transport_request._transport_request = serialize( + context_with_transport_request.request, config + ) + + # Step 5: Invoke read_after_serialization + for interceptor in interceptors: + interceptor.read_after_serialization(context_with_transport_request) + + # Step 6: Invoke modify_before_retry_loop + for interceptor in interceptors: + context_with_transport_request._transport_request = ( + interceptor.modify_before_retry_loop(context_with_transport_request) + ) + + # Step 7: Acquire the retry token. + retry_strategy = config.retry_strategy + retry_token = retry_strategy.acquire_initial_retry_token() + + while True: + # Make an attempt, creating a copy of the context so we don't pass + # around old data. + context_with_response = self._handle_attempt( + deserialize, + interceptors, + context_with_transport_request.copy(), + config, + operation_name, + ) + + # We perform this type-ignored re-assignment because `context` needs + # to point at the latest context so it can be generically handled + # later on. This is only an issue here because we've created a copy, + # so we're no longer simply pointing at the same object in memory + # with different names and type hints. It is possible to address this + # without having to fall back to the type ignore, but it would impose + # unnecessary runtime costs. + context = context_with_response # type: ignore + + if isinstance(context_with_response.response, Exception): + # Step 7u: Reacquire retry token if the attempt failed + try: + retry_token = retry_strategy.refresh_retry_token_for_retry( + token_to_renew=retry_token, + error_info=RetryErrorInfo( + # TODO: Determine the error type. + error_type=RetryErrorType.CLIENT_ERROR, + ), + ) + except SmithyRetryException: + raise context_with_response.response + else: + # Step 8: Invoke record_success + retry_strategy.record_success(token=retry_token) + break + except Exception as e: + context._response = e + + # At this point, the context's request will have been definitively set, and + # The response will be set either with the modeled output or an exception. The + # transport_request and transport_response may be set or None. + execution_context = cast( + InterceptorContext[ + Input, Output, DafnyRequest | None, DafnyResponse | None + ], + context, + ) + return self._finalize_execution(interceptors, execution_context) + + def _handle_attempt( + self, + deserialize: Callable[[DafnyResponse, Config], Output], + interceptors: list[Interceptor[Input, Output, DafnyRequest, DafnyResponse]], + context: InterceptorContext[Input, None, DafnyRequest, None], + config: Config, + operation_name: str, + ) -> InterceptorContext[Input, Output, DafnyRequest, DafnyResponse | None]: + try: + # Step 7a: Invoke read_before_attempt + for interceptor in interceptors: + interceptor.read_before_attempt(context) + + # Step 7m: Involve client Dafny impl + if config.dafnyImplInterface.impl is None: + raise Exception("No impl found on the operation config.") + + context_with_response = cast( + InterceptorContext[Input, None, DafnyRequest, DafnyResponse], context + ) + + context_with_response._transport_response = ( + config.dafnyImplInterface.handle_request( + input=context_with_response.transport_request + ) + ) + + # Step 7n: Invoke read_after_transmit + for interceptor in interceptors: + interceptor.read_after_transmit(context_with_response) + + # Step 7o: Invoke modify_before_deserialization + for interceptor in interceptors: + context_with_response._transport_response = ( + interceptor.modify_before_deserialization(context_with_response) + ) + + # Step 7p: Invoke read_before_deserialization + for interceptor in interceptors: + interceptor.read_before_deserialization(context_with_response) + + # Step 7q: deserialize + context_with_output = cast( + InterceptorContext[Input, Output, DafnyRequest, DafnyResponse], + context_with_response, + ) + context_with_output._response = deserialize( + context_with_output._transport_response, config + ) + + # Step 7r: Invoke read_after_deserialization + for interceptor in interceptors: + interceptor.read_after_deserialization(context_with_output) + except Exception as e: + context._response = e + + # At this point, the context's request and transport_request have definitively been set, + # the response is either set or an exception, and the transport_resposne is either set or + # None. This will also be true after _finalize_attempt because there is no opportunity + # there to set the transport_response. + attempt_context = cast( + InterceptorContext[Input, Output, DafnyRequest, DafnyResponse | None], + context, + ) + return self._finalize_attempt(interceptors, attempt_context) + + def _finalize_attempt( + self, + interceptors: list[Interceptor[Input, Output, DafnyRequest, DafnyResponse]], + context: InterceptorContext[Input, Output, DafnyRequest, DafnyResponse | None], + ) -> InterceptorContext[Input, Output, DafnyRequest, DafnyResponse | None]: + # Step 7s: Invoke modify_before_attempt_completion + try: + for interceptor in interceptors: + context._response = interceptor.modify_before_attempt_completion( + context + ) + except Exception as e: + context._response = e + + # Step 7t: Invoke read_after_attempt + for interceptor in interceptors: + try: + interceptor.read_after_attempt(context) + except Exception as e: + context._response = e + + return context + + def _finalize_execution( + self, + interceptors: list[Interceptor[Input, Output, DafnyRequest, DafnyResponse]], + context: InterceptorContext[ + Input, Output, DafnyRequest | None, DafnyResponse | None + ], + ) -> Output: + try: + # Step 9: Invoke modify_before_completion + for interceptor in interceptors: + context._response = interceptor.modify_before_completion(context) + + except Exception as e: + context._response = e + + # Step 11: Invoke read_after_execution + for interceptor in interceptors: + try: + interceptor.read_after_execution(context) + except Exception as e: + context._response = e + + # Step 12: Return / throw + if isinstance(context.response, Exception): + raise context.response + + # We may want to add some aspects of this context to the output types so we can + # return it to the end-users. + return context.response diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/config.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/config.py new file mode 100644 index 000000000..80d232646 --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/config.py @@ -0,0 +1,150 @@ +# Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 +# Do not modify this file. This file is machine generated, and any changes to it will be overwritten. + +from aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes import ( + AwsEncryptionSdkConfig_AwsEncryptionSdkConfig as DafnyAwsEncryptionSdkConfig, +) +import aws_encryption_sdk.internaldafny.generated.module_ +import aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.dafny_to_smithy +import aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.smithy_to_dafny +from dataclasses import dataclass +from typing import Any, Callable, Dict, Optional, TypeAlias + +from .dafnyImplInterface import DafnyImplInterface +from smithy_python._private.retries import SimpleRetryStrategy +from smithy_python.interfaces.retries import RetryStrategy + + +_ServiceInterceptor = Any + + +@dataclass(init=False) +class Config: + """Configuration for AwsEncryptionSdk.""" + + interceptors: list[_ServiceInterceptor] + retry_strategy: RetryStrategy + dafnyImplInterface: DafnyImplInterface | None + + def __init__( + self, + *, + interceptors: list[_ServiceInterceptor] | None = None, + retry_strategy: RetryStrategy | None = None, + dafnyImplInterface: DafnyImplInterface | None = None, + ): + """Constructor. + + :param interceptors: The list of interceptors, which are hooks + that are called during the execution of a request. + :param retry_strategy: The retry strategy for issuing retry + tokens and computing retry delays. + :param dafnyImplInterface: + """ + self.interceptors = interceptors or [] + self.retry_strategy = retry_strategy or SimpleRetryStrategy() + self.dafnyImplInterface = dafnyImplInterface + + +# A callable that allows customizing the config object on each request. +Plugin: TypeAlias = Callable[[Config], None] + + +class AwsEncryptionSdkConfig(Config): + commitment_policy: Optional[str] + max_encrypted_data_keys: int + net_v4_0_0_retry_policy: Optional[str] + + def __init__( + self, + *, + commitment_policy: Optional[str] = None, + max_encrypted_data_keys: int = 0, + net_v4_0_0_retry_policy: Optional[str] = None, + ): + """Constructor for AwsEncryptionSdkConfig. + + :param net_v4_0_0_retry_policy: During Decryption, Allow or + Forbid ESDK-NET v4.0.0 Behavior if the ESDK Message Header + fails the Header Authentication check. + """ + super().__init__() + self.commitment_policy = commitment_policy + if (max_encrypted_data_keys is not None) and (max_encrypted_data_keys < 1): + raise ValueError( + "max_encrypted_data_keys must be greater than or equal to 1" + ) + + self.max_encrypted_data_keys = max_encrypted_data_keys + self.net_v4_0_0_retry_policy = net_v4_0_0_retry_policy + + def as_dict(self) -> Dict[str, Any]: + """Converts the AwsEncryptionSdkConfig to a dictionary.""" + d: Dict[str, Any] = {} + + if self.commitment_policy is not None: + d["commitment_policy"] = self.commitment_policy + + if self.max_encrypted_data_keys is not None: + d["max_encrypted_data_keys"] = self.max_encrypted_data_keys + + if self.net_v4_0_0_retry_policy is not None: + d["net_v4_0_0_retry_policy"] = self.net_v4_0_0_retry_policy + + return d + + @staticmethod + def from_dict(d: Dict[str, Any]) -> "AwsEncryptionSdkConfig": + """Creates a AwsEncryptionSdkConfig from a dictionary.""" + kwargs: Dict[str, Any] = {} + + if "commitment_policy" in d: + kwargs["commitment_policy"] = d["commitment_policy"] + + if "max_encrypted_data_keys" in d: + kwargs["max_encrypted_data_keys"] = d["max_encrypted_data_keys"] + + if "net_v4_0_0_retry_policy" in d: + kwargs["net_v4_0_0_retry_policy"] = d["net_v4_0_0_retry_policy"] + + return AwsEncryptionSdkConfig(**kwargs) + + def __repr__(self) -> str: + result = "AwsEncryptionSdkConfig(" + if self.commitment_policy is not None: + result += f"commitment_policy={repr(self.commitment_policy)}, " + + if self.max_encrypted_data_keys is not None: + result += f"max_encrypted_data_keys={repr(self.max_encrypted_data_keys)}, " + + if self.net_v4_0_0_retry_policy is not None: + result += f"net_v4_0_0_retry_policy={repr(self.net_v4_0_0_retry_policy)}" + + return result + ")" + + def __eq__(self, other: Any) -> bool: + if not isinstance(other, AwsEncryptionSdkConfig): + return False + attributes: list[str] = [ + "commitment_policy", + "max_encrypted_data_keys", + "net_v4_0_0_retry_policy", + ] + return all(getattr(self, a) == getattr(other, a) for a in attributes) + + +def dafny_config_to_smithy_config(dafny_config) -> AwsEncryptionSdkConfig: + """Converts the provided Dafny shape for this localService's config into + the corresponding Smithy-modelled shape.""" + return aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.dafny_to_smithy.aws_cryptography_encryptionsdk_AwsEncryptionSdkConfig( + dafny_config + ) + + +def smithy_config_to_dafny_config(smithy_config) -> DafnyAwsEncryptionSdkConfig: + """Converts the provided Smithy-modelled shape for this localService's + config into the corresponding Dafny shape.""" + return aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.smithy_to_dafny.aws_cryptography_encryptionsdk_AwsEncryptionSdkConfig( + smithy_config + ) diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafnyImplInterface.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafnyImplInterface.py new file mode 100644 index 000000000..ea1fc6f7a --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafnyImplInterface.py @@ -0,0 +1,32 @@ +# Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 +# Do not modify this file. This file is machine generated, and any changes to it will be overwritten. + +from aws_encryption_sdk.internaldafny.generated.ESDK import ESDKClient +from .dafny_protocol import DafnyRequest + + +class DafnyImplInterface: + impl: ESDKClient | None = None + + # operation_map cannot be created at dafnyImplInterface create time, + # as the map's values reference values inside `self.impl`, + # and impl is only populated at runtime. + # Accessing these before impl is populated results in an error. + # At runtime, the map is populated once and cached. + operation_map = None + + def handle_request(self, input: DafnyRequest): + if self.operation_map is None: + self.operation_map = { + "Encrypt": self.impl.Encrypt, + "Decrypt": self.impl.Decrypt, + } + + # This logic is where a typical Smithy client would expect the "server" to be. + # This code can be thought of as logic our Dafny "server" uses + # to route incoming client requests to the correct request handler code. + if input.dafny_operation_input is None: + return self.operation_map[input.operation_name]() + else: + return self.operation_map[input.operation_name](input.dafny_operation_input) diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafny_protocol.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafny_protocol.py new file mode 100644 index 000000000..0e18b4581 --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafny_protocol.py @@ -0,0 +1,33 @@ +# Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 +# Do not modify this file. This file is machine generated, and any changes to it will be overwritten. + +from aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes import ( + DecryptInput_DecryptInput as DafnyDecryptInput, + EncryptInput_EncryptInput as DafnyEncryptInput, +) +import aws_encryption_sdk.internaldafny.generated.module_ + + +import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers +from typing import Union + + +class DafnyRequest: + operation_name: str + + # dafny_operation_input can take on any one of the types + # of the input values passed to the Dafny implementation + dafny_operation_input: Union[ + DafnyEncryptInput, + DafnyDecryptInput, + ] + + def __init__(self, operation_name, dafny_operation_input): + self.operation_name = operation_name + self.dafny_operation_input = dafny_operation_input + + +class DafnyResponse(Wrappers.Result): + def __init__(self): + super().__init__(self) diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafny_to_smithy.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafny_to_smithy.py new file mode 100644 index 000000000..d5aa0c5cf --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafny_to_smithy.py @@ -0,0 +1,166 @@ +# Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 +# Do not modify this file. This file is machine generated, and any changes to it will be overwritten. + +import aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.dafny_to_smithy +from aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes import ( + NetV4_0_0_RetryPolicy_ALLOW__RETRY, + NetV4_0_0_RetryPolicy_FORBID__RETRY, +) +import aws_encryption_sdk.internaldafny.generated.module_ +import aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.dafny_to_smithy +import aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.models + + +def aws_cryptography_encryptionsdk_EncryptInput(dafny_input): + return aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.models.EncryptInput( + plaintext=bytes(dafny_input.plaintext), + encryption_context=( + ( + { + bytes(key.Elements) + .decode("utf-8"): bytes(value.Elements) + .decode("utf-8") + for (key, value) in dafny_input.encryptionContext.value.items + } + ) + if (dafny_input.encryptionContext.is_Some) + else None + ), + materials_manager=( + ( + aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.dafny_to_smithy.aws_cryptography_materialproviders_CryptographicMaterialsManagerReference( + dafny_input.materialsManager.UnwrapOr(None) + ) + ) + if (dafny_input.materialsManager.UnwrapOr(None) is not None) + else None + ), + keyring=( + ( + aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.dafny_to_smithy.aws_cryptography_materialproviders_KeyringReference( + dafny_input.keyring.UnwrapOr(None) + ) + ) + if (dafny_input.keyring.UnwrapOr(None) is not None) + else None + ), + algorithm_suite_id=( + ( + aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.dafny_to_smithy.aws_cryptography_materialproviders_ESDKAlgorithmSuiteId( + dafny_input.algorithmSuiteId.value + ) + ) + if (dafny_input.algorithmSuiteId.is_Some) + else None + ), + frame_length=( + (dafny_input.frameLength.value) + if (dafny_input.frameLength.is_Some) + else None + ), + ) + + +def aws_cryptography_encryptionsdk_DecryptInput(dafny_input): + return aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.models.DecryptInput( + ciphertext=bytes(dafny_input.ciphertext), + materials_manager=( + ( + aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.dafny_to_smithy.aws_cryptography_materialproviders_CryptographicMaterialsManagerReference( + dafny_input.materialsManager.UnwrapOr(None) + ) + ) + if (dafny_input.materialsManager.UnwrapOr(None) is not None) + else None + ), + keyring=( + ( + aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.dafny_to_smithy.aws_cryptography_materialproviders_KeyringReference( + dafny_input.keyring.UnwrapOr(None) + ) + ) + if (dafny_input.keyring.UnwrapOr(None) is not None) + else None + ), + encryption_context=( + ( + { + bytes(key.Elements) + .decode("utf-8"): bytes(value.Elements) + .decode("utf-8") + for (key, value) in dafny_input.encryptionContext.value.items + } + ) + if (dafny_input.encryptionContext.is_Some) + else None + ), + ) + + +def aws_cryptography_encryptionsdk_EncryptOutput(dafny_input): + return aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.models.EncryptOutput( + ciphertext=bytes(dafny_input.ciphertext), + encryption_context={ + bytes(key.Elements).decode("utf-8"): bytes(value.Elements).decode("utf-8") + for (key, value) in dafny_input.encryptionContext.items + }, + algorithm_suite_id=aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.dafny_to_smithy.aws_cryptography_materialproviders_ESDKAlgorithmSuiteId( + dafny_input.algorithmSuiteId + ), + ) + + +def aws_cryptography_encryptionsdk_DecryptOutput(dafny_input): + return aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.models.DecryptOutput( + plaintext=bytes(dafny_input.plaintext), + encryption_context={ + bytes(key.Elements).decode("utf-8"): bytes(value.Elements).decode("utf-8") + for (key, value) in dafny_input.encryptionContext.items + }, + algorithm_suite_id=aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.dafny_to_smithy.aws_cryptography_materialproviders_ESDKAlgorithmSuiteId( + dafny_input.algorithmSuiteId + ), + ) + + +def aws_cryptography_encryptionsdk_NetV4_0_0_RetryPolicy(dafny_input): + if isinstance(dafny_input, NetV4_0_0_RetryPolicy_FORBID__RETRY): + return "FORBID_RETRY" + + elif isinstance(dafny_input, NetV4_0_0_RetryPolicy_ALLOW__RETRY): + return "ALLOW_RETRY" + + else: + raise ValueError(f"No recognized enum value in enum type: {dafny_input=}") + + +def aws_cryptography_encryptionsdk_AwsEncryptionSdkConfig(dafny_input): + # Deferred import of .config to avoid circular dependency + import aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.config + + return aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.config.AwsEncryptionSdkConfig( + commitment_policy=( + ( + aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.dafny_to_smithy.aws_cryptography_materialproviders_ESDKCommitmentPolicy( + dafny_input.commitmentPolicy.value + ) + ) + if (dafny_input.commitmentPolicy.is_Some) + else None + ), + max_encrypted_data_keys=( + (dafny_input.maxEncryptedDataKeys.value) + if (dafny_input.maxEncryptedDataKeys.is_Some) + else None + ), + net_v4_0_0_retry_policy=( + ( + aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.dafny_to_smithy.aws_cryptography_encryptionsdk_NetV4_0_0_RetryPolicy( + dafny_input.netV4_0_0_RetryPolicy.value + ) + ) + if (dafny_input.netV4_0_0_RetryPolicy.is_Some) + else None + ), + ) diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/deserialize.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/deserialize.py new file mode 100644 index 000000000..d6ecad5bb --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/deserialize.py @@ -0,0 +1,78 @@ +# Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 +# Do not modify this file. This file is machine generated, and any changes to it will be overwritten. + +import _dafny +from aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes import ( + DecryptOutput_DecryptOutput as DafnyDecryptOutput, + EncryptOutput_EncryptOutput as DafnyEncryptOutput, + Error, + Error_AwsEncryptionSdkException, +) +import aws_encryption_sdk.internaldafny.generated.module_ +import aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.dafny_to_smithy +from typing import Any + +from .dafny_protocol import DafnyResponse +from .errors import ( + AwsCryptographicMaterialProviders, + AwsCryptographicPrimitives, + AwsEncryptionSdkException, + CollectionOfErrors, + OpaqueError, + ServiceError, +) +from aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.deserialize import ( + _deserialize_error as aws_cryptography_materialproviders_deserialize_error, +) +from aws_cryptography_primitives.smithygenerated.aws_cryptography_primitives.deserialize import ( + _deserialize_error as aws_cryptography_primitives_deserialize_error, +) + +from .config import Config + + +def _deserialize_encrypt(input: DafnyResponse, config: Config): + + if input.IsFailure(): + return _deserialize_error(input.error) + return aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.dafny_to_smithy.aws_cryptography_encryptionsdk_EncryptOutput( + input.value + ) + + +def _deserialize_decrypt(input: DafnyResponse, config: Config): + + if input.IsFailure(): + return _deserialize_error(input.error) + return aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.dafny_to_smithy.aws_cryptography_encryptionsdk_DecryptOutput( + input.value + ) + + +def _deserialize_error(error: Error) -> ServiceError: + if error.is_Opaque: + return OpaqueError(obj=error.obj) + elif error.is_OpaqueWithText: + return OpaqueErrorWithText(obj=error.obj, obj_message=error.objMessage) + elif error.is_CollectionOfErrors: + return CollectionOfErrors( + message=_dafny.string_of(error.message), + list=[_deserialize_error(dafny_e) for dafny_e in error.list], + ) + elif error.is_AwsEncryptionSdkException: + return AwsEncryptionSdkException(message=_dafny.string_of(error.message)) + elif error.is_AwsCryptographyPrimitives: + return AwsCryptographicPrimitives( + aws_cryptography_primitives_deserialize_error( + error.AwsCryptographyPrimitives + ) + ) + elif error.is_AwsCryptographyMaterialProviders: + return AwsCryptographicMaterialProviders( + aws_cryptography_materialproviders_deserialize_error( + error.AwsCryptographyMaterialProviders + ) + ) + else: + return OpaqueError(obj=error) diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/errors.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/errors.py new file mode 100644 index 000000000..98aa2158d --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/errors.py @@ -0,0 +1,303 @@ +# Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 +# Do not modify this file. This file is machine generated, and any changes to it will be overwritten. + +import _dafny +from aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.errors import ( + _smithy_error_to_dafny_error as aws_cryptography_materialproviders_smithy_error_to_dafny_error, +) +from aws_cryptography_primitives.smithygenerated.aws_cryptography_primitives.errors import ( + _smithy_error_to_dafny_error as aws_cryptography_primitives_smithy_error_to_dafny_error, +) +import aws_encryption_sdk.internaldafny.generated +import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.errors +from typing import Any, Dict, Generic, List, Literal, TypeVar + + +class ServiceError(Exception): + """Base error for all errors in the service.""" + + pass + + +T = TypeVar("T") + + +class ApiError(ServiceError, Generic[T]): + """Base error for all api errors in the service.""" + + code: T + + def __init__(self, message: str): + super().__init__(message) + self.message = message + + +class UnknownApiError(ApiError[Literal["Unknown"]]): + """Error representing any unknown api errors.""" + + code: Literal["Unknown"] = "Unknown" + + +class AwsEncryptionSdkException(ApiError[Literal["AwsEncryptionSdkException"]]): + code: Literal["AwsEncryptionSdkException"] = "AwsEncryptionSdkException" + message: str + + def __init__( + self, + *, + message: str, + ): + super().__init__(message) + + def as_dict(self) -> Dict[str, Any]: + """Converts the AwsEncryptionSdkException to a dictionary.""" + return { + "message": self.message, + "code": self.code, + } + + @staticmethod + def from_dict(d: Dict[str, Any]) -> "AwsEncryptionSdkException": + """Creates a AwsEncryptionSdkException from a dictionary.""" + kwargs: Dict[str, Any] = { + "message": d["message"], + } + + return AwsEncryptionSdkException(**kwargs) + + def __repr__(self) -> str: + result = "AwsEncryptionSdkException(" + if self.message is not None: + result += f"message={repr(self.message)}" + + return result + ")" + + def __eq__(self, other: Any) -> bool: + if not isinstance(other, AwsEncryptionSdkException): + return False + attributes: list[str] = [ + "message", + "message", + ] + return all(getattr(self, a) == getattr(other, a) for a in attributes) + + +class AwsEncryptionSdkException(ApiError[Literal["AwsEncryptionSdkException"]]): + code: Literal["AwsEncryptionSdkException"] = "AwsEncryptionSdkException" + message: str + + +class AwsCryptographicPrimitives(ApiError[Literal["AwsCryptographicPrimitives"]]): + AwsCryptographicPrimitives: Any + + +class AwsCryptographicMaterialProviders( + ApiError[Literal["AwsCryptographicMaterialProviders"]] +): + AwsCryptographicMaterialProviders: Any + + +class CollectionOfErrors(ApiError[Literal["CollectionOfErrors"]]): + code: Literal["CollectionOfErrors"] = "CollectionOfErrors" + message: str + list: List[ServiceError] + + def __init__(self, *, message: str, list): + super().__init__(message) + self.list = list + + def as_dict(self) -> Dict[str, Any]: + """Converts the CollectionOfErrors to a dictionary. + + The dictionary uses the modeled shape names rather than the + parameter names as keys to be mostly compatible with boto3. + """ + return { + "message": self.message, + "code": self.code, + "list": self.list, + } + + @staticmethod + def from_dict(d: Dict[str, Any]) -> "CollectionOfErrors": + """Creates a CollectionOfErrors from a dictionary. + + The dictionary is expected to use the modeled shape names rather + than the parameter names as keys to be mostly compatible with + boto3. + """ + kwargs: Dict[str, Any] = {"message": d["message"], "list": d["list"]} + + return CollectionOfErrors(**kwargs) + + def __repr__(self) -> str: + result = "CollectionOfErrors(" + result += f"message={self.message}," + if self.message is not None: + result += f"message={repr(self.message)}" + result += f"list={self.list}" + result += ")" + return result + + def __eq__(self, other: Any) -> bool: + if not isinstance(other, CollectionOfErrors): + return False + if not (self.list == other.list): + return False + attributes: list[str] = ["message", "message"] + return all(getattr(self, a) == getattr(other, a) for a in attributes) + + +class OpaqueError(ApiError[Literal["OpaqueError"]]): + code: Literal["OpaqueError"] = "OpaqueError" + obj: Any # As an OpaqueError, type of obj is unknown + + def __init__(self, *, obj): + super().__init__("") + self.obj = obj + + def as_dict(self) -> Dict[str, Any]: + """Converts the OpaqueError to a dictionary. + + The dictionary uses the modeled shape names rather than the + parameter names as keys to be mostly compatible with boto3. + """ + return { + "message": self.message, + "code": self.code, + "obj": self.obj, + } + + @staticmethod + def from_dict(d: Dict[str, Any]) -> "OpaqueError": + """Creates a OpaqueError from a dictionary. + + The dictionary is expected to use the modeled shape names rather + than the parameter names as keys to be mostly compatible with + boto3. + """ + kwargs: Dict[str, Any] = {"message": d["message"], "obj": d["obj"]} + + return OpaqueError(**kwargs) + + def __repr__(self) -> str: + result = "OpaqueError(" + result += f"message={self.message}," + if self.message is not None: + result += f"message={repr(self.message)}" + result += f"obj={self.obj}" + result += ")" + return result + + def __eq__(self, other: Any) -> bool: + if not isinstance(other, OpaqueError): + return False + if not (self.obj == other.obj): + return False + attributes: list[str] = ["message", "message"] + return all(getattr(self, a) == getattr(other, a) for a in attributes) + + +class OpaqueWithTextError(ApiError[Literal["OpaqueWithTextError"]]): + code: Literal["OpaqueWithTextError"] = "OpaqueWithTextError" + obj: Any # As an OpaqueWithTextError, type of obj is unknown + obj_message: str # obj_message is a message representing the details of obj + + def __init__(self, *, obj, obj_message): + super().__init__("") + self.obj = obj + self.obj_message = obj_message + + def as_dict(self) -> Dict[str, Any]: + """Converts the OpaqueWithTextError to a dictionary. + + The dictionary uses the modeled shape names rather than the + parameter names as keys to be mostly compatible with boto3. + """ + return { + "message": self.message, + "code": self.code, + "obj": self.obj, + "obj_message": self.obj_message, + } + + @staticmethod + def from_dict(d: Dict[str, Any]) -> "OpaqueWithTextError": + """Creates a OpaqueWithTextError from a dictionary. + + The dictionary is expected to use the modeled shape names rather + than the parameter names as keys to be mostly compatible with + boto3. + """ + kwargs: Dict[str, Any] = { + "message": d["message"], + "obj": d["obj"], + "obj_message": d["obj_message"], + } + + return OpaqueWithTextError(**kwargs) + + def __repr__(self) -> str: + result = "OpaqueWithTextError(" + result += f"message={self.message}," + if self.message is not None: + result += f"message={repr(self.message)}" + result += f"obj={self.obj}" + result += f"obj_message={self.obj_message}" + result += ")" + return result + + def __eq__(self, other: Any) -> bool: + if not isinstance(other, OpaqueWithTextError): + return False + if not (self.obj == other.obj): + return False + attributes: list[str] = ["message", "message"] + return all(getattr(self, a) == getattr(other, a) for a in attributes) + + +def _smithy_error_to_dafny_error(e: ServiceError): + """Converts the provided native Smithy-modeled error into the corresponding + Dafny error.""" + if isinstance( + e, + aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.errors.AwsEncryptionSdkException, + ): + return aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException( + message=_dafny.Seq(e.message) + ) + + if isinstance(e, AwsCryptographicPrimitives): + return aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyPrimitives( + aws_cryptography_primitives_smithy_error_to_dafny_error(e.message) + ) + + if isinstance(e, AwsCryptographicMaterialProviders): + return aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyMaterialProviders( + aws_cryptography_materialproviders_smithy_error_to_dafny_error(e.message) + ) + + if isinstance(e, CollectionOfErrors): + return aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes.Error_CollectionOfErrors( + message=_dafny.Seq(e.message), + list=_dafny.Seq( + _smithy_error_to_dafny_error(native_err) for native_err in e.list + ), + ) + + if isinstance(e, OpaqueError): + return aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes.Error_Opaque( + obj=e.obj + ) + + if isinstance(e, OpaqueWithTextError): + return aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes.Error_OpaqueWithText( + obj=e.obj, objMessage=e.obj_message + ) + + else: + return aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes.Error_Opaque( + obj=e + ) diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/models.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/models.py new file mode 100644 index 000000000..8f37ce666 --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/models.py @@ -0,0 +1,371 @@ +# Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 +# Do not modify this file. This file is machine generated, and any changes to it will be overwritten. + +import aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.references +from typing import Any, Dict, Optional + + +class DecryptInput: + ciphertext: bytes | bytearray + materials_manager: Optional[ + "aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.references.CryptographicMaterialsManager" + ] + keyring: Optional[ + "aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.references.Keyring" + ] + encryption_context: Optional[dict[str, str]] + + def __init__( + self, + *, + ciphertext: bytes | bytearray, + materials_manager: Optional[ + "aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.references.CryptographicMaterialsManager" + ] = None, + keyring: Optional[ + "aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.references.Keyring" + ] = None, + encryption_context: Optional[dict[str, str]] = None, + ): + self.ciphertext = ciphertext + self.materials_manager = materials_manager + self.keyring = keyring + self.encryption_context = encryption_context + + def as_dict(self) -> Dict[str, Any]: + """Converts the DecryptInput to a dictionary.""" + d: Dict[str, Any] = { + "ciphertext": self.ciphertext, + } + + if self.materials_manager is not None: + d["materials_manager"] = self.materials_manager.as_dict() + + if self.keyring is not None: + d["keyring"] = self.keyring.as_dict() + + if self.encryption_context is not None: + d["encryption_context"] = self.encryption_context + + return d + + @staticmethod + def from_dict(d: Dict[str, Any]) -> "DecryptInput": + """Creates a DecryptInput from a dictionary.""" + from aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.references import ( + CryptographicMaterialsManager, + ) + from aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.references import ( + Keyring, + ) + + kwargs: Dict[str, Any] = { + "ciphertext": d["ciphertext"], + } + + if "materials_manager" in d: + kwargs["materials_manager"] = CryptographicMaterialsManager.from_dict( + d["materials_manager"] + ) + + if "keyring" in d: + kwargs["keyring"] = Keyring.from_dict(d["keyring"]) + + if "encryption_context" in d: + kwargs["encryption_context"] = d["encryption_context"] + + return DecryptInput(**kwargs) + + def __repr__(self) -> str: + result = "DecryptInput(" + if self.ciphertext is not None: + result += f"ciphertext={repr(self.ciphertext)}, " + + if self.materials_manager is not None: + result += f"materials_manager={repr(self.materials_manager)}, " + + if self.keyring is not None: + result += f"keyring={repr(self.keyring)}, " + + if self.encryption_context is not None: + result += f"encryption_context={repr(self.encryption_context)}" + + return result + ")" + + def __eq__(self, other: Any) -> bool: + if not isinstance(other, DecryptInput): + return False + attributes: list[str] = [ + "ciphertext", + "materials_manager", + "keyring", + "encryption_context", + ] + return all(getattr(self, a) == getattr(other, a) for a in attributes) + + +class DecryptOutput: + plaintext: bytes | bytearray + encryption_context: dict[str, str] + algorithm_suite_id: str + + def __init__( + self, + *, + plaintext: bytes | bytearray, + encryption_context: dict[str, str], + algorithm_suite_id: str, + ): + self.plaintext = plaintext + self.encryption_context = encryption_context + self.algorithm_suite_id = algorithm_suite_id + + def as_dict(self) -> Dict[str, Any]: + """Converts the DecryptOutput to a dictionary.""" + return { + "plaintext": self.plaintext, + "encryption_context": self.encryption_context, + "algorithm_suite_id": self.algorithm_suite_id, + } + + @staticmethod + def from_dict(d: Dict[str, Any]) -> "DecryptOutput": + """Creates a DecryptOutput from a dictionary.""" + kwargs: Dict[str, Any] = { + "plaintext": d["plaintext"], + "encryption_context": d["encryption_context"], + "algorithm_suite_id": d["algorithm_suite_id"], + } + + return DecryptOutput(**kwargs) + + def __repr__(self) -> str: + result = "DecryptOutput(" + if self.plaintext is not None: + result += f"plaintext={repr(self.plaintext)}, " + + if self.encryption_context is not None: + result += f"encryption_context={repr(self.encryption_context)}, " + + if self.algorithm_suite_id is not None: + result += f"algorithm_suite_id={repr(self.algorithm_suite_id)}" + + return result + ")" + + def __eq__(self, other: Any) -> bool: + if not isinstance(other, DecryptOutput): + return False + attributes: list[str] = [ + "plaintext", + "encryption_context", + "algorithm_suite_id", + ] + return all(getattr(self, a) == getattr(other, a) for a in attributes) + + +class EncryptInput: + plaintext: bytes | bytearray + encryption_context: Optional[dict[str, str]] + materials_manager: Optional[ + "aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.references.CryptographicMaterialsManager" + ] + keyring: Optional[ + "aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.references.Keyring" + ] + algorithm_suite_id: Optional[str] + frame_length: int + + def __init__( + self, + *, + plaintext: bytes | bytearray, + encryption_context: Optional[dict[str, str]] = None, + materials_manager: Optional[ + "aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.references.CryptographicMaterialsManager" + ] = None, + keyring: Optional[ + "aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.references.Keyring" + ] = None, + algorithm_suite_id: Optional[str] = None, + frame_length: int = 0, + ): + self.plaintext = plaintext + self.encryption_context = encryption_context + self.materials_manager = materials_manager + self.keyring = keyring + self.algorithm_suite_id = algorithm_suite_id + if (frame_length is not None) and (frame_length < 1): + raise ValueError("frame_length must be greater than or equal to 1") + + if (frame_length is not None) and (frame_length > 4294967296): + raise ValueError("frame_length must be less than or equal to 4294967296") + + self.frame_length = frame_length + + def as_dict(self) -> Dict[str, Any]: + """Converts the EncryptInput to a dictionary.""" + d: Dict[str, Any] = { + "plaintext": self.plaintext, + } + + if self.encryption_context is not None: + d["encryption_context"] = self.encryption_context + + if self.materials_manager is not None: + d["materials_manager"] = self.materials_manager.as_dict() + + if self.keyring is not None: + d["keyring"] = self.keyring.as_dict() + + if self.algorithm_suite_id is not None: + d["algorithm_suite_id"] = self.algorithm_suite_id + + if self.frame_length is not None: + d["frame_length"] = self.frame_length + + return d + + @staticmethod + def from_dict(d: Dict[str, Any]) -> "EncryptInput": + """Creates a EncryptInput from a dictionary.""" + from aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.references import ( + CryptographicMaterialsManager, + ) + from aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.references import ( + Keyring, + ) + + kwargs: Dict[str, Any] = { + "plaintext": d["plaintext"], + } + + if "encryption_context" in d: + kwargs["encryption_context"] = d["encryption_context"] + + if "materials_manager" in d: + kwargs["materials_manager"] = CryptographicMaterialsManager.from_dict( + d["materials_manager"] + ) + + if "keyring" in d: + kwargs["keyring"] = Keyring.from_dict(d["keyring"]) + + if "algorithm_suite_id" in d: + kwargs["algorithm_suite_id"] = d["algorithm_suite_id"] + + if "frame_length" in d: + kwargs["frame_length"] = d["frame_length"] + + return EncryptInput(**kwargs) + + def __repr__(self) -> str: + result = "EncryptInput(" + if self.plaintext is not None: + result += f"plaintext={repr(self.plaintext)}, " + + if self.encryption_context is not None: + result += f"encryption_context={repr(self.encryption_context)}, " + + if self.materials_manager is not None: + result += f"materials_manager={repr(self.materials_manager)}, " + + if self.keyring is not None: + result += f"keyring={repr(self.keyring)}, " + + if self.algorithm_suite_id is not None: + result += f"algorithm_suite_id={repr(self.algorithm_suite_id)}, " + + if self.frame_length is not None: + result += f"frame_length={repr(self.frame_length)}" + + return result + ")" + + def __eq__(self, other: Any) -> bool: + if not isinstance(other, EncryptInput): + return False + attributes: list[str] = [ + "plaintext", + "encryption_context", + "materials_manager", + "keyring", + "algorithm_suite_id", + "frame_length", + ] + return all(getattr(self, a) == getattr(other, a) for a in attributes) + + +class EncryptOutput: + ciphertext: bytes | bytearray + encryption_context: dict[str, str] + algorithm_suite_id: str + + def __init__( + self, + *, + ciphertext: bytes | bytearray, + encryption_context: dict[str, str], + algorithm_suite_id: str, + ): + self.ciphertext = ciphertext + self.encryption_context = encryption_context + self.algorithm_suite_id = algorithm_suite_id + + def as_dict(self) -> Dict[str, Any]: + """Converts the EncryptOutput to a dictionary.""" + return { + "ciphertext": self.ciphertext, + "encryption_context": self.encryption_context, + "algorithm_suite_id": self.algorithm_suite_id, + } + + @staticmethod + def from_dict(d: Dict[str, Any]) -> "EncryptOutput": + """Creates a EncryptOutput from a dictionary.""" + kwargs: Dict[str, Any] = { + "ciphertext": d["ciphertext"], + "encryption_context": d["encryption_context"], + "algorithm_suite_id": d["algorithm_suite_id"], + } + + return EncryptOutput(**kwargs) + + def __repr__(self) -> str: + result = "EncryptOutput(" + if self.ciphertext is not None: + result += f"ciphertext={repr(self.ciphertext)}, " + + if self.encryption_context is not None: + result += f"encryption_context={repr(self.encryption_context)}, " + + if self.algorithm_suite_id is not None: + result += f"algorithm_suite_id={repr(self.algorithm_suite_id)}" + + return result + ")" + + def __eq__(self, other: Any) -> bool: + if not isinstance(other, EncryptOutput): + return False + attributes: list[str] = [ + "ciphertext", + "encryption_context", + "algorithm_suite_id", + ] + return all(getattr(self, a) == getattr(other, a) for a in attributes) + + +class NetV4_0_0_RetryPolicy: + """During Decryption, Allow or Forbid ESDK-NET v4.0.0 Behavior if the ESDK + Message Header fails the Header Authentication check.""" + + FORBID_RETRY = "FORBID_RETRY" + + ALLOW_RETRY = "ALLOW_RETRY" + + # This set contains every possible value known at the time this was generated. New + # values may be added in the future. + values = frozenset({"FORBID_RETRY", "ALLOW_RETRY"}) + + +class Unit: + pass diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/plugin.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/plugin.py new file mode 100644 index 000000000..62980eb50 --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/plugin.py @@ -0,0 +1,49 @@ +# Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 +# Do not modify this file. This file is machine generated, and any changes to it will be overwritten. + +from .config import ( + Config, + Plugin, + smithy_config_to_dafny_config, + AwsEncryptionSdkConfig, +) +from smithy_python.interfaces.retries import RetryStrategy +from smithy_python.exceptions import SmithyRetryException +from .dafnyImplInterface import DafnyImplInterface + + +def set_config_impl(config: Config): + """Set the Dafny-compiled implementation in the Smithy-Python client Config + and load our custom NoRetriesStrategy.""" + config.dafnyImplInterface = DafnyImplInterface() + if isinstance(config, AwsEncryptionSdkConfig): + from aws_encryption_sdk.internaldafny.generated.ESDK import default__ + + config.dafnyImplInterface.impl = default__.ESDK( + smithy_config_to_dafny_config(config) + ).value + config.retry_strategy = NoRetriesStrategy() + + +class ZeroRetryDelayToken: + """Placeholder class required by Smithy-Python client implementation. + + Do not wait to retry. + """ + + retry_delay = 0 + + +class NoRetriesStrategy(RetryStrategy): + """Placeholder class required by Smithy-Python client implementation. + + Do not retry calling Dafny code. + """ + + def acquire_initial_retry_token(self): + return ZeroRetryDelayToken() + + def refresh_retry_token_for_retry(self, token_to_renew, error_info): + # Do not retry + raise SmithyRetryException() diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/serialize.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/serialize.py new file mode 100644 index 000000000..3ae48be14 --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/serialize.py @@ -0,0 +1,27 @@ +# Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 +# Do not modify this file. This file is machine generated, and any changes to it will be overwritten. + +import aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.smithy_to_dafny + +from .dafny_protocol import DafnyRequest + +from .config import Config + + +def _serialize_encrypt(input, config: Config) -> DafnyRequest: + return DafnyRequest( + operation_name="Encrypt", + dafny_operation_input=aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.smithy_to_dafny.aws_cryptography_encryptionsdk_EncryptInput( + input + ), + ) + + +def _serialize_decrypt(input, config: Config) -> DafnyRequest: + return DafnyRequest( + operation_name="Decrypt", + dafny_operation_input=aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.smithy_to_dafny.aws_cryptography_encryptionsdk_DecryptInput( + input + ), + ) diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/smithy_to_dafny.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/smithy_to_dafny.py new file mode 100644 index 000000000..a22bccd6b --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/smithy_to_dafny.py @@ -0,0 +1,226 @@ +# Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 +# Do not modify this file. This file is machine generated, and any changes to it will be overwritten. + +from _dafny import Map, Seq +import aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.smithy_to_dafny +from aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes import ( + AwsEncryptionSdkConfig_AwsEncryptionSdkConfig as DafnyAwsEncryptionSdkConfig, + DecryptInput_DecryptInput as DafnyDecryptInput, + DecryptOutput_DecryptOutput as DafnyDecryptOutput, + EncryptInput_EncryptInput as DafnyEncryptInput, + EncryptOutput_EncryptOutput as DafnyEncryptOutput, + NetV4_0_0_RetryPolicy_ALLOW__RETRY, + NetV4_0_0_RetryPolicy_FORBID__RETRY, +) +import aws_encryption_sdk.internaldafny.generated.module_ +import aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.smithy_to_dafny +from smithy_dafny_standard_library.internaldafny.generated.Wrappers import ( + Option_None, + Option_Some, +) + + +def aws_cryptography_encryptionsdk_EncryptInput(native_input): + return DafnyEncryptInput( + plaintext=Seq(native_input.plaintext), + encryptionContext=( + ( + Option_Some( + Map( + { + Seq(key.encode("utf-8")): Seq(value.encode("utf-8")) + for (key, value) in native_input.encryption_context.items() + } + ) + ) + ) + if (native_input.encryption_context is not None) + else (Option_None()) + ), + materialsManager=( + ( + Option_Some( + aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.smithy_to_dafny.aws_cryptography_materialproviders_CryptographicMaterialsManagerReference( + native_input.materials_manager + ) + ) + ) + if ( + (native_input.materials_manager is not None) + and ( + aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.smithy_to_dafny.aws_cryptography_materialproviders_CryptographicMaterialsManagerReference( + native_input.materials_manager + ) + is not None + ) + ) + else (Option_None()) + ), + keyring=( + ( + Option_Some( + aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.smithy_to_dafny.aws_cryptography_materialproviders_KeyringReference( + native_input.keyring + ) + ) + ) + if ( + (native_input.keyring is not None) + and ( + aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.smithy_to_dafny.aws_cryptography_materialproviders_KeyringReference( + native_input.keyring + ) + is not None + ) + ) + else (Option_None()) + ), + algorithmSuiteId=( + ( + Option_Some( + aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.smithy_to_dafny.aws_cryptography_materialproviders_ESDKAlgorithmSuiteId( + native_input.algorithm_suite_id + ) + ) + ) + if (native_input.algorithm_suite_id is not None) + else (Option_None()) + ), + frameLength=( + (Option_Some(native_input.frame_length)) + if (native_input.frame_length is not None) + else (Option_None()) + ), + ) + + +def aws_cryptography_encryptionsdk_DecryptInput(native_input): + return DafnyDecryptInput( + ciphertext=Seq(native_input.ciphertext), + materialsManager=( + ( + Option_Some( + aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.smithy_to_dafny.aws_cryptography_materialproviders_CryptographicMaterialsManagerReference( + native_input.materials_manager + ) + ) + ) + if ( + (native_input.materials_manager is not None) + and ( + aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.smithy_to_dafny.aws_cryptography_materialproviders_CryptographicMaterialsManagerReference( + native_input.materials_manager + ) + is not None + ) + ) + else (Option_None()) + ), + keyring=( + ( + Option_Some( + aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.smithy_to_dafny.aws_cryptography_materialproviders_KeyringReference( + native_input.keyring + ) + ) + ) + if ( + (native_input.keyring is not None) + and ( + aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.smithy_to_dafny.aws_cryptography_materialproviders_KeyringReference( + native_input.keyring + ) + is not None + ) + ) + else (Option_None()) + ), + encryptionContext=( + ( + Option_Some( + Map( + { + Seq(key.encode("utf-8")): Seq(value.encode("utf-8")) + for (key, value) in native_input.encryption_context.items() + } + ) + ) + ) + if (native_input.encryption_context is not None) + else (Option_None()) + ), + ) + + +def aws_cryptography_encryptionsdk_EncryptOutput(native_input): + return DafnyEncryptOutput( + ciphertext=Seq(native_input.ciphertext), + encryptionContext=Map( + { + Seq(key.encode("utf-8")): Seq(value.encode("utf-8")) + for (key, value) in native_input.encryption_context.items() + } + ), + algorithmSuiteId=aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.smithy_to_dafny.aws_cryptography_materialproviders_ESDKAlgorithmSuiteId( + native_input.algorithm_suite_id + ), + ) + + +def aws_cryptography_encryptionsdk_DecryptOutput(native_input): + return DafnyDecryptOutput( + plaintext=Seq(native_input.plaintext), + encryptionContext=Map( + { + Seq(key.encode("utf-8")): Seq(value.encode("utf-8")) + for (key, value) in native_input.encryption_context.items() + } + ), + algorithmSuiteId=aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.smithy_to_dafny.aws_cryptography_materialproviders_ESDKAlgorithmSuiteId( + native_input.algorithm_suite_id + ), + ) + + +def aws_cryptography_encryptionsdk_AwsEncryptionSdkConfig(native_input): + return DafnyAwsEncryptionSdkConfig( + commitmentPolicy=( + ( + Option_Some( + aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.smithy_to_dafny.aws_cryptography_materialproviders_ESDKCommitmentPolicy( + native_input.commitment_policy + ) + ) + ) + if (native_input.commitment_policy is not None) + else (Option_None()) + ), + maxEncryptedDataKeys=( + (Option_Some(native_input.max_encrypted_data_keys)) + if (native_input.max_encrypted_data_keys is not None) + else (Option_None()) + ), + netV4_0_0_RetryPolicy=( + ( + Option_Some( + aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.smithy_to_dafny.aws_cryptography_encryptionsdk_NetV4_0_0_RetryPolicy( + native_input.net_v4_0_0_retry_policy + ) + ) + ) + if (native_input.net_v4_0_0_retry_policy is not None) + else (Option_None()) + ), + ) + + +def aws_cryptography_encryptionsdk_NetV4_0_0_RetryPolicy(native_input): + if native_input == "FORBID_RETRY": + return NetV4_0_0_RetryPolicy_FORBID__RETRY() + + elif native_input == "ALLOW_RETRY": + return NetV4_0_0_RetryPolicy_ALLOW__RETRY() + + else: + raise ValueError(f"No recognized enum value in enum type: {native_input=}") diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/__init__.py b/AwsEncryptionSDK/runtimes/python/test/internaldafny/__init__.py new file mode 100644 index 000000000..f94fd12a2 --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/test/internaldafny/__init__.py @@ -0,0 +1,2 @@ +# Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/__pycache__/__init__.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/test/internaldafny/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..30b0fc1d093d55fef1adf1134100fcb804e2eb1b GIT binary patch literal 232 zcmX|5OA5j;6ih6N2t_=Gi~24gf}krw7sYicP1MvhDS0WScn>{-crGtc=&mbMf3ui3 zA0Euz_eaEGa@`$Mcb}d4fqq3ZaN=q_M#b{;6GcJ^ h8%49cYKQYovqJKP>ANl6S{ys7JxXa!eq=nCy#N(?LCOFC literal 0 HcmV?d00001 diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/__pycache__/__init__.cpython-312.pyc b/AwsEncryptionSDK/runtimes/python/test/internaldafny/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..de31595372f5dc0a3cd90ac1f9de510a8f41f93f GIT binary patch literal 220 zcmX@j%ge<81cKB2)3bo|V-N=&d}aZPOlPQM&}8&m$xy@u&!HzBql^5 z-aUx%A}57-;ZJFk9>|_ZJaKEnjf=k7rL`p-oZWdd@4b1y_c3pNj*jXGM*hq5)sG2; zek-Os(r25KjE2w-BB+FjMiQ=8Nx&Zwv9omgN^~=>fk5-A#zUU= z9zm-ixQOK9vFe$9EzDV#XFI-SO((*k9vD|$$g@C%I)_iU&6k35VXm<<)X;U!GH(Qu z6(wV?FsUGKg=yDCk@}IsVSW*0#V8Z=VO>1#$(QDzn!M&q$D_i8QdgO8s(P3MC5l9G ziLH9vE>NdX|5tfF41pC?gja!VqQlh9=0*PrXwmdon6)gz%9a)8R%(t5%_hQ;2SLN? zag)|ruh{}pm5_qLX`MTghC@A3nC;4RFpi?Jd6*Op5vJCdV9RQlQIEhUQ6Bqp(RWn1va|4c;p^+~%iosw9<`=s+EX(J69+dACfZYXTZOrHVXleBk5FXY$2nKj3zP;`!&y6`I#1)ZKK&Hn(bsX?N$e3I8UNX{sIl#aAN=f literal 0 HcmV?d00001 diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/__pycache__/test_dafny_wrapper.cpython-312-pytest-7.4.4.pyc b/AwsEncryptionSDK/runtimes/python/test/internaldafny/__pycache__/test_dafny_wrapper.cpython-312-pytest-7.4.4.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ed59f5f5d69950b198821676fd84065a0c5e7931 GIT binary patch literal 1191 zcmb7E&1=*^6rb7ermfv##m~a{aVfZ)is(s1u|h?u2Nh)xP1BueH*1oKGqY?{5G<|q z?8WLyj}|ZeKfJWG2gyMSo_Y~w4}uqclQg?*Zw@5$-kW*v{oe1rB=7pogW}R&Q^f?a8Uc25Ej7l++ia|MD&L`_keXsvQe66D9j9Kr@~S zI|!H{3y#ak0vCiWv3g56{vw&O7yOVYCY2-$f_o$gwNf=6HylZ9*X3#-;(>n|u%EHqr!wZH?4;b?BON3E~CbBaJ zdO|jFRI)73c6`g4$V3C(P@)8y{Oj=39;nQzfIJTR~`bwbRz&P}vfyQh>H9 zSX(%XMFU+^R7`CKILC=?5oKj4qg<0azNSt$4f5n=;5sTA?JL28?nSx4R*k5jr`@M9 z%*)E^|cyFg%*+bQ@{niIN<;gvCrBlH8 HQVilB5M@)G literal 0 HcmV?d00001 diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/Fixtures.py b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/Fixtures.py new file mode 100644 index 000000000..00c8fdbc5 --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/Fixtures.py @@ -0,0 +1,534 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import module_ as module_ +import _dafny as _dafny +import System_ as System_ +import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers +import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary +import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 +import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom +import aws_cryptography_primitives.internaldafny.generated.Random as Random +import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption +import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest +import aws_cryptography_primitives.internaldafny.generated.Digest as Digest +import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC +import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC +import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF +import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF +import aws_cryptography_primitives.internaldafny.generated.Signature as Signature +import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr +import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption +import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives +import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 +import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites +import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials +import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring +import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations +import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort +import smithy_dafny_standard_library.internaldafny.generated.Math as Math +import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq +import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils +import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants +import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID +import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping +import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets +import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext +import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping +import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring +import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms +import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.Time as Time +import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker +import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC +import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring +import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring +import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM +import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults +import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment +import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM +import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier +import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils +import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders +import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams +import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk.internaldafny.generated.Header as Header +import aws_encryption_sdk.internaldafny.generated.Frames as Frames +import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr +import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn +import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure +import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable +import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore +import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode +import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions +import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings +import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO +import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals +import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals +import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul +import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals +import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals +import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod +import smithy_dafny_standard_library.internaldafny.generated.Power as Power +import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm +import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop +import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting +import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings +import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt +import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare +import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall +import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas + +# Module: Fixtures + +class default__: + def __init__(self): + pass + + @staticmethod + def SmallEncryptionContext(v): + encryptionContext: _dafny.Map = _dafny.Map({}) + d_0_valueOrError0_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() + d_0_valueOrError0_ = UTF8.default__.Encode(_dafny.Seq("keyA")) + if not(not((d_0_valueOrError0_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(36,16): " + _dafny.string_of(d_0_valueOrError0_)) + d_1_keyA_: _dafny.Seq + d_1_keyA_ = (d_0_valueOrError0_).Extract() + d_2_valueOrError1_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() + d_2_valueOrError1_ = UTF8.default__.Encode(_dafny.Seq("valA")) + if not(not((d_2_valueOrError1_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(37,16): " + _dafny.string_of(d_2_valueOrError1_)) + d_3_valA_: _dafny.Seq + d_3_valA_ = (d_2_valueOrError1_).Extract() + d_4_valueOrError2_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() + d_4_valueOrError2_ = UTF8.default__.Encode(_dafny.Seq("keyB")) + if not(not((d_4_valueOrError2_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(38,16): " + _dafny.string_of(d_4_valueOrError2_)) + d_5_keyB_: _dafny.Seq + d_5_keyB_ = (d_4_valueOrError2_).Extract() + d_6_valueOrError3_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() + d_6_valueOrError3_ = UTF8.default__.Encode(_dafny.Seq("valB")) + if not(not((d_6_valueOrError3_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(39,16): " + _dafny.string_of(d_6_valueOrError3_)) + d_7_valB_: _dafny.Seq + d_7_valB_ = (d_6_valueOrError3_).Extract() + d_8_valueOrError4_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() + d_8_valueOrError4_ = UTF8.default__.Encode(_dafny.Seq("keyC")) + if not(not((d_8_valueOrError4_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(40,16): " + _dafny.string_of(d_8_valueOrError4_)) + d_9_keyC_: _dafny.Seq + d_9_keyC_ = (d_8_valueOrError4_).Extract() + d_10_valueOrError5_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() + d_10_valueOrError5_ = UTF8.default__.Encode(_dafny.Seq("valC")) + if not(not((d_10_valueOrError5_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(41,16): " + _dafny.string_of(d_10_valueOrError5_)) + d_11_valC_: _dafny.Seq + d_11_valC_ = (d_10_valueOrError5_).Extract() + d_12_valueOrError6_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() + d_12_valueOrError6_ = UTF8.default__.Encode(_dafny.Seq("keyD")) + if not(not((d_12_valueOrError6_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(42,16): " + _dafny.string_of(d_12_valueOrError6_)) + d_13_keyD_: _dafny.Seq + d_13_keyD_ = (d_12_valueOrError6_).Extract() + d_14_valueOrError7_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() + d_14_valueOrError7_ = UTF8.default__.Encode(_dafny.Seq("valD")) + if not(not((d_14_valueOrError7_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(43,16): " + _dafny.string_of(d_14_valueOrError7_)) + d_15_valD_: _dafny.Seq + d_15_valD_ = (d_14_valueOrError7_).Extract() + source0_ = v + with _dafny.label("match0"): + if True: + if source0_.is_Empty: + encryptionContext = _dafny.Map({}) + raise _dafny.Break("match0") + if True: + if source0_.is_A: + encryptionContext = _dafny.Map({d_1_keyA_: d_3_valA_}) + raise _dafny.Break("match0") + if True: + if source0_.is_B: + encryptionContext = _dafny.Map({d_5_keyB_: d_7_valB_}) + raise _dafny.Break("match0") + if True: + if source0_.is_AB: + encryptionContext = _dafny.Map({d_1_keyA_: d_3_valA_, d_5_keyB_: d_7_valB_}) + raise _dafny.Break("match0") + if True: + if source0_.is_BA: + encryptionContext = _dafny.Map({d_5_keyB_: d_7_valB_, d_1_keyA_: d_3_valA_}) + raise _dafny.Break("match0") + if True: + if source0_.is_C: + encryptionContext = _dafny.Map({d_9_keyC_: d_11_valC_}) + raise _dafny.Break("match0") + if True: + d_16_CE_ = source0_ + encryptionContext = _dafny.Map({d_9_keyC_: d_11_valC_, d_13_keyD_: d_15_valD_}) + pass + return encryptionContext + + @staticmethod + def GetResrvedECMap(): + encryptionContext: _dafny.Map = _dafny.Map({}) + d_0_valueOrError0_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() + d_0_valueOrError0_ = UTF8.default__.Encode(_dafny.Seq("aws-crypto-public-key")) + if not(not((d_0_valueOrError0_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(67,23): " + _dafny.string_of(d_0_valueOrError0_)) + d_1_reservedKey_: _dafny.Seq + d_1_reservedKey_ = (d_0_valueOrError0_).Extract() + d_2_valueOrError1_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() + d_2_valueOrError1_ = UTF8.default__.Encode(_dafny.Seq("not a real public key")) + if not(not((d_2_valueOrError1_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(68,15): " + _dafny.string_of(d_2_valueOrError1_)) + d_3_val_: _dafny.Seq + d_3_val_ = (d_2_valueOrError1_).Extract() + encryptionContext = _dafny.Map({d_1_reservedKey_: d_3_val_}) + return encryptionContext + + @staticmethod + def SmallEncryptionContextKeys(v): + encryptionContextKeys: _dafny.Seq = _dafny.Seq({}) + d_0_valueOrError0_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() + d_0_valueOrError0_ = UTF8.default__.Encode(_dafny.Seq("keyA")) + if not(not((d_0_valueOrError0_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(76,16): " + _dafny.string_of(d_0_valueOrError0_)) + d_1_keyA_: _dafny.Seq + d_1_keyA_ = (d_0_valueOrError0_).Extract() + d_2_valueOrError1_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() + d_2_valueOrError1_ = UTF8.default__.Encode(_dafny.Seq("keyB")) + if not(not((d_2_valueOrError1_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(77,16): " + _dafny.string_of(d_2_valueOrError1_)) + d_3_keyB_: _dafny.Seq + d_3_keyB_ = (d_2_valueOrError1_).Extract() + d_4_valueOrError2_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() + d_4_valueOrError2_ = UTF8.default__.Encode(_dafny.Seq("keyC")) + if not(not((d_4_valueOrError2_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(78,16): " + _dafny.string_of(d_4_valueOrError2_)) + d_5_keyC_: _dafny.Seq + d_5_keyC_ = (d_4_valueOrError2_).Extract() + d_6_valueOrError3_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() + d_6_valueOrError3_ = UTF8.default__.Encode(_dafny.Seq("keyD")) + if not(not((d_6_valueOrError3_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(79,16): " + _dafny.string_of(d_6_valueOrError3_)) + d_7_keyD_: _dafny.Seq + d_7_keyD_ = (d_6_valueOrError3_).Extract() + source0_ = v + with _dafny.label("match0"): + if True: + if source0_.is_Empty: + encryptionContextKeys = _dafny.Seq([]) + raise _dafny.Break("match0") + if True: + if source0_.is_A: + encryptionContextKeys = _dafny.Seq([d_1_keyA_]) + raise _dafny.Break("match0") + if True: + if source0_.is_B: + encryptionContextKeys = _dafny.Seq([d_3_keyB_]) + raise _dafny.Break("match0") + if True: + if source0_.is_AB: + encryptionContextKeys = _dafny.Seq([d_1_keyA_, d_3_keyB_]) + raise _dafny.Break("match0") + if True: + if source0_.is_BA: + encryptionContextKeys = _dafny.Seq([d_3_keyB_, d_1_keyA_]) + raise _dafny.Break("match0") + if True: + if source0_.is_C: + encryptionContextKeys = _dafny.Seq([d_5_keyC_]) + raise _dafny.Break("match0") + if True: + d_8_CE_ = source0_ + encryptionContextKeys = _dafny.Seq([d_5_keyC_, d_7_keyD_]) + pass + return encryptionContextKeys + + @staticmethod + def SmallMismatchedEncryptionContex(v): + encryptionContext: _dafny.Map = _dafny.Map({}) + d_0_valueOrError0_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() + d_0_valueOrError0_ = UTF8.default__.Encode(_dafny.Seq("keyA")) + if not(not((d_0_valueOrError0_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(102,16): " + _dafny.string_of(d_0_valueOrError0_)) + d_1_keyA_: _dafny.Seq + d_1_keyA_ = (d_0_valueOrError0_).Extract() + d_2_valueOrError1_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() + d_2_valueOrError1_ = UTF8.default__.Encode(_dafny.Seq("valA")) + if not(not((d_2_valueOrError1_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(103,16): " + _dafny.string_of(d_2_valueOrError1_)) + d_3_valA_: _dafny.Seq + d_3_valA_ = (d_2_valueOrError1_).Extract() + d_4_valueOrError2_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() + d_4_valueOrError2_ = UTF8.default__.Encode(_dafny.Seq("keyB")) + if not(not((d_4_valueOrError2_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(104,16): " + _dafny.string_of(d_4_valueOrError2_)) + d_5_keyB_: _dafny.Seq + d_5_keyB_ = (d_4_valueOrError2_).Extract() + d_6_valueOrError3_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() + d_6_valueOrError3_ = UTF8.default__.Encode(_dafny.Seq("valB")) + if not(not((d_6_valueOrError3_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(105,16): " + _dafny.string_of(d_6_valueOrError3_)) + d_7_valB_: _dafny.Seq + d_7_valB_ = (d_6_valueOrError3_).Extract() + d_8_valueOrError4_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() + d_8_valueOrError4_ = UTF8.default__.Encode(_dafny.Seq("keyC")) + if not(not((d_8_valueOrError4_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(106,16): " + _dafny.string_of(d_8_valueOrError4_)) + d_9_keyC_: _dafny.Seq + d_9_keyC_ = (d_8_valueOrError4_).Extract() + d_10_valueOrError5_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() + d_10_valueOrError5_ = UTF8.default__.Encode(_dafny.Seq("valC")) + if not(not((d_10_valueOrError5_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(107,16): " + _dafny.string_of(d_10_valueOrError5_)) + d_11_valC_: _dafny.Seq + d_11_valC_ = (d_10_valueOrError5_).Extract() + d_12_valueOrError6_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() + d_12_valueOrError6_ = UTF8.default__.Encode(_dafny.Seq("keyD")) + if not(not((d_12_valueOrError6_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(108,16): " + _dafny.string_of(d_12_valueOrError6_)) + d_13_keyD_: _dafny.Seq + d_13_keyD_ = (d_12_valueOrError6_).Extract() + d_14_valueOrError7_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() + d_14_valueOrError7_ = UTF8.default__.Encode(_dafny.Seq("valD")) + if not(not((d_14_valueOrError7_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(109,16): " + _dafny.string_of(d_14_valueOrError7_)) + d_15_valD_: _dafny.Seq + d_15_valD_ = (d_14_valueOrError7_).Extract() + source0_ = v + with _dafny.label("match0"): + if True: + if source0_.is_Empty: + encryptionContext = _dafny.Map({}) + raise _dafny.Break("match0") + if True: + if source0_.is_A: + encryptionContext = _dafny.Map({d_1_keyA_: d_7_valB_}) + raise _dafny.Break("match0") + if True: + if source0_.is_B: + encryptionContext = _dafny.Map({d_5_keyB_: d_3_valA_}) + raise _dafny.Break("match0") + if True: + if source0_.is_AB: + encryptionContext = _dafny.Map({d_1_keyA_: d_11_valC_, d_5_keyB_: d_15_valD_}) + raise _dafny.Break("match0") + if True: + if source0_.is_BA: + encryptionContext = _dafny.Map({d_5_keyB_: d_3_valA_, d_1_keyA_: d_7_valB_}) + raise _dafny.Break("match0") + if True: + if source0_.is_C: + encryptionContext = _dafny.Map({d_9_keyC_: d_3_valA_}) + raise _dafny.Break("match0") + if True: + d_16_CE_ = source0_ + encryptionContext = _dafny.Map({d_9_keyC_: d_3_valA_, d_13_keyD_: d_7_valB_}) + pass + return encryptionContext + + @staticmethod + def NamespaceAndName(n): + namespace: _dafny.Seq = _dafny.Seq("") + name: _dafny.Seq = _dafny.Seq("") + d_0_s_: _dafny.Seq + d_0_s_ = (_dafny.Seq("child")) + (_dafny.Seq([_dafny.plus_char(chr(n), '0')])) + namespace = (d_0_s_) + (_dafny.Seq(" Namespace")) + name = (d_0_s_) + (_dafny.Seq(" Name")) + return namespace, name + + @staticmethod + def GenerateKeyPair(keyModulusLength): + keys: AwsCryptographyPrimitivesTypes.GenerateRSAKeyPairOutput = None + d_0_valueOrError0_: Wrappers.Result = None + out0_: Wrappers.Result + out0_ = AtomicPrimitives.default__.AtomicPrimitives(AtomicPrimitives.default__.DefaultCryptoConfig()) + d_0_valueOrError0_ = out0_ + if not(not((d_0_valueOrError0_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(143,72): " + _dafny.string_of(d_0_valueOrError0_)) + d_1_cryptoX_: AwsCryptographyPrimitivesTypes.IAwsCryptographicPrimitivesClient + d_1_cryptoX_ = (d_0_valueOrError0_).Extract() + d_2_crypto_: AtomicPrimitives.AtomicPrimitivesClient + d_2_crypto_ = d_1_cryptoX_ + d_3_valueOrError1_: Wrappers.Result = None + out1_: Wrappers.Result + out1_ = (d_2_crypto_).GenerateRSAKeyPair(AwsCryptographyPrimitivesTypes.GenerateRSAKeyPairInput_GenerateRSAKeyPairInput(keyModulusLength)) + d_3_valueOrError1_ = out1_ + if not(not((d_3_valueOrError1_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(147,14): " + _dafny.string_of(d_3_valueOrError1_)) + keys = (d_3_valueOrError1_).Extract() + return keys + + @_dafny.classproperty + def branchKeyStoreName(instance): + return _dafny.Seq("KeyStoreDdbTable") + @_dafny.classproperty + def logicalKeyStoreName(instance): + return default__.branchKeyStoreName + @_dafny.classproperty + def keyArn(instance): + return _dafny.Seq("arn:aws:kms:us-west-2:658956600833:key/b3537ef1-d8dc-4780-9f5a-55776cbb2f7f") + @_dafny.classproperty + def hierarchyKeyArn(instance): + return _dafny.Seq("arn:aws:kms:us-west-2:370957321024:key/9d989aa2-2f9c-438c-a745-cc57d3ad0126") + @_dafny.classproperty + def mkrKeyArn(instance): + return _dafny.Seq("arn:aws:kms:us-west-2:370957321024:key/mrk-63d386cb70614ea59b32ad65c9315297") + @_dafny.classproperty + def branchKeyId(instance): + return _dafny.Seq("75789115-1deb-4fe3-a2ec-be9e885d1945") + @_dafny.classproperty + def RESERVED__ENCRYPTION__CONTEXT(instance): + d_0_s_ = _dafny.Seq([97, 119, 115, 45, 99, 114, 121, 112, 116, 111, 45]) + return d_0_s_ + +class SmallEncryptionContextVariation: + @_dafny.classproperty + def AllSingletonConstructors(cls): + return [SmallEncryptionContextVariation_Empty(), SmallEncryptionContextVariation_A(), SmallEncryptionContextVariation_B(), SmallEncryptionContextVariation_AB(), SmallEncryptionContextVariation_BA(), SmallEncryptionContextVariation_C(), SmallEncryptionContextVariation_CD()] + @classmethod + def default(cls, ): + return lambda: SmallEncryptionContextVariation_Empty() + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_Empty(self) -> bool: + return isinstance(self, SmallEncryptionContextVariation_Empty) + @property + def is_A(self) -> bool: + return isinstance(self, SmallEncryptionContextVariation_A) + @property + def is_B(self) -> bool: + return isinstance(self, SmallEncryptionContextVariation_B) + @property + def is_AB(self) -> bool: + return isinstance(self, SmallEncryptionContextVariation_AB) + @property + def is_BA(self) -> bool: + return isinstance(self, SmallEncryptionContextVariation_BA) + @property + def is_C(self) -> bool: + return isinstance(self, SmallEncryptionContextVariation_C) + @property + def is_CD(self) -> bool: + return isinstance(self, SmallEncryptionContextVariation_CD) + +class SmallEncryptionContextVariation_Empty(SmallEncryptionContextVariation, NamedTuple('Empty', [])): + def __dafnystr__(self) -> str: + return f'Fixtures.SmallEncryptionContextVariation.Empty' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, SmallEncryptionContextVariation_Empty) + def __hash__(self) -> int: + return super().__hash__() + +class SmallEncryptionContextVariation_A(SmallEncryptionContextVariation, NamedTuple('A', [])): + def __dafnystr__(self) -> str: + return f'Fixtures.SmallEncryptionContextVariation.A' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, SmallEncryptionContextVariation_A) + def __hash__(self) -> int: + return super().__hash__() + +class SmallEncryptionContextVariation_B(SmallEncryptionContextVariation, NamedTuple('B', [])): + def __dafnystr__(self) -> str: + return f'Fixtures.SmallEncryptionContextVariation.B' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, SmallEncryptionContextVariation_B) + def __hash__(self) -> int: + return super().__hash__() + +class SmallEncryptionContextVariation_AB(SmallEncryptionContextVariation, NamedTuple('AB', [])): + def __dafnystr__(self) -> str: + return f'Fixtures.SmallEncryptionContextVariation.AB' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, SmallEncryptionContextVariation_AB) + def __hash__(self) -> int: + return super().__hash__() + +class SmallEncryptionContextVariation_BA(SmallEncryptionContextVariation, NamedTuple('BA', [])): + def __dafnystr__(self) -> str: + return f'Fixtures.SmallEncryptionContextVariation.BA' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, SmallEncryptionContextVariation_BA) + def __hash__(self) -> int: + return super().__hash__() + +class SmallEncryptionContextVariation_C(SmallEncryptionContextVariation, NamedTuple('C', [])): + def __dafnystr__(self) -> str: + return f'Fixtures.SmallEncryptionContextVariation.C' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, SmallEncryptionContextVariation_C) + def __hash__(self) -> int: + return super().__hash__() + +class SmallEncryptionContextVariation_CD(SmallEncryptionContextVariation, NamedTuple('CD', [])): + def __dafnystr__(self) -> str: + return f'Fixtures.SmallEncryptionContextVariation.CD' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, SmallEncryptionContextVariation_CD) + def __hash__(self) -> int: + return super().__hash__() + diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestCreateEsdkClient.py b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestCreateEsdkClient.py new file mode 100644 index 000000000..182dc39e8 --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestCreateEsdkClient.py @@ -0,0 +1,241 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import module_ as module_ +import _dafny as _dafny +import System_ as System_ +import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers +import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary +import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 +import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom +import aws_cryptography_primitives.internaldafny.generated.Random as Random +import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption +import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest +import aws_cryptography_primitives.internaldafny.generated.Digest as Digest +import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC +import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC +import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF +import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF +import aws_cryptography_primitives.internaldafny.generated.Signature as Signature +import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr +import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption +import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives +import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 +import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites +import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials +import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring +import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations +import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort +import smithy_dafny_standard_library.internaldafny.generated.Math as Math +import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq +import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils +import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants +import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID +import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping +import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets +import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext +import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping +import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring +import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms +import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.Time as Time +import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker +import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC +import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring +import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring +import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM +import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults +import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment +import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM +import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier +import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils +import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders +import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams +import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk.internaldafny.generated.Header as Header +import aws_encryption_sdk.internaldafny.generated.Frames as Frames +import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr +import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn +import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure +import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable +import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore +import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode +import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions +import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings +import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO +import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals +import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals +import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul +import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals +import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals +import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod +import smithy_dafny_standard_library.internaldafny.generated.Power as Power +import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm +import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop +import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting +import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings +import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt +import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare +import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall +import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas +import Fixtures as Fixtures +import TestRequiredEncryptionContext as TestRequiredEncryptionContext +import TestReproducedEncryptionContext as TestReproducedEncryptionContext +import TestEncryptDecrypt as TestEncryptDecrypt + +# Module: TestCreateEsdkClient + +class default__: + def __init__(self): + pass + + @staticmethod + def TestClientCreation(): + d_0_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig + d_0_defaultConfig_ = EncryptionSdk.default__.DefaultAwsEncryptionSdkConfig() + d_1_valueOrError0_: Wrappers.Result = None + out0_: Wrappers.Result + out0_ = EncryptionSdk.default__.ESDK(d_0_defaultConfig_) + d_1_valueOrError0_ = out0_ + if not(not((d_1_valueOrError0_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(55,51): " + _dafny.string_of(d_1_valueOrError0_)) + d_2_esdk_: AwsCryptographyEncryptionSdkTypes.IAwsEncryptionSdkClient + d_2_esdk_ = (d_1_valueOrError0_).Extract() + def iife0_(_is_0): + return isinstance(_is_0, EncryptionSdk.ESDKClient) + if not(iife0_(d_2_esdk_)): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(56,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_3_esdkClient_: EncryptionSdk.ESDKClient + d_3_esdkClient_ = d_2_esdk_ + if not((((d_3_esdkClient_).config).commitmentPolicy) == (((d_0_defaultConfig_).commitmentPolicy).value)): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(59,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + if not((((d_3_esdkClient_).config).maxEncryptedDataKeys) == ((d_0_defaultConfig_).maxEncryptedDataKeys)): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(60,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + if not((((d_3_esdkClient_).config).netV4__0__0__RetryPolicy) == (AwsCryptographyEncryptionSdkTypes.NetV4__0__0__RetryPolicy_ALLOW__RETRY())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(61,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + + @staticmethod + def TestNetRetryFlag(): + d_0_valueOrError0_: Wrappers.Result = None + out0_: Wrappers.Result + out0_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) + d_0_valueOrError0_ = out0_ + if not(not((d_0_valueOrError0_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(65,19): " + _dafny.string_of(d_0_valueOrError0_)) + d_1_mpl_: MaterialProviders.MaterialProvidersClient + d_1_mpl_ = (d_0_valueOrError0_).Extract() + d_2_keyNamespace_: _dafny.Seq + d_2_keyNamespace_ = _dafny.Seq("Some managed raw keys") + d_3_keyName_: _dafny.Seq + d_3_keyName_ = _dafny.Seq("My 256-bit AES wrapping key") + d_4_expectedMessage_: _dafny.Seq + d_4_expectedMessage_ = _dafny.Seq([84, 104, 105, 115, 32, 105, 115, 32, 97, 32, 116, 101, 115, 116, 46]) + d_5_valueOrError1_: Wrappers.Result = None + out1_: Wrappers.Result + out1_ = (d_1_mpl_).CreateRawAesKeyring(AwsCryptographyMaterialProvidersTypes.CreateRawAesKeyringInput_CreateRawAesKeyringInput(d_2_keyNamespace_, d_3_keyName_, _dafny.Seq([0 for d_6_i_ in range(32)]), AwsCryptographyMaterialProvidersTypes.AesWrappingAlg_ALG__AES256__GCM__IV12__TAG16())) + d_5_valueOrError1_ = out1_ + if not(not((d_5_valueOrError1_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(70,29): " + _dafny.string_of(d_5_valueOrError1_)) + d_7_rawAesKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + d_7_rawAesKeyring_ = (d_5_valueOrError1_).Extract() + d_8_esdkConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig + d_8_esdkConfig_ = AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig_AwsEncryptionSdkConfig(Wrappers.Option_Some(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT()), Wrappers.Option_None(), Wrappers.Option_Some(AwsCryptographyEncryptionSdkTypes.NetV4__0__0__RetryPolicy_FORBID__RETRY())) + d_9_valueOrError2_: Wrappers.Result = None + out2_: Wrappers.Result + out2_ = EncryptionSdk.default__.ESDK(d_8_esdkConfig_) + d_9_valueOrError2_ = out2_ + if not(not((d_9_valueOrError2_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(85,27): " + _dafny.string_of(d_9_valueOrError2_)) + d_10_noRetryEsdk_: EncryptionSdk.ESDKClient + d_10_noRetryEsdk_ = (d_9_valueOrError2_).Extract() + d_11_expectFailureDecryptOutput_: Wrappers.Result + out3_: Wrappers.Result + out3_ = (d_10_noRetryEsdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(default__.ESDK__NET__V400__MESSAGE, Wrappers.Option_None(), Wrappers.Option_Some(d_7_rawAesKeyring_), Wrappers.Option_None())) + d_11_expectFailureDecryptOutput_ = out3_ + if not((d_11_expectFailureDecryptOutput_).is_Failure): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(94,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_12_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig + d_12_defaultConfig_ = EncryptionSdk.default__.DefaultAwsEncryptionSdkConfig() + d_13_valueOrError3_: Wrappers.Result = None + out4_: Wrappers.Result + out4_ = EncryptionSdk.default__.ESDK(d_12_defaultConfig_) + d_13_valueOrError3_ = out4_ + if not(not((d_13_valueOrError3_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(99,20): " + _dafny.string_of(d_13_valueOrError3_)) + d_14_esdk_: EncryptionSdk.ESDKClient + d_14_esdk_ = (d_13_valueOrError3_).Extract() + d_15_decryptOutput_: Wrappers.Result + out5_: Wrappers.Result + out5_ = (d_14_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(default__.ESDK__NET__V400__MESSAGE, Wrappers.Option_None(), Wrappers.Option_Some(d_7_rawAesKeyring_), Wrappers.Option_None())) + d_15_decryptOutput_ = out5_ + _dafny.print(_dafny.string_of(d_15_decryptOutput_)) + if not((d_15_decryptOutput_).is_Success): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(108,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + if not((((d_15_decryptOutput_).value).plaintext) == (d_4_expectedMessage_)): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(109,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + + @_dafny.classproperty + def ESDK__NET__V400__MESSAGE(instance): + return _dafny.Seq([2, 5, 120, 238, 5, 239, 107, 129, 136, 211, 103, 75, 18, 140, 11, 74, 26, 191, 92, 27, 202, 170, 33, 28, 9, 117, 252, 29, 29, 92, 213, 21, 231, 172, 234, 0, 95, 0, 1, 0, 21, 97, 119, 115, 45, 99, 114, 121, 112, 116, 111, 45, 112, 117, 98, 108, 105, 99, 45, 107, 101, 121, 0, 68, 65, 119, 102, 117, 103, 90, 99, 107, 57, 116, 100, 53, 104, 78, 108, 49, 78, 108, 75, 111, 47, 104, 105, 114, 53, 85, 47, 48, 81, 109, 98, 73, 111, 107, 79, 72, 81, 87, 97, 72, 83, 43, 115, 117, 119, 75, 73, 77, 82, 76, 99, 67, 80, 49, 54, 55, 56, 43, 49, 82, 75, 49, 48, 82, 101, 119, 61, 61, 0, 1, 0, 21, 83, 111, 109, 101, 32, 109, 97, 110, 97, 103, 101, 100, 32, 114, 97, 119, 32, 107, 101, 121, 115, 0, 47, 77, 121, 32, 50, 53, 54, 45, 98, 105, 116, 32, 65, 69, 83, 32, 119, 114, 97, 112, 112, 105, 110, 103, 32, 107, 101, 121, 0, 0, 0, 128, 0, 0, 0, 12, 229, 254, 197, 205, 110, 124, 222, 48, 217, 121, 252, 11, 0, 48, 64, 60, 232, 232, 76, 229, 15, 118, 224, 152, 79, 93, 113, 166, 255, 172, 255, 148, 185, 150, 195, 179, 78, 52, 186, 38, 216, 48, 118, 45, 113, 204, 71, 102, 116, 148, 199, 109, 178, 19, 2, 203, 150, 201, 65, 32, 199, 180, 2, 0, 0, 16, 0, 67, 72, 208, 112, 230, 137, 188, 187, 0, 28, 183, 198, 192, 45, 248, 108, 2, 129, 34, 42, 59, 155, 70, 117, 182, 216, 239, 27, 210, 78, 62, 104, 181, 247, 141, 50, 133, 42, 72, 200, 185, 57, 20, 49, 193, 240, 171, 140, 255, 255, 255, 255, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 15, 67, 37, 106, 11, 15, 23, 78, 239, 208, 185, 4, 36, 182, 9, 63, 62, 83, 97, 42, 250, 252, 185, 165, 14, 182, 231, 83, 176, 227, 191, 92, 0, 103, 48, 101, 2, 49, 0, 193, 152, 7, 169, 197, 137, 244, 88, 9, 1, 6, 56, 96, 13, 220, 201, 56, 16, 50, 68, 70, 36, 174, 38, 14, 241, 207, 11, 139, 154, 166, 224, 191, 20, 12, 175, 56, 117, 183, 120, 119, 228, 173, 130, 71, 110, 211, 189, 2, 48, 99, 98, 250, 36, 53, 182, 2, 204, 198, 55, 150, 51, 159, 101, 231, 34, 42, 30, 57, 204, 88, 114, 138, 94, 12, 79, 52, 71, 178, 34, 61, 246, 55, 163, 145, 95, 80, 61, 85, 143, 32, 0, 98, 20, 88, 251, 204, 5]) diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestEncryptDecrypt.py b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestEncryptDecrypt.py new file mode 100644 index 000000000..8e359f903 --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestEncryptDecrypt.py @@ -0,0 +1,219 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import module_ as module_ +import _dafny as _dafny +import System_ as System_ +import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers +import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary +import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 +import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom +import aws_cryptography_primitives.internaldafny.generated.Random as Random +import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption +import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest +import aws_cryptography_primitives.internaldafny.generated.Digest as Digest +import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC +import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC +import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF +import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF +import aws_cryptography_primitives.internaldafny.generated.Signature as Signature +import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr +import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption +import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives +import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 +import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites +import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials +import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring +import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations +import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort +import smithy_dafny_standard_library.internaldafny.generated.Math as Math +import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq +import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils +import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants +import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID +import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping +import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets +import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext +import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping +import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring +import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms +import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.Time as Time +import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker +import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC +import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring +import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring +import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM +import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults +import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment +import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM +import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier +import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils +import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders +import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams +import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk.internaldafny.generated.Header as Header +import aws_encryption_sdk.internaldafny.generated.Frames as Frames +import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr +import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn +import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure +import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable +import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore +import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode +import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions +import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings +import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO +import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals +import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals +import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul +import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals +import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals +import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod +import smithy_dafny_standard_library.internaldafny.generated.Power as Power +import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm +import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop +import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting +import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings +import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt +import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare +import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall +import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas +import Fixtures as Fixtures +import TestRequiredEncryptionContext as TestRequiredEncryptionContext +import TestReproducedEncryptionContext as TestReproducedEncryptionContext + +# Module: TestEncryptDecrypt + +class default__: + def __init__(self): + pass + + @staticmethod + def TestEncryptDecrypt(): + d_0_kmsKey_: _dafny.Seq + d_0_kmsKey_ = Fixtures.default__.keyArn + d_1_asdf_: _dafny.Seq + d_1_asdf_ = _dafny.Seq([97, 115, 100, 102]) + d_2_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig + d_2_defaultConfig_ = EncryptionSdk.default__.DefaultAwsEncryptionSdkConfig() + d_3_valueOrError0_: Wrappers.Result = None + out0_: Wrappers.Result + out0_ = EncryptionSdk.default__.ESDK(d_2_defaultConfig_) + d_3_valueOrError0_ = out0_ + if not(not((d_3_valueOrError0_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestEncryptDecrypt.dfy(24,20): " + _dafny.string_of(d_3_valueOrError0_)) + d_4_esdk_: EncryptionSdk.ESDKClient + d_4_esdk_ = (d_3_valueOrError0_).Extract() + d_5_valueOrError1_: Wrappers.Result = None + out1_: Wrappers.Result + out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) + d_5_valueOrError1_ = out1_ + if not(not((d_5_valueOrError1_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestEncryptDecrypt.dfy(25,19): " + _dafny.string_of(d_5_valueOrError1_)) + d_6_mpl_: MaterialProviders.MaterialProvidersClient + d_6_mpl_ = (d_5_valueOrError1_).Extract() + d_7_valueOrError2_: Wrappers.Result = None + out2_: Wrappers.Result + out2_ = (d_6_mpl_).CreateDefaultClientSupplier(AwsCryptographyMaterialProvidersTypes.CreateDefaultClientSupplierInput_CreateDefaultClientSupplierInput()) + d_7_valueOrError2_ = out2_ + if not(not((d_7_valueOrError2_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestEncryptDecrypt.dfy(26,30): " + _dafny.string_of(d_7_valueOrError2_)) + d_8_clientSupplier_: AwsCryptographyMaterialProvidersTypes.IClientSupplier + d_8_clientSupplier_ = (d_7_valueOrError2_).Extract() + d_9_valueOrError3_: Wrappers.Result = None + out3_: Wrappers.Result + out3_ = (d_8_clientSupplier_).GetClient(AwsCryptographyMaterialProvidersTypes.GetClientInput_GetClientInput(_dafny.Seq("us-west-2"))) + d_9_valueOrError3_ = out3_ + if not(not((d_9_valueOrError3_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestEncryptDecrypt.dfy(27,25): " + _dafny.string_of(d_9_valueOrError3_)) + d_10_kmsClient_: ComAmazonawsKmsTypes.IKMSClient + d_10_kmsClient_ = (d_9_valueOrError3_).Extract() + d_11_valueOrError4_: Wrappers.Result = None + out4_: Wrappers.Result + out4_ = (d_6_mpl_).CreateAwsKmsKeyring(AwsCryptographyMaterialProvidersTypes.CreateAwsKmsKeyringInput_CreateAwsKmsKeyringInput(d_0_kmsKey_, d_10_kmsClient_, Wrappers.Option_None())) + d_11_valueOrError4_ = out4_ + if not(not((d_11_valueOrError4_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestEncryptDecrypt.dfy(29,26): " + _dafny.string_of(d_11_valueOrError4_)) + d_12_kmsKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + d_12_kmsKeyring_ = (d_11_valueOrError4_).Extract() + d_13_encryptOutput_: Wrappers.Result + out5_: Wrappers.Result + out5_ = (d_4_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_1_asdf_, Wrappers.Option_None(), Wrappers.Option_None(), Wrappers.Option_Some(d_12_kmsKeyring_), Wrappers.Option_None(), Wrappers.Option_None())) + d_13_encryptOutput_ = out5_ + if not((d_13_encryptOutput_).is_Success): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestEncryptDecrypt.dfy(46,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_14_esdkCiphertext_: _dafny.Seq + d_14_esdkCiphertext_ = ((d_13_encryptOutput_).value).ciphertext + d_15_decryptOutput_: Wrappers.Result + out6_: Wrappers.Result + out6_ = (d_4_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_14_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_12_kmsKeyring_), Wrappers.Option_None())) + d_15_decryptOutput_ = out6_ + if not((d_15_decryptOutput_).is_Success): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestEncryptDecrypt.dfy(56,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_16_cycledPlaintext_: _dafny.Seq + d_16_cycledPlaintext_ = ((d_15_decryptOutput_).value).plaintext + if not((d_16_cycledPlaintext_) == (d_1_asdf_)): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestEncryptDecrypt.dfy(59,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestReproducedEncryptionContext.py b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestReproducedEncryptionContext.py new file mode 100644 index 000000000..2baec3a6b --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestReproducedEncryptionContext.py @@ -0,0 +1,363 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import module_ as module_ +import _dafny as _dafny +import System_ as System_ +import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers +import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary +import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 +import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom +import aws_cryptography_primitives.internaldafny.generated.Random as Random +import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption +import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest +import aws_cryptography_primitives.internaldafny.generated.Digest as Digest +import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC +import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC +import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF +import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF +import aws_cryptography_primitives.internaldafny.generated.Signature as Signature +import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr +import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption +import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives +import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 +import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites +import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials +import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring +import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations +import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort +import smithy_dafny_standard_library.internaldafny.generated.Math as Math +import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq +import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils +import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants +import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID +import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping +import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets +import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext +import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping +import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring +import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms +import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.Time as Time +import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker +import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC +import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring +import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring +import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM +import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults +import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment +import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM +import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier +import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils +import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders +import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams +import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk.internaldafny.generated.Header as Header +import aws_encryption_sdk.internaldafny.generated.Frames as Frames +import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr +import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn +import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure +import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable +import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore +import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode +import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions +import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings +import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO +import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals +import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals +import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul +import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals +import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals +import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod +import smithy_dafny_standard_library.internaldafny.generated.Power as Power +import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm +import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop +import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting +import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings +import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt +import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare +import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall +import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas +import Fixtures as Fixtures +import TestRequiredEncryptionContext as TestRequiredEncryptionContext + +# Module: TestReproducedEncryptionContext + +class default__: + def __init__(self): + pass + + @staticmethod + def TestEncryptionContextOnDecrypt(): + d_0_kmsKey_: _dafny.Seq + d_0_kmsKey_ = Fixtures.default__.keyArn + d_1_asdf_: _dafny.Seq + d_1_asdf_ = _dafny.Seq([97, 115, 100, 102]) + d_2_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig + d_2_defaultConfig_ = EncryptionSdk.default__.DefaultAwsEncryptionSdkConfig() + d_3_valueOrError0_: Wrappers.Result = None + out0_: Wrappers.Result + out0_ = EncryptionSdk.default__.ESDK(d_2_defaultConfig_) + d_3_valueOrError0_ = out0_ + if not(not((d_3_valueOrError0_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(24,20): " + _dafny.string_of(d_3_valueOrError0_)) + d_4_esdk_: EncryptionSdk.ESDKClient + d_4_esdk_ = (d_3_valueOrError0_).Extract() + d_5_valueOrError1_: Wrappers.Result = None + out1_: Wrappers.Result + out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) + d_5_valueOrError1_ = out1_ + if not(not((d_5_valueOrError1_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(25,19): " + _dafny.string_of(d_5_valueOrError1_)) + d_6_mpl_: MaterialProviders.MaterialProvidersClient + d_6_mpl_ = (d_5_valueOrError1_).Extract() + d_7_valueOrError2_: Wrappers.Result = None + out2_: Wrappers.Result + out2_ = (d_6_mpl_).CreateDefaultClientSupplier(AwsCryptographyMaterialProvidersTypes.CreateDefaultClientSupplierInput_CreateDefaultClientSupplierInput()) + d_7_valueOrError2_ = out2_ + if not(not((d_7_valueOrError2_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(26,30): " + _dafny.string_of(d_7_valueOrError2_)) + d_8_clientSupplier_: AwsCryptographyMaterialProvidersTypes.IClientSupplier + d_8_clientSupplier_ = (d_7_valueOrError2_).Extract() + d_9_valueOrError3_: Wrappers.Result = None + out3_: Wrappers.Result + out3_ = (d_8_clientSupplier_).GetClient(AwsCryptographyMaterialProvidersTypes.GetClientInput_GetClientInput(_dafny.Seq("us-west-2"))) + d_9_valueOrError3_ = out3_ + if not(not((d_9_valueOrError3_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(27,25): " + _dafny.string_of(d_9_valueOrError3_)) + d_10_kmsClient_: ComAmazonawsKmsTypes.IKMSClient + d_10_kmsClient_ = (d_9_valueOrError3_).Extract() + d_11_valueOrError4_: Wrappers.Result = None + out4_: Wrappers.Result + out4_ = (d_6_mpl_).CreateAwsKmsKeyring(AwsCryptographyMaterialProvidersTypes.CreateAwsKmsKeyringInput_CreateAwsKmsKeyringInput(d_0_kmsKey_, d_10_kmsClient_, Wrappers.Option_None())) + d_11_valueOrError4_ = out4_ + if not(not((d_11_valueOrError4_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(29,26): " + _dafny.string_of(d_11_valueOrError4_)) + d_12_kmsKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + d_12_kmsKeyring_ = (d_11_valueOrError4_).Extract() + d_13_encryptionContext_: _dafny.Map + out5_: _dafny.Map + out5_ = Fixtures.default__.SmallEncryptionContext(Fixtures.SmallEncryptionContextVariation_AB()) + d_13_encryptionContext_ = out5_ + d_14_encryptOutput_: Wrappers.Result + out6_: Wrappers.Result + out6_ = (d_4_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_1_asdf_, Wrappers.Option_Some(d_13_encryptionContext_), Wrappers.Option_None(), Wrappers.Option_Some(d_12_kmsKeyring_), Wrappers.Option_None(), Wrappers.Option_None())) + d_14_encryptOutput_ = out6_ + if not((d_14_encryptOutput_).is_Success): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(48,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_15_esdkCiphertext_: _dafny.Seq + d_15_esdkCiphertext_ = ((d_14_encryptOutput_).value).ciphertext + d_16_decryptOutput_: Wrappers.Result + out7_: Wrappers.Result + out7_ = (d_4_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_15_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_12_kmsKeyring_), Wrappers.Option_Some(d_13_encryptionContext_))) + d_16_decryptOutput_ = out7_ + if not((d_16_decryptOutput_).is_Success): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(58,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_17_cycledPlaintext_: _dafny.Seq + d_17_cycledPlaintext_ = ((d_16_decryptOutput_).value).plaintext + if not((d_17_cycledPlaintext_) == (d_1_asdf_)): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(61,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + + @staticmethod + def TestEncryptionContextOnDecryptFailure(): + d_0_kmsKey_: _dafny.Seq + d_0_kmsKey_ = Fixtures.default__.keyArn + d_1_asdf_: _dafny.Seq + d_1_asdf_ = _dafny.Seq([97, 115, 100, 102]) + d_2_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig + d_2_defaultConfig_ = EncryptionSdk.default__.DefaultAwsEncryptionSdkConfig() + d_3_valueOrError0_: Wrappers.Result = None + out0_: Wrappers.Result + out0_ = EncryptionSdk.default__.ESDK(d_2_defaultConfig_) + d_3_valueOrError0_ = out0_ + if not(not((d_3_valueOrError0_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(71,20): " + _dafny.string_of(d_3_valueOrError0_)) + d_4_esdk_: EncryptionSdk.ESDKClient + d_4_esdk_ = (d_3_valueOrError0_).Extract() + d_5_valueOrError1_: Wrappers.Result = None + out1_: Wrappers.Result + out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) + d_5_valueOrError1_ = out1_ + if not(not((d_5_valueOrError1_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(72,19): " + _dafny.string_of(d_5_valueOrError1_)) + d_6_mpl_: MaterialProviders.MaterialProvidersClient + d_6_mpl_ = (d_5_valueOrError1_).Extract() + d_7_valueOrError2_: Wrappers.Result = None + out2_: Wrappers.Result + out2_ = (d_6_mpl_).CreateDefaultClientSupplier(AwsCryptographyMaterialProvidersTypes.CreateDefaultClientSupplierInput_CreateDefaultClientSupplierInput()) + d_7_valueOrError2_ = out2_ + if not(not((d_7_valueOrError2_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(73,30): " + _dafny.string_of(d_7_valueOrError2_)) + d_8_clientSupplier_: AwsCryptographyMaterialProvidersTypes.IClientSupplier + d_8_clientSupplier_ = (d_7_valueOrError2_).Extract() + d_9_valueOrError3_: Wrappers.Result = None + out3_: Wrappers.Result + out3_ = (d_8_clientSupplier_).GetClient(AwsCryptographyMaterialProvidersTypes.GetClientInput_GetClientInput(_dafny.Seq("us-west-2"))) + d_9_valueOrError3_ = out3_ + if not(not((d_9_valueOrError3_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(74,25): " + _dafny.string_of(d_9_valueOrError3_)) + d_10_kmsClient_: ComAmazonawsKmsTypes.IKMSClient + d_10_kmsClient_ = (d_9_valueOrError3_).Extract() + d_11_valueOrError4_: Wrappers.Result = None + out4_: Wrappers.Result + out4_ = (d_6_mpl_).CreateAwsKmsKeyring(AwsCryptographyMaterialProvidersTypes.CreateAwsKmsKeyringInput_CreateAwsKmsKeyringInput(d_0_kmsKey_, d_10_kmsClient_, Wrappers.Option_None())) + d_11_valueOrError4_ = out4_ + if not(not((d_11_valueOrError4_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(76,26): " + _dafny.string_of(d_11_valueOrError4_)) + d_12_kmsKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + d_12_kmsKeyring_ = (d_11_valueOrError4_).Extract() + d_13_encryptionContext_: _dafny.Map + out5_: _dafny.Map + out5_ = Fixtures.default__.SmallEncryptionContext(Fixtures.SmallEncryptionContextVariation_A()) + d_13_encryptionContext_ = out5_ + d_14_incorrectReproducedEncryptionContext_: _dafny.Map + out6_: _dafny.Map + out6_ = Fixtures.default__.SmallEncryptionContext(Fixtures.SmallEncryptionContextVariation_AB()) + d_14_incorrectReproducedEncryptionContext_ = out6_ + d_15_encryptOutput_: Wrappers.Result + out7_: Wrappers.Result + out7_ = (d_4_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_1_asdf_, Wrappers.Option_Some(d_13_encryptionContext_), Wrappers.Option_None(), Wrappers.Option_Some(d_12_kmsKeyring_), Wrappers.Option_None(), Wrappers.Option_None())) + d_15_encryptOutput_ = out7_ + if not((d_15_encryptOutput_).is_Success): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(96,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_16_esdkCiphertext_: _dafny.Seq + d_16_esdkCiphertext_ = ((d_15_encryptOutput_).value).ciphertext + d_17_decryptOutput_: Wrappers.Result + out8_: Wrappers.Result + out8_ = (d_4_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_16_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_12_kmsKeyring_), Wrappers.Option_Some(d_14_incorrectReproducedEncryptionContext_))) + d_17_decryptOutput_ = out8_ + if not((d_17_decryptOutput_).is_Failure): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(107,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + + @staticmethod + def TestMismatchedEncryptionContextOnDecrypt(): + d_0_asdf_: _dafny.Seq + d_0_asdf_ = _dafny.Seq([97, 115, 100, 102]) + d_1_namespace_: _dafny.Seq + d_2_name_: _dafny.Seq + out0_: _dafny.Seq + out1_: _dafny.Seq + out0_, out1_ = Fixtures.default__.NamespaceAndName(0) + d_1_namespace_ = out0_ + d_2_name_ = out1_ + d_3_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig + d_3_defaultConfig_ = EncryptionSdk.default__.DefaultAwsEncryptionSdkConfig() + d_4_valueOrError0_: Wrappers.Result = None + out2_: Wrappers.Result + out2_ = EncryptionSdk.default__.ESDK(d_3_defaultConfig_) + d_4_valueOrError0_ = out2_ + if not(not((d_4_valueOrError0_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(117,20): " + _dafny.string_of(d_4_valueOrError0_)) + d_5_esdk_: EncryptionSdk.ESDKClient + d_5_esdk_ = (d_4_valueOrError0_).Extract() + d_6_valueOrError1_: Wrappers.Result = None + out3_: Wrappers.Result + out3_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) + d_6_valueOrError1_ = out3_ + if not(not((d_6_valueOrError1_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(118,19): " + _dafny.string_of(d_6_valueOrError1_)) + d_7_mpl_: MaterialProviders.MaterialProvidersClient + d_7_mpl_ = (d_6_valueOrError1_).Extract() + d_8_valueOrError2_: Wrappers.Result = None + out4_: Wrappers.Result + out4_ = (d_7_mpl_).CreateRawAesKeyring(AwsCryptographyMaterialProvidersTypes.CreateRawAesKeyringInput_CreateRawAesKeyringInput(d_1_namespace_, d_2_name_, _dafny.Seq([0 for d_9_i_ in range(32)]), AwsCryptographyMaterialProvidersTypes.AesWrappingAlg_ALG__AES256__GCM__IV12__TAG16())) + d_8_valueOrError2_ = out4_ + if not(not((d_8_valueOrError2_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(119,29): " + _dafny.string_of(d_8_valueOrError2_)) + d_10_rawAESKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + d_10_rawAESKeyring_ = (d_8_valueOrError2_).Extract() + d_11_encryptionContext_: _dafny.Map + out5_: _dafny.Map + out5_ = Fixtures.default__.SmallEncryptionContext(Fixtures.SmallEncryptionContextVariation_A()) + d_11_encryptionContext_ = out5_ + d_12_mismatchedEncryptionContext_: _dafny.Map + out6_: _dafny.Map + out6_ = Fixtures.default__.SmallMismatchedEncryptionContex(Fixtures.SmallEncryptionContextVariation_A()) + d_12_mismatchedEncryptionContext_ = out6_ + d_13_encryptOutput_: Wrappers.Result + out7_: Wrappers.Result + out7_ = (d_5_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_0_asdf_, Wrappers.Option_Some(d_11_encryptionContext_), Wrappers.Option_None(), Wrappers.Option_Some(d_10_rawAESKeyring_), Wrappers.Option_None(), Wrappers.Option_None())) + d_13_encryptOutput_ = out7_ + if not((d_13_encryptOutput_).is_Success): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(138,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_14_esdkCiphertext_: _dafny.Seq + d_14_esdkCiphertext_ = ((d_13_encryptOutput_).value).ciphertext + d_15_decryptOutput_: Wrappers.Result + out8_: Wrappers.Result + out8_ = (d_5_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_14_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_10_rawAESKeyring_), Wrappers.Option_Some(d_12_mismatchedEncryptionContext_))) + d_15_decryptOutput_ = out8_ + if not((d_15_decryptOutput_).is_Failure): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(150,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + out9_: Wrappers.Result + out9_ = (d_5_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_14_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_10_rawAESKeyring_), Wrappers.Option_Some(d_11_encryptionContext_))) + d_15_decryptOutput_ = out9_ + if not((d_15_decryptOutput_).is_Success): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(160,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + out10_: Wrappers.Result + out10_ = (d_5_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_14_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_10_rawAESKeyring_), Wrappers.Option_None())) + d_15_decryptOutput_ = out10_ + if not((d_15_decryptOutput_).is_Success): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(171,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestRequiredEncryptionContext.py b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestRequiredEncryptionContext.py new file mode 100644 index 000000000..13a345945 --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestRequiredEncryptionContext.py @@ -0,0 +1,1343 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import module_ as module_ +import _dafny as _dafny +import System_ as System_ +import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers +import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary +import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 +import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom +import aws_cryptography_primitives.internaldafny.generated.Random as Random +import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption +import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest +import aws_cryptography_primitives.internaldafny.generated.Digest as Digest +import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC +import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC +import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF +import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF +import aws_cryptography_primitives.internaldafny.generated.Signature as Signature +import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr +import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption +import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives +import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 +import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites +import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials +import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring +import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations +import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort +import smithy_dafny_standard_library.internaldafny.generated.Math as Math +import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq +import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils +import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants +import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID +import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping +import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets +import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext +import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping +import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring +import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms +import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.Time as Time +import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker +import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC +import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring +import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring +import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM +import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults +import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment +import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM +import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier +import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils +import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders +import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams +import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk.internaldafny.generated.Header as Header +import aws_encryption_sdk.internaldafny.generated.Frames as Frames +import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr +import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn +import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure +import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable +import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore +import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode +import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions +import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings +import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO +import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals +import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals +import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul +import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals +import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals +import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod +import smithy_dafny_standard_library.internaldafny.generated.Power as Power +import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm +import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop +import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting +import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings +import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt +import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare +import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall +import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas +import Fixtures as Fixtures + +# Module: TestRequiredEncryptionContext + +class default__: + def __init__(self): + pass + + @staticmethod + def TestReprEncryptionContextWithSameECHappyCase(): + d_0_asdf_: _dafny.Seq + d_0_asdf_ = _dafny.Seq([97, 115, 100, 102]) + d_1_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig + d_1_defaultConfig_ = EncryptionSdk.default__.DefaultAwsEncryptionSdkConfig() + d_2_valueOrError0_: Wrappers.Result = None + out0_: Wrappers.Result + out0_ = EncryptionSdk.default__.ESDK(d_1_defaultConfig_) + d_2_valueOrError0_ = out0_ + if not(not((d_2_valueOrError0_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(39,20): " + _dafny.string_of(d_2_valueOrError0_)) + d_3_esdk_: EncryptionSdk.ESDKClient + d_3_esdk_ = (d_2_valueOrError0_).Extract() + d_4_valueOrError1_: Wrappers.Result = None + out1_: Wrappers.Result + out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) + d_4_valueOrError1_ = out1_ + if not(not((d_4_valueOrError1_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(40,19): " + _dafny.string_of(d_4_valueOrError1_)) + d_5_mpl_: MaterialProviders.MaterialProvidersClient + d_5_mpl_ = (d_4_valueOrError1_).Extract() + d_6_rsaKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + out2_: AwsCryptographyMaterialProvidersTypes.IKeyring + out2_ = default__.GetRsaKeyring() + d_6_rsaKeyring_ = out2_ + d_7_kmsKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + out3_: AwsCryptographyMaterialProvidersTypes.IKeyring + out3_ = default__.GetKmsKeyring() + d_7_kmsKeyring_ = out3_ + d_8_aesKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + out4_: AwsCryptographyMaterialProvidersTypes.IKeyring + out4_ = default__.GetAesKeyring() + d_8_aesKeyring_ = out4_ + d_9_hKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + out5_: AwsCryptographyMaterialProvidersTypes.IKeyring + out5_ = default__.GetHierarchicalKeyring() + d_9_hKeyring_ = out5_ + d_10_valueOrError2_: Wrappers.Result = None + out6_: Wrappers.Result + out6_ = (d_5_mpl_).CreateMultiKeyring(AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput_CreateMultiKeyringInput(Wrappers.Option_Some(d_8_aesKeyring_), _dafny.Seq([d_6_rsaKeyring_, d_7_kmsKeyring_, d_9_hKeyring_]))) + d_10_valueOrError2_ = out6_ + if not(not((d_10_valueOrError2_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(48,28): " + _dafny.string_of(d_10_valueOrError2_)) + d_11_multiKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + d_11_multiKeyring_ = (d_10_valueOrError2_).Extract() + d_12_encryptionContext_: _dafny.Map + out7_: _dafny.Map + out7_ = Fixtures.default__.SmallEncryptionContext(Fixtures.SmallEncryptionContextVariation_AB()) + d_12_encryptionContext_ = out7_ + d_13_encryptOutput_: Wrappers.Result + out8_: Wrappers.Result + out8_ = (d_3_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_0_asdf_, Wrappers.Option_Some(d_12_encryptionContext_), Wrappers.Option_None(), Wrappers.Option_Some(d_11_multiKeyring_), Wrappers.Option_None(), Wrappers.Option_None())) + d_13_encryptOutput_ = out8_ + if not((d_13_encryptOutput_).is_Success): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(66,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_14_esdkCiphertext_: _dafny.Seq + d_14_esdkCiphertext_ = ((d_13_encryptOutput_).value).ciphertext + d_15_decryptOutput_: Wrappers.Result + out9_: Wrappers.Result + out9_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_14_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_6_rsaKeyring_), Wrappers.Option_Some(d_12_encryptionContext_))) + d_15_decryptOutput_ = out9_ + if not((d_15_decryptOutput_).is_Success): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(77,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_16_cycledPlaintext_: _dafny.Seq + d_16_cycledPlaintext_ = ((d_15_decryptOutput_).value).plaintext + if not((d_16_cycledPlaintext_) == (d_0_asdf_)): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(79,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + out10_: Wrappers.Result + out10_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_14_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_7_kmsKeyring_), Wrappers.Option_Some(d_12_encryptionContext_))) + d_15_decryptOutput_ = out10_ + if not((d_15_decryptOutput_).is_Success): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(89,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_16_cycledPlaintext_ = ((d_15_decryptOutput_).value).plaintext + if not((d_16_cycledPlaintext_) == (d_0_asdf_)): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(91,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + out11_: Wrappers.Result + out11_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_14_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_8_aesKeyring_), Wrappers.Option_Some(d_12_encryptionContext_))) + d_15_decryptOutput_ = out11_ + if not((d_15_decryptOutput_).is_Success): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(101,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_16_cycledPlaintext_ = ((d_15_decryptOutput_).value).plaintext + if not((d_16_cycledPlaintext_) == (d_0_asdf_)): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(103,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + out12_: Wrappers.Result + out12_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_14_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_9_hKeyring_), Wrappers.Option_Some(d_12_encryptionContext_))) + d_15_decryptOutput_ = out12_ + if not((d_15_decryptOutput_).is_Success): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(113,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_16_cycledPlaintext_ = ((d_15_decryptOutput_).value).plaintext + if not((d_16_cycledPlaintext_) == (d_0_asdf_)): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(115,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + + @staticmethod + def TestRemoveOnEncryptAndSupplyOnDecryptHappyCase(): + d_0_asdf_: _dafny.Seq + d_0_asdf_ = _dafny.Seq([97, 115, 100, 102]) + d_1_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig + d_1_defaultConfig_ = EncryptionSdk.default__.DefaultAwsEncryptionSdkConfig() + d_2_valueOrError0_: Wrappers.Result = None + out0_: Wrappers.Result + out0_ = EncryptionSdk.default__.ESDK(d_1_defaultConfig_) + d_2_valueOrError0_ = out0_ + if not(not((d_2_valueOrError0_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(124,20): " + _dafny.string_of(d_2_valueOrError0_)) + d_3_esdk_: EncryptionSdk.ESDKClient + d_3_esdk_ = (d_2_valueOrError0_).Extract() + d_4_valueOrError1_: Wrappers.Result = None + out1_: Wrappers.Result + out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) + d_4_valueOrError1_ = out1_ + if not(not((d_4_valueOrError1_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(125,19): " + _dafny.string_of(d_4_valueOrError1_)) + d_5_mpl_: MaterialProviders.MaterialProvidersClient + d_5_mpl_ = (d_4_valueOrError1_).Extract() + d_6_rsaKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + out2_: AwsCryptographyMaterialProvidersTypes.IKeyring + out2_ = default__.GetRsaKeyring() + d_6_rsaKeyring_ = out2_ + d_7_kmsKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + out3_: AwsCryptographyMaterialProvidersTypes.IKeyring + out3_ = default__.GetKmsKeyring() + d_7_kmsKeyring_ = out3_ + d_8_aesKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + out4_: AwsCryptographyMaterialProvidersTypes.IKeyring + out4_ = default__.GetAesKeyring() + d_8_aesKeyring_ = out4_ + d_9_hKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + out5_: AwsCryptographyMaterialProvidersTypes.IKeyring + out5_ = default__.GetHierarchicalKeyring() + d_9_hKeyring_ = out5_ + d_10_valueOrError2_: Wrappers.Result = None + out6_: Wrappers.Result + out6_ = (d_5_mpl_).CreateMultiKeyring(AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput_CreateMultiKeyringInput(Wrappers.Option_Some(d_8_aesKeyring_), _dafny.Seq([d_6_rsaKeyring_, d_7_kmsKeyring_, d_9_hKeyring_]))) + d_10_valueOrError2_ = out6_ + if not(not((d_10_valueOrError2_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(133,28): " + _dafny.string_of(d_10_valueOrError2_)) + d_11_multiKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + d_11_multiKeyring_ = (d_10_valueOrError2_).Extract() + d_12_encryptionContext_: _dafny.Map + out7_: _dafny.Map + out7_ = Fixtures.default__.SmallEncryptionContext(Fixtures.SmallEncryptionContextVariation_AB()) + d_12_encryptionContext_ = out7_ + d_13_reproducedEncryptionContext_: _dafny.Map + out8_: _dafny.Map + out8_ = Fixtures.default__.SmallEncryptionContext(Fixtures.SmallEncryptionContextVariation_A()) + d_13_reproducedEncryptionContext_ = out8_ + d_14_requiredEncryptionContextKeys_: _dafny.Seq + out9_: _dafny.Seq + out9_ = Fixtures.default__.SmallEncryptionContextKeys(Fixtures.SmallEncryptionContextVariation_A()) + d_14_requiredEncryptionContextKeys_ = out9_ + d_15_valueOrError3_: Wrappers.Result = None + out10_: Wrappers.Result + out10_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_11_multiKeyring_)) + d_15_valueOrError3_ = out10_ + if not(not((d_15_valueOrError3_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(148,26): " + _dafny.string_of(d_15_valueOrError3_)) + d_16_defaultCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager + d_16_defaultCMM_ = (d_15_valueOrError3_).Extract() + d_17_valueOrError4_: Wrappers.Result = None + out11_: Wrappers.Result + out11_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), d_14_requiredEncryptionContextKeys_)) + d_17_valueOrError4_ = out11_ + if not(not((d_17_valueOrError4_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(155,22): " + _dafny.string_of(d_17_valueOrError4_)) + d_18_reqCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager + d_18_reqCMM_ = (d_17_valueOrError4_).Extract() + d_19_encryptOutput_: Wrappers.Result + out12_: Wrappers.Result + out12_ = (d_3_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_0_asdf_, Wrappers.Option_Some(d_12_encryptionContext_), Wrappers.Option_Some(d_18_reqCMM_), Wrappers.Option_None(), Wrappers.Option_None(), Wrappers.Option_None())) + d_19_encryptOutput_ = out12_ + if not((d_19_encryptOutput_).is_Success): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(174,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_20_esdkCiphertext_: _dafny.Seq + d_20_esdkCiphertext_ = ((d_19_encryptOutput_).value).ciphertext + d_21_decryptOutput_: Wrappers.Result + out13_: Wrappers.Result + out13_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_6_rsaKeyring_), Wrappers.Option_Some(d_13_reproducedEncryptionContext_))) + d_21_decryptOutput_ = out13_ + if not((d_21_decryptOutput_).is_Success): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(185,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_22_cycledPlaintext_: _dafny.Seq + d_22_cycledPlaintext_ = ((d_21_decryptOutput_).value).plaintext + if not((d_22_cycledPlaintext_) == (d_0_asdf_)): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(187,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + out14_: Wrappers.Result + out14_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_7_kmsKeyring_), Wrappers.Option_Some(d_13_reproducedEncryptionContext_))) + d_21_decryptOutput_ = out14_ + if not((d_21_decryptOutput_).is_Success): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(197,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_22_cycledPlaintext_ = ((d_21_decryptOutput_).value).plaintext + if not((d_22_cycledPlaintext_) == (d_0_asdf_)): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(199,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + out15_: Wrappers.Result + out15_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_8_aesKeyring_), Wrappers.Option_Some(d_13_reproducedEncryptionContext_))) + d_21_decryptOutput_ = out15_ + if not((d_21_decryptOutput_).is_Success): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(209,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_22_cycledPlaintext_ = ((d_21_decryptOutput_).value).plaintext + if not((d_22_cycledPlaintext_) == (d_0_asdf_)): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(211,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + out16_: Wrappers.Result + out16_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_9_hKeyring_), Wrappers.Option_Some(d_13_reproducedEncryptionContext_))) + d_21_decryptOutput_ = out16_ + if not((d_21_decryptOutput_).is_Success): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(221,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_22_cycledPlaintext_ = ((d_21_decryptOutput_).value).plaintext + if not((d_22_cycledPlaintext_) == (d_0_asdf_)): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(223,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + + @staticmethod + def TestRemoveOnEncryptRemoveAndSupplyOnDecryptHappyCase(): + d_0_asdf_: _dafny.Seq + d_0_asdf_ = _dafny.Seq([97, 115, 100, 102]) + d_1_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig + d_1_defaultConfig_ = EncryptionSdk.default__.DefaultAwsEncryptionSdkConfig() + d_2_valueOrError0_: Wrappers.Result = None + out0_: Wrappers.Result + out0_ = EncryptionSdk.default__.ESDK(d_1_defaultConfig_) + d_2_valueOrError0_ = out0_ + if not(not((d_2_valueOrError0_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(233,20): " + _dafny.string_of(d_2_valueOrError0_)) + d_3_esdk_: EncryptionSdk.ESDKClient + d_3_esdk_ = (d_2_valueOrError0_).Extract() + d_4_valueOrError1_: Wrappers.Result = None + out1_: Wrappers.Result + out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) + d_4_valueOrError1_ = out1_ + if not(not((d_4_valueOrError1_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(234,19): " + _dafny.string_of(d_4_valueOrError1_)) + d_5_mpl_: MaterialProviders.MaterialProvidersClient + d_5_mpl_ = (d_4_valueOrError1_).Extract() + d_6_rsaKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + out2_: AwsCryptographyMaterialProvidersTypes.IKeyring + out2_ = default__.GetRsaKeyring() + d_6_rsaKeyring_ = out2_ + d_7_kmsKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + out3_: AwsCryptographyMaterialProvidersTypes.IKeyring + out3_ = default__.GetKmsKeyring() + d_7_kmsKeyring_ = out3_ + d_8_aesKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + out4_: AwsCryptographyMaterialProvidersTypes.IKeyring + out4_ = default__.GetAesKeyring() + d_8_aesKeyring_ = out4_ + d_9_hKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + out5_: AwsCryptographyMaterialProvidersTypes.IKeyring + out5_ = default__.GetHierarchicalKeyring() + d_9_hKeyring_ = out5_ + d_10_valueOrError2_: Wrappers.Result = None + out6_: Wrappers.Result + out6_ = (d_5_mpl_).CreateMultiKeyring(AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput_CreateMultiKeyringInput(Wrappers.Option_Some(d_8_aesKeyring_), _dafny.Seq([d_6_rsaKeyring_, d_7_kmsKeyring_, d_9_hKeyring_]))) + d_10_valueOrError2_ = out6_ + if not(not((d_10_valueOrError2_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(242,28): " + _dafny.string_of(d_10_valueOrError2_)) + d_11_multiKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + d_11_multiKeyring_ = (d_10_valueOrError2_).Extract() + d_12_encryptionContext_: _dafny.Map + out7_: _dafny.Map + out7_ = Fixtures.default__.SmallEncryptionContext(Fixtures.SmallEncryptionContextVariation_AB()) + d_12_encryptionContext_ = out7_ + d_13_reproducedEncryptionContext_: _dafny.Map + out8_: _dafny.Map + out8_ = Fixtures.default__.SmallEncryptionContext(Fixtures.SmallEncryptionContextVariation_A()) + d_13_reproducedEncryptionContext_ = out8_ + d_14_requiredEncryptionContextKeys_: _dafny.Seq + out9_: _dafny.Seq + out9_ = Fixtures.default__.SmallEncryptionContextKeys(Fixtures.SmallEncryptionContextVariation_A()) + d_14_requiredEncryptionContextKeys_ = out9_ + d_15_valueOrError3_: Wrappers.Result = None + out10_: Wrappers.Result + out10_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_11_multiKeyring_)) + d_15_valueOrError3_ = out10_ + if not(not((d_15_valueOrError3_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(257,26): " + _dafny.string_of(d_15_valueOrError3_)) + d_16_defaultCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager + d_16_defaultCMM_ = (d_15_valueOrError3_).Extract() + d_17_valueOrError4_: Wrappers.Result = None + out11_: Wrappers.Result + out11_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), d_14_requiredEncryptionContextKeys_)) + d_17_valueOrError4_ = out11_ + if not(not((d_17_valueOrError4_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(264,22): " + _dafny.string_of(d_17_valueOrError4_)) + d_18_reqCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager + d_18_reqCMM_ = (d_17_valueOrError4_).Extract() + d_19_encryptOutput_: Wrappers.Result + out12_: Wrappers.Result + out12_ = (d_3_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_0_asdf_, Wrappers.Option_Some(d_12_encryptionContext_), Wrappers.Option_Some(d_18_reqCMM_), Wrappers.Option_None(), Wrappers.Option_None(), Wrappers.Option_None())) + d_19_encryptOutput_ = out12_ + if not((d_19_encryptOutput_).is_Success): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(283,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_20_esdkCiphertext_: _dafny.Seq + d_20_esdkCiphertext_ = ((d_19_encryptOutput_).value).ciphertext + d_21_valueOrError5_: Wrappers.Result = None + out13_: Wrappers.Result + out13_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_6_rsaKeyring_)) + d_21_valueOrError5_ = out13_ + if not(not((d_21_valueOrError5_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(287,22): " + _dafny.string_of(d_21_valueOrError5_)) + d_16_defaultCMM_ = (d_21_valueOrError5_).Extract() + d_22_valueOrError6_: Wrappers.Result = None + out14_: Wrappers.Result + out14_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), d_14_requiredEncryptionContextKeys_)) + d_22_valueOrError6_ = out14_ + if not(not((d_22_valueOrError6_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(294,18): " + _dafny.string_of(d_22_valueOrError6_)) + d_18_reqCMM_ = (d_22_valueOrError6_).Extract() + d_23_decryptOutput_: Wrappers.Result + out15_: Wrappers.Result + out15_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_Some(d_18_reqCMM_), Wrappers.Option_None(), Wrappers.Option_Some(d_13_reproducedEncryptionContext_))) + d_23_decryptOutput_ = out15_ + if not((d_23_decryptOutput_).is_Success): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(312,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_24_cycledPlaintext_: _dafny.Seq + d_24_cycledPlaintext_ = ((d_23_decryptOutput_).value).plaintext + if not((d_24_cycledPlaintext_) == (d_0_asdf_)): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(314,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_25_valueOrError7_: Wrappers.Result = None + out16_: Wrappers.Result + out16_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_7_kmsKeyring_)) + d_25_valueOrError7_ = out16_ + if not(not((d_25_valueOrError7_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(318,22): " + _dafny.string_of(d_25_valueOrError7_)) + d_16_defaultCMM_ = (d_25_valueOrError7_).Extract() + d_26_valueOrError8_: Wrappers.Result = None + out17_: Wrappers.Result + out17_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), d_14_requiredEncryptionContextKeys_)) + d_26_valueOrError8_ = out17_ + if not(not((d_26_valueOrError8_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(325,18): " + _dafny.string_of(d_26_valueOrError8_)) + d_18_reqCMM_ = (d_26_valueOrError8_).Extract() + out18_: Wrappers.Result + out18_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_Some(d_18_reqCMM_), Wrappers.Option_None(), Wrappers.Option_Some(d_13_reproducedEncryptionContext_))) + d_23_decryptOutput_ = out18_ + if not((d_23_decryptOutput_).is_Success): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(343,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_24_cycledPlaintext_ = ((d_23_decryptOutput_).value).plaintext + if not((d_24_cycledPlaintext_) == (d_0_asdf_)): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(345,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_27_valueOrError9_: Wrappers.Result = None + out19_: Wrappers.Result + out19_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_8_aesKeyring_)) + d_27_valueOrError9_ = out19_ + if not(not((d_27_valueOrError9_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(349,22): " + _dafny.string_of(d_27_valueOrError9_)) + d_16_defaultCMM_ = (d_27_valueOrError9_).Extract() + d_28_valueOrError10_: Wrappers.Result = None + out20_: Wrappers.Result + out20_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), d_14_requiredEncryptionContextKeys_)) + d_28_valueOrError10_ = out20_ + if not(not((d_28_valueOrError10_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(356,18): " + _dafny.string_of(d_28_valueOrError10_)) + d_18_reqCMM_ = (d_28_valueOrError10_).Extract() + out21_: Wrappers.Result + out21_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_Some(d_18_reqCMM_), Wrappers.Option_None(), Wrappers.Option_Some(d_13_reproducedEncryptionContext_))) + d_23_decryptOutput_ = out21_ + if not((d_23_decryptOutput_).is_Success): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(374,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_24_cycledPlaintext_ = ((d_23_decryptOutput_).value).plaintext + if not((d_24_cycledPlaintext_) == (d_0_asdf_)): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(376,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_29_valueOrError11_: Wrappers.Result = None + out22_: Wrappers.Result + out22_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_9_hKeyring_)) + d_29_valueOrError11_ = out22_ + if not(not((d_29_valueOrError11_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(379,22): " + _dafny.string_of(d_29_valueOrError11_)) + d_16_defaultCMM_ = (d_29_valueOrError11_).Extract() + d_30_valueOrError12_: Wrappers.Result = None + out23_: Wrappers.Result + out23_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), d_14_requiredEncryptionContextKeys_)) + d_30_valueOrError12_ = out23_ + if not(not((d_30_valueOrError12_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(386,18): " + _dafny.string_of(d_30_valueOrError12_)) + d_18_reqCMM_ = (d_30_valueOrError12_).Extract() + out24_: Wrappers.Result + out24_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_Some(d_18_reqCMM_), Wrappers.Option_None(), Wrappers.Option_Some(d_13_reproducedEncryptionContext_))) + d_23_decryptOutput_ = out24_ + if not((d_23_decryptOutput_).is_Success): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(404,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_24_cycledPlaintext_ = ((d_23_decryptOutput_).value).plaintext + if not((d_24_cycledPlaintext_) == (d_0_asdf_)): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(406,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + + @staticmethod + def TestRemoveOnDecryptIsBackwardsCompatibleHappyCase(): + d_0_asdf_: _dafny.Seq + d_0_asdf_ = _dafny.Seq([97, 115, 100, 102]) + d_1_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig + d_1_defaultConfig_ = EncryptionSdk.default__.DefaultAwsEncryptionSdkConfig() + d_2_valueOrError0_: Wrappers.Result = None + out0_: Wrappers.Result + out0_ = EncryptionSdk.default__.ESDK(d_1_defaultConfig_) + d_2_valueOrError0_ = out0_ + if not(not((d_2_valueOrError0_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(415,20): " + _dafny.string_of(d_2_valueOrError0_)) + d_3_esdk_: EncryptionSdk.ESDKClient + d_3_esdk_ = (d_2_valueOrError0_).Extract() + d_4_valueOrError1_: Wrappers.Result = None + out1_: Wrappers.Result + out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) + d_4_valueOrError1_ = out1_ + if not(not((d_4_valueOrError1_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(416,19): " + _dafny.string_of(d_4_valueOrError1_)) + d_5_mpl_: MaterialProviders.MaterialProvidersClient + d_5_mpl_ = (d_4_valueOrError1_).Extract() + d_6_rsaKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + out2_: AwsCryptographyMaterialProvidersTypes.IKeyring + out2_ = default__.GetRsaKeyring() + d_6_rsaKeyring_ = out2_ + d_7_kmsKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + out3_: AwsCryptographyMaterialProvidersTypes.IKeyring + out3_ = default__.GetKmsKeyring() + d_7_kmsKeyring_ = out3_ + d_8_aesKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + out4_: AwsCryptographyMaterialProvidersTypes.IKeyring + out4_ = default__.GetAesKeyring() + d_8_aesKeyring_ = out4_ + d_9_hKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + out5_: AwsCryptographyMaterialProvidersTypes.IKeyring + out5_ = default__.GetHierarchicalKeyring() + d_9_hKeyring_ = out5_ + d_10_valueOrError2_: Wrappers.Result = None + out6_: Wrappers.Result + out6_ = (d_5_mpl_).CreateMultiKeyring(AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput_CreateMultiKeyringInput(Wrappers.Option_Some(d_8_aesKeyring_), _dafny.Seq([d_6_rsaKeyring_, d_7_kmsKeyring_, d_9_hKeyring_]))) + d_10_valueOrError2_ = out6_ + if not(not((d_10_valueOrError2_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(424,28): " + _dafny.string_of(d_10_valueOrError2_)) + d_11_multiKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + d_11_multiKeyring_ = (d_10_valueOrError2_).Extract() + d_12_encryptionContext_: _dafny.Map + out7_: _dafny.Map + out7_ = Fixtures.default__.SmallEncryptionContext(Fixtures.SmallEncryptionContextVariation_AB()) + d_12_encryptionContext_ = out7_ + d_13_reproducedEncryptionContext_: _dafny.Map + out8_: _dafny.Map + out8_ = Fixtures.default__.SmallEncryptionContext(Fixtures.SmallEncryptionContextVariation_A()) + d_13_reproducedEncryptionContext_ = out8_ + d_14_requiredEncryptionContextKeys_: _dafny.Seq + out9_: _dafny.Seq + out9_ = Fixtures.default__.SmallEncryptionContextKeys(Fixtures.SmallEncryptionContextVariation_A()) + d_14_requiredEncryptionContextKeys_ = out9_ + d_15_valueOrError3_: Wrappers.Result = None + out10_: Wrappers.Result + out10_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_11_multiKeyring_)) + d_15_valueOrError3_ = out10_ + if not(not((d_15_valueOrError3_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(439,26): " + _dafny.string_of(d_15_valueOrError3_)) + d_16_defaultCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager + d_16_defaultCMM_ = (d_15_valueOrError3_).Extract() + d_17_encryptOutput_: Wrappers.Result + out11_: Wrappers.Result + out11_ = (d_3_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_0_asdf_, Wrappers.Option_Some(d_12_encryptionContext_), Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), Wrappers.Option_None(), Wrappers.Option_None())) + d_17_encryptOutput_ = out11_ + if not((d_17_encryptOutput_).is_Success): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(455,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_18_esdkCiphertext_: _dafny.Seq + d_18_esdkCiphertext_ = ((d_17_encryptOutput_).value).ciphertext + d_19_valueOrError4_: Wrappers.Result = None + out12_: Wrappers.Result + out12_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_6_rsaKeyring_)) + d_19_valueOrError4_ = out12_ + if not(not((d_19_valueOrError4_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(459,22): " + _dafny.string_of(d_19_valueOrError4_)) + d_16_defaultCMM_ = (d_19_valueOrError4_).Extract() + d_20_valueOrError5_: Wrappers.Result = None + out13_: Wrappers.Result + out13_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), d_14_requiredEncryptionContextKeys_)) + d_20_valueOrError5_ = out13_ + if not(not((d_20_valueOrError5_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(466,22): " + _dafny.string_of(d_20_valueOrError5_)) + d_21_reqCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager + d_21_reqCMM_ = (d_20_valueOrError5_).Extract() + d_22_decryptOutput_: Wrappers.Result + out14_: Wrappers.Result + out14_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_18_esdkCiphertext_, Wrappers.Option_Some(d_21_reqCMM_), Wrappers.Option_None(), Wrappers.Option_Some(d_13_reproducedEncryptionContext_))) + d_22_decryptOutput_ = out14_ + if not((d_22_decryptOutput_).is_Success): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(484,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_23_cycledPlaintext_: _dafny.Seq + d_23_cycledPlaintext_ = ((d_22_decryptOutput_).value).plaintext + if not((d_23_cycledPlaintext_) == (d_0_asdf_)): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(486,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_24_valueOrError6_: Wrappers.Result = None + out15_: Wrappers.Result + out15_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_7_kmsKeyring_)) + d_24_valueOrError6_ = out15_ + if not(not((d_24_valueOrError6_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(490,22): " + _dafny.string_of(d_24_valueOrError6_)) + d_16_defaultCMM_ = (d_24_valueOrError6_).Extract() + d_25_valueOrError7_: Wrappers.Result = None + out16_: Wrappers.Result + out16_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), d_14_requiredEncryptionContextKeys_)) + d_25_valueOrError7_ = out16_ + if not(not((d_25_valueOrError7_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(497,18): " + _dafny.string_of(d_25_valueOrError7_)) + d_21_reqCMM_ = (d_25_valueOrError7_).Extract() + out17_: Wrappers.Result + out17_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_18_esdkCiphertext_, Wrappers.Option_Some(d_21_reqCMM_), Wrappers.Option_None(), Wrappers.Option_Some(d_13_reproducedEncryptionContext_))) + d_22_decryptOutput_ = out17_ + if not((d_22_decryptOutput_).is_Success): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(515,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_23_cycledPlaintext_ = ((d_22_decryptOutput_).value).plaintext + if not((d_23_cycledPlaintext_) == (d_0_asdf_)): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(517,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_26_valueOrError8_: Wrappers.Result = None + out18_: Wrappers.Result + out18_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_8_aesKeyring_)) + d_26_valueOrError8_ = out18_ + if not(not((d_26_valueOrError8_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(521,22): " + _dafny.string_of(d_26_valueOrError8_)) + d_16_defaultCMM_ = (d_26_valueOrError8_).Extract() + d_27_valueOrError9_: Wrappers.Result = None + out19_: Wrappers.Result + out19_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), d_14_requiredEncryptionContextKeys_)) + d_27_valueOrError9_ = out19_ + if not(not((d_27_valueOrError9_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(528,18): " + _dafny.string_of(d_27_valueOrError9_)) + d_21_reqCMM_ = (d_27_valueOrError9_).Extract() + out20_: Wrappers.Result + out20_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_18_esdkCiphertext_, Wrappers.Option_Some(d_21_reqCMM_), Wrappers.Option_None(), Wrappers.Option_Some(d_13_reproducedEncryptionContext_))) + d_22_decryptOutput_ = out20_ + if not((d_22_decryptOutput_).is_Success): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(546,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_23_cycledPlaintext_ = ((d_22_decryptOutput_).value).plaintext + if not((d_23_cycledPlaintext_) == (d_0_asdf_)): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(548,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_28_valueOrError10_: Wrappers.Result = None + out21_: Wrappers.Result + out21_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_9_hKeyring_)) + d_28_valueOrError10_ = out21_ + if not(not((d_28_valueOrError10_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(551,22): " + _dafny.string_of(d_28_valueOrError10_)) + d_16_defaultCMM_ = (d_28_valueOrError10_).Extract() + d_29_valueOrError11_: Wrappers.Result = None + out22_: Wrappers.Result + out22_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), d_14_requiredEncryptionContextKeys_)) + d_29_valueOrError11_ = out22_ + if not(not((d_29_valueOrError11_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(558,18): " + _dafny.string_of(d_29_valueOrError11_)) + d_21_reqCMM_ = (d_29_valueOrError11_).Extract() + out23_: Wrappers.Result + out23_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_18_esdkCiphertext_, Wrappers.Option_Some(d_21_reqCMM_), Wrappers.Option_None(), Wrappers.Option_Some(d_13_reproducedEncryptionContext_))) + d_22_decryptOutput_ = out23_ + if not((d_22_decryptOutput_).is_Success): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(576,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_23_cycledPlaintext_ = ((d_22_decryptOutput_).value).plaintext + if not((d_23_cycledPlaintext_) == (d_0_asdf_)): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(578,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + + @staticmethod + def TestDifferentECOnDecryptFailure(): + d_0_asdf_: _dafny.Seq + d_0_asdf_ = _dafny.Seq([97, 115, 100, 102]) + d_1_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig + d_1_defaultConfig_ = EncryptionSdk.default__.DefaultAwsEncryptionSdkConfig() + d_2_valueOrError0_: Wrappers.Result = None + out0_: Wrappers.Result + out0_ = EncryptionSdk.default__.ESDK(d_1_defaultConfig_) + d_2_valueOrError0_ = out0_ + if not(not((d_2_valueOrError0_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(590,20): " + _dafny.string_of(d_2_valueOrError0_)) + d_3_esdk_: EncryptionSdk.ESDKClient + d_3_esdk_ = (d_2_valueOrError0_).Extract() + d_4_valueOrError1_: Wrappers.Result = None + out1_: Wrappers.Result + out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) + d_4_valueOrError1_ = out1_ + if not(not((d_4_valueOrError1_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(591,19): " + _dafny.string_of(d_4_valueOrError1_)) + d_5_mpl_: MaterialProviders.MaterialProvidersClient + d_5_mpl_ = (d_4_valueOrError1_).Extract() + d_6_rsaKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + out2_: AwsCryptographyMaterialProvidersTypes.IKeyring + out2_ = default__.GetRsaKeyring() + d_6_rsaKeyring_ = out2_ + d_7_kmsKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + out3_: AwsCryptographyMaterialProvidersTypes.IKeyring + out3_ = default__.GetKmsKeyring() + d_7_kmsKeyring_ = out3_ + d_8_aesKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + out4_: AwsCryptographyMaterialProvidersTypes.IKeyring + out4_ = default__.GetAesKeyring() + d_8_aesKeyring_ = out4_ + d_9_hKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + out5_: AwsCryptographyMaterialProvidersTypes.IKeyring + out5_ = default__.GetHierarchicalKeyring() + d_9_hKeyring_ = out5_ + d_10_valueOrError2_: Wrappers.Result = None + out6_: Wrappers.Result + out6_ = (d_5_mpl_).CreateMultiKeyring(AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput_CreateMultiKeyringInput(Wrappers.Option_Some(d_8_aesKeyring_), _dafny.Seq([d_6_rsaKeyring_, d_7_kmsKeyring_, d_9_hKeyring_]))) + d_10_valueOrError2_ = out6_ + if not(not((d_10_valueOrError2_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(599,28): " + _dafny.string_of(d_10_valueOrError2_)) + d_11_multiKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + d_11_multiKeyring_ = (d_10_valueOrError2_).Extract() + d_12_encryptionContext_: _dafny.Map + out7_: _dafny.Map + out7_ = Fixtures.default__.SmallEncryptionContext(Fixtures.SmallEncryptionContextVariation_AB()) + d_12_encryptionContext_ = out7_ + d_13_reproducedAdditionalEncryptionContext_: _dafny.Map + out8_: _dafny.Map + out8_ = Fixtures.default__.SmallEncryptionContext(Fixtures.SmallEncryptionContextVariation_C()) + d_13_reproducedAdditionalEncryptionContext_ = out8_ + d_14_reproducedMismatchedEncryptionContext_: _dafny.Map + out9_: _dafny.Map + out9_ = Fixtures.default__.SmallMismatchedEncryptionContex(Fixtures.SmallEncryptionContextVariation_AB()) + d_14_reproducedMismatchedEncryptionContext_ = out9_ + d_15_encryptOutput_: Wrappers.Result + out10_: Wrappers.Result + out10_ = (d_3_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_0_asdf_, Wrappers.Option_Some(d_12_encryptionContext_), Wrappers.Option_None(), Wrappers.Option_Some(d_11_multiKeyring_), Wrappers.Option_None(), Wrappers.Option_None())) + d_15_encryptOutput_ = out10_ + if not((d_15_encryptOutput_).is_Success): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(623,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_16_esdkCiphertext_: _dafny.Seq + d_16_esdkCiphertext_ = ((d_15_encryptOutput_).value).ciphertext + d_17_decryptOutput_: Wrappers.Result + out11_: Wrappers.Result + out11_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_16_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_6_rsaKeyring_), Wrappers.Option_Some(d_13_reproducedAdditionalEncryptionContext_))) + d_17_decryptOutput_ = out11_ + if not((d_17_decryptOutput_).is_Failure): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(634,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + out12_: Wrappers.Result + out12_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_16_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_6_rsaKeyring_), Wrappers.Option_Some(d_14_reproducedMismatchedEncryptionContext_))) + d_17_decryptOutput_ = out12_ + if not((d_17_decryptOutput_).is_Failure): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(643,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + out13_: Wrappers.Result + out13_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_16_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_7_kmsKeyring_), Wrappers.Option_Some(d_13_reproducedAdditionalEncryptionContext_))) + d_17_decryptOutput_ = out13_ + if not((d_17_decryptOutput_).is_Failure): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(653,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + out14_: Wrappers.Result + out14_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_16_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_7_kmsKeyring_), Wrappers.Option_Some(d_14_reproducedMismatchedEncryptionContext_))) + d_17_decryptOutput_ = out14_ + if not((d_17_decryptOutput_).is_Failure): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(662,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + out15_: Wrappers.Result + out15_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_16_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_8_aesKeyring_), Wrappers.Option_Some(d_13_reproducedAdditionalEncryptionContext_))) + d_17_decryptOutput_ = out15_ + if not((d_17_decryptOutput_).is_Failure): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(672,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + out16_: Wrappers.Result + out16_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_16_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_8_aesKeyring_), Wrappers.Option_Some(d_14_reproducedMismatchedEncryptionContext_))) + d_17_decryptOutput_ = out16_ + if not((d_17_decryptOutput_).is_Failure): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(681,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + out17_: Wrappers.Result + out17_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_16_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_9_hKeyring_), Wrappers.Option_Some(d_13_reproducedAdditionalEncryptionContext_))) + d_17_decryptOutput_ = out17_ + if not((d_17_decryptOutput_).is_Failure): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(691,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + out18_: Wrappers.Result + out18_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_16_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_9_hKeyring_), Wrappers.Option_Some(d_14_reproducedMismatchedEncryptionContext_))) + d_17_decryptOutput_ = out18_ + if not((d_17_decryptOutput_).is_Failure): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(700,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + + @staticmethod + def TestRemoveECAndNotSupplyOnDecryptFailure(): + d_0_asdf_: _dafny.Seq + d_0_asdf_ = _dafny.Seq([97, 115, 100, 102]) + d_1_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig + d_1_defaultConfig_ = EncryptionSdk.default__.DefaultAwsEncryptionSdkConfig() + d_2_valueOrError0_: Wrappers.Result = None + out0_: Wrappers.Result + out0_ = EncryptionSdk.default__.ESDK(d_1_defaultConfig_) + d_2_valueOrError0_ = out0_ + if not(not((d_2_valueOrError0_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(715,20): " + _dafny.string_of(d_2_valueOrError0_)) + d_3_esdk_: EncryptionSdk.ESDKClient + d_3_esdk_ = (d_2_valueOrError0_).Extract() + d_4_valueOrError1_: Wrappers.Result = None + out1_: Wrappers.Result + out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) + d_4_valueOrError1_ = out1_ + if not(not((d_4_valueOrError1_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(716,19): " + _dafny.string_of(d_4_valueOrError1_)) + d_5_mpl_: MaterialProviders.MaterialProvidersClient + d_5_mpl_ = (d_4_valueOrError1_).Extract() + d_6_rsaKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + out2_: AwsCryptographyMaterialProvidersTypes.IKeyring + out2_ = default__.GetRsaKeyring() + d_6_rsaKeyring_ = out2_ + d_7_kmsKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + out3_: AwsCryptographyMaterialProvidersTypes.IKeyring + out3_ = default__.GetKmsKeyring() + d_7_kmsKeyring_ = out3_ + d_8_aesKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + out4_: AwsCryptographyMaterialProvidersTypes.IKeyring + out4_ = default__.GetAesKeyring() + d_8_aesKeyring_ = out4_ + d_9_hKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + out5_: AwsCryptographyMaterialProvidersTypes.IKeyring + out5_ = default__.GetHierarchicalKeyring() + d_9_hKeyring_ = out5_ + d_10_valueOrError2_: Wrappers.Result = None + out6_: Wrappers.Result + out6_ = (d_5_mpl_).CreateMultiKeyring(AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput_CreateMultiKeyringInput(Wrappers.Option_Some(d_8_aesKeyring_), _dafny.Seq([d_6_rsaKeyring_, d_7_kmsKeyring_, d_9_hKeyring_]))) + d_10_valueOrError2_ = out6_ + if not(not((d_10_valueOrError2_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(724,28): " + _dafny.string_of(d_10_valueOrError2_)) + d_11_multiKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + d_11_multiKeyring_ = (d_10_valueOrError2_).Extract() + d_12_encryptionContext_: _dafny.Map + out7_: _dafny.Map + out7_ = Fixtures.default__.SmallEncryptionContext(Fixtures.SmallEncryptionContextVariation_AB()) + d_12_encryptionContext_ = out7_ + d_13_requiredECKeys_: _dafny.Seq + out8_: _dafny.Seq + out8_ = Fixtures.default__.SmallEncryptionContextKeys(Fixtures.SmallEncryptionContextVariation_A()) + d_13_requiredECKeys_ = out8_ + d_14_valueOrError3_: Wrappers.Result = None + out9_: Wrappers.Result + out9_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_11_multiKeyring_)) + d_14_valueOrError3_ = out9_ + if not(not((d_14_valueOrError3_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(736,26): " + _dafny.string_of(d_14_valueOrError3_)) + d_15_defaultCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager + d_15_defaultCMM_ = (d_14_valueOrError3_).Extract() + d_16_valueOrError4_: Wrappers.Result = None + out10_: Wrappers.Result + out10_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_15_defaultCMM_), Wrappers.Option_None(), d_13_requiredECKeys_)) + d_16_valueOrError4_ = out10_ + if not(not((d_16_valueOrError4_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(743,22): " + _dafny.string_of(d_16_valueOrError4_)) + d_17_reqCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager + d_17_reqCMM_ = (d_16_valueOrError4_).Extract() + d_18_encryptOutput_: Wrappers.Result + out11_: Wrappers.Result + out11_ = (d_3_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_0_asdf_, Wrappers.Option_Some(d_12_encryptionContext_), Wrappers.Option_Some(d_17_reqCMM_), Wrappers.Option_None(), Wrappers.Option_None(), Wrappers.Option_None())) + d_18_encryptOutput_ = out11_ + if not((d_18_encryptOutput_).is_Success): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(762,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_19_esdkCiphertext_: _dafny.Seq + d_19_esdkCiphertext_ = ((d_18_encryptOutput_).value).ciphertext + d_20_decryptOutput_: Wrappers.Result + out12_: Wrappers.Result + out12_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_19_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_6_rsaKeyring_), Wrappers.Option_None())) + d_20_decryptOutput_ = out12_ + if not((d_20_decryptOutput_).is_Failure): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(773,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + out13_: Wrappers.Result + out13_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_19_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_7_kmsKeyring_), Wrappers.Option_None())) + d_20_decryptOutput_ = out13_ + if not((d_20_decryptOutput_).is_Failure): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(783,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + out14_: Wrappers.Result + out14_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_19_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_8_aesKeyring_), Wrappers.Option_None())) + d_20_decryptOutput_ = out14_ + if not((d_20_decryptOutput_).is_Failure): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(793,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + out15_: Wrappers.Result + out15_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_19_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_9_hKeyring_), Wrappers.Option_None())) + d_20_decryptOutput_ = out15_ + if not((d_20_decryptOutput_).is_Failure): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(803,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + + @staticmethod + def TestRemoveECAndSupplyMismatchedReprECFailure(): + d_0_asdf_: _dafny.Seq + d_0_asdf_ = _dafny.Seq([97, 115, 100, 102]) + d_1_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig + d_1_defaultConfig_ = EncryptionSdk.default__.DefaultAwsEncryptionSdkConfig() + d_2_valueOrError0_: Wrappers.Result = None + out0_: Wrappers.Result + out0_ = EncryptionSdk.default__.ESDK(d_1_defaultConfig_) + d_2_valueOrError0_ = out0_ + if not(not((d_2_valueOrError0_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(818,20): " + _dafny.string_of(d_2_valueOrError0_)) + d_3_esdk_: EncryptionSdk.ESDKClient + d_3_esdk_ = (d_2_valueOrError0_).Extract() + d_4_valueOrError1_: Wrappers.Result = None + out1_: Wrappers.Result + out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) + d_4_valueOrError1_ = out1_ + if not(not((d_4_valueOrError1_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(819,19): " + _dafny.string_of(d_4_valueOrError1_)) + d_5_mpl_: MaterialProviders.MaterialProvidersClient + d_5_mpl_ = (d_4_valueOrError1_).Extract() + d_6_rsaKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + out2_: AwsCryptographyMaterialProvidersTypes.IKeyring + out2_ = default__.GetRsaKeyring() + d_6_rsaKeyring_ = out2_ + d_7_kmsKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + out3_: AwsCryptographyMaterialProvidersTypes.IKeyring + out3_ = default__.GetKmsKeyring() + d_7_kmsKeyring_ = out3_ + d_8_aesKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + out4_: AwsCryptographyMaterialProvidersTypes.IKeyring + out4_ = default__.GetAesKeyring() + d_8_aesKeyring_ = out4_ + d_9_hKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + out5_: AwsCryptographyMaterialProvidersTypes.IKeyring + out5_ = default__.GetHierarchicalKeyring() + d_9_hKeyring_ = out5_ + d_10_valueOrError2_: Wrappers.Result = None + out6_: Wrappers.Result + out6_ = (d_5_mpl_).CreateMultiKeyring(AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput_CreateMultiKeyringInput(Wrappers.Option_Some(d_8_aesKeyring_), _dafny.Seq([d_6_rsaKeyring_, d_7_kmsKeyring_, d_9_hKeyring_]))) + d_10_valueOrError2_ = out6_ + if not(not((d_10_valueOrError2_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(827,28): " + _dafny.string_of(d_10_valueOrError2_)) + d_11_multiKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + d_11_multiKeyring_ = (d_10_valueOrError2_).Extract() + d_12_encryptionContext_: _dafny.Map + out7_: _dafny.Map + out7_ = Fixtures.default__.SmallEncryptionContext(Fixtures.SmallEncryptionContextVariation_AB()) + d_12_encryptionContext_ = out7_ + d_13_requiredECKeys_: _dafny.Seq + out8_: _dafny.Seq + out8_ = Fixtures.default__.SmallEncryptionContextKeys(Fixtures.SmallEncryptionContextVariation_A()) + d_13_requiredECKeys_ = out8_ + d_14_mismatchedReproducedEncryptionContext_: _dafny.Map + out9_: _dafny.Map + out9_ = Fixtures.default__.SmallMismatchedEncryptionContex(Fixtures.SmallEncryptionContextVariation_A()) + d_14_mismatchedReproducedEncryptionContext_ = out9_ + d_15_valueOrError3_: Wrappers.Result = None + out10_: Wrappers.Result + out10_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_11_multiKeyring_)) + d_15_valueOrError3_ = out10_ + if not(not((d_15_valueOrError3_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(841,26): " + _dafny.string_of(d_15_valueOrError3_)) + d_16_defaultCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager + d_16_defaultCMM_ = (d_15_valueOrError3_).Extract() + d_17_valueOrError4_: Wrappers.Result = None + out11_: Wrappers.Result + out11_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), d_13_requiredECKeys_)) + d_17_valueOrError4_ = out11_ + if not(not((d_17_valueOrError4_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(848,22): " + _dafny.string_of(d_17_valueOrError4_)) + d_18_reqCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager + d_18_reqCMM_ = (d_17_valueOrError4_).Extract() + d_19_encryptOutput_: Wrappers.Result + out12_: Wrappers.Result + out12_ = (d_3_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_0_asdf_, Wrappers.Option_Some(d_12_encryptionContext_), Wrappers.Option_Some(d_18_reqCMM_), Wrappers.Option_None(), Wrappers.Option_None(), Wrappers.Option_None())) + d_19_encryptOutput_ = out12_ + if not((d_19_encryptOutput_).is_Success): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(867,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_20_esdkCiphertext_: _dafny.Seq + d_20_esdkCiphertext_ = ((d_19_encryptOutput_).value).ciphertext + d_21_decryptOutput_: Wrappers.Result + out13_: Wrappers.Result + out13_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_6_rsaKeyring_), Wrappers.Option_Some(d_14_mismatchedReproducedEncryptionContext_))) + d_21_decryptOutput_ = out13_ + if not((d_21_decryptOutput_).is_Failure): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(878,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + out14_: Wrappers.Result + out14_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_7_kmsKeyring_), Wrappers.Option_Some(d_14_mismatchedReproducedEncryptionContext_))) + d_21_decryptOutput_ = out14_ + if not((d_21_decryptOutput_).is_Failure): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(888,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + out15_: Wrappers.Result + out15_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_8_aesKeyring_), Wrappers.Option_Some(d_14_mismatchedReproducedEncryptionContext_))) + d_21_decryptOutput_ = out15_ + if not((d_21_decryptOutput_).is_Failure): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(898,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + out16_: Wrappers.Result + out16_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_9_hKeyring_), Wrappers.Option_Some(d_14_mismatchedReproducedEncryptionContext_))) + d_21_decryptOutput_ = out16_ + if not((d_21_decryptOutput_).is_Failure): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(908,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + + @staticmethod + def TestRemoveECAndSupplyWithMissingRequiredValueDecryptFailure(): + d_0_asdf_: _dafny.Seq + d_0_asdf_ = _dafny.Seq([97, 115, 100, 102]) + d_1_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig + d_1_defaultConfig_ = EncryptionSdk.default__.DefaultAwsEncryptionSdkConfig() + d_2_valueOrError0_: Wrappers.Result = None + out0_: Wrappers.Result + out0_ = EncryptionSdk.default__.ESDK(d_1_defaultConfig_) + d_2_valueOrError0_ = out0_ + if not(not((d_2_valueOrError0_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(922,20): " + _dafny.string_of(d_2_valueOrError0_)) + d_3_esdk_: EncryptionSdk.ESDKClient + d_3_esdk_ = (d_2_valueOrError0_).Extract() + d_4_valueOrError1_: Wrappers.Result = None + out1_: Wrappers.Result + out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) + d_4_valueOrError1_ = out1_ + if not(not((d_4_valueOrError1_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(923,19): " + _dafny.string_of(d_4_valueOrError1_)) + d_5_mpl_: MaterialProviders.MaterialProvidersClient + d_5_mpl_ = (d_4_valueOrError1_).Extract() + d_6_rsaKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + out2_: AwsCryptographyMaterialProvidersTypes.IKeyring + out2_ = default__.GetRsaKeyring() + d_6_rsaKeyring_ = out2_ + d_7_kmsKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + out3_: AwsCryptographyMaterialProvidersTypes.IKeyring + out3_ = default__.GetKmsKeyring() + d_7_kmsKeyring_ = out3_ + d_8_aesKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + out4_: AwsCryptographyMaterialProvidersTypes.IKeyring + out4_ = default__.GetAesKeyring() + d_8_aesKeyring_ = out4_ + d_9_hKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + out5_: AwsCryptographyMaterialProvidersTypes.IKeyring + out5_ = default__.GetHierarchicalKeyring() + d_9_hKeyring_ = out5_ + d_10_valueOrError2_: Wrappers.Result = None + out6_: Wrappers.Result + out6_ = (d_5_mpl_).CreateMultiKeyring(AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput_CreateMultiKeyringInput(Wrappers.Option_Some(d_8_aesKeyring_), _dafny.Seq([d_6_rsaKeyring_, d_7_kmsKeyring_, d_9_hKeyring_]))) + d_10_valueOrError2_ = out6_ + if not(not((d_10_valueOrError2_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(931,28): " + _dafny.string_of(d_10_valueOrError2_)) + d_11_multiKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + d_11_multiKeyring_ = (d_10_valueOrError2_).Extract() + d_12_encryptionContext_: _dafny.Map + out7_: _dafny.Map + out7_ = Fixtures.default__.SmallEncryptionContext(Fixtures.SmallEncryptionContextVariation_AB()) + d_12_encryptionContext_ = out7_ + d_13_requiredECKeys_: _dafny.Seq + out8_: _dafny.Seq + out8_ = Fixtures.default__.SmallEncryptionContextKeys(Fixtures.SmallEncryptionContextVariation_A()) + d_13_requiredECKeys_ = out8_ + d_14_droppedRequiredKeyEncryptionContext_: _dafny.Map + out9_: _dafny.Map + out9_ = Fixtures.default__.SmallEncryptionContext(Fixtures.SmallEncryptionContextVariation_B()) + d_14_droppedRequiredKeyEncryptionContext_ = out9_ + d_15_valueOrError3_: Wrappers.Result = None + out10_: Wrappers.Result + out10_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_11_multiKeyring_)) + d_15_valueOrError3_ = out10_ + if not(not((d_15_valueOrError3_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(945,26): " + _dafny.string_of(d_15_valueOrError3_)) + d_16_defaultCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager + d_16_defaultCMM_ = (d_15_valueOrError3_).Extract() + d_17_valueOrError4_: Wrappers.Result = None + out11_: Wrappers.Result + out11_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), d_13_requiredECKeys_)) + d_17_valueOrError4_ = out11_ + if not(not((d_17_valueOrError4_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(952,22): " + _dafny.string_of(d_17_valueOrError4_)) + d_18_reqCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager + d_18_reqCMM_ = (d_17_valueOrError4_).Extract() + d_19_encryptOutput_: Wrappers.Result + out12_: Wrappers.Result + out12_ = (d_3_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_0_asdf_, Wrappers.Option_Some(d_12_encryptionContext_), Wrappers.Option_Some(d_18_reqCMM_), Wrappers.Option_None(), Wrappers.Option_None(), Wrappers.Option_None())) + d_19_encryptOutput_ = out12_ + if not((d_19_encryptOutput_).is_Success): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(971,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_20_esdkCiphertext_: _dafny.Seq + d_20_esdkCiphertext_ = ((d_19_encryptOutput_).value).ciphertext + d_21_decryptOutput_: Wrappers.Result + out13_: Wrappers.Result + out13_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_6_rsaKeyring_), Wrappers.Option_Some(d_14_droppedRequiredKeyEncryptionContext_))) + d_21_decryptOutput_ = out13_ + if not((d_21_decryptOutput_).is_Failure): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(982,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + out14_: Wrappers.Result + out14_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_7_kmsKeyring_), Wrappers.Option_Some(d_14_droppedRequiredKeyEncryptionContext_))) + d_21_decryptOutput_ = out14_ + if not((d_21_decryptOutput_).is_Failure): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(992,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + out15_: Wrappers.Result + out15_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_8_aesKeyring_), Wrappers.Option_Some(d_14_droppedRequiredKeyEncryptionContext_))) + d_21_decryptOutput_ = out15_ + if not((d_21_decryptOutput_).is_Failure): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1002,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + out16_: Wrappers.Result + out16_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_9_hKeyring_), Wrappers.Option_Some(d_14_droppedRequiredKeyEncryptionContext_))) + d_21_decryptOutput_ = out16_ + if not((d_21_decryptOutput_).is_Failure): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1012,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + + @staticmethod + def TestReservedEncryptionContextKeyFailure(): + d_0_asdf_: _dafny.Seq + d_0_asdf_ = _dafny.Seq([97, 115, 100, 102]) + d_1_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig + d_1_defaultConfig_ = EncryptionSdk.default__.DefaultAwsEncryptionSdkConfig() + d_2_valueOrError0_: Wrappers.Result = None + out0_: Wrappers.Result + out0_ = EncryptionSdk.default__.ESDK(d_1_defaultConfig_) + d_2_valueOrError0_ = out0_ + if not(not((d_2_valueOrError0_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1022,20): " + _dafny.string_of(d_2_valueOrError0_)) + d_3_esdk_: EncryptionSdk.ESDKClient + d_3_esdk_ = (d_2_valueOrError0_).Extract() + d_4_valueOrError1_: Wrappers.Result = None + out1_: Wrappers.Result + out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) + d_4_valueOrError1_ = out1_ + if not(not((d_4_valueOrError1_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1023,19): " + _dafny.string_of(d_4_valueOrError1_)) + d_5_mpl_: MaterialProviders.MaterialProvidersClient + d_5_mpl_ = (d_4_valueOrError1_).Extract() + d_6_rsaKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + out2_: AwsCryptographyMaterialProvidersTypes.IKeyring + out2_ = default__.GetRsaKeyring() + d_6_rsaKeyring_ = out2_ + d_7_encryptionContext_: _dafny.Map + out3_: _dafny.Map + out3_ = Fixtures.default__.GetResrvedECMap() + d_7_encryptionContext_ = out3_ + d_8_requiredECKeys_: _dafny.Seq + d_8_requiredECKeys_ = _dafny.Seq([Fixtures.default__.RESERVED__ENCRYPTION__CONTEXT]) + d_9_valueOrError2_: Wrappers.Result = None + out4_: Wrappers.Result + out4_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_6_rsaKeyring_)) + d_9_valueOrError2_ = out4_ + if not(not((d_9_valueOrError2_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1031,26): " + _dafny.string_of(d_9_valueOrError2_)) + d_10_defaultCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager + d_10_defaultCMM_ = (d_9_valueOrError2_).Extract() + d_11_valueOrError3_: Wrappers.Result = None + out5_: Wrappers.Result + out5_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_10_defaultCMM_), Wrappers.Option_None(), d_8_requiredECKeys_)) + d_11_valueOrError3_ = out5_ + if not(not((d_11_valueOrError3_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1041,22): " + _dafny.string_of(d_11_valueOrError3_)) + d_12_reqCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager + d_12_reqCMM_ = (d_11_valueOrError3_).Extract() + d_13_encryptOutput_: Wrappers.Result + out6_: Wrappers.Result + out6_ = (d_3_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_0_asdf_, Wrappers.Option_Some(d_7_encryptionContext_), Wrappers.Option_Some(d_12_reqCMM_), Wrappers.Option_None(), Wrappers.Option_None(), Wrappers.Option_None())) + d_13_encryptOutput_ = out6_ + if not((d_13_encryptOutput_).is_Failure): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1060,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + + @staticmethod + def GetHierarchicalKeyring(): + output: AwsCryptographyMaterialProvidersTypes.IKeyring = None + d_0_branchKeyId_: _dafny.Seq + d_0_branchKeyId_ = default__.BRANCH__KEY__ID + d_1_ttl_: int + d_1_ttl_ = ((1) * (60000)) * (10) + d_2_valueOrError0_: Wrappers.Result = None + out0_: Wrappers.Result + out0_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) + d_2_valueOrError0_ = out0_ + if not(not((d_2_valueOrError0_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1070,19): " + _dafny.string_of(d_2_valueOrError0_)) + d_3_mpl_: MaterialProviders.MaterialProvidersClient + d_3_mpl_ = (d_2_valueOrError0_).Extract() + d_4_valueOrError1_: Wrappers.Result = None + out1_: Wrappers.Result + out1_ = Com_Amazonaws_Kms.default__.KMSClient() + d_4_valueOrError1_ = out1_ + if not(not((d_4_valueOrError1_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1072,25): " + _dafny.string_of(d_4_valueOrError1_)) + d_5_kmsClient_: ComAmazonawsKmsTypes.IKMSClient + d_5_kmsClient_ = (d_4_valueOrError1_).Extract() + d_6_valueOrError2_: Wrappers.Result = None + out2_: Wrappers.Result + out2_ = Com_Amazonaws_Dynamodb.default__.DynamoDBClient() + d_6_valueOrError2_ = out2_ + if not(not((d_6_valueOrError2_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1073,25): " + _dafny.string_of(d_6_valueOrError2_)) + d_7_ddbClient_: ComAmazonawsDynamodbTypes.IDynamoDBClient + d_7_ddbClient_ = (d_6_valueOrError2_).Extract() + d_8_kmsConfig_: AwsCryptographyKeyStoreTypes.KMSConfiguration + d_8_kmsConfig_ = AwsCryptographyKeyStoreTypes.KMSConfiguration_kmsKeyArn(default__.hierarchyKeyArn) + d_9_keyStoreConfig_: AwsCryptographyKeyStoreTypes.KeyStoreConfig + d_9_keyStoreConfig_ = AwsCryptographyKeyStoreTypes.KeyStoreConfig_KeyStoreConfig(default__.branchKeyStoreName, d_8_kmsConfig_, default__.logicalKeyStoreName, Wrappers.Option_None(), Wrappers.Option_None(), Wrappers.Option_Some(d_7_ddbClient_), Wrappers.Option_Some(d_5_kmsClient_)) + d_10_valueOrError3_: Wrappers.Result = None + out3_: Wrappers.Result + out3_ = KeyStore.default__.KeyStore(d_9_keyStoreConfig_) + d_10_valueOrError3_ = out3_ + if not(not((d_10_valueOrError3_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1086,24): " + _dafny.string_of(d_10_valueOrError3_)) + d_11_keyStore_: KeyStore.KeyStoreClient + d_11_keyStore_ = (d_10_valueOrError3_).Extract() + d_12_valueOrError4_: Wrappers.Result = None + out4_: Wrappers.Result + out4_ = (d_3_mpl_).CreateAwsKmsHierarchicalKeyring(AwsCryptographyMaterialProvidersTypes.CreateAwsKmsHierarchicalKeyringInput_CreateAwsKmsHierarchicalKeyringInput(Wrappers.Option_Some(d_0_branchKeyId_), Wrappers.Option_None(), d_11_keyStore_, d_1_ttl_, Wrappers.Option_None(), Wrappers.Option_None())) + d_12_valueOrError4_ = out4_ + if not(not((d_12_valueOrError4_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1088,18): " + _dafny.string_of(d_12_valueOrError4_)) + output = (d_12_valueOrError4_).Extract() + return output + + @staticmethod + def GetRsaKeyring(): + output: AwsCryptographyMaterialProvidersTypes.IKeyring = None + d_0_valueOrError0_: Wrappers.Result = None + out0_: Wrappers.Result + out0_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) + d_0_valueOrError0_ = out0_ + if not(not((d_0_valueOrError0_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1102,19): " + _dafny.string_of(d_0_valueOrError0_)) + d_1_mpl_: MaterialProviders.MaterialProvidersClient + d_1_mpl_ = (d_0_valueOrError0_).Extract() + d_2_namespace_: _dafny.Seq + d_3_name_: _dafny.Seq + out1_: _dafny.Seq + out2_: _dafny.Seq + out1_, out2_ = Fixtures.default__.NamespaceAndName(0) + d_2_namespace_ = out1_ + d_3_name_ = out2_ + d_4_keys_: AwsCryptographyPrimitivesTypes.GenerateRSAKeyPairOutput + out3_: AwsCryptographyPrimitivesTypes.GenerateRSAKeyPairOutput + out3_ = Fixtures.default__.GenerateKeyPair(2048) + d_4_keys_ = out3_ + d_5_valueOrError1_: Wrappers.Result = None + out4_: Wrappers.Result + out4_ = (d_1_mpl_).CreateRawRsaKeyring(AwsCryptographyMaterialProvidersTypes.CreateRawRsaKeyringInput_CreateRawRsaKeyringInput(d_2_namespace_, d_3_name_, AwsCryptographyMaterialProvidersTypes.PaddingScheme_OAEP__SHA1__MGF1(), Wrappers.Option_Some(((d_4_keys_).publicKey).pem), Wrappers.Option_Some(((d_4_keys_).privateKey).pem))) + d_5_valueOrError1_ = out4_ + if not(not((d_5_valueOrError1_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1106,18): " + _dafny.string_of(d_5_valueOrError1_)) + output = (d_5_valueOrError1_).Extract() + return output + + @staticmethod + def GetAesKeyring(): + output: AwsCryptographyMaterialProvidersTypes.IKeyring = None + d_0_valueOrError0_: Wrappers.Result = None + out0_: Wrappers.Result + out0_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) + d_0_valueOrError0_ = out0_ + if not(not((d_0_valueOrError0_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1120,19): " + _dafny.string_of(d_0_valueOrError0_)) + d_1_mpl_: MaterialProviders.MaterialProvidersClient + d_1_mpl_ = (d_0_valueOrError0_).Extract() + d_2_namespace_: _dafny.Seq + d_3_name_: _dafny.Seq + out1_: _dafny.Seq + out2_: _dafny.Seq + out1_, out2_ = Fixtures.default__.NamespaceAndName(0) + d_2_namespace_ = out1_ + d_3_name_ = out2_ + d_4_valueOrError1_: Wrappers.Result = None + out3_: Wrappers.Result + out3_ = (d_1_mpl_).CreateRawAesKeyring(AwsCryptographyMaterialProvidersTypes.CreateRawAesKeyringInput_CreateRawAesKeyringInput(d_2_namespace_, d_3_name_, _dafny.Seq([0 for d_5_i_ in range(32)]), AwsCryptographyMaterialProvidersTypes.AesWrappingAlg_ALG__AES256__GCM__IV12__TAG16())) + d_4_valueOrError1_ = out3_ + if not(not((d_4_valueOrError1_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1123,18): " + _dafny.string_of(d_4_valueOrError1_)) + output = (d_4_valueOrError1_).Extract() + return output + + @staticmethod + def GetKmsKeyring(): + output: AwsCryptographyMaterialProvidersTypes.IKeyring = None + d_0_kmsKey_: _dafny.Seq + d_0_kmsKey_ = Fixtures.default__.keyArn + d_1_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig + d_1_defaultConfig_ = EncryptionSdk.default__.DefaultAwsEncryptionSdkConfig() + d_2_valueOrError0_: Wrappers.Result = None + out0_: Wrappers.Result + out0_ = EncryptionSdk.default__.ESDK(d_1_defaultConfig_) + d_2_valueOrError0_ = out0_ + if not(not((d_2_valueOrError0_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1137,20): " + _dafny.string_of(d_2_valueOrError0_)) + d_3_esdk_: EncryptionSdk.ESDKClient + d_3_esdk_ = (d_2_valueOrError0_).Extract() + d_4_valueOrError1_: Wrappers.Result = None + out1_: Wrappers.Result + out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) + d_4_valueOrError1_ = out1_ + if not(not((d_4_valueOrError1_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1138,19): " + _dafny.string_of(d_4_valueOrError1_)) + d_5_mpl_: MaterialProviders.MaterialProvidersClient + d_5_mpl_ = (d_4_valueOrError1_).Extract() + d_6_valueOrError2_: Wrappers.Result = None + out2_: Wrappers.Result + out2_ = (d_5_mpl_).CreateDefaultClientSupplier(AwsCryptographyMaterialProvidersTypes.CreateDefaultClientSupplierInput_CreateDefaultClientSupplierInput()) + d_6_valueOrError2_ = out2_ + if not(not((d_6_valueOrError2_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1139,30): " + _dafny.string_of(d_6_valueOrError2_)) + d_7_clientSupplier_: AwsCryptographyMaterialProvidersTypes.IClientSupplier + d_7_clientSupplier_ = (d_6_valueOrError2_).Extract() + d_8_valueOrError3_: Wrappers.Result = None + out3_: Wrappers.Result + out3_ = (d_7_clientSupplier_).GetClient(AwsCryptographyMaterialProvidersTypes.GetClientInput_GetClientInput(_dafny.Seq("us-west-2"))) + d_8_valueOrError3_ = out3_ + if not(not((d_8_valueOrError3_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1140,25): " + _dafny.string_of(d_8_valueOrError3_)) + d_9_kmsClient_: ComAmazonawsKmsTypes.IKMSClient + d_9_kmsClient_ = (d_8_valueOrError3_).Extract() + d_10_valueOrError4_: Wrappers.Result = None + out4_: Wrappers.Result + out4_ = (d_5_mpl_).CreateAwsKmsKeyring(AwsCryptographyMaterialProvidersTypes.CreateAwsKmsKeyringInput_CreateAwsKmsKeyringInput(d_0_kmsKey_, d_9_kmsClient_, Wrappers.Option_None())) + d_10_valueOrError4_ = out4_ + if not(not((d_10_valueOrError4_).IsFailure())): + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1142,18): " + _dafny.string_of(d_10_valueOrError4_)) + output = (d_10_valueOrError4_).Extract() + return output + + @_dafny.classproperty + def branchKeyStoreName(instance): + return Fixtures.default__.branchKeyStoreName + @_dafny.classproperty + def logicalKeyStoreName(instance): + return default__.branchKeyStoreName + @_dafny.classproperty + def BRANCH__KEY__ID(instance): + return Fixtures.default__.branchKeyId + @_dafny.classproperty + def hierarchyKeyArn(instance): + return Fixtures.default__.hierarchyKeyArn + @_dafny.classproperty + def keyArn(instance): + return Fixtures.default__.keyArn diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__main__.py b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__main__.py new file mode 100644 index 000000000..55186ebe6 --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__main__.py @@ -0,0 +1,15 @@ +# Dafny program the_program compiled into Python +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import module_ as module_ +import _dafny as _dafny + +try: + dafnyArgs = [_dafny.Seq(a) for a in sys.argv] + module_.default__.Test____Main____(dafnyArgs) +except _dafny.HaltException as e: + _dafny.print("[Program halted] " + e.message + "\n") + sys.exit(1) diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/Fixtures.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/Fixtures.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f0770dc25fe98274c35c41ad67f16653f1667b2b GIT binary patch literal 53648 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 P=PI8||1+eAzG?KIZ|=R( literal 0 HcmV?d00001 diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestCreateEsdkClient.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestCreateEsdkClient.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8d089e71fe40bfc8d6479ae70f8c9eaac950c97c GIT binary patch literal 32493 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 G&i?~i)VBHn literal 0 HcmV?d00001 diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestCreateEsdkClient.cpython-312.pyc b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestCreateEsdkClient.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..39f0bc9c4d4c556e5052d33967a3234a20dea873 GIT binary patch literal 27755 zcmdsf33waFb^ie1Em8z8Sr=vckSyAic<8nzN)!(r6b}=mWQ{GYAYe%X#6d4WiJ(AN z@!v_6G>PrTiJde}+FW(wG)VC+4I3Hc#rjK2cGycVq>1u)3OZXbPM&LI~cmr(^_$?BCE4@|Vw@LWz^mc)-mGE_Roxtyq@bz@Pz#Ap}PI{-n z?~?E)+9dD|626gc6nL|Qx6l@Ww@P>$Z4>w=3ExaN3w(=&Z>3uWzD>fn)9nJ^A>nt^ zy9Iuagzuy~1-?td+iAPNcT4ylx<}w0626!26?mtFchN3^cT0E=?GgAs3Exlm3;ckD zAEXBb-YemU=pljkNq9f)7x;jL57I$_-z(umbV%S12_L4z0w0m^!}PGgk4X4^^ge+f zm2gU_!0(sv2j~L=KPKVF>2ZN85`Kc75V%vqPtubDcS*RLx&^LE_$VC}_?U!`({X`& zB-~5A0-um@AN2{`FW~_i5O`3+C+VcXACz#7Y61^Qc$kI-J|*F&=qZ7pmhfphE%1nh z&(IlxpONq=jS75L!XKg!3H-Mt{46~y@V7|#!}MW+|33+Tggzqhw@Uci=-UMT+Y)|` zo)h@nCHx)q9RmLy34bSjr@-GO;qRvJ7WktQ{uq5s;EzlA@6z8D_=lM?aQ)g98733I7oNkib7I;eSB?K;VBU;UA$N5%@|6ansNxv!Ze~|ER(QgU-+Y3I93$xxjxR;g{)UfxjZ*uhLfq{+fipPG1-Jzf1Tp=`RKT zhJ^o${z~BgA>nV*HwFHm68>xYYk~ilg#U*AM&SQ##vilz$zv8uxa=_ttkO-ZYmiz& zYE4OP8PWof7Nn$w8PXz<7Nw-c8PXDvmZYSm8PYP4mZhXiGNk1oEl)`+GNemEx-=!N z%#hkaYEMb4GNjcYtxid6GNiR2txZYmGNj8ux-2EVDMPv(q{~y%6&cc%AYGY~u7cbu z-0eV*tOkCy;Ol{}7yKIF*I3Cu;x2rIxQm{#^1TxMhyTnG0B|LBLtG8JL2YCEysChCH9uEeZ!)hqp z>m9NdDK97<77lHQ4~+W1Fe~P1Bve@1`I!XA6pa*gYYGcJZ~ zlsqFkVb&V8&RU`tZ|TBPMlIT1;U$LDTW)aa)NL`zm!@%pi&~7@W&kqyhq2Zwqf9zA zYMr&=$eS&&l4wEHW?U6&H`SHR7Mn?)#TJvaI$fv1xeJVXj5Nby+iYR9&|7PiPp95x zY2M(XBpd2oZphQ=#CjMo*J@dz$@UxHvh1x|nYPj3pjBDW>uN#K|A!W=HtbHP;hPQK z+hB0%)EIx))uQ76%@##SV@dzau58nodxB3}S*IuWXk`7CElpcm8}DwACR?0iYvBKD zTY{w#$uGrdL@tXGY(uE<)fIMzq4tJTo}iC$xhmbk zl;(K#)|R}kZe>?DR%z%j4a2#5eHVZF$`3<$palb?o-w@uyG$=V5bAMyd{dgL7b(n_ zdc}UHFWf!tQYX-ffa8xhuo(^kHS6H_>)Cct<7guC=1^s?c*bh(1!JyCM zis*%>oW3bluk|~p#V}FbUCywxSB-@9*;9T@b54#& zq#=fDoRGe@{|Xl?9fuAL98r{^?%|=Mu=J>QLj_{6@dhi1wJOZC0j*opf?A8B7Y3)o zkd(TWHU$?IiiT6QUg=ggu{l5}nV)i={_NJJ<>HLP>ar>Tgg%|5@#Ui!q z5;d){n%23RO)pk2PgJjqRj)gL$LO3VnD9hmp2%fF&RF`au>9~^`mL`Jvc4ZPH3L?V zR18>OuDc^q+Y+m7iPyHBD}B{!Dc$|gm35DK<|-RZ`qa7cKw^A4HaqLF0*u@ zE=)j8xAg(kIb%77iN|uB)pMNHqp*4u>&q)|J6CzJ`j$jhW2~w%VZSG4zvq1CNMi3; zZ0}g2BM|EdJXaaKp;ek{+a0s-KHqa+qB{`l{@<*pGiL9cJKzNm9kkqwUcdx=a?s+i zzDkIF*m^@-c-e+3*}Nw$Epd8gOUq|rL5HtsX0NrpOg#kPO7VA%1?5#1q{gxdmz1-x z%=Bhid>Ri}SXQPMonH3R$*7;Fu&hkWvn=(}i`a}s8u8+DCgabjb=GRqnr-W1O|`*x zjgqNF>1@H(OO6qD!ADYy;Mqdxm7=KCTa#fTWWzXRv%hRh$EYoOjhezMjO*QnMmxI5 zqs1=k7;#yT!J~b)*j@Cv^_@ipke@9!%9!fSvbZyR_l#H?7+1}fL`$G0MS1mdvB`JY zdb!A`Eu)uh>qqM11 zwi?sc!d4*j&(L9b;u*Zd;cpgRq0TM|-^p_@&!-k~1_IcIG;eUxGDFjBd9-|XNpwkG zJy>#$9$aG7meGStuG)hY(F$*~VR1S&^=nHSH8|5Uw#~rOsi_Zg?x|?0(VFYiw&0#w z8eKYD8LjkgPTOU0umw!dc-dyeQjQ^TdbQ_8O|<6!UUv< z$(}5JF-dc4B z#-xf_CdB|la-$*D@VS&@AY)rgQyXhZZgG(9TbkOop(An&4(!;>_R<jvY;H zEoeb*4QOrI&VvEDUd|&CjSYHLA4IV=kJC4(1y6b05K!l_fi)sFut3cB${I${G+du( zxRBB?c&0TV!8Md#!=vLv&eI)g2sZT?AJErk?A{ls<~#V-EY}_gOiqQBD+%;M%^4U| z^(Lt7h#0dSzA@PG?^6^Q$S|fAWnX8Xq8vEf+NLPO9s63hYImTa8?whfllfLIWW|%DBb;?Lq`XPG4>#ku5N~;wDbo9s=n@up^Kh@ zp}hyXMC^hGa8{x9#a$|Ux1p~P4EK{cqc2C>6s5l#>OZ`>1%fJl-3~{`zHW@xDI&C^ ztweQ&lh99LhC8NQE;SU=aHXr4PWqhqDr7p`xQxe5MLMvM^LBvl5wFl4k@(aS&v%}mv@h3nV?I#{m>#UXr2z#~VQlt+^67)gS$!Hn+l zImc#J%5fyK?DL>3^fYY7&ytr#xagLI{jQk(u7rJ8%)V=`eIU_(G}eAJ(LNn(pN_ZB z#O-HpT=WRTPtCEK=6Fr(xspq(Z~gGW_a8ieM|*tr?(-!pF5OiB!eMZ&%@X5Tp1JPdJ@mVFpD0eYE`{nn$H+;1JT zz7BCEYtRY>Jk}7Fzy!c<+d&%?>9zIQSgzmp8tk8~12!nqZRvbhUDh6%`qY@?X8j3KQWFSv0|Tho%L-w~_d5wE`o<9jRb zNv!n5R(j^VTEhEK%=-{nw8yGqWA|8(p|zNR5qqo(CKHwuX!J>&7mYq?JB39s0oh60 zG|Faddka7|W9!ETVFKVl!6bqM1xE@2!~`xFC^(AAjE!Ql>i$BA(q#)fKCQ&YEd*x5rj*kFUNP2Fm3kQhggAwR25vn8>{5nJPkuNgUCvg%^)2SXI)M&nO?7(UuFMr~2 zqHb-hZteMXJK}YB&z0PB(SBQ^viZ5n=B(|8TFzKH(2z5hZZrfFFr>%Ig3)In7!8$q zEei9A!hCXq`Q(K4V)fcYRa300DPi9hvu``U>)z)ohi-T+7^HPr{^QjF3!8P=i-WHf zl{!|{E_f}+VzwwSWEd5Q$3S8as)h+2k~mp99fwL7w~t zk_jYlL2?dB9LX4xUL@5>-ic%hl7mQaosj$+Bo83LRY>w%NIr!G*M3P{876VBl$=8H zYb0!;_z-X!!=6VBgPO^ILGo!NKLx_J1W6^uK?^vhokea7kmPCPHX(Y(Hjy54j`AF*81lSqGB45JT7Tc3`u(8NZLxJ|sg(4xxaJ zh)&E7V)jYoSOd{bNsJ3LkaV&PPlkHm7o zl0QQ78zf&x@?9VrYEH6|{e8@$+mru<9BbArat|V5`j~VNWRp9Q`~(GGLh^AWe~MTo zl2b@tM#9|mA>@uBK~>35Ao*_~+QUe`irFWS{3Q|`-pRj1@_8U^v?rN&v7+QUBo|SD zwrF2Q!uhRpbRO zc`K4Tk=%oX-HkoK@hRww$T7pmkz>w&4msw!cH~-tB>xP_8%Wq7{A1+a3PhVn!VLc= za$iI89w5nD!*LsOZY1bLF8vvDUjdRVM)FC_vXPy@?CVJGLkx{%Q(CeJxlf_s z1d<9QF9Ok6C!;`{LxLTuJ&NQ9NL~Yy{0ws6Lh=S?UqSMZm}Pe!8=}lo>|gD#k+8=6 zD{`!Xe}WvVBZ{1kWE9EUfFv&=VFT%5#J-CJXAsSY0;Z2OpVe^=1@A)g??})-_E6%E zW##aO)m}it{PK0+lADm==;ZS*>i{-4vEEvPg7+X{*ZvoB?0$O(aLMDC#dc^PLc)eO zGm`m$X~FTF{3S}U%H&6pu-W1f#Qq2g8}jc*0rT!=#8^+W#xP%Dy~+PX0W(7duF=Ya zS+^i>(MybDOr|4B+J2DD+?w8cUn#Ki3n&*_1>`KbR9W}v%-d&Pg`HG?1NhKB&~TZM z(t!r{j=sOK43CTkAWWh_xIj_-LHCpo`Eo^haLVc963q^}^l~^?752FNDjZLBYa0R5 zP9mvCVTH@*4234O;H0XBBg|5*0;N?*Dv^{K1n;@fAdp809PcQsfVF>7^()q8g|Ha5 z0ehLTms=RRqws`*B76Cig%p)13RlDmSG)oj4>aH=(6!+O>?SimS-2oCcUg(Db3 z)@)dP0g^%_c$?@2erI@G!#hha^*|Joo!r$*FkdWO!JAj?h=jtbU(wq`aE@p^!p|Wo zc+$-6)ZB{Cb5e6^k&V)M-Hoa9x*Jnby9%jxvAd^r>EVj`#>NJaY1wD zU~c*xqFsl0vy>6gtk-5m58ap=9P9*_zAUp2fp_1KTJ*{c_4?hp=^YvF*{&BbI_x|h zQdl%C$d81<0c?I|TX9F=_6fRAUU5`(2K^m==S(mFI=Vz*9)ezRWzoSaS2*DhT~}Sb z{t&OG)?7^rJ(^L2$ECo1!eaCa+~GV(f5nPA~UM}VC&PAWlR3y@lTy(%Il5`vO3OSocE4w^n5V9F%fCU#j z5+2fTyPiT_In^Ex`aQ06rMkT%6WN*DlXR~$q;B1;7m1WjlBTEWB4=aYSWtuIncp!5 ztGSR~3GZMfpeLj8i&JmR?jgN2&1U*@aVm{B)5Qj}J2y8DsrXY_g;q<7<6jz z0m>LW!ldj#UN(a+Sex}}6CIj567W0--z`*U!FJ{5*bWzdLlM%84QAxV7z>^48t(~e z;w84eJY{mGWd9AQa3t*U!QO}0!87^Y>~P8?1iK*EP?e_H97q4i$bl}{E+Fm8tF7QU zwhU(ve;jA_1<0PZU6R@*95L?uk?tOU#-4rW5w@k2shTf=}7-TcA`nKh^vm zG3G#=sbF?7viZ$axLbFHrCGH)3+Bk{Cg28lc|xw>DOHOYmM^;kzAvM)NP2@larOPO zlG>ar;32&VHp>~%y;s(KJ)3`%He>s*FOzFY;hB5m#oZJsZ%KVqmmNNw(W=E&#k&EX zRw?C153RVeh~`x#J{nIuH8oYE)XMs+i}Rb2Q%y1&X$ zf17|u{XDRMUYe25@%c9lziXfuFxs70M<2qEZ#(-s^^z2qc?&LXusR|E*SH1`sTtLs zQdyf7&2Qa_F);rye3?3-YI?bp%WnXtRl#}yU1MK>^ycOBPN!>JO)r6#X5??gWU=1^ zdsxjij!OmOJ`$5fHc@^KDYeMqdg?78#(MA6yTr`wR^H-U*W z?IFD+#bvHf7HL=N%(q?!D+lqByPls?VH-BL%)~=iN#Xg$S!yU^zo+1snw$hi)9bRs zd-JM_@Ba#UlHc2mA@#v2kEXg8>|oG2tFI~@%c~7=+jW|LXu#O#r9P4{#r^JFMA`hN zhXqz>ctci1i5^q0?-hxIZG=5D_#0FFO;6QAh=rmTsZi~i3W$(M zwV~03Eyl(LgGR4f2yI+Qf^Ud+9WmR+?GXH!BNz&C?ZqxV#LZH%w!ot~V>3UsYXQd$U!Q z9nNo2#=kwp+F+%}e)^B`gL!pjN)a17!|Vqe#ix^?-2~?MnrojLX2up9%<;UehP&Ck zHZm+Vb@naSE|T9u-l$VANpU%@g5ZsgE9h4BVuQ)?6=3>NUYcfmati~Egh#i-To-gh zOaWfu_;vdNWM9sjTenK8t3Y)Ilw*SVlWw;{>3 z)j>S%$bK6&WNvjd$qsnvrD^uYoIqtg9h_Wn0@c8CoZazVD!!;KHkcgW&+b>J zjd=|=A1OY^9)-s+{Ca?1B+?v5T8}U23`5Xq684jNxs=Os28S@SYf97LXBs=<=cDzd z8TlOTGZ(}0SND`FOE^epzqTm$2V!r- zPrS>g;PsN7{9t*zwh=xGfK%!u^j0{Ue%WTRSY9Ay^JGh$YlQVI0 z1`!8C9DwkWTw8CP^v;u`adOnq&yjs`vTvS@#L37!G4tFK^HnHC{XI;759sGs^~Fiw zJQVxF9glauqr7bm`XG7u*NhPB7z zpfIt+B4aBbW(Tm$zl=MTlnA;UI~@VYoX7$*nk$=*2GYfxT( zFir-ItGIrS@V@3&4ado_;eU>B$}JDXNr3k+THDJ!*$dWk8@RQ+-<@&dGwc==-& gupg0!JL@IV{SrCw5@~*;^P2PJ^YX*8B5AzaB?}{uB5Z>q3o`# zM@~sfQ|eL*DTRbrsY_{igi=Z=rIb=iDW#Osm3l_oEl?K-C6rQ!1WHp%`_Js`-p%Rc z-P?7lOy=>;?9BiFGdnvoyXOy7S63kT+x3o-$#)MR^lg$b|B6`TrTJ=vo3@dNk(Nyock*@G-`FIo^l+81Lu!03KlcILA-m6O5na_$hpf@j;HC#-|w{ z;`lHgW_*O>XYd)uU(4~c_$=e293R7DjE{5tUVJa(_i_Awd_Ut4a2#XI`0F@+4xeNE zL5@F!A7VVj@rUuljE6aX9-n7C!f^o$jEfwfz!Qv5a(oI;F&^dk1$=?=X^zKmjPW?f z6F9+mlH)UYhVe%@E@6prnd1sp7@y_%MSPL*IgZccdBztwzK9nYf0W}XoML>51RPU*!0c_({fpiQ{j;Z(#hFIerOWV*FP){zm*p#($OLZ^Cb4 z{MR`CX8dNx-@@^y@KcQcI>+CN-^%!JaQtofZH&L2<4@zK8GnZ3@4)Y1{GA+s7k(Gx z@8@Ov2lO^&}8znAgf;`n8JnepG|`1|nt82=rPzaPJ!@!#e6v-nxYKfv)1;tw+Z zA&!3-f0*&-IQ|j*5ypRy;~&KzW&HO!{xSS9#{YohAIBeO{0}+)3H%Ah|A^zC#GhpR zk2(G+{3*u&gyWyapJx0|IsO^^8OHyN+gX7=C-(>usIeryiW&B?_{w@41 z#=p(+@8It+{yfLOi@(eGzjFM0_smnTLig9R&H@lZVBX;Sh=M+xn+=BX62UW zGlUoJ3RaS0wPVNTC-C*U`0kKH%KZ%}&oad}-aIp{o8H)6B zL7WKB#*|Pf;l(9K&@z8 zl-p(&l&NH*O%Y|KEt*h7DG`nt*G!5DQ3@-f&^88{?D9U5*1mUUK`#r1qKPPIvsh;- zw%24&gUoU%cuyd$tm;zHOAtkz9V-D)wNI53wG~o;{avukbHTJWT0#n`&MaZ>tI;Hk ziTC;7QIDRpu3GXbbVqI!&eV39Sa{7J-&;$50WAgAxjsvROf@NgPU}UfqNPA8aJei~ zCKKaZlXh`hfhCMT!Ow9^n^b^rYY~d`yCAK&s)G3Z&MY|0eNvQt%tW@77< zg>#Lye|%fKgiEEV(xsAAi6{F6*0E0s-&S7xlsK|a8Q7;hRd#v9TI~>0wq@vrpc%ie z))lD=sIT0U)5>AfH9aF`(oOeW2IkL?LuuTn&h@F zIWim4KVIUcU@8dh)_Af`={nY_;oHhDvJmqs@mx9YQ zTlLrSniX8rdOcMFJq7<8e|#HDb*Z|g`c(ae7BgSIi?e%XelO#=HCj2ExtDV8Z@$&M zeO7;Aiz&l}Rx`HL0DZL8Ol5~$A6au-s-a-3d9werpz(8-*1VQWjj6_^rc{#y+g5N^ zyz#be%ChZt(~3(QQyWvhX}Vrnx7RCQUCHRuu?m*CFN8s?7i8iI#G3$b@veMJL1Efh z`sG>T2@?xDI}Ysb*thG@c6S$d?ruNm`r@wL`)SMNv+|xfSb*;7a3{o_yE{5v3vqCF zM;E#HkPF)#=-S;)u5A?OXT*pSR$xiK{bDp3qcK-icCsqnh|_tHinD8nUN#V&S7s$q zmdL%KmrRQbJyJq12~j2Wz^M3$UY)gF5T^CkK4a^`?<0ii-eh7TI;j`+!=6GfKPeA{ zqcNyiuRaluDgE;iafWEEm&=M2O-zQ86MAX?yds4oie5VedkZNVj-8Q`7o!4fZS<|I zl{Go6nU-Ejgo{|I-dI#jD5JA8GZ2yVTS2y7x+R*F!ZT9~YbqgIJz4L$P8}x`GqXy_ zu7F;CTvUw4^;RotT+1i*dZR9oY%neliVMUDdV3z2-7;62X6R-2fl4#PM3p1dqM_kr zLIhhHdpdnbj_zFN8G3JK%xEb)VbwXBjEj0jR1S^KMk1mt>%|wtu~|To=**NTDdN1M zm$D6@zL`ag`mz&x`AjTKwvzM8u1$KS5ZV`-rrL*K2OMe-g=JwPq}K_dju6{78r@6T z{t#_*MCzBMq_i)j7bj;G2;j;CA+pJ(r8>D%?M5jG%7jo?C_WRTh3@1Ebr^*ps24)r zp$Ip4X!(O&`Ta(D2x>rRs)Etyw1W0_uJ8e)Fa$v;+`;svL!K(oX`Lp|<<_xu>zG>BtnKXp|M_5RI(YkPaQ8}Zx4P$^<>1kD@aUytt@S2Sq~W&J z`u3Ij_T~Eh>H7WGkgt5m|Bbp$>AKt0+l4EW@$}@}HG~#?gZ>v0n)03Yzib4M+IgC= z`XPeAhho)3{;Q3*uQu#kY1p^i(2;KFxKwTmu_GOP&1&%OmEhf1j*O&_Jg|CXe&xvg z@{z^#k;UcUqv_zIubxaq$+ngHw&nWvbbb4!GDD`TwVPLiT`R$^D|em)6}m%2o$fGE z2YiUvo+okeUp>jTwXbeHw6gWk^47!Yt%udJ7E`oaR)cLT!L}>=#?$-cE6QS8c?=AE z)KB|i*60TkfSB#H2f!yH4^xqcUqz8y_N+E{tu%KnH+QF-yD!yfZTmrPYRtVW!M#`7 z#=vO%j+60l!aquaalhdIF+vmm1QBk+zepsV@TZJailp`}kp%cehsUT6j}aZV-b`%L zaQkX~$4Y(2a{YmH{Q)vahw~0nYK|!%wFe2HvYphgr)B}44ANo$)h%tSE!`_E-ODY9 z(k+M7vQ5`YP+iMv@aC1^%~x*ePu~(!AC6v`mebRZLme^SF(MHOK#e{>y$SmK_mlej z;2RRiBLU={15F`y&Obw1dc@xofFkGo#{v`{3y{kLr%9?Wa6ifGgU?TB3X{BZ0fCkb z%+Tusl97@~>Q2T~N0agn55>R|z@ZO~9FW zD5O_}Lh+<98zb?mQ0S4_aLmY&YRHqNN+xUDNL+-2WI-ARB$4w&S`mHr&}Am|-VR(o z0p1hVf7krJ;%XQ;rdNVW>aO{Z`ie={)8NGbpeN7qkmVVTkY()7ZE*an2jm4=FHsg| zV4)?E^AxFwc<>ZM64|utMe(pQC6RMny*vu*PkMSTk&{}zlqo5ZhpApVx*#iJJft6y z<56X5!B`xJK-Yv2mV{6&dR_`k3wyaU^S#!Y`CeJDtQMx72n{wM=y#I!@qSxe9uOD((@A%k2 zw_Zg3vGAN6qKmSmvD1LpAjW%>kgxzZMp8Jx?x^TZ#(U!7#bg5N=wpT1`h5MYQ|mVf z3u{Mh!S=&wrXjl-i$0LkLNpSB`-JY!LNn&}Y~6->_>C9rb4C?-MP)R&<+{0Na~fWN z=Av-FMK6l$E0$B^8S4t8#jQ5^=X2Whq-_3OrgRIrwNI0V*oq%^!6DeaIJF_$pTSk5 z!ZcM&+C!>5nj^a-d%=zyUhAEOi7Oe`tGLu5H}$caN?6$ArjDNe(Tt9IHJ|jLWnXj> z&WcPeS<01`?Aj6*cDvE?#86MKUPS$S++1%wL$HKDMbwDp+A)O?%o~8xP#<9ty z1k1Dd=q#+}WWA;*2MpvWUs(0#>@Mr&nP{#(3#-yR1uQiq_qa3TSCpjEvtHVWG1l zQv*rKJR;s?iJY5r;s!K0u0&(7_c7Wq65eihIE9vB7X%xs@=Vm_=pP?H*$3MN;tzS! z6)Z=W;q>88##wL;IqGf{kb7MeMn%xKA}gNztSaoD=nW^5iD)Do%REfMmh{a*^L6ra zw^W5S3R_iCg0J_YU@N%MEmLh=FT>mL>ldc2CMvTN-lh}!!eaQG3P)sQ^D+FCcVv6WVaqsxLLI>4;%G#6Bq*bMde8Hq9`qxk~gixkLNVDklCP5 zUw^+GvNq=-u#jF0o8=tz+V$&pviZ-d&D{R$O?)dB&)pjrc2ii^;`*jBKfX6dtHPQx zx&fY6R^?_7ZC*bMduozA8t1~2Xtl^`*?RqKZ!@x`lBr~H4e>UIn!@L~jhe5M*XQmr z&_})xHctJbFz;;0NxOXhjls9YdJ*;eJ$3ZyBs@%dhkErgE0%i;7B*N%7ZQ;v2_905 zqF`0oke7N}cak%(_!xZZFby9kRB_*hJAgG^7WJ=WPOG zA1ldvnH9@jpA;xpG7bmiarpE}uYi?<8TVExlZ~ibkrjuo;$C$WCaGBw_o(bW z)ReLRD>edeZ!^w{kIY6TQCPEsA;#Hq-P}n}I>2q$d%f@1vd;bPD4?vj>A~D>S|902 zJIIlY%aaFK(uiSLSeKfS!^C2u^~`h*yUPa_R=E3*@Ha&xNa6fBhm@MX0@S^?-H`HFQdrQdxKu&aba2&Vr#cIe#;Bxc7EUrNvf}LpSD}{}m+OUG zIv~O47w|O$3kw-F?A(A_u`)YB-()x(HPD}ZaLZk!?;7-KK3T}{V?%-+3!V^T^h?&p z{Fpv%9ZJ~4{i;!z&YB^cuaj4Z5txw1i&%;Ly20Jst{zclucyj0QE!h|=n%5-7x|N- z#{9UKj9J&OS>P~)ej(06Z|AHq_s>Syi$5#s(G){uc_|ZXWQ~Ew!Mxa8Q+<8M@->wo zds~zl--(mfV5LXDe5dgo2x`cr83nL5;-1--rIf)C-Tu%%|?Ax~1n-JHEP zG9}IG>>c(+ye;I-HuW+q=5iGTZ*(F_0Y2Y1BQ9S7W*+6`ndpGKW1w+mq8sMAqyT3M z@Cqlc2iK6}u4``Z;;OENs&kOb!z*S$a#EI(*Pz&z;si%F(wO+3@A7FdNBp5@dYP&VS_oO4(uK`|%?Z z`PW^*A^B4c2we;Kd_E0TJVF1{P^W6=G}NT>PD3p!@2;ZFs_8VeQ8k@rLdez7YgId^ zq5D)jr=h57=QI>o?VN@}s-4r&N!8A2XkN8*PGr93N4_5Nn-Gt_h8|Vz9BGUG6v?CS zOm`=JI;bKWr=bT_JLhct*fa!^Xy~|V=QK2~+PNE7kCS`HiC#`@XsXOr(0SF)X(*=JISq}d zcFx(H@Q{jZoU{INGCxnL$i_Llms2XTaT>a)+BwZmaj=ZD{<=|ps;J1uX(*!FISomw zopV-ZQAIY6%s;(!{_*B(b^`-Oj%L^CFe)_kplauw-S79S$i``CMzwR!<^-FYg6b}) z$i``Qodvz=%+5~ca2sJjS`A%L?c9yKzlK$0<21Vtg&x;TZ<#$InZ-*yk6!Hu(~<$T9Y z01a;Jo0ju!od6o#*n=$RJ5m5>aE)qYrUcB3u+M#>FneJ)x3tDK0hgMWM2AIW9Nyu22Q8FwU>Ul}1{HtBkZd zye8mwp>U0H^kOfoU(4}2T*r7l#~W}1$ve-M9=@!#k8hwz6O{{xPH7=M`YKjipF@JAT` zD91mBKgReo9RE1}IOBiB@lW7SF#g9J|0Mn-f5!38;LkAr z=N$hm{w(8v!ST=G&oTa&9REE2JmY`G@h{*nF#gvZ|04b(%?#PJ{EA2R;$9RCsi5##^C@gL(KGyb0(e;L2b z_$wTL6~D^(YaD+azs~r7ar`IvCyc+r@t@+KGXCEj{~7)nAVSCL-U;}3=W7ekWn>5jzp($RQKI_sD9ieZ0P5=UoZA!(OOFCGs?qcX_^qB9XS zz!q;t!Zf4TZi3=dNJ7{pBJ37jk0b1nibVJ0=owZY7sox&X1OSh`)5L`AOu`iO_2A% z|F4m?;ZrD%cDaT>3J1MNkwW7Nsk-H7Z)+V>Bw1;liUy*x6biKlI1>y@N^2~xPDUfGs-&o`!H6o! z5r2rDGa*GJ*{@1s>nI4>>AjMneQzwTmkB~J5(Hls>N0NaHQAG3vr-I)N72=?s@EWc zxY$(!FkHS^PFz+=1>zfquWh!vSPZ_EsO!ucIb*ZllxEXwoUtKW)6AJInwBk=CQ27e5+w!2 z#B+_9l$fpAVp6hdOv)f8<%zPX7Sr}@s%|#(Q(MejHeKdpMWO;Ul^5h=(KUQ5U%|)n zRegm0qQ$C2<w zP2G!iiMqx5MEz8!*={yfj#wg}>t0=Ek>?nv7HO_)D04-dw%GcweyS^Li4Ij^bZoiSUh&e^bu*AI(P4 z%q^}>tWCJ4;m&c*5mWigv=}CoRWRj!$q$CTq>zJ14&!iGxFgpDQJkg|!Wvi{(_IwMPpOlHb@$+Q&j zmLqzJU^uCJeA0t@wPg_@PU|hbbUDMXF2w1cXkpYVs& zzWIO@BVOy}iYf;q6GC)cFYTLGWq&}`YlmRPAqV}T({gk+D8hnA-^5y3CSlEN=#eEj ziPh=}1*M4Un~B9BBkMPVZ9T?9X+rkLCgaPLkY%5ucdw%3WF$7D3fHQjmmil@+PL15 z$Wk8CPAn0v5ptWVLwjt2V?g5u#Bt(@XMnr|-Xheco(v_aR)#f|b zdDQRqjM0{?g^W&LG%V>AK}GP*1Ok$x=*6@C&1)*L;A*weT9A~9LZ=Xpg^WtKbCud@B}nQ;p-TvGgU6_UkgLC+)`z49 zj5b`LeQqddYvU>(pp_x?dDX|&ScZhR8woRsr6Fjiw(_BoqGGJXE(QN4f`*Zzu0nXs^vhk?#p}b(!5766<=++iBxI0B~{;+tZ!SY-~a8p zb*Z{rl6ALS-XShcgi{l9$%(m_5sJG8+_0@M=^Avug3!)EQm7wtgQR-M{X*l8RKvbx z!#=H{{ZhHv;?|V+wxsvAl=sf0_s*pwBdH_jl1I*^j?5>I%xgy$H19(<&H&;;YqGvo zt8cqhMh$qOc74j*ne=up-G2TJgt`P`I2^(7E9Z)UD`L6+NUJNX-e0}%yd+J+31hHs!r8}_7{JCn_w zT65Q>nyan*!7d{vdz0S1ORb|2lYPfYOyCISoN)U{GUgWDuOl?>j<})1xO;)rAPLww z?oNdB;-7gOp==wa;#N7nFx5drD|HAt!cHmA6Oa>rN(EI~ zz#Lqn&;Ut5%N#@++!%4+L!vO^4iFhhpmEsTB2`A*Go;F#`w>!Q&OJapB?&p*J!E(~ zYsOe zvmoddf)I|1Ga-_%5`+h5{2?ll$v&fArI2}JAS}VwttbxzlB>vpC^GKr#uUytybF** zHmx25r%6d`QuTIKj3sx@=!j#R}hL*{4Rxf3?%jEf^m-^z0Duo68h!PH}lW{tq6u^au z=$Azy6uc<=<@jE1^LcM(^LcM(l2gsq(91JbgKd3L5>G}{m_}I(r=02Y zF~0_>Tf!J<)*Eut!5hYq~tV;&Qw zlXG~VKwm%zVjRYMRJ^$2sOX7?yTks4XaschvdU~qyRzui$_>I?^t#%D89QyJ!P-oQ zp0l+O3huPa`# zNQL)fXW+&a4eM20>5vnBOj8LKiRp_%d=TW zJvAVX_o%X7!cs@$@rHv)Sn#;%*9Z@ZpK zy^dN}qv2p6+o&K3oZ!!LAyzmh2O&{CX0uJ=keJ?Uxm@5n9a`M+&kT zbiv$gNS^MNrLjoxLD;vf%faq+7TE3p*~eD&QZqAlV~mB)4ovn(Wph_`UB+a)gU?aTztQBI|Yb80aM*+R|OWAl!G>*vbx{ zf1~h`u3lsu`wHsl!6-aTdWL%RvP{l?3FbFgeepSx!7m3U$yC9-j@Zp2 zm#DCS(d+Y!;x}7jSFD8;whHYFh?CZdK#d&~)*tX7AlnG0^=oY9;etAw28S4I>aSgn z3Y&g_y|BM$s;}mY1*?Xw8mnqc(Y}qC-;JVYXh`>vLt!^C_I;0{mt}JH`AMF3MZ>T` z9)_=l^a_|cnEAq#GTVr|6_z}775AzmKTAzT+}A03V{Uw`pr+{hub3u+k?5<%zW1-ZzWqY4tE}4N+bDUVqI!x z4wHyUnVliLfn^I#Z*CDgId8+|#k19v5{*RPVND=e9qyB2hN9`2rPqgEb^ zigCS)E9Ir8ol|2ib>v|URnk2JJDC-hd|Tcs^b&fyp3kZMGJI75Uo)^YpHaj14U8yO zS_{UTjO!dV(4W0<$;}$?8uV(un9uNILxOD!o{&Pu$DfV4vGKIMP7Axap9hN5mOEtg zDzbcnz>K6XV&!Jz-bcFM^2Xx2-obWD3VS_Op3N5ac!drj6Mu={DQe7(du&GM_aukS z5aXk2mKL_p3itk*0DJM5$rc!jAu_#GNHi>Cpm884F085E-eb9%%8d(~l+jPCNoz3E zGd>nK@}~>x%8Vjo?2H<}BxYZBgLVrn>@^pBJ8l?TYG&>)$m(u>Ze&_&>Fll7u2R@U z-fUAZ%j6u+g5Zr#AS%Ka?`Fo~E5PidygZxjceV{QrjB>Py)G)ko&vnW3G3cvEsAJcxmb|qQ{Njp@)oj5b)!4MfWZv z1I{7}dz~4r@Y9J>sXI!eBFG=Au>SiR1P z9k$UMoXyonZtOI&7K0(O){;YwR`c{KuH^6v03BeM4&Oc*=^f6-(CO$LY<(8f#Nj<| zFgoEkKJd`Xv)LQ-1**~0(b%#tP)+Xe?oQsNk{7k5X2#+B*%Q*dd0&IYM<(yEN8vFH zKep0KSn6=3^@pN<6*iq>u%6VbxRS#=IBYWqW@H(5v&g?|qOY-)9ok91EgF=Lx!qfMXgxq@jlh@fpMigw~|m1~fE~M&~qi&eTuIaSa_$qcIJQ zrI9sHEwP?Oq(pzep}!yWQ>%tFG?Yf;8X8X{tRb96XEk&-jeHvNrO|yFy3e$n>VH5( z52VpW4P8v5kcL8OG@_vq)7twrbib*G`a7wiNz=lFh7xHstD)I6qBW@=t2R|bY8nMJ z6i6dkL$Y~X(9i<0zsIn@2kfVssm==;x?tLQuZHeTqnL(bX+*81HAM}HX+-px=TfgJ zpVH8j=@+$USVO~UM75pQ(D^i?M{3m>4V|&}Aj!ke8K5^WfNfM8jSSU5V@vac8X7ch zqlC6akEb+rDvge5=$Lt=^-pW)w0RcQPYLa7YSpNQM$PzJqem@|XedJamso53A_k78 zkJMV)?|u#W&0e6frQ?M1X$?)Aqmhn^>2DD-eZ}Bc$S6H$9EYxu(KT>|j9%XrGNQs) t$Q3big^Zc8D`ec#I<)?UE2JMu9UKjuX literal 0 HcmV?d00001 diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestReproducedEncryptionContext.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestReproducedEncryptionContext.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c7649ff56fec554a83f6063612b8004b78d55a59 GIT binary patch literal 38318 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 literal 0 HcmV?d00001 diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestReproducedEncryptionContext.cpython-312.pyc b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestReproducedEncryptionContext.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b2b099966bc4c733abb47f056032b2b202661d76 GIT binary patch literal 33231 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 P_WR%?5W*t%{m0({rZlUo literal 0 HcmV?d00001 diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestRequiredEncryptionContext.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestRequiredEncryptionContext.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..358aa57297b212eba0dd7812d364c185493969f4 GIT binary patch literal 114314 zcmeHw31AyZb{){*EmCYA5=By^?t>#rB*2@a;fUfP>L8^NC5_ZNFc8rsL4pL;03=b< zm>I7(j_j*$8mhy>npzEI5xmQCfq)v*dAxsv7K4ZuH$SrPX4dH zP&kMN8q`R$0GriazpAUNepOdj)qnrj4^>rFSm4+8ne%gtZ(A*Yjvn<_q+ERPT9w7} zw#996TfG(z&y3f)#Bj`#jk7HkaYakTT(K4DHgCyNDOXCai@aq^+8%5vFZCB_G6nzJ`L!mcP z^d_!Jp*K_Xo!m}^-a^q^xmJa~i=yx5b}RHf6n!tZSE28t==-_-3jF{@Kgbiha4#tIBNV-zYggz;Df%()m_qNM=$%}rLbp?N2j@`eT@<~W>sIJJ6up=0 zRp@;by`Sq>=mQjekQ-F!FH-d5+;N5e5=9^4h7|hC6#WEuLZJ^+^po64g+4;jN4Zgj zK1R{Uxp9SlilR?&6AJw_ML)xxQRrtW`Z?~LLZ77QQ{0q7KTpvwa2FK%D-``AcTu5F zQ}j#RC53*OqF>>zDD+n;`c>|#Lcd1QIgV54*D3l9?uJ6YNzrd{w-maQqQAzyrqEp! z{Wf=7q0dlsH|JL9JVl@7W)=DzMW5&96}pF_FK`PAeUYMjIj=%rqUg)qvO@P!^c8MJ zq2HnC0w*YRKSd940fio<=y$oh3jH2Mzt7!Q=&Ka{0rx~DqJND0m_q+XivDr#;|l$sQ1ox&zDc3~Q;PnOd#KRAnWBFS_bm$jpHcKr zaGy}<-%8QHjr%r*{?94;C%I25^iNUrZ|A;Up??QO|1|e$h5j!n`gd~QsnFl1=%3*} zqtL&LqJKB{-3t9*QuOcPzDJ?|D~kTT-1jQW{TAUDC0-+^Z zXlX)d8HAQ;q2&po6%bmXg>Fd*t%T4@Ewm~jbSs2z)k3QiLRko9wa}V`&{_zs)k5nM zLhB*4UJKop5V{>gw`-vd386b6bcYt&m=M|op-oz7Gx(Yr%PEVy_~RCL$vce2@-F<# zKM33DwoY5xO23GNskS1iY{cdDx^8=U$u_*aDwSSZUE!~|1gT=mwZywG1y{U$n^h{F z_4<4QUd;G{%YhjsJ#tc0{{XrTn7Q#5&g!;sjNAHg3uoht+|0))s=wnXu#+5`a5{Pd(q$Fy5~R2FOvX|Z}}+Dj=Ej5%c~v3_xxiTeR}k4hXBpb zv&8#5R#pS^zU7Vp?+-;0o~Wj!O`Dk-ro42)tWQX2b{4?+1>p ztV(50r)Sv%1$$7dmGPKL`!rf_6Oz zOBvs9g)x@pU5ys91k?o&NMZrgAiqa(RF!5)X#62~y+TZy`-}Cv^eZv(={C_8VnpT< zR$S7Le$|9Fs#M4h@^dp3y-cNx3|-O(5I|EtW`!r0tMTK{^pitHP|o5&y&fZuPh=rU z50S6Z#Kl@l`q9s#a~LWSOG3qBu_^x8((tF4epX8U6dU4CX&|ot9#tk45eRfCLuF!F zsGPbB7Tc1433pY96`?KEUC`Q-e+hS0ij|=%>aObKdy;avRooh?hI(hk(noBn_5o#104RE)V;$!}~+Ze~)Ju0_CO=6R1StP^YwDn%L z$vJy^^}B_xojlZUv)F8~e#D6!IH#7B@HJkT$r?}H#{chQ0F6Lgp zm7AQir&qt#d4GRf#1@0~TeZnt%)NfMZf?$SZroNq^|_)iy5O_%ML#-jbY{VMFrI3z z>t2-Swj0l3-LtEQy9U}Foo$1=&8E}c*=`@mM>_rOj($vM%v`y8d)qOYuWsY-ukbSg zR{)jV17Ab<@cV zCuy9LZJNI$Rq2aE)9yt97Z;?KQF+meUV(Bi!s^kiXHF^_gViXh{Iq}E`njXZRItr&75;Ab6JNoW5D9bnJdWaLojynn_rd5dr3D2X_4nVm^ z$U@wl;98kqP09c+1pB3qPAx5P_j9;tlA>%t|-`+>GrSS)pR zI$eJEtW&CWJMB(oT~V%2LUTCDW6ld>g5VQ6ol>zc7=RPp+2zFbP!g+~ie;B$!Kuvc z>~Suwcx8gaDOJ0jy-q=EBQm{<(EFT=T4Ryv-GtunbZMfT+3%*7V$frew+&L-tZ^j>Xg(j ze{EL;rM~?t2@a}z%QNL^R7uIqh^wfrjcC$&4GwFkq8e2<0uUxr6p zN0|35mQm&k^Ck4X$`InK=sQf@x~oV67ot^NWu9z1v|iu2R^J(^cSP$Q56jhz?1{2R z*4dZV*q0s;osSM(TOYc=HgrES^dLI)Ai};LWnbUid|_cb*6KPUb@phT{b3n!v!-dC zJ+#Iiim+`_whbQNwCiDYj`Yqowll&yqO1eb+0pW_D%Q~zE^B^L)40waU1N_vJ~j<( z>KJ9dVzG=dlgP6%<{C1MV?4;sF=jy~E?^WdBcRXA+{GyOnNv16owi-Y6K9*l(>-S1 z2KRXxkB!9ips!;AJ>bH1%_3fd3pr}t2bqc0A6l<-tkpRpb=}drZmjTYX)BymuHQ;( z7f+DjVdB+HTYcHiUuW6}N2@N1sOi~i{1n^3r6hCIt_B@e?B zFy%TkgO9$>_%JuunLD!Y4u<)e*U{&fIW+lAVhPr%0u&}_kXfpH_Nd0;L?xxfTv zVi2R;W8OsHJ?1R3`kak0_Z~yIizm3@AYm`Ka9ul#YzOyYNvw50zQj+d!Nm%!)>-Y* z-tD;WB2?xma|SDOl$pZ%J`XQ7RM{v)-ex?3&u=9!GM>P9n7DNwybD~osmjA-VD)A^ z@`;&NEy%6fFSlwxw(1}gLSK+Mjjj5O&4q0@$lNBKDxAP~kn|?t!gVca?%*c3>W>_& z-?v%VUg)HR8W_sWz`yp>5CMB3sDKDSz7!Ava_evx5CH{505pZPh?LJ_Fp%4l|KGclX6{SHlW~_KW*7Vq&txOk|(4r&qtm zFfrNG?*Z|E!TQY(Gm$+PbFbg*FcaD5?CI67F-%N0^?Oh}Xs~{>!%Sq)#oX&RJIqA( zIeU8bYYY>UP5mAc4;ifA>eS;AifUEALhkIjn0x)QR30*+DYMQQ!Nk-|38(?{;FLM2 zh~3exU|>uq)T4l4%qG;;rJ!KUCe#gZnqGv{m`$jsr`_Sm1HQ-J*G*6q0#2sPf{yI{ zG9<%%Itrf0Ec9g{U+E}_9+UZTbml1?dww824oAMyks&>wJ1pR=UBGF!fHP@=z7cTt zDc}TCz?q_e;B{d)Iyh|-a84oMpkBc7ynw@a0Y~Zr4nT#&=(M4O`VRssHVEzL97X3C zIvwChdom(Uq^8tS03_j;UXUR$3V>%s$I^IaR4|Qy(zWcG;{{29%NU6p53eyCU)n2Y zCatpD$mFDSK69M-hi{Y?i6@|nhtP?R9UTWc-RSh7(~C|YI{oMjfYWwZ7{u!r(K(LJ zOXv)t^D;Uo(82kaa1xynbVkt`LuVYFQ|L^fa~hp9=$u9896FQeOrdig9BB{0M7o>; zzaseD!I>0FfKK5e#@j~#C_*|_L9A~Th!T(8fut|v?JPl~C}%Mtl5mpeoz8A;=g49-ReXCv%fl$`_gMY}y*)}}{8c-80UqeJtN zp@rzsLWEt6vWpPy7+{f(D2SxmruCZfwVLtAr@YX5C#;hwv7NHLhH}{ns|zKzcmiK7 z5#NHVNokV-M0w!O&W`ow{Rp?j^N zJJQe_ZRmYi2{4|zoiw&&;juRWSy{3UW79ba05Qnk5}3vyL=GkGHvn4#z8lO6M!5rW zcZhOB#_!+>qMWczV3AMQE+GR>*sjRFE6ALyP|*-})#k;ptF~p?w~S#cw)^N?v5g{E zR&3+Q7CeFP;3@Qg3)i(1gkKXnzcftB=1T7qKv0R?%QG@(2|09+AsoUJa>0iT0vEZk zg4f_`t>$TQVPj;@GY1zj0D^i}S^c~ra|*1M;aBi_8o*s`HVA4FyNMv<#eM=$*nupO z4urJ#TGF$C`?Ncd51~~X06|s2tiAw(g1Jlq1cgk1UjYPFFpGlipa6nGF37(e07}H* zNC5O^K?FJG4xg)6K7AI` z@I^hPY~UFPzX6Db0r=cz!>bOZgwGuo4`+nWZ8E$H-jKE|dxiuU9NpGJFNiNdifyLa zbs8{~*hW7qWzW!Ns9j^vaO4^78QR5m$lDQ9983e+5|0?*;1NR{e7<{zqvBD6J;P=L zw{q_pHXXPXI+kV6kN}{h+ghkY?0^)HnQGTHsljUEG5T34dxm3%+BNnJozG~`U>EI> zw@y;2khF853_7q~B!+w0}N0)a3w0hP-g7J3qD;ySf#izsaia>IQSCdErn` zZ=N`$=tG!QVd(0U4W62ALw)(;P=B5{)ZMAP9VXw_?oOFQ0tf4dZT(LdOfID-wTj-e3GNv=|^pWIOKU&moiMfTeikXfz2=S=-mjc zKC~fNJ>&fz7#;clyruwISFBAYBC8EU=?jqc0%W}aSx;@-GY`=G0%YB+ZNGTPdYoQE z3I&Xth!35x-a>#Vp1@b@BoK3_ju71p1&r9&i2_EXuApq@)Nm&8ozN~svm4AyKS2$_r>=On>i|4DR)2WCu4}EXD^k}J zt?NOv+Sk*nUlQfGfZR9Z2|Con#I3td)Gx0S^~>u_Y)AWgL(f`6Po$wQ+R*o~ve5KX zTF>4L#j%*)qEZZbi1Oxyl_+oG2|tN9$&lwJeiApaN$l)gZys1{9*8u*7;SzLbx!q+ z7MlJ?Z@}{*^!f%=o_-sQ;uKV#U<}+GrQhxfL(k87IZ)6)<+o_sv50o;Fi8vc7?BHIt zU}bt?w_4(~R*Tc9P^AIPl+sWs+Lsb~)}mX8*3}e3tpGLKl_kV(V}%{C(F`f>G6fJz zv%9sp%Ro7I83KqQ#BL9iTZ1>L^@C^18arBqBR{IW=xQQ4w7d*f$_DL?qry&hszh1$81RN1%CcwJSYZcXg9vLh)vnVhDT#;ZR+O>_JY=X{W6yw! zO3z}?@O-E|J>NY8C`1|T8PcdeJp(;McB(|V^bGA;_6!>3?vGo(>{dIoxi>{N+z=ozLhZ9DR#u+wda zod@!vu+wb^K>9!)_Cn~!{UV5Vgh_3L?k>RElieB2Lfc_?2Fy@i^lZ9&@}vRK-P@ZV zHKOkRJZS)cN^I@WtJly;*mucH$}=M8k;MCTj8@ncP8rPiZGmi2q=@%lZ=rW2?ACtWj( z_gsS8KjK?jaRofLy}Z5?#fzzxdko#Yoq;@mjV);Q6f}DP|9ur<;GAs^PxqL41h{z_ z4Wx*jVwG)Yo4{esF1Y5JR}+EdW>g2`r;hxrhiz5$h&&(suDUSLHF zej;N)M9mlyQ5ONMtvFCGr;F}_O}&0pp<2PvY_&UyeX)>=q==_@AA{2KAUcv^cxsz5F0`}027=Z7BuCMoK!z> zFL&~zb3?($wcbvwrE^KeGLll7I2)>dG>VO(Cb3CZaY?KCQJlJWqo|tVlDmX13++qU z12!#aKzbeU9%_bK+M{wY{!G=wmCM`~vs1~*zQ25WZ*&4IJ`ZgX6vqs5F+264=bww&v_(|GGu9TI}dFU_ii)B#WedcePp?qO0GbG@*oKwdJHC#&ndJ^8WT-rJiWJNdnRc}l0>o*zC#bIeD5 z^>ucVblUcRScpk!&-9YZ>m6I35mr|M9^dkaZyCXZS6qSz&~UzG=ZLh6M49yXmt29F zdET8E*$BcCmjnc~(JfVY{LXQg#~T#*wgXQWUMU>`>|_^!8&?FMJ2=C;huv-u7Sff> z04K58PVNBEq;^MoE(Dy!tUID5?LDdRnZ1elOk($)#P3T$SITza(a^hY(>)G5iLgmO zZlkFo95=d<(T}?j{W$8Go#h37IWRVIepx{=Ds}OojmA1|5cL-k*?0sNPv5ct6l`1b zr_Y3UIpiZ!-xaOzdRYEm%L~z#?)8?7Yb_TeEtjG#mjGTCJLUlQJ+>vv9$IJH*Vy*( z(U&9ai70ylpk*z4F$$XTwy)LMBXwQTx-K;PcP*{iKf|`cw;fuq?_8_zjMO`#^^S+- zYDV@%*(2-hOKa>)kB81jhpw#;-CrBJ9~pWO9eNO9Uyrh{Z*IN{Hp`zoo8`S=BCtyb zK%QJ>X${B${c!AYk`4wkk|y$N`3!O~ey`0&m%75fpd} zAcAoFEn7hL1u*Qc?G5zZl_7$6Z3GvHCy04)k^lxL31D!F00yT%RKQ>g?#0<;h8*9w zPN8*AJVDtmFjvucfpMe2pJxJS1@r zKfVe3jCmjVz7xlpiu8!7;SNIUpC1p;N^{^Y-cSa3fe!E<9AM2piyGc5s?!nTH#}X>#Eq0vL?7!|cE`&oU1;f`R11Lxe9F z<6(ACnyh(9;0smxfiLvs%K}+nzATXS<;wzDUl*9@A{NL@8hq*l$boF|$s`7%Pr(Yv zrp(MH)|VduLtlTM(izB4I{lq;Iv=8mr5iAoknJqp#H(BA==PI{b)`}5XX3rq)BR=lf87yt*20g!hu-}s)xFw60Orn~?KD403=$eKAqgvjUT zqeJtNp@rzsLWEt6vWp<)-v#Dcb}EK#Y8uzsu{Cz=@%SQ$A5K}%p-f`Z=0qvPDeG$} zhQJf}YRER_;6e(UXx-`Q?&VC34xO+Pt3!B#aweM{+KfG`pBOM~v+&p(0RAsohY=fa zQr^pXN!~9MPasQ*+shfE+yTiFl;8&Q1`3$)1W``dCa@My*e+o$p0Hh!eOC}!an(j@ z_^OTU=6uz*jA3|!uoW8-JgwM9kt-{}hZs(zKjGl&TW zka9MHl(Sh+Nx!0`oSGao(MSRICVoww6uFz3SEYVlMkSZYST|HJdDy=A+1liicVKwJzxx4xD-KWLHjpVzzaSDqxp5J8fi=j*&6n{$EiP^(l9!V3cB=Kt10Nx7j)^<*^Jm&)C;fGv#VoVkodMyW&}%N^i6(lhN5eR zfeR8}g+B$O`<0<8%2a=~(sZcPJK%d)qlC7KTSL_#g2|eL@n=d>+MtHewL|ADR43Mj>eD-c)E3e z%nGt*SkFoR(QOH|SPK$g3+T%hB)&>h5epJul@n&<<^_pwKDd}T0@5%IFapxYN!g$e z3KCySn$c!9T>MB%diWJJ6pWL*N4gN;)RlZSU;NS3-6%>y;J=sz(p5TV(-%{_!s=y#UJSSTyE|fcq`d&!2`v)l1k1=Nv?J&liN4UcU zW)7v=W6ZovBzTB`l>j2}gcu3p)-4c>!~(%cEHF>ZSlTxrE%swcgACb&0Z-V@gGA+> zyaBbuR5iHC`oWu9Zj=@y576DfGV|9;3YMAW#jS$0SmwhstRJk&(5OxCjcmIvZ`Q8K zS>t7{ft0B(XcFQ%D=m!)Rf0^oDm$5Q;yQdniYRHW600^vhMTbJno@>aWk|ZD%EIfE z#bD}0$-=eOTuPFw$w|f_ zBWPsCb4KT1qC6sXtOOg+R9b1coUb?=YGe{wy;#4XX*8$R8BC)iOQ99CciLS_zg4s^ zRl6s4B+C>#k`r#%?DA^I@IAl2JT&cI>7?%CDD_D*fV*?das zinHmIaLJkI2ANI?wT#G8vFX*+UU@%6vR2%-)4cY}QFw2p>Qj8+BJUUOqPf3G*NW6~ zacp|*;+3&cr*mv-tB($TG%FN-XAfRnq zjw&wFcDJ)nH4~_B!$^z`_M=5X%35Kq+d1I8i_3oJg)u?!2@a<)4v#0s3ekGttSjgZ zXvPZdR9rA@IDv7|SRvfU-@$moSuEBCaQxfAiBnF|FJ(2ALvnlf^Ms#??HyK7RSgw; z;u2)WTW%D=T=M_)J|eSr(N zU5~Whh_>Dcmo>|~Cq7AI@a_gqa!y%q;w%SG;H$ZX9&jP)bh|v}q0l>ztvC0rHTOlD z2cpfeDz_ufGM~K1;|yfuFp?mB64*GY@J&ZM$-2Xk0< z-x|B`@&2*serNbK&*MdZbn#8d<}gFH$n;vt)_8b=a&gRUOp;@kF-;%yIzEhJM42dJ zlsA}hEbJT1MJ)Oo%q7`(3E6VRMr!klZ2`lsz+xA~#1n)q+sK4=*>(~+vJ3|AAPi67 zJ1~YGaN)X!n7{*9;}yFvTHPVfM^k8KLDKn|?;D)={xF&M!bsi{fWA=u=}63w)ol$i z5N-=VXQlp72~hq$((srn1(MqUDEDG5~+oQN=>nYH8f*qeNde{P# zOa1{WI-ahfrNsnvX{wPCJXu3gtLfpHesZW7_)`+lkgqVS(jq^q&@SUH67DY*OG71M ziK$ZB(v&h`Q}mRjEHPBdGALzvKpTBirGy=FlYa@N#JOj=SZ=D6MQKWzfbU9K%5p=c z+!D~n<4{6vPEEZX+MGC{wN_I1vMNWYduvpxSV_^f){`2^Lh~}~INP+RCeE4S(MNi$ zM5`|F*1W5|IiV_O30ng=I#hmf?LDr2sG(qUE@Ac^surseS8l2;6sKtmTj^R!*%r1M zY6~osvqmg_q|Flb5W<+Bfcf)@RI8R>^^_b?>xKYm&(shPLFs!usyr9oemvcU3M+`+_$Bz^3~``CEiY0 zk{A(IR|38{!L>5K3e&IYfKT8rt*-EXsRMntCLE6#Na+oi#wfK0ZzM}QW;Esoq>SY zDICWtd5L7z?d)8P++8&n4^S$@jJyG_^IxEkl&PRu? ztq071;$W2RTxVZiV_%N2!%=ql>E`0S#-3>7g~zXO(N`8Cjf>I7#fMwpYaNWXUVVJ+ zcJx{hW_tIn<2bjQU|zwQ-UP#=Z;tVyZ%&>C&dD3<;t9guWKQAS?oDPIXL@fkmu25& zoawy^hV3EjRofy?hrPB380A&l>oW0mj1sbu8DGfuN)bf4So9js{6aPtP6P1-zFoJ` z11_#Abaa9H9=n4qM;uvWkA&NSl_#R?32l~`Y*8T(GwPy5o@jlGe^{%B)AR4B;^ zS>702V+S9<_!{K#_#$$|3%kmL$IG0+QV-i+!BTr+mQ08jvDBArH_&&YmTke9E;R+Mr%4jSY5sCVbun5<1;X)ecJ-#MEth~pbt`i`W*U^N}|qb z;-;KW(<4KAOcjFljF45dJ~A-7hBpO2Cl6`% zD#PGzXobr z8PBO>lxJ-O_mv9Ej@{9Qw)KX=wT8i;wMQCWiZ;CT&6N*}9|mKMt?(_bZ+uv;V{lPO z@#EbQwm-`D!xs+&<)V?V^|3Yf*yD~%@ImZ6g-hEL%oRLcWnB2}o?*!DEi=pRI&kL!t|>-eQzw2|*Kp6Ks0+z>2!17ik?&J@GR zUv$10Zn#x+0eyG^U*{|60T-@oF5)$~n>s{{)$U)fIl5MJG*Z(Mt?5Yn(Z=S5AIT5C z0PUsl(FRT={pe3wem~mq$t{CVZpx2zAa03m0qcqU$R{^$fS`Yj-L{Wg0&ynM-9_|= zXf$E?L5EUL(-(8$neQr3hT#izEbqd<{G;#3Wo#TqnEIp^r}?BNEWM`uq?TpzNiE64 zC)J^>mXS~Dj0QCU-r)O$!;=qiO!Ky74nE^Ii$G{(`4sbsVpy=Vl3N5EMYS;!bF5P; z!QS8F^us#{ojvK|zgltJ>+uI>d`l}s4~|eh{V9y)9ZAe8kvM; zyeoi?a9$cdW$$gPAm4sr9TFfPdm)BbC(yy~yzqzUNa&E2qfxl><14Lyx8<+)L7*jk zwe?K?CDz;DKs)+Ke6_RqFcX;e46~Hb7U4VlCNqkScg%JQKiY4~pKv@Wtrm#bT;X$y zC-BWMXXNkt8T_uF1KB-pj)c0%Cr}$J7!O)sOIxY=8 zKK(S9Y-`^Z$f+hshRJq3UHiTn6iBE1e$r1?1k!P$xHvwgp7N%St9^;}GA2&!6TXb9 zDBBEwm^Az`CdxL#A0oRxI%|N(;QAHwJO>+Q)*k9QX3O(8!7b`7=cxa zThbWuiW^PoOBGa}v}KFL(H6}O+J}H{cxt6VPJcYh zpP{Y5n`&qg+EPo}7E!N;h*ohc1r*laAv*010o!1*429vQxKombI|=ael-#K{#2r=m zYJP~+1?K)c^C6kEcY$P**rPBjceQs7w0Ds_l?VMt?*Y#FsKb0gyF2qF%(ZvJdKMW~ zHjp(XSq@tQODQ1A6cDT;;Eq=UzQ1W@u)3I5YL-`(Mit;J5yBEX>L8|+$D6|&#E2hv zrc6R!hbjl@najV;lkF>KBMSb=hgMv{RK~ z)Ti$DVA==Wt-g0rR zB+I!d7-p746V8q<-M2Kj= z3uRy6k^wVb*W6|{b-?^&mwml;aIJMP(t14FdOQw#ynmhTSYtaLcV3Qm`T@Kh4ZHy} zf)k(<3YiO9&tdNH1U~yDdcehOPmyd-ZF07gM8vv8F?o%08fQJ1nHgN82j*(k0IX_k~IP925hZ^qvYwA;POF>o~INzm~PAzPAf1| zJEGM`!evJ`$WhL`leTCKIqgo$=ucus8}*DP0G0ZZId?Q%c62lHDf|LtB`JSMjL%;J zC}}V`e|9jpu_^icLaO{B@d2yzPaa^rl$@=@;j+UdTT^X~Qkhd0@;IdmrxS2nK`-xg zN|jFMouJE0#6M1fg_NaAXzl^e%n~1%_qm0um;)a=--yn)qVqO7--pf*qVrjFegYjt z_6XQ&goEfDKnF#%Qq_#t<@c|EVIy7$tjg^d+pBf z78sHSIcYIu;?-gjV@8faPFf6^ct(!lk)J|NS`3+ZMShA)jzLaZ44F7C$Kd4{7P3~IL}Sy5pA)xBa67#o z=q82LW1eM5W!dE=!N=wlv9tRaSqtU`zf?uVkjk|vWE?FG=a&3QUvSyYyH76%{L+?q z&zaoPn^wwoPA-=7GNdfkr=*_C&l9EtC~uIqCq6@=kLBelQguS|(qL}sUcNNmFBK8@ zk_+IqGjSMMr&_~Kw*sq8+bRHst3h;C46Y2VZA>3@CjA3pGGypkFvF1_Qy>2rje0HN z37#1zyeGWiae1B4@!$2hp(Uq%5KIx%LWYH(!&eJ16bUQ?90a^pp1Zu^WG`rU$R%k_ zcx+<$?SyBVD$}IGjSDI>NFL;g{5gCOuj#Ei{q9AhtfG{^c z*b`lZ{>ir_RZ_meT+&lgDpAhExugLCFujaY740=q%2Cf8tRShSRD3y=Qn|N8IrryM z%8AM05vho{FXwW<{H<`41h&L`a?8!x(Q(KPx~6i2323=N&r7+KZQ3)p>Jc?%9!mAeAWRoZ92X>EZbHNPBbQ_Sneigj7V_S99UdFx`3Tz1VpeZWA2~zqHRt zq|uz79`G%BX7q~JFGcy1relP*8s+bxwSXVOW=eKfP|jlFX|0Y+g<(?J-t`K4-* zuv3Kbgu-W+yxO~i#*BWM$j|JORF_vv)r*&NW8+2Mt2Bag{c zK&qm>IgX2fU-MECaR+kFmApKC+FTuieF~4t?8?b_U*h;FyPAY|4@3YLTmo9ig-;me zJ#Q+{kQNNVCWXaefxo=$xfA52+7z^xa%1f93~FfkrBe0ca(*%kl|3^*?h_OP!O{*b z%ZVWqd3fOEfX53{9Qhft$K1;fs#1QK?7+OKT))h*^rC=~zY9jNQWfnrm$dwjsC^*zRM5Mq zUUNMaPReHjRIgf_f;MgHC6F^b>haI`?(zbvp2{l(Y3QdC9=58_!xuN67Sn37!cXCp z>y`AW8JX3`C8^Hqg`Y_^_06u$Ys{cnzb!TSNf68wZ=~aJ3?-g=CW`=DJ8V^C{kvrVYYIbL-_t(VU#TcISa^Wov>z$Isg( z52(@<5qHc~MV~`V@yO(eRHj`ezHiwz*6CGH9T(sm^niD3N!F*Nnj2Q4OmOLv;F?+F z1*wwqnQMT0Qt-J)*04#Gv!-}H;sWg?eT1_$!Jm)LB8BF+q;wXkg3K{Yem`}cB$%p_ z4_q9@+$3{s#yubZov%(Ln5z$11I1MWwZGY#;GZ&8*)l6I!)p39$s}{53&<}l->J!0 z(O%O@!%9qi(sACzRl@8#3NS?|+0Zf9fsM*IF27W!T_p}bvdoun3D&=t&@@K{EXk|a z<`Px%hQ+OjyN0TwR^PMBshSW4(vr5NCZ9C*D0zBUET7EDB-E{Jk|rp~oShqn&Y3C$ zyms-z5Oo@-2@c|x^Z^D@g5?mFxYCKK1bn|1Eq6V z43w&9Z#K|PHzX{$8@(I7REj5{ZZ4KsdIKc>ZTo2i_L0C3SP%;S|03+K3&7GSt z3w7&cDO9P3#iJ^d?Qu3wJlwgPlHFxwB^oDc1ifN*9>Vv{JRa!%RaOC?K*) zbFgle;LlO^Jnr%Gr_aMTS3c*+QQ3rymq-@?;OCdvB+A*`I10<0TB=jNWv^$McL~zA z)Z~-qpCO?baZh8L7#+ayBl*z}a|T zjw!}xPpYJRIlcjq24qYER1-PBm|GjV;JXK_p2hMh$3E_yZ_Y)a8&bJ`nI8x#scGLz z5`3Ij$c}G`K8KuU!0N;t#I(wvg0y*dTdgrm#arYrX6XrMI%1aXVfu(!n#1(*#L^g6kC>$)tR69y2%#~{ zE8$E>%<^hD(-E_H!kLbkWhtELh*_NBOh?ReI-KcOk?+s`;@tL9u|@8D$ElHrJ1X2Y3|n1u^xI%1Y9;Y>%&G9Auz#4OjtnGR!pOXj+W zSzZfgI%1aF;Y>%&;tgjyVwUsaOoy>P;a1p^;V@QTM*8RZuqDG`>|GYamJCPCayOjm zh-E4`aK>1D<*QBuVM~T1W|;|RI${BBQ*267v-EQB*1 z`Fp>n!j=q2EK`L-jmIoE!kG?Zag4l!7sHkeN500Qn9fb|o|;YQxUOJPff!`S%8$g_;ZG1C7mhbpjae4MnGR!fY9n)yw9krI7U6)L$oY}46EYST2j{1eRMUJQ z%5*u;nc^T1BdMm1K$Ph*vfvO&wd?>ynJ&-uBB`c(K$Pk7T2my|auX0`x;$@+q?$Sb zQKrjtkVvW}1t7}w7%5Svav9+vw!=uOAuAANx-mZEN??Q>@0WRNtze8IwfiMP|1xpq L>-d<&aK--zSo@W9L5HIc&-D+39o~A8`)b={RTQs3=z1mMlw7shrqp zsWS|-Y+whN0hR`KmTOsdhGtoqAhFqd-dwQ@4b50_y4~7oyy9M6#QDgYiw%fZ3p$IctL(eO5lU5l@#?h z<){3P5XGQRha9ssL(e)H=WG#EG+WFRJCN=SmCSBnHb~*3Q0Z(LQznHSp^eN&>Hc!2 zT=FZJ3dygW-84ZvsM#vXbulg_eYJsJ!_+ABS_8d~sZ;2i4fHL{7KL7Kpl@ZiD)a^e zeH*h)p*I@n+nMbOy~#jtW||fH4g-BBvs0n(GSGK3yA}E#1AQ;ESE27S(DyU@75V`K z{UCEtp|=?5uQ0DD^g{;vVdk(xKVqOCWsWNJRs+3_X;bKK1Kq=T6neXX?q$3Ry~9B7 zWI7dkmx12RbSv~81HG5&Rp_r8=*O623jH+${Wx=6p}%gRpI}ZX^gaXqBy&=s_Z#Q~ z%z#24G|-2bA%%X*Kp$p?75Zrd{S0$Pp`SI-&oSo|`iOx(%8V-XF$4WPb6%mpVW3}N zE-3VI1N|a%QK4Tl&@VHW75Wte{VH=+pFF^dJ*d=raa-hzTk5Spz-HgcW+k zK%Zmg6#88Qoo9H39yQPfMo{SU2KqhbokRY{GapvyUvHp)g!za<{}%@OH!$Cz(Ep`@{)l;`(7(|@|0d>} z6#Bn1&_Bw2RH1*ff&MMbw)HPAoCd`zK#+(7>}=Gzqdw;Sl+!F-28|JMfkcQW6p z(BC%Dzl-@Uh5p?J`u8y3qtO42f&K~R6AJy`8tC84e6K?PJ_G&xneSKVKVYE$AoGI? z{ofhrKg9fyLjU&$`VTWdtkD01f&NM6lM4M)2KtXMKcdjzG0=aM`B8=b9}V;$V}4Ab z|0e_e$C)2j=s#hgf13HULjTVO`cE=HsnCDQK>umxrxp6o80bIC{H#L%IRpLYnV(na zzhIz$hWU&_|3w4+mzZBt=)Y{B{|fUf3jMzr=)cPRszU!Y1O3;TUsve=)ju|iK6=$~aitI(4M z`VzCG(Eq?df0ubzp{ES=C(ILt{)Yy-$cPI4a|Zh7na?ZqKQhq&nE7LczHFes$GoS| z|A&G8C(NHH^glJw-)G)e=znIQ|2gyL3jKc?=zqcdg+l*=f&Q1wUn=y!GSL5;`D=y# zzYO%hVg5#;|8E2RDf3jJf6+ky67wa6{(*u1W#-EY{r?!~f6M%>LjQ_^{&&pZDfGWL z(7(!jRiXc11N|SEe^BWEXrTWS^G^!>|LN%;bIej7b1;+~_b~^o(siqAh@~NxR%4x} z*dmB6Qe%rvu_X{&qQ-78#g;;BsTx~miromY8`aoyQ)~sqR;aO+rr1poyGf0$GR3+e z)}_W)n__DqwnmMuHO1CJY@Hgr*%Z44Vz;QV^`_XZ5W7{4Z7{`dgV=3qY$IGX($p!+ zU;GiuU-Awu@2h~iebLdf;R|><+EOHz_WMF1-<=RAI{U(l;)aWhbKGSgFK!(5&2s*W z^K&7t#UU0?h9VIj0~3+?urQ%)(j-sGnfl;69k^rTD8}KZ7~1dn2*o(LB0v2R>K!FL zQw-Nm-E|3E7wN7yz%`UtO#jG! zb%pM_3a%@4*Dko;q`R)>YJ&Uqm6yZ*DqWho71FqLX*RErrdpR~%L-{~bZP2WNK>mz zvvskqWwTi3=O%sgA%SHlpqUImCtQ7i`|h`?Me0+I(N9s(&_z)$G#SODJHPrpt(T%4 zA8idrCL%l+3bjt~i*rKch!BZ{qODxiKND^B-H#sO!cs&a5!^1&$B2mv)DihJ@6#n_`>dRnUg6*oNRP607;b z9uf}jB_Yih4v=v0APH%Htdej~$7PE*EmjsQk5x@MNoq2Ak?VMMtQyMavenW>x-wYx zeiwO~sij>RTe?Pgh1A!w=N}=lnlBt8;owmc(tOe`q%`r`SZ%y6Rupt=X-G(DC!wI1 zgfu@!Woex{@(f+NPVIgYA|=wLvTEy^oO8?Y%y*Rch~ypL9NQe<65A5&CZ*H-=y6>O zTaACkx_FBopo_KWqp+k>W&+}y`pK4HuT~Zk3LYaN&5zeZYrd{slaQ`8PY{~s$Le+b z&%iNVDyvp1Bc;!hPVF1-D6<~9FTORlHQo?w$f*T3=y;s}7HF_+fs+~!NhrQ8wk<}@ z0DrRfnbLJF@$>5k<)l4x?gx#r#+>^>*}8IdJ^I1MbuIDp>j&Blop~l-c|6!2+n#ej zC|_5uu17zpSl1FizkX0(LK3t!IfBsg|nIPZfQ^2NTv8qUiY1 znFQy-kku~RKO^s|Gw+`LlZyx2dk%ZrT6%Zd&Bxnz*xi$le7X;Nx-p+Yd-dw=sK{sdI|Xaqg~IsU1s=`)7DWwunsw@?o3t?8`p`=T?(}DY0k}&cVd8)6pSc zAT-Z&V&$+eBn&Q0aC6vC#j>ct2f|ZqWK!HPxFGPp2|=tLf%7mv;0vASBliM+IF1vW zm8Yb|D37T;#R(UpzO&pS<|g9h+1aT6vX4_Qw?OQ008ZWbiRr+EFGP~n^z$4%c?6CQ z1BA8@>eVkD0Z#G0x#`8U0^lKXRBTPZ^>lb{USLKe^-$3QaDq{z5I; zXe7*u8v{{xe12kri$=xbd%n;-kR}3i(;Sb-lj4Q}PC5`38YpZ-EDn+y5y@N+?E zX@)~uwvF{g{gbR%<7eHha-u1>r$qCx(qqQ>L7tEBZLC-vnHRu=JKI@2iIq}$4XNC6 zD)37EYzI3#7m^7cR;==~oh+~R5t-gD(Yx3gwX?`{uSD-=eQK|f=^d1TV`X{CR# zVl5QD%}@q-7M8SAu9%yh)%7Pis*4rt;WiJ;si(zC^UCqva<))QIeu(jz`i8b!A)MN z>isI`a?}Iv`>v*x>p;SFAmuuo za2PAPv&jkcJ-c zh@k_>ut7SANkTM_Nka5JOoARHS)flj!8`4|iXP*fLhn93?S%V6bO629AiC8vPAE(B z9w^3>x&x_NPombdRO`*&fKr=99ap6Wyec)IRJh7(^n1kKJd77$I}w3rZMH(lW^@>+B=xq%O>`+k8cN- zW}>N?hl!boP=P*LdQix54J&?~p1_JAM&grQgK3D6j$I(1Y8D0rLq- zqV#nqB)RG2oRH+E^DZVq58`e*qZl{ujAPuq^K=o!p$BpE&a>$4JBM!dNRi4n*Pc{W z>u0N4bxaE{-MtSP@Q#yMHuNCZe)=>Psvp`Ei0DC~MrjVq-A_-V$2+DZhE7QgotEB+ zY5Kig-qg-l6FXl`?KqX#aq4mDc57w{OZVP_2i$j@#Z1tHEblu;@Zn?h6@2&@Fb(3+ zgNOU+C?*-B1x#{}ehZV_qt75m(1Rprop+Ei_vi`q_W9AR=Cn?;{*~X|k=k`EvFliB z=c&X_sC?5C*S=5oe734%{rC+Xv3hT!dhgP{q13+HiG8;p`{tMKKLqA1IL;ye&;v#+ zI7X3i=b>Lh+SOmd$-i@Ze-lALo&OubJ_T;0zhZ)+x< zk4m02@5L8#-Ff?@z*}7>N}sBr;Rfh4*l+{%D7Gzn&~Rh&+d4o??`hOAjd2I3vAt^p z(n}klSH;`>KJvZ%^jlu;w^8i3^K=}mKTn^=ev2Md|BTazU3H$8hKBu8C$8~l?6>)? z=yTxhQzzx>Ul4hC{29sqZ6OTW zRxUp|@t0-lS)S6Ko{tX4u$rgT$Lix-0cX+xIFk;G+_b)CA>EFt=mNFWAj6g94R#Pw zSr7rS2J$qMtiK^6CZrK+xgBcRld+Z-Xn`!U*hW$sT{;VV0qLKyt?xMH5|I1iD5C*+ zoh=+qNoL7MY&&_HiD%n0@~n9UOhg~yVbDU3pA*8x3Kh{z%Dg(x<}+0q!evKnM|@{& zXK;YjT=TP{73|?FN(mQ;Z)(Av!6B_IBorJbA*tHR)olu&3F$x*q+&r7M$*%qyC&i_M|LfN-fE<#BWM z;FLY!huh;-5G}Sd>QEppb~9>kS1>JhGx7pBrW3(2b~EbeIPCG{0j=Zi@=BNpek-<| zUEoN!46v}DkAlvzTb`bL<)h$pY?jB_-RTt32)p_!e|fD}z6T&S7*=4TDE* z3%(T`aaUISh`7x<2|ymA;wv(sMSR|^@p6u{=fWvp8gK8Q)o`bX;% z!L1NK29CH3Kp*Wa&&}}>|NMl7G9k-fz;t^gI0?U!$|1HlftBcyIFR)vyxk>XOB8Ge zuv$*rWx&FCS^hGnt$?)MP^7zaX z0x%xwUV!aLekU8n_ar02MHeZ9U5?72mD$KWZY-<-Ui!lR@%g#A(BfEFfjDV!mu`h6 zEW5@#L6Sv9{|Zob>koLDTZ%4%#7uBVFb?#dB347fO9<9@iS+@zrj(`_ST#P@_>reJhCS6kiFFEXfT-stthTx~qOs9@dCyq}i zj|Y>k8Ax^%KtzWWC{fL}RP|7zdT8lX2s+`gV+6&v=s_nOb>2p??XW|V-qzgF1h&@5 zpBxymy*1U?ooMV%HugR)-Ks0o@kI6UrPuvXrW1~NWFdO+R<3|KxsCQdV3qDUuOS-e1XzCnujYD@ik-+?m9`#A)q4~5-ei5}qYA*?)NW71 zh6I;F0+evp(T6od4~ljYz*e5I5%>LT~>mi7&$% zUo0>s`IXIEf|V?owmyKGS!B$8I*i`_2)Z?MT0dX^%C81clV^VC2lTNDu+nqp?Q;Nq ze=m#{@HfR$iRp!*fT zN;+mJ!2(#RV5lS`z@h+FQr?tcTl(8WATtCK046#LU?ocTM&a3=>8As0Sivv~U?mg3 z3ScE8L;NocSP9^IyK@31s!$_!+yK}R>WdopJm}P~zSf5|oHA z8-Od>;#n3DQ*7@FJlmU*X9!BP2V=7u8FL34TIIGfTmfM#09nWh#eFmwSXb5<8Of2(i9^ru7&h))mkM@6OSjMhF$2NcvyAHP#Aw z9ktclt99@!mvP;NSFxkyX{Hh4XvW@-BShN^IYPK&ZYWusEuPh6;aS@XJZsCyvzL2> z@Webhj}Wz)`KgP|0YC`r8Y^W4D=7Tx*AR8OGFiMey4V~_4DU{RP9ua0TqXT4?u~gN zuXbC#eY37M7Ilralc$+Ri1v)V9Y=_c7jlH?jCDfEI&AT5OBSAWtiZF5j68d}M~JRi zSI#3ueP({@Vsm)k)@6j)swmKANnklWp!yx8Sycgxsu zyI}TqH=yG4!J&2!0RHpBA#Z*x4z_z0K)lVSZ})TQ!b#51tXYw3QrpljX-50zlm{2dHUpo1`J-j5E44kDrX zNp!BDGlkAHI0~*=kFoAx`2dMA+Cc;xh9SIhmPEH(0iwO>fM^6ycNoCgT`V6axpW$0 zzyP6ymj*+Hk}n%1^cb<-U~^E41Ro3&db$lc5bJ_~=9W?cZd*##V@##k9s~e4#LI)MHuMUBW>2Ma4{9Y9Om0E4lhHXy)<-#~3ZpodYV06n<}wG~U+BZ@qd8;j!>faPe+~5D=K%M9A$xF}7wi=S_XYN-+n` z@R)w2uj$@m+o{rQ-Qu@H!6tF=gz4dMnbp>97CXe5M-~4D0@WeD3Fg#fWpCIDN*`|q z$kUFTfL-b8BVhLz^4ehwq?F~0#jzbL)ObfmkP-sBc0n!C29xQhn+1kVQE;j2KUV4s zYwV2{Hm%WG@2=P`TRh9AaA_DdAUajP|3-8gvg?fqwB#| zK*}ud8;n{f)BAnU-Uwk&;U!Cn;oUi$(+HvNqR2ZNN2MN6n6fn=W>J-i9VSmRjSz>k zju5CM^Wu#VFRseX%RNGXN>0urL>6_N7jT5Ir|^<}gmC9HLZqvYpi&PgOxYSCvZ%_$ z+$)R_?yMsOD#^TfBgBiVa`SSJ5TKHi^9Yee9p?ocA?zu(tpf%Xk#{%U=>%-fTCp@~hvok+RE#B@t z;n4vgpO<#)Y0HmJgBPs)=SAzI174DRXpeNbmCp{??AaY)oIA03|VJaNdYw7tz& ztpmP;k&iyq(UC6>b>xdfM4!bjhq`1AftCH|^hpK&I&8T48|d6b=N39`=(y35J`jL1 zBJ)=QSft%XrwbkJdjXv=bgCb))&Zd>|chv>03^;}{{0dqb26jjn1+5Gn9=D*Cp>`00j*J&Rgre{ycvNMM z8X#OE=neTpD1c+e@A{g4LKh(f@z~z<%Sm6M*OUodk`n3A&Q>_)8d73iy4B^DAyt~b zLPM+}zAd)RNdJi;b<=X~t68*kUfK~r#Utn3SMeiTxpFnjr*ppMxw>*+ zMSZ_qxoS_FC(8%`xYnxt;95HnM3@g;Ye$beKe*P89sqvk14Y>B(HkMR2`B3WtM7R! zRGtiDcXs5*z;`wreYu3H zZb-RyCtSNzuAYRe=Q9UWyJKOS!^!@+r0Xt8mPcqEV&gJem6c5Q3G@ww&)srPB7E)^faw6(fgap` z%PC;oJ?C2(cMrgH5QiSb-E*Fkpmie>v~KjdLhG!VmJa%YVlOyG5dn3czKRH_^Rypv zEa(9OilYUDKAorMG0A=UAtt#`pGA(K2T9I3?;~UG(+lYBUqrX&!Lu~QTho}T-kYf2 zyR>g8weNOf-|fe~LPZNLTIjlkcl2c)jCgs}jpC>~Psef8ou^OZsEZzqx@Vm8Shsol zo;2!8LvYQ)%Qx!2_!UKHP8(kh3w->bkNSfZH|2!?2j{@ZP{ClT$`>h6faVzafma1+ zP63*e(fr4Y0nKrz_gtMRQ`BTN{Rl)w6{kxEQ^BNDeNF~jR49v@-`3bx1mf5-*pdZ) z600XqGXYELGqzX*)N&it(#o9a9>S)e1;i$c@TY;4Mwjjw$xrhM=VM#m!I=nt7+1BTqB&Y+FX2Z3h6(>vC!JuFyxWtc;iC1gEls)@&zbUL9xinJNuV z1>z=zo>-YxU1u;)Dd7U~O)c1L1uqB=lNQo^FxOfXJgZ%kkgheYjC}4`GheOR(h5$M z;Vnsn{UDSAO{ZEI#>>iodjOSe{C|EtwSxVug{QUr3f@=6B}bQpKzp^uX&cXQ-Vt&0k}Qu=tEIC zdcf_I@)vDqSNftYB)JQc9B7Ff^jj#`IpG{e48aNKMQk(lAnt_oGU5xaI&Wj#Rc8p} z(1W2Lvwsxbnz5Hp{FND9 zQK(_-XRBI2ubJt}@5ek>_n}m1gv}RbX&P$h&qVx^a>22{W zn}k%AHkx?0JtNPWL8hikLv{S>Ct)jzVcsO9%|s@sYXJ-63Pkpt&s1p=QdA)aDV>!x zGOL8np1Ff8r}R)J3u$QZ3~3?F2Ps2Qa74Q%Awg?R3t3rg*P8ii^_EykNUhSXtQLv# zJdi&H&y#X%e%2OPZyD+H;;NO5bZuNk=~J#;U2iGr^Wv(Nlyq%eh0k^7%+>XllRhu5 zTFFV*##Q);XwF=HNhGD+?(Y03Mt8e=@}n5t?di(T2Y zwY4BMg_W!6=cjeX;asLjxGYFbEqGE)&eBci|HT>4|2GIFB(ETT&(icGC-3pnSZTaW zm$uQA5H8iU8)F;e<+`*@8PZn7D&m#8v^z4S-4xptuL2p53uHXI($ncASp{S4Dtpvc z`R61xJ)%}$4e0br5oK-q5iXH;NH)d}eXRldT0v?`S(#ziNsX*dc?(igQy(ixO^pok z7o?_CtROWtbc#I5q6<>f_26njYPud=El5pUWl@BpW@ffWd(=OKH%`xq`&?rIxr7d(Q?#&fcEKrS5{n6|@h} zX*!pA6C!Utl&be8>b=SO&PNs2!oz|tDn-=>aCoT<(C z1HbW!g~WAkDY^&}ZUH7dkZ_|13fqJ9Sv24~NRJ^AJ?O3H=_!%T2 z-O5;{E&aHnESLfH^wK0BugoYPC-P>**P4Dhd9#K5ODAtUY`PIHW7?_TArhPEBhj&n zG^?xCv1*WnyKM0+o26P8X(1EOTp4**16pWqQY+0D+DSNQA%O+yn8pb!j%jE5nbWBn ztGfJ-k|%3Ek@)5_Rhmv=ZLBt47pn`RH80aIt43QEeNSC)w|KMt8%WC$-`Ij+`L9&5 z{5S0PO@ zEZaXedU5dTMfni01@7c;p`+9Z9c5addm&?5P0+-;dJgp z)R#-B&5duL`S_X7?(ih*+8>p@-}FkV$(v~MrkXA!nl2=pF2d)po*ean`@X9w5l0-Z6;FeDq-1Jp^A| z!ezJPnzZ)6CawJ$Y3h;`l=H_=BYD&HNVxYt)*kZB5p?AC&^5s<+A2Pr6#*VcT{*szRdrSujt+VWz3_^~pSUrZmgWFYx z4rAWvL6QjlCMIF%7$$j(9>VIqMPI<`p$Bnq(HF7mmz}pT?y@t8ap*zZWw2ldabf2@ zj0-zYqUkd9ATBIhFxxjM@ncBi$8+CyenQ%I!lIfIV33l3R*Uwy!|#aGkj^QQ#Zx&s#sMVw&Aw=NO6`vvWc{qsgG>R*hgGYx9V7Nu$Ayh^945v zTbV-AwTTrM)uRkuI*W}wX}g#!Mz1dA>Qbd`7HeWPP|s>xEl`rB1*%tQf$EGcK*gwW zs%67y;8zZmQ4efysk+(}2#)=n0P)g+h!^`gfo=BufrFw34DyvDMp2Y4LK_&w<0=qT?fQGtTri4Lkrh}Hd(S+;N1_W(Y1eLu>c zosEiRXGg~SLjm{}w7A6>JFpn`%|`rp#7%N&;G~jnJDd*m<7dJnQ@n3(dJ%R)<3fbz zE-ub-QE?k)7zs}XrsjG1%i%M#QApCqhsCPt0LT0I3F#grG?9DdJ6PkTSaXN>g(s#7 zb<{V@iM64~RA9mv(i8bZSjBd9aMTk^Nu;==pXYo62PKBe4l7SrZs!4m!Q<{%Je?)g z=`flfUrnNxTCpS|Su4jKY8$Io;Iy9=OJN_%3POnG(d-!inp9Lj+s@9;0qu39oj}?q zKik0q*JOUPB5Z<FvEHF^_`Uf2h{SKIQa^o7}YrWK?k;p#}by7Ipp+;%wC(2;29NH%mm+C(0^Kjmsm zxY|;#*Ap(-@As|qW8ZJ+NHv^KG@M_0gGs#+OuP|HHq1QQ^nP=1s`+Z7`RdZOJE?2) ziEHz)HCu2D;ht=megn5{!!(E6HuQivMMsc01-myOq6ZtUDKJ9~aS!QJxEXs$kK;xS zJ&1cqU&4*r6)+tRaaWu(7>6D_DCB&ANv=5G#3XU&U=bvVJKw;)9D0!CLeXv9#l@XI z^mg1S!aaU#JGk$=wvrEr;|a#&!^){ip0~c+j-(no6AhiohHhv)>B-XRLT|#=yY%X9 zDDbfvWCgfThY)-t7)T-d1XdG0s6(Ig4XkDecD0b?qVooF;-YgJlb{E27hzYcFa*39 zY+xbfP|+wdWT=QihM)&2hl*}s+^wQXjJs9DV;p)AcdJN1@7O%L)%UcGuQh&T?FRu* zYWAh7k0z>*Cac>Xl{~51{HQX+hfEn52HvJ%Wru%<0ON=Jv)b_nRUsBh1u|?kXnBXl z-j}T7$OxG@Hy3Y;b9Blge9lH1mQzTr*)HSAQ#p?)GrKct(gq^*M z#9G#_mc(klpCi%0+`-B$S2z&2(?P(+=sJqVK zHbT?&2zKOUIu9L+3Q(mm#oJwGyW2XIC2gI& zc*S=r^9q)i#2hYM2uA086C8e(1s8=N_z1(wQs7|WcitD^#ael>cENZ5LevLDZLR0F zh|#a_47W%TV)J>Q-w%t$@rh|}mSe~I2G6tX_;8<_Wk*g8x#iWTwD2sOo4*qZOuz$0 z=NvaHZk*!-_vB)=RPetF^~1%SarM>4sw+Xayb?Ttd^m}TVL|6%VHqyhmKDozwTRa& zFRj?%+KUS|_!1A~+hJI%xs|mVjzsDT4Fd8a4d0gs^@c^7#;M=LwOJXo^oJ;EZAO+N z&tC?xk=nX5Ro{}RZ%NhnChB{C)}5?>?Hel|6+fDP($Ea^Ze7EpvNWN1TB3kV}hQ-NfE%PS7)O zstz~LI3HphdT`&#qO&;P_7z>m`4&C6I#F~Tuh4_rXPhg{%y9dB(OYZEv7keW5t-3&JNgdsEd%64ghN)vYT|-q@{R+NM5u0{x^gc>^bO zKQfi&ck+g*w-lyci%D9jCl3#9B_Yk1re1C7Vlg=jDt1Vl?gyxEErb3Jo&6>Z2k|mL z{c-xEB}H%@SC4mf&$T*|Rf>@I{Zl-G1{)IVI$^5EqNWM6H2Z`(K|7>c-ltmfF?D*B z6E11${K8IPiv6h*71yNGAlI6vPX71d>AK0WkHe!GtI1J|F-?x92p)TrSPbVhQ=E7h zBCo)i&>T#beW59~@7yVt?He5Tbab-pss0f-r@9Q1c=lr7DR*Z}xilg2Dab&Y0r@8w zI)M&Oe*7PzBcg*xBVq|oZ~=MZit^U8m{9^bDCD#KgT&O0h@=Hb52|Hv=zYZ zFNak~MXWrC0tM4gSI6C^D7e&>W^a0|zlgN2*+(oeJh37RwpHunR_{Qu z?&((VKm~cKi5C?ad9ew2Q3dU-3TU-@>3CrwMvOUPn{-%H+&h|ngx_gMUqJbyc-9s- zO0sZ6#Uq=zQI(M!L@;Q7b<++u$lLNEHFLLv)J#(Fw|!XA-gCHJDpT2f^vHdH!yfV2 zuc)^zPl86b7tUv-1!28(Mk31yOWN|AaSGMo%aHpDk z6V1KJ=3_cs>fV&AHQ{PqYP*zbizeEl0OL&wZzY7cU|oI!)cT+_^A5?3t$Rc&+UPnI z%_xx6WLhhooQ>nI;SxQ8yA2LD9l%76UPLaU2Sw&&Ibd5%Dsmi)oL@2Aih?I)Wd&~! zMPXPvyFyhA(C$N;^s`*yTkHzPDIU+iTAbQo%l{$}KIITg1L3Fus0A*HPf<==G48>3 z?X*>e1xUaNJi>P4n_CCTK197=RiCQbm8ja4s`4hPKpyUuMQ4^Zz=c+}8j#Y`(ySmA zl!r|or7z(xVF{bG5?Y`vyjVm;Xkrn!rm7Alst!FaJ(Qtvd1S9xuJY`(KdtmXiKTDQ zN^io(bXhX@NTTY<*YfC}xbKomEKjchkx|b@FsqQ`V#FZt^~^nB{g59 z8AmbbPdg#}R1QB~prr_27a@h8PGhPs(m`6gLkd5=S}a9O=pv->(=&2JK$n#ietKEX z%BPEv!cT|f2u>Fvg`bY95kXR1hybN;CBh3~r5YG~8gfWwau;t=s1SNODHFG=LBoh()tLVVXxkfLIm~ zpua>Sp(u~1O5z5k-^!h8!}wxU;AUCzcyt!b`z*4O5*>@vfZxaa*-!w+E`IT7APl*L zeIY6O=#(O|^dFUuOgTO(RvJ=>Woi;>%_{cgmi@`deAv(VPltu5SgyY~lUsh{O1;j> z)nYF}&SIS<^;~|QFfQN`wYbIn423?Jm#2tTrtHPu-15D2aj07?lH7|vfLTuHu#zlk zVb-s}D_86lfW}mzngoj}Lo6FsjykjQ17YK_s%OD&LVir0{xK@`n&}CF2^QWHjt}@k zER3u70)FVpD?SLeV=F>O`JcmA3*_%6mVpc%UaP=8Zq?bISMQK((rkLHIsT66nYQXQ zqHyCpVTM!&dDDCjAH=DuglyD5vszXe^l{}Z-N>&Krm`o0OE&Dnt=C=I%{N`o1wrNN8Wa;e*RU@Ghr=6Oym(}Fp*)LH*zzrc$n zil0+|yfEIU?~lgIoVY#MKQJs7N$!Bf@XfMElYBgxq$>;&y9^2xRBBb%CumAZh4J!ci9n+pW?BbD?;aetpZD=--V>%U!{wN*GDBXl1RLRJ z`grbAIB<8K6KgDJujR(rz6k+LF+{};BycG|g@wkRm>!DoigiD%_M$2!>I$ z#)39(>m`s2JP?RZMDB4ssvycI1S`-_nI5*N?Zam>Z;OrUlKfBMmg|j`b6d@>UY8}= z*YiJPwe?+FpI4b-VEtxm@?}#M*7hiw%P<+KnUe-+SUHNZ^+=rg?)!L7eWIb3O_`(Z z4Y+ERNF`lq6njG?DZIs7vMod0KyIV_09yEx&+Y;+tZXt}=QzDx41gL&k>n2AYUpzj zm@E26`o&T;WPab))>+3FL4}xyIp_iBSF^0Mq}p3nqAYLrBJZ1+;drsaaAmIpYFWW_ zkF0T}QO?@pdA|=dTeKCDGf+GwAmhy@)AgvW#+F%u1t$4dr<3fhE}*<{d`GgcG+x@y8ct&LS?ey% zr-W-8D8M?L=tRff05%|FrlMl08Zs|G)>y8{ES!JOqKSr$a3oK{_A*tF#T*Y7U`fOIz|6=75;%q&<5njD8JG6Cfd{@jA;q{zbvj8pXPTH{sP1LAT*{LX|Dsr7xLQ*-9z!cZ|d zXCaozw~K4Jb%;kzU$I2-*V1d0Qv!*L<@yUrP_fEh1MN8guN){W!(pIUX}nxZ_fy^g z<;@9JWvkTiHtW|$q@=pW-jzLxy@fn^CjZNLIG5uB2xK)A5kDtxAb}i(d)h2srUi#` zI{~^ROm@RC7eSjAAe@;MU1^k4Ip^%|G-O>3S(`{Xo?9sl#6z<16r5X`u5*+<4+TQp z=`omdWj{xb%H~Hxl5_z8eo@htMmd`sN8y-L&2=;q4h6!Tj~6#vlTX@zhKTY|^@(DR zf?CK!bfS}Mts@9ml)#cveXT9YIX+_`aL?))*5q6{t1B>YR)3Xaj{4$>6^5%E-vG!1 z3MK-oN%CLKtq+}#+=o-oV%f`aj5`;Z@=4GQu}ll*2SO^fbYw0KLQ3d4j_xQWMG@=< z639{VI?OGQaSiqzYB_Dd?@EVome`K)|0m9S+Cm zsEx~1N0RFJBWlYZQH_5}HGGb${~Xn@Oudn$-dLutB&jRQR3J$OmZ{k!HM>l)Ns3*j zPA93;%hW=WT99MELQ{@DRC5A%nR+uxy@`}@i82lpIi;N2*(7y#nYxywu95s@%BduE zYMHu}q%JK}`mkIQ{aqM~`436?4?+HNsYa62$TBsVq$ZasCP^{N)a4{~d6^ndQsc|i z^(1wjlw8jLc9OciOx;ORcb2J8k_s(TV@Ya^l=fDVx<&Gl>pPvKrb!87Nh-EX-AhvU zmMJ-$*x?g3rXsNz6CLS zQ!3j{D4U#{%o#ZcnYVKIT#`CR$|h6fXUXoFBz0z)I+>(S5?4-tK1rP?cggw76uGVC zQe8|^7YYCM+>=WlPEujHeX+EXiXgb8j&f<`cK0PIA87@dw{ky`=`%@chV(|cSIqnY zQfA(j=q{Z>vRr@#3wwj+k&&H74d PsK(Lq0fnxlobmqwbM=j; literal 0 HcmV?d00001 diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/__main__.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/__main__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0d60de44a0ff683673a39a3c57fe174180b32556 GIT binary patch literal 1230 zcmah|&1>976rYhs`=QOctGcmif?;VxU`ZWip-p`Vfz1~QZqpXKg(w7}uEy)#jy^IY zcdd}Z7F@_7mq0>t^dUGcX`%l@`WI-+LWNF&o^mtz5`5|#ZRN(f^v#<$zxQV5eU0?2 zUe^&&>&X|r-!MXdOQj&~U$FNP>^w#;axp`eTor~r#Zo-gQaxf3PqQ>E?J6sIWviTH z!YW?Xs^%Co-O}^>HLF%duC|3J8XPGCT|zqmpBE~!>Qo=h6zcXn1$uL(^&QCSIm{_R z9K3=)M6@<&6t)wHpS27{+TJZ}ZiyO$*+RPmz%5Jpwl}zi2JaQ;+{)YgHz1y6+%#m= zDH`G-+Ej0#A#PP)$&1%pB&%F>7<0a5G*df%oRwGOkbdLvOuz1U)Lq>O8ExTATVp}M zCFlkle$+jv3cScyP+{(!1@Rd5&|P$E?gt#bab|FU@8ZLGK2Yw@ub^L0OUX*M>#RWv z>I%ILs&e{Fh8>}R(`Ix3C-ZATxiAMoH{g^pv&-W!3KpXvV8W!r{Z5$9P%KhE-{=Sa zBG?vlk7j2mE+5!eE-jlJYUq1Zm|+~P2fi6m5t)5IqTF}b^iGfZlsgf1P22XIzHi&7 z!+2jm$ND1b23~lc%U7(y6ipB#lr-8?-flmddwA?g=fT3mg#+UroI!Vtn_u#v#~rV^ z?lACutGSQ$SF$;+qnRpVk(Hu2?E5_~8_J0kvc0?nA|sv?t@E;k)js5!*Ul?aFMENz z!Klq;LK$&*@B6Hp7t-N90g$da8!WQztg#BU+CZP@MS-P$6>_<}*`;9wZObstw2(tH zz$q2N>CueP&3?q?f5;6f literal 0 HcmV?d00001 diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/__main__.cpython-312.pyc b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/__main__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c8961b076b842c0d9cd62d9ea36459adc9a973c6 GIT binary patch literal 1056 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,0): " + _dafny.string_of(_dafny.Seq("Test failures occurred: see above.\n"))) + diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/test_dafny_wrapper.py b/AwsEncryptionSDK/runtimes/python/test/internaldafny/test_dafny_wrapper.py new file mode 100644 index 000000000..e617c3e2e --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/test/internaldafny/test_dafny_wrapper.py @@ -0,0 +1,21 @@ +# Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + +""" +Wrapper file for executing Dafny tests from pytest. +This allows us to import modules required by Dafny-generated tests +before executing Dafny-generated tests. +pytest will find and execute the `test_dafny` method below, +which will execute the `internaldafny_test_executor.py` file in the `dafny` directory. +""" + +import sys + +internaldafny_dir = '/'.join(__file__.split("/")[:-1]) + +sys.path.append(internaldafny_dir + "/extern") +sys.path.append(internaldafny_dir + "/generated") + + +def test_dafny(): + from .generated import __main__ diff --git a/AwsEncryptionSDK/runtimes/python/tox.ini b/AwsEncryptionSDK/runtimes/python/tox.ini new file mode 100644 index 000000000..971b68b0e --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/tox.ini @@ -0,0 +1,14 @@ +[tox] +isolated_build = True +envlist = + py{311,312} + +[testenv] +skip_install = true +allowlist_externals = poetry +passenv = AWS_* +commands_pre = + poetry lock + poetry install +commands = + poetry run pytest -s -v test/ diff --git a/mpl b/mpl index 70e580991..8e0715ca2 160000 --- a/mpl +++ b/mpl @@ -1 +1 @@ -Subproject commit 70e580991678387ce897a286c4f7f449aa616785 +Subproject commit 8e0715ca2f8131047b3a8ac8d7fea76587c5e15b From 7574c6132920c3db8fade658e936f662f116a7bc Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Thu, 12 Dec 2024 11:42:36 -0800 Subject: [PATCH 02/50] wip --- .../AwsCryptographyEncryptionSdkTypes.dfy | 2 +- AwsEncryptionSDK/runtimes/python/poetry.lock | 118 ++++++++++-------- .../runtimes/python/pyproject.toml | 2 +- .../__pycache__/__init__.cpython-311.pyc | Bin 307 -> 298 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 284 -> 275 bytes .../AwsCryptographyEncryptionSdkTypes.py | 1 + .../generated/AwsEncryptionSdkOperations.py | 1 + .../generated/EncryptDecryptHelpers.py | 1 + .../generated/EncryptedDataKeys.py | 1 + .../generated/EncryptionContext.py | 1 + .../internaldafny/generated/EncryptionSdk.py | 1 + .../internaldafny/generated/Frames.py | 1 + .../internaldafny/generated/Header.py | 1 + .../internaldafny/generated/HeaderAuth.py | 1 + .../internaldafny/generated/HeaderTypes.py | 1 + .../internaldafny/generated/KeyDerivation.py | 1 + .../internaldafny/generated/MessageBody.py | 1 + .../generated/SerializableTypes.py | 1 + .../generated/SerializeFunctions.py | 1 + .../generated/SharedHeaderFunctions.py | 1 + .../internaldafny/generated/V1HeaderBody.py | 1 + .../internaldafny/generated/V2HeaderBody.py | 1 + ...tographyEncryptionSdkTypes.cpython-311.pyc | Bin 54096 -> 0 bytes ...tographyEncryptionSdkTypes.cpython-312.pyc | Bin 47199 -> 0 bytes ...AwsEncryptionSdkOperations.cpython-311.pyc | Bin 54846 -> 0 bytes ...AwsEncryptionSdkOperations.cpython-312.pyc | Bin 50624 -> 0 bytes .../EncryptDecryptHelpers.cpython-311.pyc | Bin 57077 -> 0 bytes .../EncryptDecryptHelpers.cpython-312.pyc | Bin 51191 -> 0 bytes .../EncryptedDataKeys.cpython-311.pyc | Bin 26856 -> 0 bytes .../EncryptedDataKeys.cpython-312.pyc | Bin 22286 -> 0 bytes .../EncryptionContext.cpython-311.pyc | Bin 35977 -> 0 bytes .../EncryptionContext.cpython-312.pyc | Bin 31141 -> 0 bytes .../__pycache__/EncryptionSdk.cpython-311.pyc | Bin 26784 -> 0 bytes .../__pycache__/EncryptionSdk.cpython-312.pyc | Bin 22116 -> 0 bytes .../__pycache__/Frames.cpython-311.pyc | Bin 41850 -> 0 bytes .../__pycache__/Frames.cpython-312.pyc | Bin 36946 -> 0 bytes .../__pycache__/Header.cpython-311.pyc | Bin 29091 -> 0 bytes .../__pycache__/Header.cpython-312.pyc | Bin 24598 -> 0 bytes .../__pycache__/HeaderAuth.cpython-311.pyc | Bin 25856 -> 0 bytes .../__pycache__/HeaderAuth.cpython-312.pyc | Bin 21259 -> 0 bytes .../__pycache__/HeaderTypes.cpython-311.pyc | Bin 43572 -> 0 bytes .../__pycache__/HeaderTypes.cpython-312.pyc | Bin 37568 -> 0 bytes .../__pycache__/KeyDerivation.cpython-311.pyc | Bin 36990 -> 0 bytes .../__pycache__/KeyDerivation.cpython-312.pyc | Bin 31937 -> 0 bytes .../__pycache__/MessageBody.cpython-311.pyc | Bin 50315 -> 0 bytes .../__pycache__/MessageBody.cpython-312.pyc | Bin 43798 -> 0 bytes .../SerializableTypes.cpython-311.pyc | Bin 30069 -> 0 bytes .../SerializableTypes.cpython-312.pyc | Bin 25283 -> 0 bytes .../SerializeFunctions.cpython-311.pyc | Bin 36832 -> 0 bytes .../SerializeFunctions.cpython-312.pyc | Bin 30999 -> 0 bytes .../SharedHeaderFunctions.cpython-311.pyc | Bin 27256 -> 0 bytes .../SharedHeaderFunctions.cpython-312.pyc | Bin 22808 -> 0 bytes .../__pycache__/V1HeaderBody.cpython-311.pyc | Bin 33389 -> 0 bytes .../__pycache__/V1HeaderBody.cpython-312.pyc | Bin 28734 -> 0 bytes .../__pycache__/V2HeaderBody.cpython-311.pyc | Bin 27181 -> 0 bytes .../__pycache__/V2HeaderBody.cpython-312.pyc | Bin 22974 -> 0 bytes .../__pycache__/module_.cpython-311.pyc | Bin 28488 -> 0 bytes .../__pycache__/module_.cpython-312.pyc | Bin 22558 -> 0 bytes .../internaldafny/generated/dafny_src-py.dtr | 2 +- .../internaldafny/generated/module_.py | 1 + .../aws_cryptography_encryptionsdk/client.py | 2 +- .../aws_cryptography_encryptionsdk/config.py | 109 ++++------------ .../dafny_to_smithy.py | 8 +- .../deserialize.py | 2 - .../aws_cryptography_encryptionsdk/errors.py | 89 ++----------- .../aws_cryptography_encryptionsdk/plugin.py | 14 ++- .../smithy_to_dafny.py | 8 +- .../__pycache__/__init__.cpython-311.pyc | Bin 232 -> 223 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 220 -> 211 bytes ...dafny_wrapper.cpython-311-pytest-7.4.4.pyc | Bin 1307 -> 1298 bytes ...dafny_wrapper.cpython-312-pytest-7.4.4.pyc | Bin 1191 -> 1182 bytes .../test/internaldafny/generated/Fixtures.py | 1 + .../generated/TestCreateEsdkClient.py | 2 +- .../generated/TestEncryptDecrypt.py | 1 + .../TestReproducedEncryptionContext.py | 1 + .../TestRequiredEncryptionContext.py | 1 + .../__pycache__/Fixtures.cpython-311.pyc | Bin 53648 -> 53811 bytes .../__pycache__/Fixtures.cpython-312.pyc | Bin 47241 -> 0 bytes .../TestCreateEsdkClient.cpython-311.pyc | Bin 32493 -> 32545 bytes .../TestCreateEsdkClient.cpython-312.pyc | Bin 27755 -> 0 bytes .../TestEncryptDecrypt.cpython-311.pyc | Bin 26843 -> 27006 bytes .../TestEncryptDecrypt.cpython-312.pyc | Bin 22236 -> 0 bytes ...eproducedEncryptionContext.cpython-311.pyc | Bin 38318 -> 38481 bytes ...eproducedEncryptionContext.cpython-312.pyc | Bin 33231 -> 0 bytes ...tRequiredEncryptionContext.cpython-311.pyc | Bin 114314 -> 114477 bytes ...tRequiredEncryptionContext.cpython-312.pyc | Bin 107696 -> 0 bytes .../__pycache__/__main__.cpython-311.pyc | Bin 1230 -> 1221 bytes .../__pycache__/__main__.cpython-312.pyc | Bin 1056 -> 0 bytes .../__pycache__/module_.cpython-311.pyc | Bin 45418 -> 45581 bytes .../__pycache__/module_.cpython-312.pyc | Bin 39265 -> 0 bytes .../internaldafny/generated/dafny_test-py.dtr | 2 +- .../test/internaldafny/generated/module_.py | 1 + 92 files changed, 146 insertions(+), 237 deletions(-) delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/AwsCryptographyEncryptionSdkTypes.cpython-311.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/AwsCryptographyEncryptionSdkTypes.cpython-312.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/AwsEncryptionSdkOperations.cpython-311.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/AwsEncryptionSdkOperations.cpython-312.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/EncryptDecryptHelpers.cpython-311.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/EncryptDecryptHelpers.cpython-312.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/EncryptedDataKeys.cpython-311.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/EncryptedDataKeys.cpython-312.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/EncryptionContext.cpython-311.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/EncryptionContext.cpython-312.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/EncryptionSdk.cpython-311.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/EncryptionSdk.cpython-312.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/Frames.cpython-311.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/Frames.cpython-312.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/Header.cpython-311.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/Header.cpython-312.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/HeaderAuth.cpython-311.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/HeaderAuth.cpython-312.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/HeaderTypes.cpython-311.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/HeaderTypes.cpython-312.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/KeyDerivation.cpython-311.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/KeyDerivation.cpython-312.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/MessageBody.cpython-311.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/MessageBody.cpython-312.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/SerializableTypes.cpython-311.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/SerializableTypes.cpython-312.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/SerializeFunctions.cpython-311.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/SerializeFunctions.cpython-312.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/SharedHeaderFunctions.cpython-311.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/SharedHeaderFunctions.cpython-312.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/V1HeaderBody.cpython-311.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/V1HeaderBody.cpython-312.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/V2HeaderBody.cpython-311.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/V2HeaderBody.cpython-312.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/module_.cpython-311.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/module_.cpython-312.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/Fixtures.cpython-312.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestCreateEsdkClient.cpython-312.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestEncryptDecrypt.cpython-312.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestReproducedEncryptionContext.cpython-312.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestRequiredEncryptionContext.cpython-312.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/__main__.cpython-312.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/module_.cpython-312.pyc diff --git a/AwsEncryptionSDK/dafny/AwsEncryptionSdk/Model/AwsCryptographyEncryptionSdkTypes.dfy b/AwsEncryptionSDK/dafny/AwsEncryptionSdk/Model/AwsCryptographyEncryptionSdkTypes.dfy index 6ac7e28aa..aa2f157f3 100644 --- a/AwsEncryptionSDK/dafny/AwsEncryptionSdk/Model/AwsCryptographyEncryptionSdkTypes.dfy +++ b/AwsEncryptionSDK/dafny/AwsEncryptionSdk/Model/AwsCryptographyEncryptionSdkTypes.dfy @@ -4,7 +4,7 @@ include "../../../../mpl/StandardLibrary/src/Index.dfy" include "../../../../mpl/AwsCryptographicMaterialProviders/dafny/AwsCryptographicMaterialProviders/src/Index.dfy" include "../../../../mpl/AwsCryptographyPrimitives/src/Index.dfy" -module {:extern "software.amazon.cryptography.encryptionsdk.internaldafny.types" } AwsCryptographyEncryptionSdkTypes +module AwsCryptographyEncryptionSdkTypes { import opened Wrappers import opened StandardLibrary.UInt diff --git a/AwsEncryptionSDK/runtimes/python/poetry.lock b/AwsEncryptionSDK/runtimes/python/poetry.lock index b8e5f2a13..b01e1b745 100644 --- a/AwsEncryptionSDK/runtimes/python/poetry.lock +++ b/AwsEncryptionSDK/runtimes/python/poetry.lock @@ -1,95 +1,105 @@ -# This file is automatically @generated by Poetry 1.8.4 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. [[package]] name = "aws-cryptographic-material-providers" -version = "1.7.4" +version = "1.8.0" description = "AWS Cryptographic Material Providers Library for Python" optional = false -python-versions = "<4.0.0,>=3.11.0" -files = [ - {file = "aws_cryptographic_material_providers-1.7.4-py3-none-any.whl", hash = "sha256:e7acf347268bdf12b0adabceefc7415b0c721e6f0e88c9172d274b0eb3898256"}, - {file = "aws_cryptographic_material_providers-1.7.4.tar.gz", hash = "sha256:5798fd931142d69fdda5c5a2178fea868667448fc56cc7004992e8f0f9556846"}, -] +python-versions = "^3.11.0" +files = [] +develop = false [package.dependencies] -aws-cryptography-internal-dynamodb = "1.7.4" -aws-cryptography-internal-kms = "1.7.4" -aws-cryptography-internal-primitives = "1.7.4" -aws-cryptography-internal-standard-library = "1.7.4" +aws-cryptography-internal-dynamodb = {path = "../../../ComAmazonawsDynamodb/runtimes/python"} +aws-cryptography-internal-kms = {path = "../../../ComAmazonawsKms/runtimes/python"} +aws-cryptography-internal-primitives = {path = "../../../AwsCryptographyPrimitives/runtimes/python"} +aws-cryptography-internal-standard-library = {path = "../../../StandardLibrary/runtimes/python"} + +[package.source] +type = "directory" +url = "../../../mpl/AwsCryptographicMaterialProviders/runtimes/python" [[package]] name = "aws-cryptography-internal-dynamodb" -version = "1.7.4" +version = "1.8.0" description = "" optional = false -python-versions = "<4.0.0,>=3.11.0" -files = [ - {file = "aws_cryptography_internal_dynamodb-1.7.4-py3-none-any.whl", hash = "sha256:94e38ff50bba8f6c216c2c20fcabba989b202e4353e56f4a4c1cd5148a4cf740"}, - {file = "aws_cryptography_internal_dynamodb-1.7.4.tar.gz", hash = "sha256:89c927aec348fd5e80293bc88d0e23b346cefefa792d4172fa41ce593d0f27c1"}, -] +python-versions = "^3.11.0" +files = [] +develop = false [package.dependencies] -aws-cryptography-internal-standard-library = "1.7.4" -boto3 = ">=1.35.42,<2.0.0" +aws-cryptography-internal-standard-library = {path = "../../../StandardLibrary/runtimes/python"} +boto3 = "^1.35.42" + +[package.source] +type = "directory" +url = "../../../mpl/ComAmazonawsDynamodb/runtimes/python" [[package]] name = "aws-cryptography-internal-kms" -version = "1.7.4" +version = "1.8.0" description = "" optional = false -python-versions = "<4.0.0,>=3.11.0" -files = [ - {file = "aws_cryptography_internal_kms-1.7.4-py3-none-any.whl", hash = "sha256:e74602e428743ef281fa907e3bc45ac5074ffe055b539e5ebe7b7420bda25477"}, - {file = "aws_cryptography_internal_kms-1.7.4.tar.gz", hash = "sha256:0205d2ceaffd577b20440d7af29b7b877184b362e26c3685c4024d604d2a4102"}, -] +python-versions = "^3.11.0" +files = [] +develop = false [package.dependencies] -aws-cryptography-internal-standard-library = "1.7.4" -boto3 = ">=1.35.42,<2.0.0" +aws-cryptography-internal-standard-library = {path = "../../../StandardLibrary/runtimes/python"} +boto3 = "^1.35.42" + +[package.source] +type = "directory" +url = "../../../mpl/ComAmazonawsKms/runtimes/python" [[package]] name = "aws-cryptography-internal-primitives" -version = "1.7.4" +version = "1.8.0" description = "" optional = false -python-versions = "<4.0.0,>=3.11.0" -files = [ - {file = "aws_cryptography_internal_primitives-1.7.4-py3-none-any.whl", hash = "sha256:697e970d568bb5b07765490f7f0654bc65bcaba9daffaf8e24de9f37ecee9f30"}, - {file = "aws_cryptography_internal_primitives-1.7.4.tar.gz", hash = "sha256:35d2d9e7e1574b1991f4834db6ee7e457672596c3d88cd48757399a62be56ffb"}, -] +python-versions = "^3.11.0" +files = [] +develop = false [package.dependencies] -aws-cryptography-internal-standard-library = "1.7.4" -cryptography = ">=43.0.1,<44.0.0" +aws-cryptography-internal-standard-library = {path = "../../../StandardLibrary/runtimes/python"} +cryptography = "^43.0.1" + +[package.source] +type = "directory" +url = "../../../mpl/AwsCryptographyPrimitives/runtimes/python" [[package]] name = "aws-cryptography-internal-standard-library" -version = "1.7.4" +version = "1.8.0" description = "" optional = false -python-versions = "<4.0.0,>=3.11.0" -files = [ - {file = "aws_cryptography_internal_standard_library-1.7.4-py3-none-any.whl", hash = "sha256:117ae5b8e2061cc81d4f2f2353ee0a82b671476f8688d1ce41d5eacbbe6cbfdc"}, - {file = "aws_cryptography_internal_standard_library-1.7.4.tar.gz", hash = "sha256:65af8259087b5e2645fcc93570aa289d9b68bfcf9428b03161f48e0729be033a"}, -] +python-versions = "^3.11.0" +files = [] +develop = false [package.dependencies] DafnyRuntimePython = "4.8.1.post1" -pytz = ">=2023.3.post1,<2024.0" +pytz = "^2023.3.post1" + +[package.source] +type = "directory" +url = "../../../mpl/StandardLibrary/runtimes/python" [[package]] name = "boto3" -version = "1.35.74" +version = "1.35.79" description = "The AWS SDK for Python" optional = false python-versions = ">=3.8" files = [ - {file = "boto3-1.35.74-py3-none-any.whl", hash = "sha256:dab5bddbbe57dc707b6f6a1f25dc2823b8e234b6fe99fafef7fc406ab73031b9"}, - {file = "boto3-1.35.74.tar.gz", hash = "sha256:88370c6845ba71a4dae7f6b357099df29b3965da584be040c8e72c9902bc9492"}, + {file = "boto3-1.35.79-py3-none-any.whl", hash = "sha256:a673b0b6378c9ccbf045a31a43195b175e12aa5c37fb7635fcbfc8f48fb857b3"}, + {file = "boto3-1.35.79.tar.gz", hash = "sha256:1fa26217cd33ded82e55aed4460cd55f7223fa647916aa0d3c5d6828e6ec7135"}, ] [package.dependencies] -botocore = ">=1.35.74,<1.36.0" +botocore = ">=1.35.79,<1.36.0" jmespath = ">=0.7.1,<2.0.0" s3transfer = ">=0.10.0,<0.11.0" @@ -98,13 +108,13 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] [[package]] name = "botocore" -version = "1.35.74" +version = "1.35.79" description = "Low-level, data-driven core of boto 3." optional = false python-versions = ">=3.8" files = [ - {file = "botocore-1.35.74-py3-none-any.whl", hash = "sha256:9ac9d33d84dd9f05b35085de081552342a2c9ae22e3c4ee105723c9e92c07bd9"}, - {file = "botocore-1.35.74.tar.gz", hash = "sha256:de5c4fa9a24cef3a758974857b5c5820a12fad345ebf33c052a5988e88f33634"}, + {file = "botocore-1.35.79-py3-none-any.whl", hash = "sha256:e6b10bb9a357e3f5ca2e60f6dd15a85d311b9a476eb21b3c0c2a3b364a2897c8"}, + {file = "botocore-1.35.79.tar.gz", hash = "sha256:245bfdda1b1508539ddd1819c67a8a2cc81780adf0715d3de418d64c4247f346"}, ] [package.dependencies] @@ -388,13 +398,13 @@ crt = ["botocore[crt] (>=1.33.2,<2.0a.0)"] [[package]] name = "six" -version = "1.16.0" +version = "1.17.0" description = "Python 2 and 3 compatibility utilities" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, + {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, + {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, ] [[package]] @@ -417,4 +427,4 @@ zstd = ["zstandard (>=0.18.0)"] [metadata] lock-version = "2.0" python-versions = "^3.11.0" -content-hash = "38b29d6067d8a9455b9f0e85cc235be9cfc7722459199c2c9f3aef68959cda4b" +content-hash = "fa310949fae43a2ef38e7ac3f855cd8a658ec53eda2a7d2f314c5507e0bbadec" diff --git a/AwsEncryptionSDK/runtimes/python/pyproject.toml b/AwsEncryptionSDK/runtimes/python/pyproject.toml index eb6fb62b4..1af50967c 100644 --- a/AwsEncryptionSDK/runtimes/python/pyproject.toml +++ b/AwsEncryptionSDK/runtimes/python/pyproject.toml @@ -12,7 +12,7 @@ include = ["**/internaldafny/generated/*.py"] [tool.poetry.dependencies] python = "^3.11.0" -aws-cryptographic-material-providers = "1.7.4" +aws-cryptographic-material-providers = { path = "../../../mpl/AwsCryptographicMaterialProviders/runtimes/python", develop = false} [tool.poetry.group.test.dependencies] pytest = "^7.4.0" diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/__pycache__/__init__.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/__pycache__/__init__.cpython-311.pyc index fa1a4b097ff59f91c92243ef32f810b8f6f3d65e..de556259d29497079776cf6366fb25c162d8e7d7 100644 GIT binary patch delta 48 zcmdnYw2FyqIWI340}wo)Igu+@s!Tt$IJKx)Kc_S~H#sFgPrp3BD7zphF*$YOteF61 C)DX`A delta 57 zcmZ3*w3&%(IWI340}!m4Hjyh=xn4iCIJKx)KPx{uzbG{)M?bl!vY;eiwGy;>4K%0DBZ4 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/__pycache__/__init__.cpython-312.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/__pycache__/__init__.cpython-312.pyc index 612e139079614ebec4448d2c3bd6fd63850125a8..e9d615ba98a8efccb57d0a95fff8303d1e579916 100644 GIT binary patch delta 53 zcmbQkG?|I(G%qg~0}wo)Igu+{s!Tt$IJKx)Kc_S~H#sFgPrp3BD7zphF*$YOj9A8B I6Thhe0KGdCEdT%j delta 62 zcmbQtG>3`nG%qg~0}!m4Hjyh^xn4iCIJKx)KPx{uzbG{)M?bl!vY;eiwGyVt*{-t%+~d0B3X-Q~&?~ diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/AwsCryptographyEncryptionSdkTypes.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/AwsCryptographyEncryptionSdkTypes.py index 7fe290606..ed9650c2f 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/AwsCryptographyEncryptionSdkTypes.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/AwsCryptographyEncryptionSdkTypes.py @@ -9,6 +9,7 @@ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/AwsEncryptionSdkOperations.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/AwsEncryptionSdkOperations.py index e3df2958c..b3928dec3 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/AwsEncryptionSdkOperations.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/AwsEncryptionSdkOperations.py @@ -9,6 +9,7 @@ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptDecryptHelpers.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptDecryptHelpers.py index 4e2fcd6a3..2ab41ad2a 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptDecryptHelpers.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptDecryptHelpers.py @@ -9,6 +9,7 @@ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptedDataKeys.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptedDataKeys.py index e622d8036..fc47f3d3d 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptedDataKeys.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptedDataKeys.py @@ -9,6 +9,7 @@ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptionContext.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptionContext.py index 5906d3d3f..5e5d685eb 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptionContext.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptionContext.py @@ -9,6 +9,7 @@ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptionSdk.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptionSdk.py index 62f1d83c5..a8c45fe50 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptionSdk.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptionSdk.py @@ -9,6 +9,7 @@ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/Frames.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/Frames.py index ce1ce5118..d93453572 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/Frames.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/Frames.py @@ -9,6 +9,7 @@ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/Header.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/Header.py index 633df517f..9d6b57acd 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/Header.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/Header.py @@ -9,6 +9,7 @@ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/HeaderAuth.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/HeaderAuth.py index 2f07b5eda..2f246f8b0 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/HeaderAuth.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/HeaderAuth.py @@ -9,6 +9,7 @@ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/HeaderTypes.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/HeaderTypes.py index ff5ee535d..87df59650 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/HeaderTypes.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/HeaderTypes.py @@ -9,6 +9,7 @@ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/KeyDerivation.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/KeyDerivation.py index baba5aec9..0db7cb196 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/KeyDerivation.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/KeyDerivation.py @@ -9,6 +9,7 @@ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/MessageBody.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/MessageBody.py index 09b5f5b68..23713a579 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/MessageBody.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/MessageBody.py @@ -9,6 +9,7 @@ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/SerializableTypes.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/SerializableTypes.py index bd18bae25..ca4201035 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/SerializableTypes.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/SerializableTypes.py @@ -9,6 +9,7 @@ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/SerializeFunctions.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/SerializeFunctions.py index eb42a743f..b46fdb455 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/SerializeFunctions.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/SerializeFunctions.py @@ -9,6 +9,7 @@ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/SharedHeaderFunctions.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/SharedHeaderFunctions.py index a50d37e17..fda0f769f 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/SharedHeaderFunctions.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/SharedHeaderFunctions.py @@ -9,6 +9,7 @@ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/V1HeaderBody.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/V1HeaderBody.py index a9b35ab31..359867de7 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/V1HeaderBody.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/V1HeaderBody.py @@ -9,6 +9,7 @@ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/V2HeaderBody.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/V2HeaderBody.py index 78d75ae5a..5eeb389ef 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/V2HeaderBody.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/V2HeaderBody.py @@ -9,6 +9,7 @@ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/AwsCryptographyEncryptionSdkTypes.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/AwsCryptographyEncryptionSdkTypes.cpython-311.pyc deleted file mode 100644 index 53c73c99bec6498069f603bbf26ac9eceef3e593..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54096 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 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/AwsCryptographyEncryptionSdkTypes.cpython-312.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/AwsCryptographyEncryptionSdkTypes.cpython-312.pyc deleted file mode 100644 index 6e66d2de81a0f58de42de0e5ddca72ef1563b740..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47199 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

0T$ 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 b5ZCklS-QgK%vR%lgnftxaYdsLtrh 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 T6vX<;@l;dJ3kojMNsIpqK?x3{ diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/EncryptDecryptHelpers.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/EncryptDecryptHelpers.cpython-311.pyc deleted file mode 100644 index dec9d20df5d8d00827a167cbf09a33006c869b97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57077 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%0AC)g~ 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 IT$XI0PJFc1>Y`60$PYl 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 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/EncryptedDataKeys.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/EncryptedDataKeys.cpython-311.pyc deleted file mode 100644 index 0076e482bfb0e0f3b7a0a8c0ed175356bda7ed92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26856 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 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/EncryptionContext.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/EncryptionContext.cpython-311.pyc deleted file mode 100644 index 04c7ea02e04da7bda7e8f648477b597497c9b84d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35977 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 ML2S_=hG_FrqwZByj() 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 KDR87?-v19yAx577 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/EncryptionSdk.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/EncryptionSdk.cpython-311.pyc deleted file mode 100644 index 815db141b2f7b92db71904f628ab4a19c9c03be0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26784 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 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/EncryptionSdk.cpython-312.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/EncryptionSdk.cpython-312.pyc deleted file mode 100644 index 01c9603ba500cb9bc87f49da0ffdbdecd8ad7212..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22116 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 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/Header.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/Header.cpython-311.pyc deleted file mode 100644 index af82e8e254f81f4bf85f9b18dc4b2ffd612aee1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29091 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 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/Header.cpython-312.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/Header.cpython-312.pyc deleted file mode 100644 index f305adca35c9536dc15cffcc9216417f08199c1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24598 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≤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 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/HeaderAuth.cpython-312.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/HeaderAuth.cpython-312.pyc deleted file mode 100644 index 0afe68b6543b79a62517dfba440512a1f57980cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21259 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 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/HeaderTypes.cpython-312.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/HeaderTypes.cpython-312.pyc deleted file mode 100644 index 91327e7b4f467724ca48a3bcacc04a0a502e9df8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37568 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 HO$q-GSGt~2 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/KeyDerivation.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/KeyDerivation.cpython-311.pyc deleted file mode 100644 index a52a2267ae0aec53aaa4ed9b14e2d28ae802e191..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36990 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 BWBvdD diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/KeyDerivation.cpython-312.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/KeyDerivation.cpython-312.pyc deleted file mode 100644 index 00dbaa042ab6f06a34ca161ce03eb9b7779ffeb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31937 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 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/MessageBody.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/MessageBody.cpython-311.pyc deleted file mode 100644 index 1649692a73a5285b29c48cb745b9eca7b5bb9093..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50315 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 MlJ=)XMNZH7PY6ELkN^Mx diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/MessageBody.cpython-312.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/MessageBody.cpython-312.pyc deleted file mode 100644 index a042fc5f26938f9a71e375de4698c71db0a3d9d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43798 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 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/SerializableTypes.cpython-312.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/SerializableTypes.cpython-312.pyc deleted file mode 100644 index c4913cb7ee7cef73e6b0723b0fc280ed7a39e17b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25283 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 PH)eU1b=M)pA6@@HC2#`< diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/SerializeFunctions.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/SerializeFunctions.cpython-311.pyc deleted file mode 100644 index 7750829c1a30fca68eac4a5a43795c568ddc10e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36832 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 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/SerializeFunctions.cpython-312.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/SerializeFunctions.cpython-312.pyc deleted file mode 100644 index a13891805503877bd5e608d160e96ff2eb1f42f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30999 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 ao9G`(91kaak;LAp);#==NDMvH{{H}%!xoYN diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/SharedHeaderFunctions.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/SharedHeaderFunctions.cpython-311.pyc deleted file mode 100644 index b3479a185226cf02d79f95b1d8e77cde1d991223..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27256 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 UTl3i##&%)4F4?Cikzc3(JFnEO>i_@% diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/V1HeaderBody.cpython-312.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/V1HeaderBody.cpython-312.pyc deleted file mode 100644 index 2ce8664d1464d79aa54a738d4983ff5c6bf6aade..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28734 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%0D$X@-eddF&Uq_Sjy;u-B%9?8UD7J{vqeXnPp5 zLEF3yo*uN_u))*VfTx#itJv?RZNLuU2W^9PCFCG>)t$A&(_{8WFdMU9vBT42_GLRf zjSYBu#opxrzenv}2ZSH9Phb}|z*RfxfTxk;DrU&B=zyn@!|Q~nu>ns{IxjlGZ^9XJ zLU`l|V;45SRTFW-(}Hur1x#?Bcfr$w)9-?(u>ntWt|0acxURb(yx_c{hP;7Y)i+)6 z^r~yj4Ix%t7v1pms*7{O)7XHg=iFDZ->mzl8^W);mei0-*j2UchNo}2&v_ukE%&qs zp1$SwdEjYmz|(%u9QM2H;XM%kmRnFm3fNT{!y!B|50A$IKb{t}p9d_;H1Q)CN;fu5 ztT6NtuxeYey<0C^iz8?1;Aw~@G>3-Lgt-B=#Z;+e0Zw;bOUStX~UkK zHm>0OE5BHsW`hAWGa1CT=xAoZ4_N7(=eS@}%`U-K9V-r#rQ$GKDzR*$^wUUY;?a3S zf4GvFURJF15^&YI;xw5yr`fcDL^Cz!+E9(@7K7PI@k*7J&kfa`EvL4qg-lNQxL4dJ z%g1fDeAcPEYAr8%bH$adJ37^?o)wSDlzGgi3?!PVxsurZ*);0#C7^+jQ9Ctvikz>TUdZp z$@Wo>3&{2WEb?VXP=GxUzZ;^Ft8ok<01j-z0(+Y0qrB{7m2(Bz=H;%*6*z!?qhyak zymCo4$+8RN4Gi`5t6@oU2LliVu48!|ZDUCTU~!0pRERc(9irGl zRxSy!53x#vQ2Y;5{)ZHHgkle|@}>aW&SrL_N|>Wmn8U1GA7DFlhel)z%E~p6N;>IB zSh)dUn-)5|*HlB(*=T3wDhPdu)onV}a1T*QII4y_%<8tAYB)MO9jsgd^4irhz*|tI zOxljJcpJ(Jcsgy$`%^ckmAKmURlK}4yEo1Cdou_Vo`+onY)!Wvl(wBnZktSOn-r%m z#kb8!+h#=f)>PTO$+`EpH#Xp%^dJ>)>Q5N$(o~ynxpZWV^YmAvFupdx*zj< z_9q+L6OHZh#tx~mpM)w6z)d?cK+u-F?a36N%ju;?!kna$dX=j_;00yCY)dP9-;O ziJG=}%^|7gP@36OMY7VBXzYqN_DGFAVr@^_x*PMI4<&b;Ozb!r-*HOXaq7vlx0~Cf z=Htocu0(U!XU{nGY+adUs# z+64S|OOMntoNT$2Xt^XlJTJ{e;w@3BB`R)yK&hOLL}N$1@wn7@Jk8v@1?1d!B)MxK zv1=f{>#Vfvta#7awDlg$_je^*1`{oV@s=T}W$10Ax7&K8w&7&kbfRrqoVhApx)yKa zr8Zu?XTOq`lZovo8%BG;M9b{Mc}^V=~b( z8Sl6tbzBgej@&+SMmlmXc_flJ5`ogW2F(HTzF--_Wi@7=gwpL?)>U^?uI?*{D@0^i3XTsS_nTxkM)?&fSz| zUm5SbC3W5s_a0Xgdp5D}Y<%Cav~M`glr)2cht4DqT}&Lh7(X;E9hw#&oK9Qan0HSk zyJiwyGx07~>SDzQPu}ip|p^Dol2c(mah?hf>kB8W=Tl%o*Max-SX(LuYb`4vD*cGxWCskLigZLb3 z*fxWk_K?kwU9)gF1uhN_r@+-^AHye5w``O6RH}0dJ3#+X$?f)2Qv2w0V?Jr@7KH1z z4q?Hg))^cPjtzp3TLRdH4R9S*G7dU~YvZiy5l!Y~9fmz@SB_}#u{m63;5!@Z=nK2R z#p9(B9Q?V15h3P_z`Te9H>u-m-8_u1aG$Ug@`G;d*?Ws+kH4!jdTz7zXzrHF#nwBh4xKm5=9 zwA+(A2LPG7?ZS6m$QiIh9XjMP{p?5G-sILfTwp0@>uO2igC1Q?D}}yXrx%vFDEbNn zxf0zH&PAGDZheP9 z=yENUeiHI);3MFbC`|hmTcwKK`k6Fd(I!>2iS9NvZ@Tnn`%Eo7`xM+1ty)$rSHQ0R zv@}}e3S~W=O=GiFb_>x(-jAEM6R#ELSpk(k+ell>#azzQ!b~SMdY$CIL8SwEtkYqP%g={PGTM{B$opt-Mw(Afb~;_Jg*KB z0Yw1ZxZ-0M)lpb#;5dcv!GldviNS|5nZ#hn$wIQ`4bDY;F?`hI$yy7lsG-1YZwwBY zh*?l`Jn!w+H%Ho8P+_0$?HiEoihiMx^66f0pcsSYDJ){)wFP;XnLvF7#U6`>gZ}L3 zBv*Fll8H5PwRw{bEWx5X8o0dfDA*efcZYq;(Fn-sBZ1WcaLf8$XV;JLYIyw-S1)iV zEU3}c=A{>NVhH+KSXwAAKfu@?y&i;J%lZ*@(=`Uihu#>xy`@HY&&&E=zMBz`kR-za zteRpq1-o-nuuiZOh0TjSK7l*(knAMpaB&&Zj@S$Y-JVW(k!P6E5`F&i1ckw*4kT`EI4RqM>u|t^TKU_TuwU+T>e0L&C7O0?>m^CEa{v+y^gy!K$>Jc8(R5W{?E~&z|w)?1RNW)<=rUE0mlvt0+r4+|DZ3kgmd70q*Nuz{^2? zOLX?!CCJA5M6WLrjRgI^Pc@)?D z;36&)MXBCV+;F1Y__?eu@mf$UPys!0zScBysn^|kJP(pGQto?G(x%Fk6SEb@63S72)YJTKsn z9+bTo>9IOe+%ELAKQOOf2vp>P;_3q?0(?58rG8V6d$g#^RtpCwSd(A178SSrfb_zt zttP&lb`~ufPT=&SbV14S>eS+-H*mBn=8%$T`Wj(nBRu1IF zJ-IlcByBjmB|1A)6?Jj3v6O0pLP2=5&hj~>qKX(6^>AbZ7XYeR+<5`4&ldgUULs>HvM5IIFe%{D(A9R`P+nYIRDFFt`J&2? ziyK^ec~0G#!%2hAK3-H+W&|m1XF~bpyCxqj?zr|0hu`iMWS3@nxTsX;^jocs>neMP zaggFBBrQ(aov{^kE!WKnPlnx())@$6Tpo~*UMu#M4VZ1yP3 z0nq@gvhg>*a^)IwreMi!M<~%%AUX#XxSb;fi1&_>IoQtSxC^|q=?{ju!79Q@6Py8O7O_&8*IkC2H`F7Sc_WXLwG z6`JcPew#-**b?-)&Wj6-qc3yp(U$JFqEv`RiH$D^5ingRbUSQ8IUj;-tkb( z1-2A;^D)5P)W%16wKHQcuw}r)U~C~KJBe9fi|r3ZeKFY1Ex@6sTt>MH zoC)9n$G^z)u=VPNKZzr6%5fK%PW9G)m)%Uy51xwT_%cPIj;5 z4O~@ULdabQ$%o8f6jLwKD#bL4w0fTD6OB}g zX%ID)Vz!8yN-^g|Bb8zK1Vtm2V#1=4N-?Zxq*BbFXrxliqoR>Am#-m_F;FSy zqG+VdVa7J1;T@%G}tpA~FUl#atJS zl)1c{sV_5O%+zU2WDHb_@ry<(#qgq$G8bl9WDFD@qk5IGr8qrh)G(msq>L&ZT1ASP z5sj3&{{9M)F;FRHK{Qh4#sq^-q2xUvG6pJTR9R4)=E~X37;calNNtL_A{r@kTc~p z%*A!L(qm@tX{HR#?9t4$4KsUuGwsk!7&H4^GkG^thGyET894?UMrEyTupm+9FEe{9 zEGM3CHUy~h6f-O`!*N9ii(Ua#xw^KA=iBlCRJl4v8O4Ps?s&fG8=%V5?o*bXX=bhV gB4#gPO|hkWtR4$|c)wPA5wn-Drr5GUlrQrCABf~R761SM diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/V2HeaderBody.cpython-312.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/V2HeaderBody.cpython-312.pyc deleted file mode 100644 index da6dd78cf2867d522717c6f74fa5c4b2b8a00719..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22974 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 diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/module_.cpython-312.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__pycache__/module_.cpython-312.pyc deleted file mode 100644 index b1440ff10cf41d0811cb9eecbbdda358920b4acb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22558 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 Dict[str, Any]: - """Converts the AwsEncryptionSdkConfig to a dictionary.""" - d: Dict[str, Any] = {} - - if self.commitment_policy is not None: - d["commitment_policy"] = self.commitment_policy - - if self.max_encrypted_data_keys is not None: - d["max_encrypted_data_keys"] = self.max_encrypted_data_keys - - if self.net_v4_0_0_retry_policy is not None: - d["net_v4_0_0_retry_policy"] = self.net_v4_0_0_retry_policy - - return d - - @staticmethod - def from_dict(d: Dict[str, Any]) -> "AwsEncryptionSdkConfig": - """Creates a AwsEncryptionSdkConfig from a dictionary.""" - kwargs: Dict[str, Any] = {} - - if "commitment_policy" in d: - kwargs["commitment_policy"] = d["commitment_policy"] - - if "max_encrypted_data_keys" in d: - kwargs["max_encrypted_data_keys"] = d["max_encrypted_data_keys"] - - if "net_v4_0_0_retry_policy" in d: - kwargs["net_v4_0_0_retry_policy"] = d["net_v4_0_0_retry_policy"] - - return AwsEncryptionSdkConfig(**kwargs) - - def __repr__(self) -> str: - result = "AwsEncryptionSdkConfig(" - if self.commitment_policy is not None: - result += f"commitment_policy={repr(self.commitment_policy)}, " - - if self.max_encrypted_data_keys is not None: - result += f"max_encrypted_data_keys={repr(self.max_encrypted_data_keys)}, " - - if self.net_v4_0_0_retry_policy is not None: - result += f"net_v4_0_0_retry_policy={repr(self.net_v4_0_0_retry_policy)}" - - return result + ")" - - def __eq__(self, other: Any) -> bool: - if not isinstance(other, AwsEncryptionSdkConfig): - return False - attributes: list[str] = [ - "commitment_policy", - "max_encrypted_data_keys", - "net_v4_0_0_retry_policy", - ] - return all(getattr(self, a) == getattr(other, a) for a in attributes) - - def dafny_config_to_smithy_config(dafny_config) -> AwsEncryptionSdkConfig: - """Converts the provided Dafny shape for this localService's config into - the corresponding Smithy-modelled shape.""" - return aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.dafny_to_smithy.aws_cryptography_encryptionsdk_AwsEncryptionSdkConfig( - dafny_config - ) - + """ + Converts the provided Dafny shape for this localService's config + into the corresponding Smithy-modelled shape. + """ + return aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.dafny_to_smithy.aws_cryptography_encryptionsdk_AwsEncryptionSdkConfig(dafny_config) def smithy_config_to_dafny_config(smithy_config) -> DafnyAwsEncryptionSdkConfig: - """Converts the provided Smithy-modelled shape for this localService's - config into the corresponding Dafny shape.""" - return aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.smithy_to_dafny.aws_cryptography_encryptionsdk_AwsEncryptionSdkConfig( - smithy_config - ) + """ + Converts the provided Smithy-modelled shape for this localService's config + into the corresponding Dafny shape. + """ + return aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.smithy_to_dafny.aws_cryptography_encryptionsdk_AwsEncryptionSdkConfig(smithy_config) diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafny_to_smithy.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafny_to_smithy.py index d5aa0c5cf..c9a0bde30 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafny_to_smithy.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafny_to_smithy.py @@ -4,8 +4,8 @@ import aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.dafny_to_smithy from aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes import ( - NetV4_0_0_RetryPolicy_ALLOW__RETRY, - NetV4_0_0_RetryPolicy_FORBID__RETRY, + NetV4__0__0__RetryPolicy_ALLOW__RETRY, + NetV4__0__0__RetryPolicy_FORBID__RETRY, ) import aws_encryption_sdk.internaldafny.generated.module_ import aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.dafny_to_smithy @@ -125,10 +125,10 @@ def aws_cryptography_encryptionsdk_DecryptOutput(dafny_input): def aws_cryptography_encryptionsdk_NetV4_0_0_RetryPolicy(dafny_input): - if isinstance(dafny_input, NetV4_0_0_RetryPolicy_FORBID__RETRY): + if isinstance(dafny_input, NetV4__0__0__RetryPolicy_FORBID__RETRY): return "FORBID_RETRY" - elif isinstance(dafny_input, NetV4_0_0_RetryPolicy_ALLOW__RETRY): + elif isinstance(dafny_input, NetV4__0__0__RetryPolicy_ALLOW__RETRY): return "ALLOW_RETRY" else: diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/deserialize.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/deserialize.py index d6ecad5bb..4b448213c 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/deserialize.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/deserialize.py @@ -53,8 +53,6 @@ def _deserialize_decrypt(input: DafnyResponse, config: Config): def _deserialize_error(error: Error) -> ServiceError: if error.is_Opaque: return OpaqueError(obj=error.obj) - elif error.is_OpaqueWithText: - return OpaqueErrorWithText(obj=error.obj, obj_message=error.objMessage) elif error.is_CollectionOfErrors: return CollectionOfErrors( message=_dafny.string_of(error.message), diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/errors.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/errors.py index 98aa2158d..ed190f1a3 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/errors.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/errors.py @@ -35,7 +35,7 @@ def __init__(self, message: str): class UnknownApiError(ApiError[Literal["Unknown"]]): - """Error representing any unknown api errors.""" + """Error representing any unknown api errors""" code: Literal["Unknown"] = "Unknown" @@ -111,8 +111,8 @@ def __init__(self, *, message: str, list): def as_dict(self) -> Dict[str, Any]: """Converts the CollectionOfErrors to a dictionary. - The dictionary uses the modeled shape names rather than the - parameter names as keys to be mostly compatible with boto3. + The dictionary uses the modeled shape names rather than the parameter names as + keys to be mostly compatible with boto3. """ return { "message": self.message, @@ -124,9 +124,8 @@ def as_dict(self) -> Dict[str, Any]: def from_dict(d: Dict[str, Any]) -> "CollectionOfErrors": """Creates a CollectionOfErrors from a dictionary. - The dictionary is expected to use the modeled shape names rather - than the parameter names as keys to be mostly compatible with - boto3. + The dictionary is expected to use the modeled shape names rather than the + parameter names as keys to be mostly compatible with boto3. """ kwargs: Dict[str, Any] = {"message": d["message"], "list": d["list"]} @@ -161,8 +160,8 @@ def __init__(self, *, obj): def as_dict(self) -> Dict[str, Any]: """Converts the OpaqueError to a dictionary. - The dictionary uses the modeled shape names rather than the - parameter names as keys to be mostly compatible with boto3. + The dictionary uses the modeled shape names rather than the parameter names as + keys to be mostly compatible with boto3. """ return { "message": self.message, @@ -174,9 +173,8 @@ def as_dict(self) -> Dict[str, Any]: def from_dict(d: Dict[str, Any]) -> "OpaqueError": """Creates a OpaqueError from a dictionary. - The dictionary is expected to use the modeled shape names rather - than the parameter names as keys to be mostly compatible with - boto3. + The dictionary is expected to use the modeled shape names rather than the + parameter names as keys to be mostly compatible with boto3. """ kwargs: Dict[str, Any] = {"message": d["message"], "obj": d["obj"]} @@ -200,67 +198,11 @@ def __eq__(self, other: Any) -> bool: return all(getattr(self, a) == getattr(other, a) for a in attributes) -class OpaqueWithTextError(ApiError[Literal["OpaqueWithTextError"]]): - code: Literal["OpaqueWithTextError"] = "OpaqueWithTextError" - obj: Any # As an OpaqueWithTextError, type of obj is unknown - obj_message: str # obj_message is a message representing the details of obj - - def __init__(self, *, obj, obj_message): - super().__init__("") - self.obj = obj - self.obj_message = obj_message - - def as_dict(self) -> Dict[str, Any]: - """Converts the OpaqueWithTextError to a dictionary. - - The dictionary uses the modeled shape names rather than the - parameter names as keys to be mostly compatible with boto3. - """ - return { - "message": self.message, - "code": self.code, - "obj": self.obj, - "obj_message": self.obj_message, - } - - @staticmethod - def from_dict(d: Dict[str, Any]) -> "OpaqueWithTextError": - """Creates a OpaqueWithTextError from a dictionary. - - The dictionary is expected to use the modeled shape names rather - than the parameter names as keys to be mostly compatible with - boto3. - """ - kwargs: Dict[str, Any] = { - "message": d["message"], - "obj": d["obj"], - "obj_message": d["obj_message"], - } - - return OpaqueWithTextError(**kwargs) - - def __repr__(self) -> str: - result = "OpaqueWithTextError(" - result += f"message={self.message}," - if self.message is not None: - result += f"message={repr(self.message)}" - result += f"obj={self.obj}" - result += f"obj_message={self.obj_message}" - result += ")" - return result - - def __eq__(self, other: Any) -> bool: - if not isinstance(other, OpaqueWithTextError): - return False - if not (self.obj == other.obj): - return False - attributes: list[str] = ["message", "message"] - return all(getattr(self, a) == getattr(other, a) for a in attributes) - - def _smithy_error_to_dafny_error(e: ServiceError): - """Converts the provided native Smithy-modeled error into the corresponding - Dafny error.""" + """ + Converts the provided native Smithy-modeled error + into the corresponding Dafny error. + """ if isinstance( e, aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.errors.AwsEncryptionSdkException, @@ -292,11 +234,6 @@ def _smithy_error_to_dafny_error(e: ServiceError): obj=e.obj ) - if isinstance(e, OpaqueWithTextError): - return aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes.Error_OpaqueWithText( - obj=e.obj, objMessage=e.obj_message - ) - else: return aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes.Error_Opaque( obj=e diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/plugin.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/plugin.py index 62980eb50..62f7c5091 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/plugin.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/plugin.py @@ -14,8 +14,10 @@ def set_config_impl(config: Config): - """Set the Dafny-compiled implementation in the Smithy-Python client Config - and load our custom NoRetriesStrategy.""" + """ + Set the Dafny-compiled implementation in the Smithy-Python client Config + and load our custom NoRetriesStrategy. + """ config.dafnyImplInterface = DafnyImplInterface() if isinstance(config, AwsEncryptionSdkConfig): from aws_encryption_sdk.internaldafny.generated.ESDK import default__ @@ -27,8 +29,8 @@ def set_config_impl(config: Config): class ZeroRetryDelayToken: - """Placeholder class required by Smithy-Python client implementation. - + """ + Placeholder class required by Smithy-Python client implementation. Do not wait to retry. """ @@ -36,8 +38,8 @@ class ZeroRetryDelayToken: class NoRetriesStrategy(RetryStrategy): - """Placeholder class required by Smithy-Python client implementation. - + """ + Placeholder class required by Smithy-Python client implementation. Do not retry calling Dafny code. """ diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/smithy_to_dafny.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/smithy_to_dafny.py index a22bccd6b..daa2f88ea 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/smithy_to_dafny.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/smithy_to_dafny.py @@ -10,8 +10,8 @@ DecryptOutput_DecryptOutput as DafnyDecryptOutput, EncryptInput_EncryptInput as DafnyEncryptInput, EncryptOutput_EncryptOutput as DafnyEncryptOutput, - NetV4_0_0_RetryPolicy_ALLOW__RETRY, - NetV4_0_0_RetryPolicy_FORBID__RETRY, + NetV4__0__0__RetryPolicy_ALLOW__RETRY, + NetV4__0__0__RetryPolicy_FORBID__RETRY, ) import aws_encryption_sdk.internaldafny.generated.module_ import aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.smithy_to_dafny @@ -217,10 +217,10 @@ def aws_cryptography_encryptionsdk_AwsEncryptionSdkConfig(native_input): def aws_cryptography_encryptionsdk_NetV4_0_0_RetryPolicy(native_input): if native_input == "FORBID_RETRY": - return NetV4_0_0_RetryPolicy_FORBID__RETRY() + return NetV4__0__0__RetryPolicy_FORBID__RETRY() elif native_input == "ALLOW_RETRY": - return NetV4_0_0_RetryPolicy_ALLOW__RETRY() + return NetV4__0__0__RetryPolicy_ALLOW__RETRY() else: raise ValueError(f"No recognized enum value in enum type: {native_input=}") diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/__pycache__/__init__.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/test/internaldafny/__pycache__/__init__.cpython-311.pyc index 30b0fc1d093d55fef1adf1134100fcb804e2eb1b..13e93f272e212dfa980ba525d8ad22df8cf1b02b 100644 GIT binary patch delta 48 zcmaFCc%PALIWI340}wo)Ig!gusz^VyIJKx)Kc_S~H#sFgPrp3BD7zphF*$W&aw`CF CPY|&H delta 57 zcmcc5_=1sZIWI340}u#Ko5*FRT&*8koLW?@pOv4SUzD1Yqn}(>p_ LoRVEUF{%{+^4Jq* diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/__pycache__/__init__.cpython-312.pyc b/AwsEncryptionSDK/runtimes/python/test/internaldafny/__pycache__/__init__.cpython-312.pyc index de31595372f5dc0a3cd90ac1f9de510a8f41f93f..973e0c16de36789a0f3c059b25f68afd97816742 100644 GIT binary patch delta 53 zcmcb^c$tywG%qg~0}wo)Ig!gmsz^VyIJKx)Kc_S~H#sFgPrp3BD7zphF*$W&VkG0Q HiMtg6%zYB| delta 92 zcmcc2c!!beG%qg~0}u#Ko5*FNT&*8koLW?@pOv4SUzD1Yqn}(>p_ ooRVEUF(Ojw7Kcr4eoARhs$CH)P%k487lRldnHd=wiSU)R2Ilm}1Cr3ZIsIs6WU$-PbKc`qf OwKyfacrzx?1G%c QhG%qg~0}u#I+sNg|#CU6RBvXZQtA1#4YEiL%R(^7RQEE<(esWP|K}o)D ZNq&A#v3_cCN_O$)*G$HYK;`l*^#CAn7!Uve diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/Fixtures.py b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/Fixtures.py index 00c8fdbc5..e5b7a9b28 100644 --- a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/Fixtures.py +++ b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/Fixtures.py @@ -9,6 +9,7 @@ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestCreateEsdkClient.py b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestCreateEsdkClient.py index 182dc39e8..45f86c8c0 100644 --- a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestCreateEsdkClient.py +++ b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestCreateEsdkClient.py @@ -9,6 +9,7 @@ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 @@ -230,7 +231,6 @@ def TestNetRetryFlag(): out5_: Wrappers.Result out5_ = (d_14_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(default__.ESDK__NET__V400__MESSAGE, Wrappers.Option_None(), Wrappers.Option_Some(d_7_rawAesKeyring_), Wrappers.Option_None())) d_15_decryptOutput_ = out5_ - _dafny.print(_dafny.string_of(d_15_decryptOutput_)) if not((d_15_decryptOutput_).is_Success): raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(108,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) if not((((d_15_decryptOutput_).value).plaintext) == (d_4_expectedMessage_)): diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestEncryptDecrypt.py b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestEncryptDecrypt.py index 8e359f903..a7b375de3 100644 --- a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestEncryptDecrypt.py +++ b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestEncryptDecrypt.py @@ -9,6 +9,7 @@ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestReproducedEncryptionContext.py b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestReproducedEncryptionContext.py index 2baec3a6b..408f61150 100644 --- a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestReproducedEncryptionContext.py +++ b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestReproducedEncryptionContext.py @@ -9,6 +9,7 @@ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestRequiredEncryptionContext.py b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestRequiredEncryptionContext.py index 13a345945..ae3083fb3 100644 --- a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestRequiredEncryptionContext.py +++ b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestRequiredEncryptionContext.py @@ -9,6 +9,7 @@ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/Fixtures.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/Fixtures.cpython-311.pyc index f0770dc25fe98274c35c41ad67f16653f1667b2b..3cf9851b8e7034748406fba36649ebfee64c38dc 100644 GIT binary patch delta 897 zcmaiwTSydP7>4H?)0|z$^|YSN^MR1mF6<(q$Vdz`NW95vS$9S)cUPTNOj|?q5SrD> z7nzhLW{8%U{!mJGVFxlz&@3@cGSbLQC_+d&&_7dIcMU%;%=^6GJKy}at9GQ#j&J9A z6+@rdxQy(!2HuBt)bvEf^Zo)OfDMd(CT9Z+j7cM_4NU$v*zb=A_y7pNQr=Iyfn|~y zfvaK!l?_DtCfW;Xoa2KvfeLY=gqI0U^O2e$#nVvFMe$smBelVb=SDsEwFVERAw(fs zN<5Xcm8L@#&zpKaYiVCOtqoI%A0>3h-J1|9cCCPO` zlIz)f?BO0+HSPs?gvsWE@DSV0^Du<Gz7SjGWdOjzx>(dzH-jCXJ=KMQ)%Mt3vI57ar|~X&h}}-b!lQjk!UuE)81)?db6OHgp|XXl3ptL zOH%%%$<{N=(JB?~rWeFmN^$d@rO<*g=09f&0|$ag!oV(9Zk$P?XN*b0?$HR+Gy2Nz ECs_qKFaQ7m delta 889 zcmZuvYe-XJ7~XrP({1idr<;j4)R9W&)F1weiVXTw*bgl!blSF*WzNnSm^bp0lBJ=& zV5MYbW{5)Rhhb<=Aq+DwSehlVGNUxR(1k3c`pz+=pbx(1eCN4*?|WVjX_3}mk*cn# zR0;`Qk>?UK1BiSJ_yB(L9-CG%nq@C{7RSWw9L`_aLMJ-t9 zo5j_v#7k_5Hc(VNsG?d^SV2(-iHe#ko`QnWY`8X9}-RH%g?pjHrj2r zY~Enu&4+k2dX)l_=U&4as3-0E+e)_u`k8zlV5dF-Q)10T7dxbc74meGRm;Q!cIdNl zB7HMDlWyXT^-2FZYj8O{32XLz!Yz@>^qELX_CAtA6-n7&;zEl(HvR-?!fVdowY=rqCTClNP4qwUD z@+JTYPM?fHd&LDAL;pDL#h<$o9hFLO!PM$7d{-%FegXMb=>y=7?1>SXLa_eRhB9HT z4G$rtXb`#(z>PSnXcwNe&ZtcDca0|Sq1GrrwLrcU{2BooDLi2kwnykmb9ENLPTbuS zkIouT(tCO-O5sl3bP5uF4|evx!MJg6oaj@NxxNH1^mNGS+{Z_K(K^PGq%o)TH;5oS ASpWb4 diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/Fixtures.cpython-312.pyc b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/Fixtures.cpython-312.pyc deleted file mode 100644 index 7c6b85088d407aebdf79476dc4b4a1a2abdb3f8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47241 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 P=PI8||1+eAzG?KIZ|=R( diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestCreateEsdkClient.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestCreateEsdkClient.cpython-311.pyc index 8d089e71fe40bfc8d6479ae70f8c9eaac950c97c..8f258dc3f16853694fde700d0cbdd81d0dc141fe 100644 GIT binary patch delta 2410 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 F698rSV#WXf delta 192 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 t$Q3big^Zc8D`ec#I<)?UE2JMu9UKjuX diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestReproducedEncryptionContext.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestReproducedEncryptionContext.cpython-311.pyc index c7649ff56fec554a83f6063612b8004b78d55a59..5d2b7ee86f710c1b0326dce678c5d50bb30cc57a 100644 GIT binary patch delta 345 zcmZ3tn(5*iCf?<|yj%=GaMv(8y=Nk?BxBb`b$ec~T)t!`MuuE|5IKP{S7riZlnf(7 z3PTFx1jZa$AWs&`mIJcom>Ap{QdnCUQrMO;F)*wKVh8}r$xoid`&DYPerR!OQL%nb zX>x9IN`9Vxd45rLK~7?F>f}{?GZ?3BcIH1Xz&;bGt5~0HGp|V{^W?SW0-F~prwA}U z*vxLSUy#vl^KsYRER5=#o4r!l8K+Ku5jdYwVRJ`N1|y^2q%wuAA?;?q*?B+dRW7g`IKA2OV8WMBXyhT=7oD;r-=p4cQgd0rFe=2cD3f|C_m RIT>$Eo;X=*v)~j5CIIk2N(cY| diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestReproducedEncryptionContext.cpython-312.pyc b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestReproducedEncryptionContext.cpython-312.pyc deleted file mode 100644 index b2b099966bc4c733abb47f056032b2b202661d76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33231 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 P_WR%?5W*t%{m0({rZlUo diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestRequiredEncryptionContext.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestRequiredEncryptionContext.cpython-311.pyc index 358aa57297b212eba0dd7812d364c185493969f4..8514023993978731a4778bd86b7d0f560c9065e6 100644 GIT binary patch delta 444 zcmeDB%eM9(8}D*nUM>b8xN8`les?0TBxBu1b$ec=T)t!`MuuE|5IKP{S7riZlnf(7 z3PTFx1jZa$AWwF37Oym;+~zjkLMEw+`k}?CMaB9#rOCO;DfxN&<@rU~1v!bysgtDy zrZG<4yip)rjB&j`1sq=3?I7Zo-%%$QZl*jVoh0KjW0`DWQz#IoVIJ z0JRG;P5+R_czio!0;2&d_ivDp70_o54AbLN8AZ1TrZUc8WPHB;RT`raHzU(_*&;?( z7Dl7#%4LjG7)__|C}Uj0XfZvuoN+#*_4L2xjMEtHrcbG0yaTkPu#z#2iBW$0jcUdW zMn=Esjq%wB}JL>n#tu}VN$Y?g)DG2|0HE2 zhKq)O@o(6&^4KWy*eDyxX4IrSt}JYvI-B#=sdM%|E%P51aZ3~vh@rwzYrk(vOheB> zeyy0Zh|UawG!Tz@mUt|i0wKELUl}ZuZHS{n-m28DdKFa~l6z&v>-S5&N?>G6c8$rh zUzNP7$ERviau6%*B)P*0%Chrw^AKfqO@}4cK@g%oI@tczo4{VD9!lY4=esurIAY1TI!S4mFxh0iFVl3Ud@RQ#DrCKCr<{l?p8P@23Xt@Hz4s>z2F_8p~2ikFA z!zpj<#)ld2yuk|&Jn^qSl-mJbuD~3JGFml`6;#l(acrQHDic^oHBFgB5H)mr5_d+` zTmXFnviQps20(={+%#(%@m!onTXBNj_{&&G)FAck;F-?o$fS!pEPPEzy@Ouv!G>!( MbA)tmI!2N34aR4P3;+NC diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestRequiredEncryptionContext.cpython-312.pyc b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestRequiredEncryptionContext.cpython-312.pyc deleted file mode 100644 index 54c91102e4b64007f7c24cba1aaba074482871b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 107696 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 PsK(Lq0fnxlobmqwbM=j; diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/__main__.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/__main__.cpython-311.pyc index 0d60de44a0ff683673a39a3c57fe174180b32556..64fecea158610b079c70f2e6d06c71f695aef562 100644 GIT binary patch delta 52 zcmX@dd6biTIWI340}$LbjNZuomr<%lKeRZts8~OzG&wgpB|lHUJijQrASW?7b+b0p GVkQ8v))969 delta 61 zcmX@gd5)8NIWI340}yD=@ZZS&mr=P@KeRZts8~NMKRLfBH77?uxu~+BBwx2AKR>5f PKead|yLht_(_$t7R87Xu>O@IUZ#hDRO&6PS!>;qsL;IdrZc61Bf2Cujpappt!su0hf26_dK z=ITrAPMbTl^H##RVyhkkAErYv=uiMh#Jt11^BV!}(knwE+O#`r%D6IjbT>c6DKjkW z_B7rD6=PCzD)633weq@4-dn~D!#p-zSxR>PPBc1_6mf?+2MZieb!_;#e;!;)I70WRv2u`tZ$}~o~AY{lzu% z5T49>{BNM)3eByXceHCRrmmKA(hkLhXld%_J*Op5reW8->1sy7ZNYXB;B8wt*AfWQ zk_ET-KR?jZuTj3DET5(2eQ(UMHIFOQxByITgOqAA*v8c0o6}M$D-eD>?=$sO>G!+n zK`u*3b02fFEf$DFdZWSE(3ihuf8OBzQHos9{s-I$QFVw}h2i1>i z=W7>|4-Y<9i?Ozu^DC%q8C4Zg)iP=-qNYXv3u^nlA%XabUq6)cWu>mD)NOze?}K79 z=jJZVUicVqTpWMqKkotUpLLm6Y`WsPKCMW$ hf_F8^X0)`Yp2MYPS=iRS-KV9cGwt1-()&)Cb8xN8`l{&FI(B;&J<>h`>1xqQh?j10N_AaVj@uFM3+C>chE z$z{Ac0zjrh3PTFx1jZaiAX{TAW%` zte;bwoSU4IpQm4*UzA;tlbD=3`Ib-v&+%-M+z#Z7M7;wC8yq!2rfy?OGzwB@ySdoN-V034~EJ3fYffzjb8(466)UOtgmlJUewb$ecc35-$FDGVu$6Bu)3fNYt`HM}}v zxqQh?j10N_AaVj@t|CxEk&$8Z4qhpi$sYuz88asH2%S`J(GM+7Eh^T}%1_QOO3lg9 zPcEt~D9P6?$3{L=44SChJanJ=tlx%w+%RY@6ezI}1*JFq4ht0)zXF X$s1RQOb%GVHu>cW?#&lg*m42@hIvf@ diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/module_.cpython-312.pyc b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/module_.cpython-312.pyc deleted file mode 100644 index a20739d9de43d7752f404cbedd5ca3f1bb4ccbfb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39265 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 Date: Thu, 12 Dec 2024 15:27:55 -0800 Subject: [PATCH 03/50] python --- AwsEncryptionSDK/Makefile | 2 -- .../Model/AwsCryptographyEncryptionSdkTypes.dfy | 2 +- .../smithygenerated/aws_cryptography_encryptionsdk/config.py | 2 +- .../aws_cryptography_encryptionsdk/dafnyImplInterface.py | 2 +- .../smithygenerated/aws_cryptography_encryptionsdk/plugin.py | 2 +- 5 files changed, 4 insertions(+), 6 deletions(-) diff --git a/AwsEncryptionSDK/Makefile b/AwsEncryptionSDK/Makefile index d58a52b7e..0fea756cc 100644 --- a/AwsEncryptionSDK/Makefile +++ b/AwsEncryptionSDK/Makefile @@ -5,8 +5,6 @@ ENABLE_EXTERN_PROCESSING=1 TRANSPILE_TESTS_IN_RUST := 1 -ENABLE_EXTERN_PROCESSING=1 - include ../SharedMakefileV2.mk DIR_STRUCTURE_V2=V2 diff --git a/AwsEncryptionSDK/dafny/AwsEncryptionSdk/Model/AwsCryptographyEncryptionSdkTypes.dfy b/AwsEncryptionSDK/dafny/AwsEncryptionSdk/Model/AwsCryptographyEncryptionSdkTypes.dfy index aa2f157f3..6ac7e28aa 100644 --- a/AwsEncryptionSDK/dafny/AwsEncryptionSdk/Model/AwsCryptographyEncryptionSdkTypes.dfy +++ b/AwsEncryptionSDK/dafny/AwsEncryptionSdk/Model/AwsCryptographyEncryptionSdkTypes.dfy @@ -4,7 +4,7 @@ include "../../../../mpl/StandardLibrary/src/Index.dfy" include "../../../../mpl/AwsCryptographicMaterialProviders/dafny/AwsCryptographicMaterialProviders/src/Index.dfy" include "../../../../mpl/AwsCryptographyPrimitives/src/Index.dfy" -module AwsCryptographyEncryptionSdkTypes +module {:extern "software.amazon.cryptography.encryptionsdk.internaldafny.types" } AwsCryptographyEncryptionSdkTypes { import opened Wrappers import opened StandardLibrary.UInt diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/config.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/config.py index 8b5dc37de..bfa5f5be2 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/config.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/config.py @@ -59,8 +59,8 @@ class AwsEncryptionSdkConfig(Config): def __init__( self, - commitment_policy: Optional[str] = None, max_encrypted_data_keys: int, + commitment_policy: Optional[str] = None, net_v4_0_0_retry_policy: Optional[str] = None, ): """Constructor for AwsEncryptionSdkConfig. diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafnyImplInterface.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafnyImplInterface.py index ea1fc6f7a..e424fdcd6 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafnyImplInterface.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafnyImplInterface.py @@ -2,7 +2,7 @@ # SPDX-License-Identifier: Apache-2.0 # Do not modify this file. This file is machine generated, and any changes to it will be overwritten. -from aws_encryption_sdk.internaldafny.generated.ESDK import ESDKClient +from aws_encryption_sdk.internaldafny.generated.EncryptionSdk import ESDKClient from .dafny_protocol import DafnyRequest diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/plugin.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/plugin.py index 62f7c5091..aca4da85b 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/plugin.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/plugin.py @@ -20,7 +20,7 @@ def set_config_impl(config: Config): """ config.dafnyImplInterface = DafnyImplInterface() if isinstance(config, AwsEncryptionSdkConfig): - from aws_encryption_sdk.internaldafny.generated.ESDK import default__ + from aws_encryption_sdk.internaldafny.generated.EncryptionSdk import default__ config.dafnyImplInterface.impl = default__.ESDK( smithy_config_to_dafny_config(config) From 7b52e4bd40fd0109f93409f9cc19a7b0f54ab16f Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Thu, 12 Dec 2024 16:15:47 -0800 Subject: [PATCH 04/50] m --- TestVectors/runtimes/python/poetry.lock | 462 +++++++++++ TestVectors/runtimes/python/pyproject.toml | 24 + .../__init__.py | 8 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 368 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 330 bytes .../internaldafny/extern/__init__.py | 3 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 323 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 286 bytes .../__pycache__/wrapped_esdk.cpython-311.pyc | Bin 0 -> 2007 bytes .../__pycache__/wrapped_esdk.cpython-312.pyc | Bin 0 -> 1845 bytes .../internaldafny/extern/wrapped_esdk.py | 18 + .../generated/AllEsdkV4NoReqEc.py | 277 +++++++ .../generated/AllEsdkV4WithReqEc.py | 246 ++++++ .../generated/EsdkManifestOptions.py | 266 ++++++ .../generated/EsdkTestManifests.py | 633 ++++++++++++++ .../generated/EsdkTestVectors.py | 780 ++++++++++++++++++ .../generated/ParseEsdkJsonManifest.py | 629 ++++++++++++++ .../internaldafny/generated/WrappedESDK.py | 229 +++++ .../generated/WrappedESDKMain.py | 346 ++++++++ .../generated/WriteEsdkJsonManifests.py | 369 +++++++++ .../internaldafny/generated/WriteVectors.py | 369 +++++++++ .../internaldafny/generated/__main__.py | 15 + .../AllEsdkV4NoReqEc.cpython-311.pyc | Bin 0 -> 41096 bytes .../AllEsdkV4NoReqEc.cpython-312.pyc | Bin 0 -> 34692 bytes .../AllEsdkV4WithReqEc.cpython-311.pyc | Bin 0 -> 37299 bytes .../AllEsdkV4WithReqEc.cpython-312.pyc | Bin 0 -> 30339 bytes .../EsdkManifestOptions.cpython-311.pyc | Bin 0 -> 42464 bytes .../EsdkManifestOptions.cpython-312.pyc | Bin 0 -> 35046 bytes .../EsdkTestManifests.cpython-311.pyc | Bin 0 -> 70239 bytes .../EsdkTestManifests.cpython-312.pyc | Bin 0 -> 61554 bytes .../EsdkTestVectors.cpython-311.pyc | Bin 0 -> 105553 bytes .../EsdkTestVectors.cpython-312.pyc | Bin 0 -> 100113 bytes .../ParseEsdkJsonManifest.cpython-311.pyc | Bin 0 -> 68617 bytes .../ParseEsdkJsonManifest.cpython-312.pyc | Bin 0 -> 59215 bytes .../__pycache__/WrappedESDK.cpython-311.pyc | Bin 0 -> 35584 bytes .../__pycache__/WrappedESDK.cpython-312.pyc | Bin 0 -> 28501 bytes .../WrappedESDKMain.cpython-311.pyc | Bin 0 -> 53505 bytes .../WrappedESDKMain.cpython-312.pyc | Bin 0 -> 46599 bytes .../WriteEsdkJsonManifests.cpython-311.pyc | Bin 0 -> 53261 bytes .../WriteEsdkJsonManifests.cpython-312.pyc | Bin 0 -> 45429 bytes .../__pycache__/WriteVectors.cpython-311.pyc | Bin 0 -> 48774 bytes .../__pycache__/WriteVectors.cpython-312.pyc | Bin 0 -> 41100 bytes .../__pycache__/module_.cpython-311.pyc | Bin 0 -> 35924 bytes .../__pycache__/module_.cpython-312.pyc | Bin 0 -> 28554 bytes .../internaldafny/generated/dafny_src-py.dtr | 35 + .../internaldafny/generated/module_.py | 234 ++++++ .../__init__.py | 3 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 282 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 270 bytes .../__pycache__/shim.cpython-311.pyc | Bin 0 -> 3959 bytes .../__pycache__/shim.cpython-312.pyc | Bin 0 -> 3701 bytes .../aws_cryptography_encryptionsdk/shim.py | 66 ++ .../generated/AllEsdkV4NoReqEc.py | 277 +++++++ .../generated/AllEsdkV4WithReqEc.py | 246 ++++++ .../generated/EsdkManifestOptions.py | 266 ++++++ .../generated/EsdkTestManifests.py | 633 ++++++++++++++ .../generated/EsdkTestVectors.py | 780 ++++++++++++++++++ .../generated/ParseEsdkJsonManifest.py | 629 ++++++++++++++ .../internaldafny/generated/WrappedESDK.py | 229 +++++ .../generated/WrappedESDKMain.py | 346 ++++++++ .../generated/WriteEsdkJsonManifests.py | 369 +++++++++ .../internaldafny/generated/WriteVectors.py | 369 +++++++++ .../src/internaldafny/generated/__main__.py | 15 + .../internaldafny/generated/dafny_src-py.dtr | 35 + .../src/internaldafny/generated/module_.py | 234 ++++++ .../python/test/internaldafny/__init__.py | 2 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 218 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 206 bytes ...dafny_wrapper.cpython-311-pytest-7.4.4.pyc | Bin 0 -> 1345 bytes ...dafny_wrapper.cpython-312-pytest-7.4.4.pyc | Bin 0 -> 1214 bytes .../extern/TestWrappedESDKMain_extern.py | 10 + .../test/internaldafny/extern/__init__.py | 3 + ...TestWrappedESDKMain_extern.cpython-311.pyc | Bin 0 -> 943 bytes ...TestWrappedESDKMain_extern.cpython-312.pyc | Bin 0 -> 861 bytes .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 306 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 269 bytes .../generated/TestWrappedESDKMain.py | 278 +++++++ .../test/internaldafny/generated/__main__.py | 15 + .../TestWrappedESDKMain.cpython-311.pyc | Bin 0 -> 39437 bytes .../TestWrappedESDKMain.cpython-312.pyc | Bin 0 -> 32003 bytes .../__pycache__/__main__.cpython-311.pyc | Bin 0 -> 1216 bytes .../__pycache__/__main__.cpython-312.pyc | Bin 0 -> 1042 bytes .../__pycache__/module_.cpython-311.pyc | Bin 0 -> 36936 bytes .../__pycache__/module_.cpython-312.pyc | Bin 0 -> 29570 bytes .../internaldafny/generated/dafny_test-py.dtr | 4 + .../test/internaldafny/generated/module_.py | 248 ++++++ .../test/internaldafny/test_dafny_wrapper.py | 22 + TestVectors/runtimes/python/tox.ini | 26 + 88 files changed, 10048 insertions(+) create mode 100644 TestVectors/runtimes/python/poetry.lock create mode 100644 TestVectors/runtimes/python/pyproject.toml create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/__init__.py create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/__pycache__/__init__.cpython-311.pyc create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/__pycache__/__init__.cpython-312.pyc create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__init__.py create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__pycache__/__init__.cpython-311.pyc create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__pycache__/__init__.cpython-312.pyc create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__pycache__/wrapped_esdk.cpython-311.pyc create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__pycache__/wrapped_esdk.cpython-312.pyc create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/wrapped_esdk.py create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/AllEsdkV4NoReqEc.py create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/AllEsdkV4WithReqEc.py create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkManifestOptions.py create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkTestManifests.py create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkTestVectors.py create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/ParseEsdkJsonManifest.py create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WrappedESDK.py create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WrappedESDKMain.py create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WriteEsdkJsonManifests.py create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WriteVectors.py create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__main__.py create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/AllEsdkV4NoReqEc.cpython-311.pyc create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/AllEsdkV4NoReqEc.cpython-312.pyc create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/AllEsdkV4WithReqEc.cpython-311.pyc create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/AllEsdkV4WithReqEc.cpython-312.pyc create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/EsdkManifestOptions.cpython-311.pyc create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/EsdkManifestOptions.cpython-312.pyc create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/EsdkTestManifests.cpython-311.pyc create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/EsdkTestManifests.cpython-312.pyc create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/EsdkTestVectors.cpython-311.pyc create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/EsdkTestVectors.cpython-312.pyc create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/ParseEsdkJsonManifest.cpython-311.pyc create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/ParseEsdkJsonManifest.cpython-312.pyc create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/WrappedESDK.cpython-311.pyc create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/WrappedESDK.cpython-312.pyc create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/WrappedESDKMain.cpython-311.pyc create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/WrappedESDKMain.cpython-312.pyc create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/WriteEsdkJsonManifests.cpython-311.pyc create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/WriteEsdkJsonManifests.cpython-312.pyc create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/WriteVectors.cpython-311.pyc create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/WriteVectors.cpython-312.pyc create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/module_.cpython-311.pyc create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/module_.cpython-312.pyc create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/dafny_src-py.dtr create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/module_.py create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/smithygenerated/aws_cryptography_encryptionsdk/__init__.py create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/smithygenerated/aws_cryptography_encryptionsdk/__pycache__/__init__.cpython-311.pyc create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/smithygenerated/aws_cryptography_encryptionsdk/__pycache__/__init__.cpython-312.pyc create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/smithygenerated/aws_cryptography_encryptionsdk/__pycache__/shim.cpython-311.pyc create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/smithygenerated/aws_cryptography_encryptionsdk/__pycache__/shim.cpython-312.pyc create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/smithygenerated/aws_cryptography_encryptionsdk/shim.py create mode 100644 TestVectors/runtimes/python/src/internaldafny/generated/AllEsdkV4NoReqEc.py create mode 100644 TestVectors/runtimes/python/src/internaldafny/generated/AllEsdkV4WithReqEc.py create mode 100644 TestVectors/runtimes/python/src/internaldafny/generated/EsdkManifestOptions.py create mode 100644 TestVectors/runtimes/python/src/internaldafny/generated/EsdkTestManifests.py create mode 100644 TestVectors/runtimes/python/src/internaldafny/generated/EsdkTestVectors.py create mode 100644 TestVectors/runtimes/python/src/internaldafny/generated/ParseEsdkJsonManifest.py create mode 100644 TestVectors/runtimes/python/src/internaldafny/generated/WrappedESDK.py create mode 100644 TestVectors/runtimes/python/src/internaldafny/generated/WrappedESDKMain.py create mode 100644 TestVectors/runtimes/python/src/internaldafny/generated/WriteEsdkJsonManifests.py create mode 100644 TestVectors/runtimes/python/src/internaldafny/generated/WriteVectors.py create mode 100644 TestVectors/runtimes/python/src/internaldafny/generated/__main__.py create mode 100644 TestVectors/runtimes/python/src/internaldafny/generated/dafny_src-py.dtr create mode 100644 TestVectors/runtimes/python/src/internaldafny/generated/module_.py create mode 100644 TestVectors/runtimes/python/test/internaldafny/__init__.py create mode 100644 TestVectors/runtimes/python/test/internaldafny/__pycache__/__init__.cpython-311.pyc create mode 100644 TestVectors/runtimes/python/test/internaldafny/__pycache__/__init__.cpython-312.pyc create mode 100644 TestVectors/runtimes/python/test/internaldafny/__pycache__/test_dafny_wrapper.cpython-311-pytest-7.4.4.pyc create mode 100644 TestVectors/runtimes/python/test/internaldafny/__pycache__/test_dafny_wrapper.cpython-312-pytest-7.4.4.pyc create mode 100644 TestVectors/runtimes/python/test/internaldafny/extern/TestWrappedESDKMain_extern.py create mode 100644 TestVectors/runtimes/python/test/internaldafny/extern/__init__.py create mode 100644 TestVectors/runtimes/python/test/internaldafny/extern/__pycache__/TestWrappedESDKMain_extern.cpython-311.pyc create mode 100644 TestVectors/runtimes/python/test/internaldafny/extern/__pycache__/TestWrappedESDKMain_extern.cpython-312.pyc create mode 100644 TestVectors/runtimes/python/test/internaldafny/extern/__pycache__/__init__.cpython-311.pyc create mode 100644 TestVectors/runtimes/python/test/internaldafny/extern/__pycache__/__init__.cpython-312.pyc create mode 100644 TestVectors/runtimes/python/test/internaldafny/generated/TestWrappedESDKMain.py create mode 100644 TestVectors/runtimes/python/test/internaldafny/generated/__main__.py create mode 100644 TestVectors/runtimes/python/test/internaldafny/generated/__pycache__/TestWrappedESDKMain.cpython-311.pyc create mode 100644 TestVectors/runtimes/python/test/internaldafny/generated/__pycache__/TestWrappedESDKMain.cpython-312.pyc create mode 100644 TestVectors/runtimes/python/test/internaldafny/generated/__pycache__/__main__.cpython-311.pyc create mode 100644 TestVectors/runtimes/python/test/internaldafny/generated/__pycache__/__main__.cpython-312.pyc create mode 100644 TestVectors/runtimes/python/test/internaldafny/generated/__pycache__/module_.cpython-311.pyc create mode 100644 TestVectors/runtimes/python/test/internaldafny/generated/__pycache__/module_.cpython-312.pyc create mode 100644 TestVectors/runtimes/python/test/internaldafny/generated/dafny_test-py.dtr create mode 100644 TestVectors/runtimes/python/test/internaldafny/generated/module_.py create mode 100644 TestVectors/runtimes/python/test/internaldafny/test_dafny_wrapper.py create mode 100644 TestVectors/runtimes/python/tox.ini diff --git a/TestVectors/runtimes/python/poetry.lock b/TestVectors/runtimes/python/poetry.lock new file mode 100644 index 000000000..765b15188 --- /dev/null +++ b/TestVectors/runtimes/python/poetry.lock @@ -0,0 +1,462 @@ +# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. + +[[package]] +name = "aws-cryptographic-material-providers" +version = "1.8.0" +description = "AWS Cryptographic Material Providers Library for Python" +optional = false +python-versions = "^3.11.0" +files = [] +develop = false + +[package.dependencies] +aws-cryptography-internal-dynamodb = {path = "../../../ComAmazonawsDynamodb/runtimes/python"} +aws-cryptography-internal-kms = {path = "../../../ComAmazonawsKms/runtimes/python"} +aws-cryptography-internal-primitives = {path = "../../../AwsCryptographyPrimitives/runtimes/python"} +aws-cryptography-internal-standard-library = {path = "../../../StandardLibrary/runtimes/python"} + +[package.source] +type = "directory" +url = "../../../mpl/AwsCryptographicMaterialProviders/runtimes/python" + +[[package]] +name = "aws-cryptography-internal-dynamodb" +version = "1.8.0" +description = "" +optional = false +python-versions = "^3.11.0" +files = [] +develop = false + +[package.dependencies] +aws-cryptography-internal-standard-library = {path = "../../../StandardLibrary/runtimes/python"} +boto3 = "^1.35.42" + +[package.source] +type = "directory" +url = "../../../mpl/ComAmazonawsDynamodb/runtimes/python" + +[[package]] +name = "aws-cryptography-internal-kms" +version = "1.8.0" +description = "" +optional = false +python-versions = "^3.11.0" +files = [] +develop = false + +[package.dependencies] +aws-cryptography-internal-standard-library = {path = "../../../StandardLibrary/runtimes/python"} +boto3 = "^1.35.42" + +[package.source] +type = "directory" +url = "../../../mpl/ComAmazonawsKms/runtimes/python" + +[[package]] +name = "aws-cryptography-internal-mpl-testvectors" +version = "0.1.0" +description = "" +optional = false +python-versions = "^3.11.0" +files = [] +develop = false + +[package.dependencies] +aws-cryptographic-material-providers = {path = "../../../AwsCryptographicMaterialProviders/runtimes/python"} + +[package.source] +type = "directory" +url = "../../../mpl/TestVectorsAwsCryptographicMaterialProviders/runtimes/python" + +[[package]] +name = "aws-cryptography-internal-primitives" +version = "1.8.0" +description = "" +optional = false +python-versions = "^3.11.0" +files = [] +develop = false + +[package.dependencies] +aws-cryptography-internal-standard-library = {path = "../../../StandardLibrary/runtimes/python"} +cryptography = "^43.0.1" + +[package.source] +type = "directory" +url = "../../../mpl/AwsCryptographyPrimitives/runtimes/python" + +[[package]] +name = "aws-cryptography-internal-standard-library" +version = "1.8.0" +description = "" +optional = false +python-versions = "^3.11.0" +files = [] +develop = false + +[package.dependencies] +DafnyRuntimePython = "4.8.1.post1" +pytz = "^2023.3.post1" + +[package.source] +type = "directory" +url = "../../../mpl/StandardLibrary/runtimes/python" + +[[package]] +name = "aws-encryption-sdk" +version = "0.1.0" +description = "" +optional = false +python-versions = "^3.11.0" +files = [] +develop = false + +[package.dependencies] +aws-cryptographic-material-providers = {path = "../../../mpl/AwsCryptographicMaterialProviders/runtimes/python"} + +[package.source] +type = "directory" +url = "../../../AwsEncryptionSDK/runtimes/python" + +[[package]] +name = "boto3" +version = "1.35.80" +description = "The AWS SDK for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "boto3-1.35.80-py3-none-any.whl", hash = "sha256:21a3b18c3a7fd20e463708fe3fa035983105dc7f3a1c274e1903e1583ab91159"}, + {file = "boto3-1.35.80.tar.gz", hash = "sha256:50dae461ab5fbedfb81b690895d48a918fed0d5fdff37be1c4232770c0dc9712"}, +] + +[package.dependencies] +botocore = ">=1.35.80,<1.36.0" +jmespath = ">=0.7.1,<2.0.0" +s3transfer = ">=0.10.0,<0.11.0" + +[package.extras] +crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] + +[[package]] +name = "botocore" +version = "1.35.80" +description = "Low-level, data-driven core of boto 3." +optional = false +python-versions = ">=3.8" +files = [ + {file = "botocore-1.35.80-py3-none-any.whl", hash = "sha256:36e589dccb62380abd628b08fecfa2f7c89b99f41ec9fc42c467c94008c0be4a"}, + {file = "botocore-1.35.80.tar.gz", hash = "sha256:b8dfceca58891cb2711bd6455ec4f7159051f3796e0f64adef9bb334f19d8a92"}, +] + +[package.dependencies] +jmespath = ">=0.7.1,<2.0.0" +python-dateutil = ">=2.1,<3.0.0" +urllib3 = {version = ">=1.25.4,<2.2.0 || >2.2.0,<3", markers = "python_version >= \"3.10\""} + +[package.extras] +crt = ["awscrt (==0.22.0)"] + +[[package]] +name = "cffi" +version = "1.17.1" +description = "Foreign Function Interface for Python calling C code." +optional = false +python-versions = ">=3.8" +files = [ + {file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"}, + {file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be"}, + {file = "cffi-1.17.1-cp310-cp310-win32.whl", hash = "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c"}, + {file = "cffi-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"}, + {file = "cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655"}, + {file = "cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8"}, + {file = "cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65"}, + {file = "cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9"}, + {file = "cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d"}, + {file = "cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a"}, + {file = "cffi-1.17.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1"}, + {file = "cffi-1.17.1-cp38-cp38-win32.whl", hash = "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8"}, + {file = "cffi-1.17.1-cp38-cp38-win_amd64.whl", hash = "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e"}, + {file = "cffi-1.17.1-cp39-cp39-win32.whl", hash = "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7"}, + {file = "cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662"}, + {file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"}, +] + +[package.dependencies] +pycparser = "*" + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "cryptography" +version = "43.0.3" +description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." +optional = false +python-versions = ">=3.7" +files = [ + {file = "cryptography-43.0.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:bf7a1932ac4176486eab36a19ed4c0492da5d97123f1406cf15e41b05e787d2e"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63efa177ff54aec6e1c0aefaa1a241232dcd37413835a9b674b6e3f0ae2bfd3e"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e1ce50266f4f70bf41a2c6dc4358afadae90e2a1e5342d3c08883df1675374f"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:443c4a81bb10daed9a8f334365fe52542771f25aedaf889fd323a853ce7377d6"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:74f57f24754fe349223792466a709f8e0c093205ff0dca557af51072ff47ab18"}, + {file = "cryptography-43.0.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9762ea51a8fc2a88b70cf2995e5675b38d93bf36bd67d91721c309df184f49bd"}, + {file = "cryptography-43.0.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:81ef806b1fef6b06dcebad789f988d3b37ccaee225695cf3e07648eee0fc6b73"}, + {file = "cryptography-43.0.3-cp37-abi3-win32.whl", hash = "sha256:cbeb489927bd7af4aa98d4b261af9a5bc025bd87f0e3547e11584be9e9427be2"}, + {file = "cryptography-43.0.3-cp37-abi3-win_amd64.whl", hash = "sha256:f46304d6f0c6ab8e52770addfa2fc41e6629495548862279641972b6215451cd"}, + {file = "cryptography-43.0.3-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:8ac43ae87929a5982f5948ceda07001ee5e83227fd69cf55b109144938d96984"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:846da004a5804145a5f441b8530b4bf35afbf7da70f82409f151695b127213d5"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f996e7268af62598f2fc1204afa98a3b5712313a55c4c9d434aef49cadc91d4"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:f7b178f11ed3664fd0e995a47ed2b5ff0a12d893e41dd0494f406d1cf555cab7"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:c2e6fc39c4ab499049df3bdf567f768a723a5e8464816e8f009f121a5a9f4405"}, + {file = "cryptography-43.0.3-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e1be4655c7ef6e1bbe6b5d0403526601323420bcf414598955968c9ef3eb7d16"}, + {file = "cryptography-43.0.3-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:df6b6c6d742395dd77a23ea3728ab62f98379eff8fb61be2744d4679ab678f73"}, + {file = "cryptography-43.0.3-cp39-abi3-win32.whl", hash = "sha256:d56e96520b1020449bbace2b78b603442e7e378a9b3bd68de65c782db1507995"}, + {file = "cryptography-43.0.3-cp39-abi3-win_amd64.whl", hash = "sha256:0c580952eef9bf68c4747774cde7ec1d85a6e61de97281f2dba83c7d2c806362"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d03b5621a135bffecad2c73e9f4deb1a0f977b9a8ffe6f8e002bf6c9d07b918c"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:a2a431ee15799d6db9fe80c82b055bae5a752bef645bba795e8e52687c69efe3"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:281c945d0e28c92ca5e5930664c1cefd85efe80e5c0d2bc58dd63383fda29f83"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:f18c716be16bc1fea8e95def49edf46b82fccaa88587a45f8dc0ff6ab5d8e0a7"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:4a02ded6cd4f0a5562a8887df8b3bd14e822a90f97ac5e544c162899bc467664"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:53a583b6637ab4c4e3591a15bc9db855b8d9dee9a669b550f311480acab6eb08"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1ec0bcf7e17c0c5669d881b1cd38c4972fade441b27bda1051665faaa89bdcaa"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2ce6fae5bdad59577b44e4dfed356944fbf1d925269114c28be377692643b4ff"}, + {file = "cryptography-43.0.3.tar.gz", hash = "sha256:315b9001266a492a6ff443b61238f956b214dbec9910a081ba5b6646a055a805"}, +] + +[package.dependencies] +cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""} + +[package.extras] +docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"] +docstest = ["pyenchant (>=1.6.11)", "readme-renderer", "sphinxcontrib-spelling (>=4.0.1)"] +nox = ["nox"] +pep8test = ["check-sdist", "click", "mypy", "ruff"] +sdist = ["build"] +ssh = ["bcrypt (>=3.1.5)"] +test = ["certifi", "cryptography-vectors (==43.0.3)", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] +test-randomorder = ["pytest-randomly"] + +[[package]] +name = "dafnyruntimepython" +version = "4.8.1.post1" +description = "Dafny runtime for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "DafnyRuntimePython-4.8.1.post1-py3-none-any.whl", hash = "sha256:72e5d9e27413301b2ca5fb0be304bca96e63e6ea4e1dbcc5ee5b4bd68a5a415f"}, + {file = "dafnyruntimepython-4.8.1.post1.tar.gz", hash = "sha256:71a4983ae4a55272c7edfef012a5ff36e2db02441f3a3ac0c2bd02cf57324c4c"}, +] + +[[package]] +name = "iniconfig" +version = "2.0.0" +description = "brain-dead simple config-ini parsing" +optional = false +python-versions = ">=3.7" +files = [ + {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, + {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, +] + +[[package]] +name = "jmespath" +version = "1.0.1" +description = "JSON Matching Expressions" +optional = false +python-versions = ">=3.7" +files = [ + {file = "jmespath-1.0.1-py3-none-any.whl", hash = "sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980"}, + {file = "jmespath-1.0.1.tar.gz", hash = "sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe"}, +] + +[[package]] +name = "packaging" +version = "24.2" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, + {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, +] + +[[package]] +name = "pluggy" +version = "1.5.0" +description = "plugin and hook calling mechanisms for python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, + {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, +] + +[package.extras] +dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] + +[[package]] +name = "pycparser" +version = "2.22" +description = "C parser in Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, + {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, +] + +[[package]] +name = "pytest" +version = "7.4.4" +description = "pytest: simple powerful testing with Python" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8"}, + {file = "pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "sys_platform == \"win32\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=0.12,<2.0" + +[package.extras] +testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +description = "Extensions to the standard Python datetime module" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +files = [ + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, +] + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "pytz" +version = "2023.4" +description = "World timezone definitions, modern and historical" +optional = false +python-versions = "*" +files = [ + {file = "pytz-2023.4-py2.py3-none-any.whl", hash = "sha256:f90ef520d95e7c46951105338d918664ebfd6f1d995bd7d153127ce90efafa6a"}, + {file = "pytz-2023.4.tar.gz", hash = "sha256:31d4583c4ed539cd037956140d695e42c033a19e984bfce9964a3f7d59bc2b40"}, +] + +[[package]] +name = "s3transfer" +version = "0.10.4" +description = "An Amazon S3 Transfer Manager" +optional = false +python-versions = ">=3.8" +files = [ + {file = "s3transfer-0.10.4-py3-none-any.whl", hash = "sha256:244a76a24355363a68164241438de1b72f8781664920260c48465896b712a41e"}, + {file = "s3transfer-0.10.4.tar.gz", hash = "sha256:29edc09801743c21eb5ecbc617a152df41d3c287f67b615f73e5f750583666a7"}, +] + +[package.dependencies] +botocore = ">=1.33.2,<2.0a.0" + +[package.extras] +crt = ["botocore[crt] (>=1.33.2,<2.0a.0)"] + +[[package]] +name = "six" +version = "1.17.0" +description = "Python 2 and 3 compatibility utilities" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +files = [ + {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, + {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, +] + +[[package]] +name = "urllib3" +version = "2.2.3" +description = "HTTP library with thread-safe connection pooling, file post, and more." +optional = false +python-versions = ">=3.8" +files = [ + {file = "urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac"}, + {file = "urllib3-2.2.3.tar.gz", hash = "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9"}, +] + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +h2 = ["h2 (>=4,<5)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] + +[metadata] +lock-version = "2.0" +python-versions = "^3.11.0" +content-hash = "381f995f8cf538eccb77844811a375e3693c76060a7e7066767e7aaf835e3405" diff --git a/TestVectors/runtimes/python/pyproject.toml b/TestVectors/runtimes/python/pyproject.toml new file mode 100644 index 000000000..ff9a624d0 --- /dev/null +++ b/TestVectors/runtimes/python/pyproject.toml @@ -0,0 +1,24 @@ +[tool.poetry] +name = "aws-encryption-sdk-test-vectors" +version = "0.1.0" +description = "" +authors = ["AWS Crypto Tools "] +packages = [ + { include = "aws_encryption_sdk_test_vectors", from = "src" } +] +# Include generated internaldafny files in package distributions, +# even though they are not included in version control +include = ["**/internaldafny/generated/*.py"] + +[tool.poetry.dependencies] +python = "^3.11.0" +aws-cryptographic-material-providers = { path = "../../../mpl/AwsCryptographicMaterialProviders/runtimes/python", develop = false} +aws-cryptography-internal-mpl-testvectors = { path = "../../../mpl/TestVectorsAwsCryptographicMaterialProviders/runtimes/python", develop = false} +aws-encryption-sdk = { path = "../../../AwsEncryptionSDK/runtimes/python", develop = false} + +[tool.poetry.group.test.dependencies] +pytest = "^7.4.0" + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/__init__.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/__init__.py new file mode 100644 index 000000000..b9427e19d --- /dev/null +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/__init__.py @@ -0,0 +1,8 @@ +# Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + +# Initialize generated Dafny +from .internaldafny.generated import module_ + +# Initialize externs +from .internaldafny import extern diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/__pycache__/__init__.cpython-311.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c3c02684fe61624aac29db6292ea4932df57b89f GIT binary patch literal 368 zcmZXQy-ve05P;7~RH{mu*^pq1MCySR@dzyZ3}vt)`zTQzC$b$%7G8r#KuA1H=d4T& zNRhgA>KTdvaXOtp`}|otKd0#gC|>o={DaoFu=$Q?2kQfZCs3f6hKkJ?3moaFif1u# zd;wYV&gfFc`n{@FtwupO!UvDmoM%bDUz&i0R>iI9rgJoC3y;diWcBHvu1)Cd1=dty z^T@9pTE}%OE2(P3m$h9qx{%0=rOVMs+cmzdP43hp|9qWaqVv}%eNCQijV~*7yy^TM z>CVa^iXTysC_E|Re&+~Ln$im~ZMx0)^lP3o8~!QG=uW5%F=K3)0Lxc!{5yvcu%i_m J{!cq5ZwpFGZmIwP literal 0 HcmV?d00001 diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/__pycache__/__init__.cpython-312.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1b73b3e2305a7db9ee64f2cb8a2ccee501477a03 GIT binary patch literal 330 zcmY+Au};G<5I}uNRH{l5BMTE-hSWcR_yi_kD1#N**AmrnqO(KE!f)^mNc;(Zkd=u6 z38{ji6K5zw+;Dz(_Oo>NoaZya@no-8Z+yPQ;y02#Y>ycpgb@a;XkY;lIk8ETE>aLf zT4b-lPYM_hn%49d72^c&0+Kr~vhk>P5i4t|r5olebVyY|Ln&Kh{_mDD?mdbvXR*7N zmmbMW+v`S~*2zsv>&{jhWwr4oI!!|t>eiLstjq7;1F%wXJP6V9LlzU$s=VI~z literal 0 HcmV?d00001 diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__init__.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__init__.py new file mode 100644 index 000000000..df1c5e11e --- /dev/null +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__init__.py @@ -0,0 +1,3 @@ +from . import ( + wrapped_esdk, +) \ No newline at end of file diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__pycache__/__init__.cpython-311.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..39f1879c8a91ff96883aa4da2f3e0df6d3ac0ebc GIT binary patch literal 323 zcmajau}%Xq3;@t1C!q?_gN?H3n) cw1bCBT+og6Be|nAH=OfX2rg#!Z^9!I-$EcGd2v>*g#l`Ibk@O*LudkfFtS-iovR(2+v zSZuXJT;nv%5BVm*$8vehs9xOt!x^ogE<fG}}{Z-k4zq92?;dfK}diUqIVEY)>ur(pJl5UfVhm<- Xc$pS-$M%ri{^7d=fFI6*rz47c)d5vl literal 0 HcmV?d00001 diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__pycache__/wrapped_esdk.cpython-311.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__pycache__/wrapped_esdk.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7d5ed83e11724a1144d795ed236001696af372fa GIT binary patch literal 2007 zcmb^xU27v%^vp-HX_GY7B5OI5`Njd6xmghb)lfQ zXf7stRj(F#tVejsTv9-Vw*aeqfHk7^8);C7BFZE2k3X|P8bm{x6e~UG=zmDzhMnj{ zi<)fCUJ%4S5HJ-Crb;xd?7^Yn9VH3?rjAwNMdJ&YY+55XK*&}yDS#}C4B+fff%YND ziTasdKRpooS+ECsPBkNg=mO$xznroUE~Qj{-GxJO!qNFDl~nq(Qj~n71kF?i(9h1; zeOylsp33RfQhHY{`V$3FH#!QhVQbSLBinU|A9U*cNo$88;@fmQ44i?F7{0?B%yWY6 z@fPt3wE}|q^HM2N8EjE&xINBUNP}|hjxWEy!)|82dO}h!Y^f|D*KhXTe216rTJDH& zoozcFuSixeqCOD^3<+g?=|jTg<@H9kO&AmRS+)oMrnANCaePSP~UQ6Z{#bvGt&5oQ11@Myc*|-Wzt`_vnK84*z&#^ z5@-Uyx2}e*SHjkn_>0J!TND^Ev&9h^|do`1Z;Flyn>K#c?2Q8h>$nH zBUjQjguWbEZX&6%zzQ7OBcdFb%C`Fv=+k1MmnD*y8zI@$Y*nC1_WM<9%+!+h@(ctz z)j(g~yME4yxUnbcq_fQ5m{aI(q0rr|Rr59E^@0*#$h4x^`Fheu@kEH+d~8vST<12m z=y=Wvl+hhvcG!8F2TtJjbRNv~iXuAwBKo!(F28sx1rN`qEqLb2q#8nd8bMTxzX66NM4$iw literal 0 HcmV?d00001 diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__pycache__/wrapped_esdk.cpython-312.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__pycache__/wrapped_esdk.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b5192d0eaa16ca4a24b610586fd50ea435a41872 GIT binary patch literal 1845 zcmb_c&1>976o2~I&Dy)`-9*~-gEkmL0vqs(CXn_JyOcJxQ0gY#xFu?WkfpILMbd6( zv~g5i@WFpTbJ}aJ#X0o<=%r#Qf@#2o_R^cn`jk^=^sygxN+?u_dGGz+$GrFE&HPla zF9Q2c{I7SONC3Zcq4-KUGk(UHA=qFG9{7SK3gC(M%(7V3k|~(at$ZEA$-$ujiEybIhKBI z5xf8xb>$f$XWjBku!XZ&m>vqp-P&2LJ1KRl+lQk(Q@1%q3+|avXulIer9fS^;HGqc zYAJ@V6}bC)!ALfnfUp@Nn_l8ZsY!1KoBiEr#)CVQvv9Qe!5+CaiPdGA`kaV)yQzGu`_ZSg^vLuE zh{|Nw@o9xa-IV)^ZO})U(4{XB;m6w@SQa9Lop{;m1>4RJt!Me=MbM?a)Wyza!cTvB zdHKaq+axTI<_#?0vU`EH*TWC{o@pVC)w4P+dX?3%n)XGzi%9q-vcewo!-F7nd_=T< z6z(#2f-UYiQ#b0NcYh$(%Y_v8aaTIrY_9!QV#mK3h&CK@g7N-U#j;!<`Y_ t`4v8A|1sPi!R=$%8o}17ToJB+Urm~q$_te}PuI!QZyD|5E?} literal 0 HcmV?d00001 diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/wrapped_esdk.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/wrapped_esdk.py new file mode 100644 index 000000000..04d938847 --- /dev/null +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/wrapped_esdk.py @@ -0,0 +1,18 @@ +import aws_encryption_sdk_test_vectors.internaldafny.generated.WrappedESDK as WrappedESDK +import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers +import aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.client +import aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.config +import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_encryption_sdk_test_vectors.smithygenerated.aws_cryptography_encryptionsdk.shim as shim + +class default__(WrappedESDK.default__): + + @staticmethod + def WrappedESDK(config): + smithy_client = aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.client.AwsEncryptionSdk( + dafny_client=EncryptionSdk.default__.ESDK(config).value + ) + wrapped_client = shim.ESDKShim(smithy_client) + return Wrappers.Result_Success(wrapped_client) + +WrappedESDK.default__ = default__ \ No newline at end of file diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/AllEsdkV4NoReqEc.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/AllEsdkV4NoReqEc.py new file mode 100644 index 000000000..2be6e72aa --- /dev/null +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/AllEsdkV4NoReqEc.py @@ -0,0 +1,277 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import aws_encryption_sdk_test_vectors.internaldafny.generated.module_ as module_ +import _dafny as _dafny +import System_ as System_ +import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers +import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary +import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom +import aws_cryptography_primitives.internaldafny.generated.Random as Random +import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption +import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest +import aws_cryptography_primitives.internaldafny.generated.Digest as Digest +import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC +import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC +import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF +import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF +import aws_cryptography_primitives.internaldafny.generated.Signature as Signature +import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr +import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption +import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives +import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 +import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites +import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials +import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring +import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations +import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort +import smithy_dafny_standard_library.internaldafny.generated.Math as Math +import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq +import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils +import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants +import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID +import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping +import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets +import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext +import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping +import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring +import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms +import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.Time as Time +import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker +import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC +import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring +import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring +import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM +import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults +import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment +import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM +import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier +import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils +import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders +import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn +import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure +import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable +import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Core as JSON_Utils_Views_Core +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Writers as JSON_Utils_Views_Writers +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Cursors as JSON_Utils_Cursors +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Parsers as JSON_Utils_Parsers +import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals +import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals +import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul +import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals +import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals +import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod +import smithy_dafny_standard_library.internaldafny.generated.Power as Power +import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str as JSON_Utils_Str +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Seq as JSON_Utils_Seq +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Vectors as JSON_Utils_Vectors +import smithy_dafny_standard_library.internaldafny.generated.JSON_Errors as JSON_Errors +import smithy_dafny_standard_library.internaldafny.generated.JSON_Values as JSON_Values +import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode +import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions +import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings +import smithy_dafny_standard_library.internaldafny.generated.JSON_Spec as JSON_Spec +import smithy_dafny_standard_library.internaldafny.generated.JSON_Grammar as JSON_Grammar +import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer as JSON_Serializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer as JSON_Deserializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec +import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_API as JSON_ZeroCopy_API +import smithy_dafny_standard_library.internaldafny.generated.JSON_API as JSON_API +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.JSONHelpers as JSONHelpers +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyDescription as KeyDescription +import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyMaterial as KeyMaterial +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyrings as CreateStaticKeyrings +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyStores as CreateStaticKeyStores +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyringFromKeyDescription as KeyringFromKeyDescription +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CmmFromKeyDescription as CmmFromKeyDescription +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProviders as WrappedMaterialProviders +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeysVectorOperations as KeysVectorOperations +import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyVectors as KeyVectors +import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams +import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk.internaldafny.generated.Header as Header +import aws_encryption_sdk.internaldafny.generated.Frames as Frames +import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions +import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestVectors as TestVectors +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllHierarchy as AllHierarchy +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKms as AllKms +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAware as AllKmsMrkAware +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsRsa as AllKmsRsa +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsEcdh as AllKmsEcdh +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawAES as AllRawAES +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawRSA as AllRawRSA +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawECDH as AllRawECDH +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllDefaultCmm as AllDefaultCmm +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllMulti as AllMulti +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WriteJsonManifests as WriteJsonManifests +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CompleteVectors as CompleteVectors +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.ParseJsonManifests as ParseJsonManifests +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestManifests as TestManifests +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProvidersMain as WrappedMaterialProvidersMain +import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr +import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop +import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting +import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare +import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall +import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas +import aws_encryption_sdk_test_vectors.internaldafny.generated.WrappedESDK as WrappedESDK +import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkManifestOptions as EsdkManifestOptions +import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkTestVectors as EsdkTestVectors + +# Module: AllEsdkV4NoReqEc + +class default__: + def __init__(self): + pass + + @_dafny.classproperty + def AllPositiveKeyringTestsNoReqCmmNoKmsRsa(instance): + return ((((((((((_dafny.Set({})) | (AllDefaultCmm.default__.SuccessTestingRequiredEncryptionContextKeysReproducedEncryptionContext)) | (AllHierarchy.default__.Tests)) | (AllKms.default__.Tests)) | (AllKmsMrkAware.default__.Tests)) | (AllKmsMrkAwareDiscovery.default__.Tests)) | (AllRawAES.default__.Tests)) | (AllRawRSA.default__.Tests)) | (AllMulti.default__.Tests)) | (AllRawECDH.default__.Tests)) | (AllKmsEcdh.default__.Tests) + @_dafny.classproperty + def frameSize(instance): + return 512 + @_dafny.classproperty + def AllPostiveKeyringTestsNoDBESuiteNoReqEC(instance): + def iife0_(): + coll0_ = _dafny.Set() + compr_0_: TestVectors.EncryptTestVector + for compr_0_ in (default__.AllPositiveKeyringTestsNoReqCmmNoKmsRsa).Elements: + d_0_keyringConfig_: TestVectors.EncryptTestVector = compr_0_ + if ((d_0_keyringConfig_) in (default__.AllPositiveKeyringTestsNoReqCmmNoKmsRsa)) and (not((d_0_keyringConfig_).is_NegativeEncryptKeyringVector)): + compr_1_: AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + for compr_1_ in (AllAlgorithmSuites.default__.ESDKAlgorithmSuites).Elements: + d_1_algorithmSuite_: AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo = compr_1_ + if (d_1_algorithmSuite_) in (AllAlgorithmSuites.default__.ESDKAlgorithmSuites): + coll0_ = coll0_.union(_dafny.Set([EsdkTestVectors.EsdkEncryptTestVector_PositiveEncryptTestVector(Wrappers.Option_None(), 4, _dafny.Seq(""), _dafny.Seq(""), _dafny.Seq(""), (d_0_keyringConfig_).encryptDescription, (d_0_keyringConfig_).decryptDescription, Wrappers.Option_None(), Wrappers.Option_None(), AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT(), Wrappers.Option_Some(default__.frameSize), Wrappers.Option_Some(d_1_algorithmSuite_), (d_0_keyringConfig_).name, Wrappers.Option_Some(1))])) + return _dafny.Set(coll0_) + return iife0_() + + @_dafny.classproperty + def AwsKmsRsaTests(instance): + return AllKmsRsa.default__.Tests + @_dafny.classproperty + def esdkAlgorithmSuitesKmsRsa(instance): + def iife0_(): + coll0_ = _dafny.Set() + compr_0_: AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + for compr_0_ in (AllAlgorithmSuites.default__.AllAlgorithmSuites).Elements: + d_0_suite_: AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo = compr_0_ + if AlgorithmSuites.AlgorithmSuite._Is(d_0_suite_): + if (((d_0_suite_) in (AllAlgorithmSuites.default__.AllAlgorithmSuites)) and (not(((d_0_suite_).signature).is_ECDSA))) and (((d_0_suite_).id).is_ESDK): + coll0_ = coll0_.union(_dafny.Set([d_0_suite_])) + return _dafny.Set(coll0_) + return iife0_() + + @_dafny.classproperty + def AllPositiveKeyringTestsNoDBEKmsRsa(instance): + def iife0_(): + coll0_ = _dafny.Set() + compr_0_: TestVectors.EncryptTestVector + for compr_0_ in (default__.AwsKmsRsaTests).Elements: + d_0_keyringConfig_: TestVectors.EncryptTestVector = compr_0_ + if ((d_0_keyringConfig_) in (default__.AwsKmsRsaTests)) and (not((d_0_keyringConfig_).is_NegativeEncryptKeyringVector)): + compr_1_: AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + for compr_1_ in (default__.esdkAlgorithmSuitesKmsRsa).Elements: + d_1_algorithmSuite_: AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo = compr_1_ + if (d_1_algorithmSuite_) in (default__.esdkAlgorithmSuitesKmsRsa): + coll0_ = coll0_.union(_dafny.Set([EsdkTestVectors.EsdkEncryptTestVector_PositiveEncryptTestVector(Wrappers.Option_None(), 4, _dafny.Seq(""), _dafny.Seq(""), _dafny.Seq(""), (d_0_keyringConfig_).encryptDescription, (d_0_keyringConfig_).decryptDescription, Wrappers.Option_None(), Wrappers.Option_None(), AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT(), Wrappers.Option_Some(default__.frameSize), Wrappers.Option_Some(d_1_algorithmSuite_), (d_0_keyringConfig_).name, Wrappers.Option_Some(1))])) + return _dafny.Set(coll0_) + return iife0_() + + @_dafny.classproperty + def Tests(instance): + return (default__.AllPostiveKeyringTestsNoDBESuiteNoReqEC) | (default__.AllPositiveKeyringTestsNoDBEKmsRsa) diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/AllEsdkV4WithReqEc.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/AllEsdkV4WithReqEc.py new file mode 100644 index 000000000..a92d1789a --- /dev/null +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/AllEsdkV4WithReqEc.py @@ -0,0 +1,246 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import aws_encryption_sdk_test_vectors.internaldafny.generated.module_ as module_ +import _dafny as _dafny +import System_ as System_ +import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers +import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary +import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom +import aws_cryptography_primitives.internaldafny.generated.Random as Random +import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption +import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest +import aws_cryptography_primitives.internaldafny.generated.Digest as Digest +import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC +import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC +import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF +import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF +import aws_cryptography_primitives.internaldafny.generated.Signature as Signature +import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr +import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption +import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives +import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 +import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites +import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials +import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring +import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations +import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort +import smithy_dafny_standard_library.internaldafny.generated.Math as Math +import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq +import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils +import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants +import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID +import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping +import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets +import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext +import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping +import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring +import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms +import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.Time as Time +import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker +import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC +import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring +import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring +import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM +import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults +import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment +import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM +import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier +import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils +import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders +import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn +import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure +import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable +import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Core as JSON_Utils_Views_Core +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Writers as JSON_Utils_Views_Writers +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Cursors as JSON_Utils_Cursors +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Parsers as JSON_Utils_Parsers +import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals +import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals +import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul +import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals +import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals +import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod +import smithy_dafny_standard_library.internaldafny.generated.Power as Power +import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str as JSON_Utils_Str +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Seq as JSON_Utils_Seq +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Vectors as JSON_Utils_Vectors +import smithy_dafny_standard_library.internaldafny.generated.JSON_Errors as JSON_Errors +import smithy_dafny_standard_library.internaldafny.generated.JSON_Values as JSON_Values +import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode +import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions +import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings +import smithy_dafny_standard_library.internaldafny.generated.JSON_Spec as JSON_Spec +import smithy_dafny_standard_library.internaldafny.generated.JSON_Grammar as JSON_Grammar +import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer as JSON_Serializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer as JSON_Deserializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec +import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_API as JSON_ZeroCopy_API +import smithy_dafny_standard_library.internaldafny.generated.JSON_API as JSON_API +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.JSONHelpers as JSONHelpers +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyDescription as KeyDescription +import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyMaterial as KeyMaterial +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyrings as CreateStaticKeyrings +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyStores as CreateStaticKeyStores +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyringFromKeyDescription as KeyringFromKeyDescription +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CmmFromKeyDescription as CmmFromKeyDescription +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProviders as WrappedMaterialProviders +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeysVectorOperations as KeysVectorOperations +import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyVectors as KeyVectors +import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams +import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk.internaldafny.generated.Header as Header +import aws_encryption_sdk.internaldafny.generated.Frames as Frames +import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions +import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestVectors as TestVectors +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllHierarchy as AllHierarchy +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKms as AllKms +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAware as AllKmsMrkAware +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsRsa as AllKmsRsa +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsEcdh as AllKmsEcdh +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawAES as AllRawAES +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawRSA as AllRawRSA +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawECDH as AllRawECDH +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllDefaultCmm as AllDefaultCmm +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllMulti as AllMulti +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WriteJsonManifests as WriteJsonManifests +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CompleteVectors as CompleteVectors +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.ParseJsonManifests as ParseJsonManifests +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestManifests as TestManifests +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProvidersMain as WrappedMaterialProvidersMain +import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr +import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop +import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting +import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare +import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall +import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas +import aws_encryption_sdk_test_vectors.internaldafny.generated.WrappedESDK as WrappedESDK +import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkManifestOptions as EsdkManifestOptions +import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkTestVectors as EsdkTestVectors +import aws_encryption_sdk_test_vectors.internaldafny.generated.AllEsdkV4NoReqEc as AllEsdkV4NoReqEc + +# Module: AllEsdkV4WithReqEc + +class default__: + def __init__(self): + pass + + @_dafny.classproperty + def AllPositiveReqEcTests(instance): + return AllRequiredEncryptionContextCmm.default__.SuccessTestingRequiredEncryptionContextKeysReproducedEncryptionContext + @_dafny.classproperty + def frameSize(instance): + return 512 + @_dafny.classproperty + def AllPositiveReqEcEsdkTests(instance): + def iife0_(): + coll0_ = _dafny.Set() + compr_0_: TestVectors.EncryptTestVector + for compr_0_ in (default__.AllPositiveReqEcTests).Elements: + d_0_config_: TestVectors.EncryptTestVector = compr_0_ + if (d_0_config_) in (default__.AllPositiveReqEcTests): + compr_1_: AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + for compr_1_ in (AllAlgorithmSuites.default__.ESDKAlgorithmSuites).Elements: + d_1_algorithmSuite_: AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo = compr_1_ + if (d_1_algorithmSuite_) in (AllAlgorithmSuites.default__.ESDKAlgorithmSuites): + coll0_ = coll0_.union(_dafny.Set([EsdkTestVectors.EsdkEncryptTestVector_PositiveEncryptTestVector(Wrappers.Option_None(), 4, _dafny.Seq(""), _dafny.Seq(""), _dafny.Seq(""), (d_0_config_).encryptDescription, (d_0_config_).decryptDescription, Wrappers.Option_Some((d_0_config_).encryptionContext), (d_0_config_).reproducedEncryptionContext, AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT(), Wrappers.Option_Some(default__.frameSize), Wrappers.Option_Some(d_1_algorithmSuite_), (d_0_config_).name, Wrappers.Option_Some(1))])) + return _dafny.Set(coll0_) + return iife0_() + + @_dafny.classproperty + def Tests(instance): + return default__.AllPositiveReqEcEsdkTests diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkManifestOptions.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkManifestOptions.py new file mode 100644 index 000000000..93dcdb192 --- /dev/null +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkManifestOptions.py @@ -0,0 +1,266 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import aws_encryption_sdk_test_vectors.internaldafny.generated.module_ as module_ +import _dafny as _dafny +import System_ as System_ +import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers +import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary +import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom +import aws_cryptography_primitives.internaldafny.generated.Random as Random +import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption +import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest +import aws_cryptography_primitives.internaldafny.generated.Digest as Digest +import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC +import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC +import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF +import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF +import aws_cryptography_primitives.internaldafny.generated.Signature as Signature +import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr +import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption +import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives +import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 +import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites +import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials +import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring +import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations +import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort +import smithy_dafny_standard_library.internaldafny.generated.Math as Math +import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq +import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils +import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants +import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID +import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping +import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets +import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext +import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping +import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring +import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms +import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.Time as Time +import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker +import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC +import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring +import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring +import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM +import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults +import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment +import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM +import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier +import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils +import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders +import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn +import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure +import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable +import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Core as JSON_Utils_Views_Core +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Writers as JSON_Utils_Views_Writers +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Cursors as JSON_Utils_Cursors +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Parsers as JSON_Utils_Parsers +import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals +import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals +import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul +import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals +import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals +import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod +import smithy_dafny_standard_library.internaldafny.generated.Power as Power +import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str as JSON_Utils_Str +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Seq as JSON_Utils_Seq +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Vectors as JSON_Utils_Vectors +import smithy_dafny_standard_library.internaldafny.generated.JSON_Errors as JSON_Errors +import smithy_dafny_standard_library.internaldafny.generated.JSON_Values as JSON_Values +import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode +import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions +import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings +import smithy_dafny_standard_library.internaldafny.generated.JSON_Spec as JSON_Spec +import smithy_dafny_standard_library.internaldafny.generated.JSON_Grammar as JSON_Grammar +import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer as JSON_Serializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer as JSON_Deserializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec +import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_API as JSON_ZeroCopy_API +import smithy_dafny_standard_library.internaldafny.generated.JSON_API as JSON_API +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.JSONHelpers as JSONHelpers +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyDescription as KeyDescription +import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyMaterial as KeyMaterial +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyrings as CreateStaticKeyrings +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyStores as CreateStaticKeyStores +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyringFromKeyDescription as KeyringFromKeyDescription +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CmmFromKeyDescription as CmmFromKeyDescription +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProviders as WrappedMaterialProviders +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeysVectorOperations as KeysVectorOperations +import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyVectors as KeyVectors +import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams +import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk.internaldafny.generated.Header as Header +import aws_encryption_sdk.internaldafny.generated.Frames as Frames +import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions +import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestVectors as TestVectors +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllHierarchy as AllHierarchy +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKms as AllKms +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAware as AllKmsMrkAware +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsRsa as AllKmsRsa +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsEcdh as AllKmsEcdh +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawAES as AllRawAES +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawRSA as AllRawRSA +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawECDH as AllRawECDH +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllDefaultCmm as AllDefaultCmm +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllMulti as AllMulti +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WriteJsonManifests as WriteJsonManifests +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CompleteVectors as CompleteVectors +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.ParseJsonManifests as ParseJsonManifests +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestManifests as TestManifests +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProvidersMain as WrappedMaterialProvidersMain +import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr +import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop +import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting +import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare +import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall +import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas +import aws_encryption_sdk_test_vectors.internaldafny.generated.WrappedESDK as WrappedESDK + +# Module: EsdkManifestOptions + + +class ManifestOptions: + @classmethod + def default(cls, ): + return lambda: ManifestOptions_Decrypt(_dafny.Seq(""), _dafny.Seq(""), Wrappers.Option.default()()) + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_Decrypt(self) -> bool: + return isinstance(self, ManifestOptions_Decrypt) + @property + def is_Encrypt(self) -> bool: + return isinstance(self, ManifestOptions_Encrypt) + @property + def is_DecryptSingle(self) -> bool: + return isinstance(self, ManifestOptions_DecryptSingle) + @property + def is_EncryptManifest(self) -> bool: + return isinstance(self, ManifestOptions_EncryptManifest) + +class ManifestOptions_Decrypt(ManifestOptions, NamedTuple('Decrypt', [('manifestPath', Any), ('manifestFileName', Any), ('testName', Any)])): + def __dafnystr__(self) -> str: + return f'EsdkManifestOptions.ManifestOptions.Decrypt({_dafny.string_of(self.manifestPath)}, {_dafny.string_of(self.manifestFileName)}, {_dafny.string_of(self.testName)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, ManifestOptions_Decrypt) and self.manifestPath == __o.manifestPath and self.manifestFileName == __o.manifestFileName and self.testName == __o.testName + def __hash__(self) -> int: + return super().__hash__() + +class ManifestOptions_Encrypt(ManifestOptions, NamedTuple('Encrypt', [('manifestPath', Any), ('manifest', Any), ('decryptManifestOutput', Any), ('testName', Any)])): + def __dafnystr__(self) -> str: + return f'EsdkManifestOptions.ManifestOptions.Encrypt({_dafny.string_of(self.manifestPath)}, {_dafny.string_of(self.manifest)}, {_dafny.string_of(self.decryptManifestOutput)}, {_dafny.string_of(self.testName)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, ManifestOptions_Encrypt) and self.manifestPath == __o.manifestPath and self.manifest == __o.manifest and self.decryptManifestOutput == __o.decryptManifestOutput and self.testName == __o.testName + def __hash__(self) -> int: + return super().__hash__() + +class ManifestOptions_DecryptSingle(ManifestOptions, NamedTuple('DecryptSingle', [('keysPath', Any), ('keyDescription', Any), ('base64Bytes', Any)])): + def __dafnystr__(self) -> str: + return f'EsdkManifestOptions.ManifestOptions.DecryptSingle({_dafny.string_of(self.keysPath)}, {_dafny.string_of(self.keyDescription)}, {_dafny.string_of(self.base64Bytes)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, ManifestOptions_DecryptSingle) and self.keysPath == __o.keysPath and self.keyDescription == __o.keyDescription and self.base64Bytes == __o.base64Bytes + def __hash__(self) -> int: + return super().__hash__() + +class ManifestOptions_EncryptManifest(ManifestOptions, NamedTuple('EncryptManifest', [('encryptManifestOutput', Any), ('version', Any)])): + def __dafnystr__(self) -> str: + return f'EsdkManifestOptions.ManifestOptions.EncryptManifest({_dafny.string_of(self.encryptManifestOutput)}, {_dafny.string_of(self.version)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, ManifestOptions_EncryptManifest) and self.encryptManifestOutput == __o.encryptManifestOutput and self.version == __o.version + def __hash__(self) -> int: + return super().__hash__() + diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkTestManifests.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkTestManifests.py new file mode 100644 index 000000000..dcc58de4a --- /dev/null +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkTestManifests.py @@ -0,0 +1,633 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import aws_encryption_sdk_test_vectors.internaldafny.generated.module_ as module_ +import _dafny as _dafny +import System_ as System_ +import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers +import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary +import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom +import aws_cryptography_primitives.internaldafny.generated.Random as Random +import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption +import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest +import aws_cryptography_primitives.internaldafny.generated.Digest as Digest +import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC +import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC +import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF +import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF +import aws_cryptography_primitives.internaldafny.generated.Signature as Signature +import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr +import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption +import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives +import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 +import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites +import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials +import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring +import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations +import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort +import smithy_dafny_standard_library.internaldafny.generated.Math as Math +import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq +import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils +import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants +import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID +import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping +import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets +import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext +import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping +import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring +import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms +import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.Time as Time +import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker +import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC +import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring +import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring +import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM +import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults +import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment +import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM +import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier +import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils +import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders +import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn +import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure +import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable +import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Core as JSON_Utils_Views_Core +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Writers as JSON_Utils_Views_Writers +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Cursors as JSON_Utils_Cursors +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Parsers as JSON_Utils_Parsers +import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals +import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals +import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul +import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals +import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals +import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod +import smithy_dafny_standard_library.internaldafny.generated.Power as Power +import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str as JSON_Utils_Str +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Seq as JSON_Utils_Seq +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Vectors as JSON_Utils_Vectors +import smithy_dafny_standard_library.internaldafny.generated.JSON_Errors as JSON_Errors +import smithy_dafny_standard_library.internaldafny.generated.JSON_Values as JSON_Values +import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode +import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions +import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings +import smithy_dafny_standard_library.internaldafny.generated.JSON_Spec as JSON_Spec +import smithy_dafny_standard_library.internaldafny.generated.JSON_Grammar as JSON_Grammar +import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer as JSON_Serializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer as JSON_Deserializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec +import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_API as JSON_ZeroCopy_API +import smithy_dafny_standard_library.internaldafny.generated.JSON_API as JSON_API +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.JSONHelpers as JSONHelpers +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyDescription as KeyDescription +import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyMaterial as KeyMaterial +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyrings as CreateStaticKeyrings +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyStores as CreateStaticKeyStores +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyringFromKeyDescription as KeyringFromKeyDescription +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CmmFromKeyDescription as CmmFromKeyDescription +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProviders as WrappedMaterialProviders +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeysVectorOperations as KeysVectorOperations +import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyVectors as KeyVectors +import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams +import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk.internaldafny.generated.Header as Header +import aws_encryption_sdk.internaldafny.generated.Frames as Frames +import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions +import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestVectors as TestVectors +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllHierarchy as AllHierarchy +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKms as AllKms +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAware as AllKmsMrkAware +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsRsa as AllKmsRsa +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsEcdh as AllKmsEcdh +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawAES as AllRawAES +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawRSA as AllRawRSA +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawECDH as AllRawECDH +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllDefaultCmm as AllDefaultCmm +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllMulti as AllMulti +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WriteJsonManifests as WriteJsonManifests +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CompleteVectors as CompleteVectors +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.ParseJsonManifests as ParseJsonManifests +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestManifests as TestManifests +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProvidersMain as WrappedMaterialProvidersMain +import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr +import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop +import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting +import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare +import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall +import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas +import aws_encryption_sdk_test_vectors.internaldafny.generated.WrappedESDK as WrappedESDK +import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkManifestOptions as EsdkManifestOptions +import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkTestVectors as EsdkTestVectors +import aws_encryption_sdk_test_vectors.internaldafny.generated.AllEsdkV4NoReqEc as AllEsdkV4NoReqEc +import aws_encryption_sdk_test_vectors.internaldafny.generated.AllEsdkV4WithReqEc as AllEsdkV4WithReqEc +import aws_encryption_sdk_test_vectors.internaldafny.generated.WriteEsdkJsonManifests as WriteEsdkJsonManifests +import aws_encryption_sdk_test_vectors.internaldafny.generated.WriteVectors as WriteVectors +import aws_encryption_sdk_test_vectors.internaldafny.generated.ParseEsdkJsonManifest as ParseEsdkJsonManifest + +# Module: EsdkTestManifests + +class default__: + def __init__(self): + pass + + @staticmethod + def StartDecryptVectors(op): + output: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_0_valueOrError0_: Wrappers.Result = None + out0_: Wrappers.Result + out0_ = default__.GetManifest((op).manifestPath, (op).manifestFileName) + d_0_valueOrError0_ = out0_ + if not(not((d_0_valueOrError0_).IsFailure())): + raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestManifests.dfy(40,27): " + _dafny.string_of(d_0_valueOrError0_)) + d_1_decryptManifest_: ManifestData + d_1_decryptManifest_ = (d_0_valueOrError0_).Extract() + d_2_valueOrError1_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_2_valueOrError1_ = Wrappers.default__.Need((d_1_decryptManifest_).is_DecryptManifest, _dafny.Seq("Not a decrypt manifest")) + if (d_2_valueOrError1_).IsFailure(): + output = (d_2_valueOrError1_).PropagateFailure() + return output + d_3_valueOrError2_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_3_valueOrError2_ = ParseEsdkJsonManifest.default__.BuildDecryptTestVector(op, (d_1_decryptManifest_).version, (d_1_decryptManifest_).keys, (d_1_decryptManifest_).jsonTests) + if (d_3_valueOrError2_).IsFailure(): + output = (d_3_valueOrError2_).PropagateFailure() + return output + d_4_decryptVectors_: _dafny.Seq + d_4_decryptVectors_ = (d_3_valueOrError2_).Extract() + out1_: Wrappers.Result + out1_ = default__.TestDecrypts((d_1_decryptManifest_).keys, d_4_decryptVectors_) + output = out1_ + return output + + @staticmethod + def TestDecryptVector_q(v): + return (True) and (((v).decryptionMethod).is_OneShot) + + @staticmethod + def TestDecrypts(keys, vectors): + manifest: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + _dafny.print(_dafny.string_of(_dafny.Seq("\n=================== Starting "))) + _dafny.print(_dafny.string_of(len(vectors))) + _dafny.print(_dafny.string_of(_dafny.Seq(" Decrypt Tests =================== \n\n"))) + d_0_hasFailure_: bool + d_0_hasFailure_ = False + d_1_skipped_: int + d_1_skipped_ = 0 + hi0_ = len(vectors) + for d_2_i_ in range(0, hi0_): + d_3_vector_: EsdkTestVectors.EsdkDecryptTestVector + d_3_vector_ = (vectors)[d_2_i_] + if default__.TestDecryptVector_q(d_3_vector_): + d_4_pass_: bool + out0_: bool + out0_ = EsdkTestVectors.default__.TestDecrypt(keys, d_3_vector_) + d_4_pass_ = out0_ + if not(d_4_pass_): + d_0_hasFailure_ = True + elif True: + d_1_skipped_ = (d_1_skipped_) + (1) + _dafny.print(_dafny.string_of(_dafny.Seq("\nSKIP===> "))) + _dafny.print(_dafny.string_of((d_3_vector_).id)) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + _dafny.print(_dafny.string_of(_dafny.Seq("\n=================== Completed "))) + _dafny.print(_dafny.string_of(len(vectors))) + _dafny.print(_dafny.string_of(_dafny.Seq(" Decrypt Tests =================== \n\n"))) + if (0) < (d_1_skipped_): + _dafny.print(_dafny.string_of(_dafny.Seq("Skipped: "))) + _dafny.print(_dafny.string_of(d_1_skipped_)) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + if not(not(d_0_hasFailure_)): + raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestManifests.dfy(92,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + manifest = Wrappers.Result_Success(_dafny.Seq([])) + return manifest + + @staticmethod + def StartEncryptVectors(op): + output: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() + d_0_valueOrError0_: Wrappers.Result = None + out0_: Wrappers.Result + out0_ = default__.GetManifest((op).manifestPath, (op).manifest) + d_0_valueOrError0_ = out0_ + if (d_0_valueOrError0_).IsFailure(): + output = (d_0_valueOrError0_).PropagateFailure() + return output + d_1_encryptManifest_: ManifestData + d_1_encryptManifest_ = (d_0_valueOrError0_).Extract() + d_2_valueOrError1_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_2_valueOrError1_ = Wrappers.default__.Need((d_1_encryptManifest_).is_EncryptManifest, _dafny.Seq("Not a encrypt manifest")) + if (d_2_valueOrError1_).IsFailure(): + output = (d_2_valueOrError1_).PropagateFailure() + return output + d_3_valueOrError2_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_3_valueOrError2_ = ParseEsdkJsonManifest.default__.BuildEncryptTestVector(op, (d_1_encryptManifest_).version, (d_1_encryptManifest_).keys, (d_1_encryptManifest_).jsonTests) + if (d_3_valueOrError2_).IsFailure(): + output = (d_3_valueOrError2_).PropagateFailure() + return output + d_4_encryptVectors_: _dafny.Seq + d_4_encryptVectors_ = (d_3_valueOrError2_).Extract() + d_5_valueOrError3_: Wrappers.Result = None + out1_: Wrappers.Result + out1_ = AtomicPrimitives.default__.AtomicPrimitives(AtomicPrimitives.default__.DefaultCryptoConfig()) + d_5_valueOrError3_ = out1_ + if not(not((d_5_valueOrError3_).IsFailure())): + raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestManifests.dfy(114,13): " + _dafny.string_of(d_5_valueOrError3_)) + d_6_p_: AtomicPrimitives.AtomicPrimitivesClient + d_6_p_ = (d_5_valueOrError3_).Extract() + d_7_plaintext_: _dafny.Map + d_7_plaintext_ = _dafny.Map({}) + hi0_ = len((d_1_encryptManifest_).plaintext) + for d_8_i_ in range(0, hi0_): + let_tmp_rhs0_ = ((d_1_encryptManifest_).plaintext)[d_8_i_] + d_9_name_ = let_tmp_rhs0_[0] + d_10_length_ = let_tmp_rhs0_[1] + d_11_valueOrError4_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + out2_: Wrappers.Result + out2_ = (d_6_p_).GenerateRandomBytes(AwsCryptographyPrimitivesTypes.GenerateRandomBytesInput_GenerateRandomBytesInput(d_10_length_)) + d_11_valueOrError4_ = out2_ + if not(not((d_11_valueOrError4_).IsFailure())): + raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestManifests.dfy(119,18): " + _dafny.string_of(d_11_valueOrError4_)) + d_12_data_: _dafny.Seq + d_12_data_ = (d_11_valueOrError4_).Extract() + _dafny.print(_dafny.string_of((((op).decryptManifestOutput) + (EsdkTestVectors.default__.plaintextPathRoot)) + (d_9_name_))) + _dafny.print(_dafny.string_of(_dafny.Seq("\n\n"))) + d_13_valueOrError5_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() + out3_: Wrappers.Result + out3_ = EsdkTestVectors.default__.WriteVectorsFile((((op).decryptManifestOutput) + (EsdkTestVectors.default__.plaintextPathRoot)) + (d_9_name_), d_12_data_) + d_13_valueOrError5_ = out3_ + if (d_13_valueOrError5_).IsFailure(): + output = (d_13_valueOrError5_).PropagateFailure() + return output + d_14___v0_: tuple + d_14___v0_ = (d_13_valueOrError5_).Extract() + d_7_plaintext_ = (d_7_plaintext_) | (_dafny.Map({d_9_name_: d_12_data_})) + d_15_encryptTests_q_: Wrappers.Result + out4_: Wrappers.Result + out4_ = default__.ToEncryptTests((d_1_encryptManifest_).keys, d_4_encryptVectors_) + d_15_encryptTests_q_ = out4_ + d_16_valueOrError6_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + def lambda0_(d_17_e_): + def iife0_(_pat_let6_0): + def iife1_(d_18___v1_): + return _dafny.Seq("Cmm failure") + return iife1_(_pat_let6_0) + return iife0_(EsdkTestVectors.default__.MplVectorPrintErr(d_17_e_)) + + d_16_valueOrError6_ = (d_15_encryptTests_q_).MapFailure(lambda0_) + if (d_16_valueOrError6_).IsFailure(): + output = (d_16_valueOrError6_).PropagateFailure() + return output + d_19_encryptTests_: _dafny.Seq + d_19_encryptTests_ = (d_16_valueOrError6_).Extract() + d_20_valueOrError7_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + out5_: Wrappers.Result + out5_ = default__.TestEncrypts(d_7_plaintext_, (d_1_encryptManifest_).keys, d_19_encryptTests_) + d_20_valueOrError7_ = out5_ + if (d_20_valueOrError7_).IsFailure(): + output = (d_20_valueOrError7_).PropagateFailure() + return output + d_21_decryptVectors_: _dafny.Seq + d_21_decryptVectors_ = (d_20_valueOrError7_).Extract() + d_22_valueOrError8_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() + out6_: Wrappers.Result + out6_ = WriteVectors.default__.WriteDecryptManifest(op, (d_1_encryptManifest_).keys, d_21_decryptVectors_) + d_22_valueOrError8_ = out6_ + if (d_22_valueOrError8_).IsFailure(): + output = (d_22_valueOrError8_).PropagateFailure() + return output + d_23___v2_: tuple + d_23___v2_ = (d_22_valueOrError8_).Extract() + output = Wrappers.Result_Success(()) + return output + + @staticmethod + def TestEncryptVector_q(vector): + return (True) and (not (((vector).frameLength).is_Some) or (AwsCryptographyEncryptionSdkTypes.default__.IsValid__FrameLength(((vector).frameLength).value))) + + @staticmethod + def ToEncryptTests(keys, vectors): + output: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_0_encryptTests_: _dafny.Seq + d_0_encryptTests_ = _dafny.Seq([]) + hi0_ = len(vectors) + for d_1_i_ in range(0, hi0_): + d_2_valueOrError0_: Wrappers.Result = None + out0_: Wrappers.Result + out0_ = EsdkTestVectors.default__.EncryptVectorToEncryptTest(keys, (vectors)[d_1_i_]) + d_2_valueOrError0_ = out0_ + if (d_2_valueOrError0_).IsFailure(): + output = (d_2_valueOrError0_).PropagateFailure() + return output + d_3_test_: EsdkTestVectors.EncryptTest + d_3_test_ = (d_2_valueOrError0_).Extract() + d_0_encryptTests_ = (d_0_encryptTests_) + (_dafny.Seq([d_3_test_])) + output = Wrappers.Result_Success(d_0_encryptTests_) + return output + return output + + @staticmethod + def TestEncrypts(plaintexts, keys, tests): + manifest: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + _dafny.print(_dafny.string_of(_dafny.Seq("\n=================== Starting "))) + _dafny.print(_dafny.string_of(len(tests))) + _dafny.print(_dafny.string_of(_dafny.Seq(" Encrypt Tests =================== \n\n"))) + d_0_hasFailure_: bool + d_0_hasFailure_ = False + d_1_decryptVectors_: _dafny.Seq + d_1_decryptVectors_ = _dafny.Seq([]) + d_2_skipped_: _dafny.Seq + d_2_skipped_ = _dafny.Seq([]) + hi0_ = len(tests) + for d_3_i_ in range(0, hi0_): + d_4_test_: EsdkTestVectors.EncryptTest + d_4_test_ = (tests)[d_3_i_] + d_5_valueOrError0_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_5_valueOrError0_ = Wrappers.default__.Need((((d_4_test_).vector).id).is_Some, _dafny.Seq("Vector is missing uuid")) + if (d_5_valueOrError0_).IsFailure(): + manifest = (d_5_valueOrError0_).PropagateFailure() + return manifest + if default__.TestEncryptVector_q((d_4_test_).vector): + d_6_valueOrError1_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_6_valueOrError1_ = Wrappers.default__.Need(((((d_4_test_).vector).algorithmSuiteId).is_Some) and ((((((d_4_test_).vector).algorithmSuiteId).value).id).is_ESDK), _dafny.Seq("Vector is using an algorithm suite other than ESDK")) + if (d_6_valueOrError1_).IsFailure(): + manifest = (d_6_valueOrError1_).PropagateFailure() + return manifest + d_7_valueOrError2_: Wrappers.Result = Wrappers.Result.default(EsdkTestVectors.EncryptTestOutput.default())() + out0_: Wrappers.Result + out0_ = EsdkTestVectors.default__.TestEncrypt(plaintexts, keys, d_4_test_) + d_7_valueOrError2_ = out0_ + if (d_7_valueOrError2_).IsFailure(): + manifest = (d_7_valueOrError2_).PropagateFailure() + return manifest + d_8_pass_: EsdkTestVectors.EncryptTestOutput + d_8_pass_ = (d_7_valueOrError2_).Extract() + if not((d_8_pass_).output): + d_0_hasFailure_ = True + elif ((d_8_pass_).vector).is_Some: + d_1_decryptVectors_ = (d_1_decryptVectors_) + (_dafny.Seq([((d_8_pass_).vector).value])) + elif True: + d_2_skipped_ = (d_2_skipped_) + (_dafny.Seq([((((d_4_test_).vector).id).value) + (_dafny.Seq("\n"))])) + _dafny.print(_dafny.string_of(_dafny.Seq("\nSKIP===> "))) + _dafny.print(_dafny.string_of((((d_4_test_).vector).id).value)) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + _dafny.print(_dafny.string_of(_dafny.Seq("\n=================== Completed "))) + _dafny.print(_dafny.string_of(len(tests))) + _dafny.print(_dafny.string_of(_dafny.Seq(" Encrypt Tests =================== \n\n"))) + if not(not(d_0_hasFailure_)): + raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestManifests.dfy(215,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + manifest = Wrappers.Result_Success(d_1_decryptVectors_) + return manifest + + @staticmethod + def GetManifest(manifestPath, manifestFileName): + manifestData: Wrappers.Result = None + d_0_valueOrError0_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + out0_: Wrappers.Result + out0_ = FileIO.default__.ReadBytesFromFile((manifestPath) + (manifestFileName)) + d_0_valueOrError0_ = out0_ + if (d_0_valueOrError0_).IsFailure(): + manifestData = (d_0_valueOrError0_).PropagateFailure() + return manifestData + d_1_decryptManifestBv_: _dafny.Seq + d_1_decryptManifestBv_ = (d_0_valueOrError0_).Extract() + d_2_decryptManifestBytes_: _dafny.Seq + d_2_decryptManifestBytes_ = JSONHelpers.default__.BvToBytes(d_1_decryptManifestBv_) + d_3_valueOrError1_: Wrappers.Result = Wrappers.Result.default(JSON_Values.JSON.default())() + def lambda0_(d_4_e_): + return (d_4_e_).ToString() + + d_3_valueOrError1_ = (JSON_API.default__.Deserialize(d_2_decryptManifestBytes_)).MapFailure(lambda0_) + if (d_3_valueOrError1_).IsFailure(): + manifestData = (d_3_valueOrError1_).PropagateFailure() + return manifestData + d_5_manifestJson_: JSON_Values.JSON + d_5_manifestJson_ = (d_3_valueOrError1_).Extract() + d_6_valueOrError2_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_6_valueOrError2_ = Wrappers.default__.Need((d_5_manifestJson_).is_Object, _dafny.Seq("Not a JSON object")) + if (d_6_valueOrError2_).IsFailure(): + manifestData = (d_6_valueOrError2_).PropagateFailure() + return manifestData + d_7_valueOrError3_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_7_valueOrError3_ = JSONHelpers.default__.GetObject(_dafny.Seq("manifest"), (d_5_manifestJson_).obj) + if (d_7_valueOrError3_).IsFailure(): + manifestData = (d_7_valueOrError3_).PropagateFailure() + return manifestData + d_8_manifest_: _dafny.Seq + d_8_manifest_ = (d_7_valueOrError3_).Extract() + d_9_valueOrError4_: Wrappers.Result = Wrappers.Result.default(System_.nat.default)() + d_9_valueOrError4_ = JSONHelpers.default__.GetNat(_dafny.Seq("version"), d_8_manifest_) + if (d_9_valueOrError4_).IsFailure(): + manifestData = (d_9_valueOrError4_).PropagateFailure() + return manifestData + d_10_version_: int + d_10_version_ = (d_9_valueOrError4_).Extract() + d_11_valueOrError5_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_11_valueOrError5_ = JSONHelpers.default__.GetString(_dafny.Seq("type"), d_8_manifest_) + if (d_11_valueOrError5_).IsFailure(): + manifestData = (d_11_valueOrError5_).PropagateFailure() + return manifestData + d_12_typ_: _dafny.Seq + d_12_typ_ = (d_11_valueOrError5_).Extract() + d_13_valueOrError6_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_13_valueOrError6_ = JSONHelpers.default__.GetString(_dafny.Seq("keys"), (d_5_manifestJson_).obj) + if (d_13_valueOrError6_).IsFailure(): + manifestData = (d_13_valueOrError6_).PropagateFailure() + return manifestData + d_14_keyManifestUri_: _dafny.Seq + d_14_keyManifestUri_ = (d_13_valueOrError6_).Extract() + d_15_valueOrError7_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_15_valueOrError7_ = Wrappers.default__.Need((_dafny.Seq("file://")) < (d_14_keyManifestUri_), _dafny.Seq("Unexpected URI prefix")) + if (d_15_valueOrError7_).IsFailure(): + manifestData = (d_15_valueOrError7_).PropagateFailure() + return manifestData + d_16_keyManifestPath_: _dafny.Seq + d_16_keyManifestPath_ = (manifestPath) + (_dafny.Seq((d_14_keyManifestUri_)[7::])) + d_17_valueOrError8_: Wrappers.Result = None + out1_: Wrappers.Result + out1_ = KeyVectors.default__.KeyVectors(AwsCryptographyMaterialProvidersTestVectorKeysTypes.KeyVectorsConfig_KeyVectorsConfig(d_16_keyManifestPath_)) + d_17_valueOrError8_ = out1_ + if not(not((d_17_valueOrError8_).IsFailure())): + raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestManifests.dfy(263,16): " + _dafny.string_of(d_17_valueOrError8_)) + d_18_keys_: KeyVectors.KeyVectorsClient + d_18_keys_ = (d_17_valueOrError8_).Extract() + d_19_valueOrError9_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_19_valueOrError9_ = JSONHelpers.default__.GetObject(_dafny.Seq("tests"), (d_5_manifestJson_).obj) + if (d_19_valueOrError9_).IsFailure(): + manifestData = (d_19_valueOrError9_).PropagateFailure() + return manifestData + d_20_jsonTests_: _dafny.Seq + d_20_jsonTests_ = (d_19_valueOrError9_).Extract() + source0_ = d_12_typ_ + with _dafny.label("match0"): + if True: + if (source0_) == (_dafny.Seq("awses-decrypt")): + d_21_valueOrError10_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_21_valueOrError10_ = Wrappers.default__.Need(EsdkTestVectors.default__.SupportedDecryptVersion_q(d_10_version_), _dafny.Seq("Unsupported manifest version")) + if (d_21_valueOrError10_).IsFailure(): + manifestData = (d_21_valueOrError10_).PropagateFailure() + return manifestData + d_22_valueOrError11_: Wrappers.Result = Wrappers.Result.default(JSON_Values.JSON.default())() + d_22_valueOrError11_ = JSONHelpers.default__.Get(_dafny.Seq("client"), (d_5_manifestJson_).obj) + if (d_22_valueOrError11_).IsFailure(): + manifestData = (d_22_valueOrError11_).PropagateFailure() + return manifestData + d_23_client_: JSON_Values.JSON + d_23_client_ = (d_22_valueOrError11_).Extract() + manifestData = Wrappers.Result_Success(ManifestData_DecryptManifest(d_10_version_, d_18_keys_, d_23_client_, d_20_jsonTests_)) + raise _dafny.Break("match0") + if True: + if (source0_) == (_dafny.Seq("awses-encrypt")): + d_24_valueOrError12_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_24_valueOrError12_ = Wrappers.default__.Need(EsdkTestVectors.default__.SupportedEncryptVersion_q(d_10_version_), _dafny.Seq("Unsupported manifest version")) + if (d_24_valueOrError12_).IsFailure(): + manifestData = (d_24_valueOrError12_).PropagateFailure() + return manifestData + d_25_valueOrError13_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_25_valueOrError13_ = JSONHelpers.default__.GetObject(_dafny.Seq("plaintexts"), (d_5_manifestJson_).obj) + if (d_25_valueOrError13_).IsFailure(): + manifestData = (d_25_valueOrError13_).PropagateFailure() + return manifestData + d_26_plaintextsJson_: _dafny.Seq + d_26_plaintextsJson_ = (d_25_valueOrError13_).Extract() + d_27_valueOrError15_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + def lambda1_(d_28_obj_): + def iife0_(_pat_let7_0): + def iife1_(d_29_valueOrError14_): + return ((d_29_valueOrError14_).PropagateFailure() if (d_29_valueOrError14_).IsFailure() else Wrappers.Result_Success(((d_28_obj_)[0], (((d_28_obj_)[1]).num).n))) + return iife1_(_pat_let7_0) + return iife0_(Wrappers.default__.Need((((d_28_obj_)[1]).is_Number) and (((0) < ((((d_28_obj_)[1]).num).n)) and (((((d_28_obj_)[1]).num).n) <= (BoundedInts.default__.INT32__MAX))), _dafny.Seq("Size is not a natural number."))) + + d_27_valueOrError15_ = Seq.default__.MapWithResult(lambda1_, d_26_plaintextsJson_) + if (d_27_valueOrError15_).IsFailure(): + manifestData = (d_27_valueOrError15_).PropagateFailure() + return manifestData + d_30_plaintextsLength_: _dafny.Seq + d_30_plaintextsLength_ = (d_27_valueOrError15_).Extract() + manifestData = Wrappers.Result_Success(ManifestData_EncryptManifest(d_10_version_, d_18_keys_, d_30_plaintextsLength_, d_20_jsonTests_)) + raise _dafny.Break("match0") + if True: + manifestData = Wrappers.Result_Failure((_dafny.Seq("Unsupported manifest type:")) + (d_12_typ_)) + pass + return manifestData + + +class ManifestData: + @classmethod + def default(cls, ): + return lambda: ManifestData_DecryptManifest(int(0), None, JSON_Values.JSON.default()(), _dafny.Seq({})) + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_DecryptManifest(self) -> bool: + return isinstance(self, ManifestData_DecryptManifest) + @property + def is_EncryptManifest(self) -> bool: + return isinstance(self, ManifestData_EncryptManifest) + +class ManifestData_DecryptManifest(ManifestData, NamedTuple('DecryptManifest', [('version', Any), ('keys', Any), ('client', Any), ('jsonTests', Any)])): + def __dafnystr__(self) -> str: + return f'EsdkTestManifests.ManifestData.DecryptManifest({_dafny.string_of(self.version)}, {_dafny.string_of(self.keys)}, {_dafny.string_of(self.client)}, {_dafny.string_of(self.jsonTests)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, ManifestData_DecryptManifest) and self.version == __o.version and self.keys == __o.keys and self.client == __o.client and self.jsonTests == __o.jsonTests + def __hash__(self) -> int: + return super().__hash__() + +class ManifestData_EncryptManifest(ManifestData, NamedTuple('EncryptManifest', [('version', Any), ('keys', Any), ('plaintext', Any), ('jsonTests', Any)])): + def __dafnystr__(self) -> str: + return f'EsdkTestManifests.ManifestData.EncryptManifest({_dafny.string_of(self.version)}, {_dafny.string_of(self.keys)}, {_dafny.string_of(self.plaintext)}, {_dafny.string_of(self.jsonTests)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, ManifestData_EncryptManifest) and self.version == __o.version and self.keys == __o.keys and self.plaintext == __o.plaintext and self.jsonTests == __o.jsonTests + def __hash__(self) -> int: + return super().__hash__() + diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkTestVectors.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkTestVectors.py new file mode 100644 index 000000000..6baf1da54 --- /dev/null +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkTestVectors.py @@ -0,0 +1,780 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import aws_encryption_sdk_test_vectors.internaldafny.generated.module_ as module_ +import _dafny as _dafny +import System_ as System_ +import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers +import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary +import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom +import aws_cryptography_primitives.internaldafny.generated.Random as Random +import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption +import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest +import aws_cryptography_primitives.internaldafny.generated.Digest as Digest +import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC +import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC +import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF +import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF +import aws_cryptography_primitives.internaldafny.generated.Signature as Signature +import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr +import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption +import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives +import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 +import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites +import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials +import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring +import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations +import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort +import smithy_dafny_standard_library.internaldafny.generated.Math as Math +import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq +import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils +import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants +import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID +import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping +import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets +import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext +import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping +import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring +import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms +import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.Time as Time +import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker +import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC +import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring +import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring +import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM +import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults +import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment +import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM +import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier +import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils +import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders +import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn +import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure +import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable +import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Core as JSON_Utils_Views_Core +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Writers as JSON_Utils_Views_Writers +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Cursors as JSON_Utils_Cursors +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Parsers as JSON_Utils_Parsers +import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals +import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals +import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul +import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals +import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals +import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod +import smithy_dafny_standard_library.internaldafny.generated.Power as Power +import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str as JSON_Utils_Str +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Seq as JSON_Utils_Seq +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Vectors as JSON_Utils_Vectors +import smithy_dafny_standard_library.internaldafny.generated.JSON_Errors as JSON_Errors +import smithy_dafny_standard_library.internaldafny.generated.JSON_Values as JSON_Values +import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode +import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions +import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings +import smithy_dafny_standard_library.internaldafny.generated.JSON_Spec as JSON_Spec +import smithy_dafny_standard_library.internaldafny.generated.JSON_Grammar as JSON_Grammar +import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer as JSON_Serializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer as JSON_Deserializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec +import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_API as JSON_ZeroCopy_API +import smithy_dafny_standard_library.internaldafny.generated.JSON_API as JSON_API +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.JSONHelpers as JSONHelpers +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyDescription as KeyDescription +import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyMaterial as KeyMaterial +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyrings as CreateStaticKeyrings +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyStores as CreateStaticKeyStores +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyringFromKeyDescription as KeyringFromKeyDescription +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CmmFromKeyDescription as CmmFromKeyDescription +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProviders as WrappedMaterialProviders +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeysVectorOperations as KeysVectorOperations +import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyVectors as KeyVectors +import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams +import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk.internaldafny.generated.Header as Header +import aws_encryption_sdk.internaldafny.generated.Frames as Frames +import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions +import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestVectors as TestVectors +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllHierarchy as AllHierarchy +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKms as AllKms +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAware as AllKmsMrkAware +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsRsa as AllKmsRsa +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsEcdh as AllKmsEcdh +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawAES as AllRawAES +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawRSA as AllRawRSA +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawECDH as AllRawECDH +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllDefaultCmm as AllDefaultCmm +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllMulti as AllMulti +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WriteJsonManifests as WriteJsonManifests +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CompleteVectors as CompleteVectors +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.ParseJsonManifests as ParseJsonManifests +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestManifests as TestManifests +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProvidersMain as WrappedMaterialProvidersMain +import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr +import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop +import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting +import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare +import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall +import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas +import aws_encryption_sdk_test_vectors.internaldafny.generated.WrappedESDK as WrappedESDK +import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkManifestOptions as EsdkManifestOptions + +# Module: EsdkTestVectors + +class default__: + def __init__(self): + pass + + @staticmethod + def SupportedGenerateManifestVersion_q(v): + return (False) or ((v) == (4)) + + @staticmethod + def SupportedEncryptVersion_q(v): + return (((v) == (1)) or ((v) == (4))) or ((v) == (5)) + + @staticmethod + def SupportedDecryptVersion_q(v): + return (((v) == (1)) or ((v) == (2))) or ((v) == (3)) + + @staticmethod + def TestDecrypt(keys, vector): + output: bool = False + if ((vector).algorithmSuiteId).is_Some: + d_0_id_: _dafny.Seq + d_0_id_ = AllAlgorithmSuites.default__.ToHex(((vector).algorithmSuiteId).value) + _dafny.print(_dafny.string_of(_dafny.Seq("\nTEST-DECRYPT===> "))) + _dafny.print(_dafny.string_of((vector).id)) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + _dafny.print(_dafny.string_of(d_0_id_)) + _dafny.print(_dafny.string_of(_dafny.Seq(" "))) + _dafny.print(_dafny.string_of((vector).description)) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + elif True: + _dafny.print(_dafny.string_of(_dafny.Seq("\nTEST-DECRYPT===> "))) + _dafny.print(_dafny.string_of((vector).id)) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + _dafny.print(_dafny.string_of((vector).description)) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + d_1_test_q_: Wrappers.Result + out0_: Wrappers.Result + out0_ = default__.DecryptVectorToDecryptTest(keys, vector) + d_1_test_q_ = out0_ + if (d_1_test_q_).is_Failure: + _dafny.print(_dafny.string_of((d_1_test_q_).error)) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + _dafny.print(_dafny.string_of(_dafny.Seq("\nFAILED! <-----------\n"))) + output = False + return output + d_2_test_: DecryptTest + d_2_test_ = (d_1_test_q_).value + d_3_valueOrError0_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + out1_: Wrappers.Result + out1_ = default__.ReadVectorsFile((((d_2_test_).vector).manifestPath) + (((d_2_test_).vector).ciphertextPath)) + d_3_valueOrError0_ = out1_ + if not(not((d_3_valueOrError0_).IsFailure())): + raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(202,22): " + _dafny.string_of(d_3_valueOrError0_)) + d_4_ciphertext_: _dafny.Seq + d_4_ciphertext_ = (d_3_valueOrError0_).Extract() + d_5_plaintext_: _dafny.Seq = _dafny.Seq({}) + if (((d_2_test_).vector).is_PositiveDecryptTestVector) or (((d_2_test_).vector).is_PositiveV1OrV2DecryptTestVector): + d_6_valueOrError1_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + out2_: Wrappers.Result + out2_ = default__.ReadVectorsFile((((d_2_test_).vector).manifestPath) + (((d_2_test_).vector).plaintextPath)) + d_6_valueOrError1_ = out2_ + if not(not((d_6_valueOrError1_).IsFailure())): + raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(205,19): " + _dafny.string_of(d_6_valueOrError1_)) + d_5_plaintext_ = (d_6_valueOrError1_).Extract() + d_7_input_: AwsCryptographyEncryptionSdkTypes.DecryptInput + d_7_input_ = AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_4_ciphertext_, Wrappers.Option_Some((d_2_test_).cmm), Wrappers.Option_None(), ((d_2_test_).vector).reproducedEncryptionContext) + d_8_result_: Wrappers.Result + out3_: Wrappers.Result + out3_ = ((d_2_test_).client).Decrypt(d_7_input_) + d_8_result_ = out3_ + source0_ = (d_2_test_).vector + with _dafny.label("match0"): + if True: + if source0_.is_PositiveDecryptTestVector: + output = ((d_8_result_).is_Success) and ((((d_8_result_).value).plaintext) == (d_5_plaintext_)) + raise _dafny.Break("match0") + if True: + if source0_.is_NegativeDecryptTestVector: + output = (True) and ((d_8_result_).is_Failure) + raise _dafny.Break("match0") + if True: + output = ((d_8_result_).is_Success) and ((((d_8_result_).value).plaintext) == (d_5_plaintext_)) + pass + if not(output): + if ((((d_2_test_).vector).is_PositiveDecryptTestVector) or (((d_2_test_).vector).is_PositiveV1OrV2DecryptTestVector)) and ((d_8_result_).is_Failure): + _dafny.print(_dafny.string_of((d_8_result_).error)) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + if (((d_8_result_).error).is_AwsCryptographyMaterialProviders) and ((((d_8_result_).error).AwsCryptographyMaterialProviders).is_CollectionOfErrors): + _dafny.print(_dafny.string_of(_dafny.Seq("list:"))) + _dafny.print(_dafny.string_of((((d_8_result_).error).AwsCryptographyMaterialProviders).list)) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + _dafny.print(_dafny.string_of(_dafny.Seq("\nFAILED! <-----------\n"))) + return output + + @staticmethod + def DecryptVectorToDecryptTest(keys, vector): + output: Wrappers.Result = None + d_0_valueOrError0_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_0_valueOrError0_ = Wrappers.default__.Need(not((vector).is_NegativeDecryptTestVector), AwsCryptographyMaterialProvidersTestVectorKeysTypes.Error_KeyVectorException(_dafny.Seq("Negative Test Vectors not supported at this time"))) + if (d_0_valueOrError0_).IsFailure(): + output = (d_0_valueOrError0_).PropagateFailure() + return output + d_1_valueOrError1_: Wrappers.Result = None + out0_: Wrappers.Result + out0_ = (keys).CreateWrappedTestVectorCmm(AwsCryptographyMaterialProvidersTestVectorKeysTypes.TestVectorCmmInput_TestVectorCmmInput((vector).decryptDescriptions, AwsCryptographyMaterialProvidersTestVectorKeysTypes.CmmOperation_DECRYPT())) + d_1_valueOrError1_ = out0_ + if (d_1_valueOrError1_).IsFailure(): + output = (d_1_valueOrError1_).PropagateFailure() + return output + d_2_cmm_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager + d_2_cmm_ = (d_1_valueOrError1_).Extract() + d_3_commitmentPolicy_: AwsCryptographyMaterialProvidersTypes.CommitmentPolicy + if ((vector).algorithmSuiteId).is_Some: + d_3_commitmentPolicy_ = AllAlgorithmSuites.default__.GetCompatibleCommitmentPolicy(((vector).algorithmSuiteId).value) + elif True: + d_3_commitmentPolicy_ = AwsCryptographyMaterialProvidersTypes.CommitmentPolicy_ESDK(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT()) + d_4_valueOrError2_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_4_valueOrError2_ = Wrappers.default__.Need((d_3_commitmentPolicy_).is_ESDK, AwsCryptographyMaterialProvidersTestVectorKeysTypes.Error_KeyVectorException(_dafny.Seq("Compatible commitment policy is not for ESDK"))) + if (d_4_valueOrError2_).IsFailure(): + output = (d_4_valueOrError2_).PropagateFailure() + return output + d_5_config_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig + d_5_config_ = WrappedESDK.default__.WrappedAwsEncryptionSdkConfigWithSuppliedCommitment((d_3_commitmentPolicy_).ESDK) + d_6_valueOrError3_: Wrappers.Result = None + out1_: Wrappers.Result + out1_ = WrappedESDK.default__.WrappedESDK(d_5_config_) + d_6_valueOrError3_ = out1_ + if not(not((d_6_valueOrError3_).IsFailure())): + raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(281,18): " + _dafny.string_of(d_6_valueOrError3_)) + d_7_client_: AwsCryptographyEncryptionSdkTypes.IAwsEncryptionSdkClient + d_7_client_ = (d_6_valueOrError3_).Extract() + d_8_test_: DecryptTest + d_8_test_ = DecryptTest_DecryptTest(d_2_cmm_, d_7_client_, vector) + output = Wrappers.Result_Success(d_8_test_) + return output + + @staticmethod + def TestEncrypt(plaintexts, keys, test): + output: Wrappers.Result = Wrappers.Result.default(EncryptTestOutput.default())() + d_0_id_: _dafny.Seq + d_0_id_ = AllAlgorithmSuites.default__.ToHex((((test).vector).algorithmSuiteId).value) + _dafny.print(_dafny.string_of(_dafny.Seq("\nTEST-ENCRYPT===> "))) + _dafny.print(_dafny.string_of((((test).vector).id).value)) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + _dafny.print(_dafny.string_of(d_0_id_)) + _dafny.print(_dafny.string_of(_dafny.Seq(" "))) + _dafny.print(_dafny.string_of(((test).vector).description)) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + d_1_vector_: EsdkEncryptTestVector + d_1_vector_ = (test).vector + if not((((test).vector).plaintextPath) in (plaintexts)): + raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(324,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_2_plaintext_: _dafny.Seq + d_2_plaintext_ = (plaintexts)[((test).vector).plaintextPath] + d_3_frameLength_: Wrappers.Option + d_3_frameLength_ = (d_1_vector_).frameLength + d_4_input_: AwsCryptographyEncryptionSdkTypes.EncryptInput + d_4_input_ = AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_2_plaintext_, ((test).vector).encryptionContext, Wrappers.Option_Some((test).cmm), Wrappers.Option_None(), Wrappers.Option_Some((((((test).vector).algorithmSuiteId).value).id).ESDK), d_3_frameLength_) + d_5_result_: Wrappers.Result + out0_: Wrappers.Result + out0_ = ((test).client).Encrypt(d_4_input_) + d_5_result_ = out0_ + if ((d_5_result_).is_Success) and ((((test).vector).is_PositiveEncryptTestVector) or (((test).vector).is_PositiveEncryptNegativeDecryptTestVector)): + d_6_valueOrError0_: Wrappers.Result = Wrappers.Result.default(EsdkDecryptTestVector.default())() + out1_: Wrappers.Result + out1_ = default__.EncryptTestToDecryptVector(test, (d_5_result_).value) + d_6_valueOrError0_ = out1_ + if (d_6_valueOrError0_).IsFailure(): + output = (d_6_valueOrError0_).PropagateFailure() + return output + d_7_decryptVector_: EsdkDecryptTestVector + d_7_decryptVector_ = (d_6_valueOrError0_).Extract() + output = Wrappers.Result_Success(EncryptTestOutput_EncryptTestOutput(True, Wrappers.Option_Some(d_7_decryptVector_))) + elif ((d_5_result_).is_Failure) and (((test).vector).is_NegativeEncryptTestVector): + output = Wrappers.Result_Success(EncryptTestOutput_EncryptTestOutput(True, Wrappers.Option_None())) + elif True: + output = Wrappers.Result_Success(EncryptTestOutput_EncryptTestOutput(False, Wrappers.Option_None())) + if (not(((test).vector).is_NegativeEncryptTestVector)) and ((d_5_result_).is_Failure): + _dafny.print(_dafny.string_of((d_5_result_).error)) + _dafny.print(_dafny.string_of(_dafny.Seq("\nFAILED! <-----------\n"))) + return output + + @staticmethod + def EncryptVectorToEncryptTest(keys, vector): + output: Wrappers.Result = None + d_0_valueOrError0_: Wrappers.Result = None + out0_: Wrappers.Result + out0_ = (keys).CreateWrappedTestVectorCmm(AwsCryptographyMaterialProvidersTestVectorKeysTypes.TestVectorCmmInput_TestVectorCmmInput(((vector).encryptDescriptions if (vector).is_PositiveEncryptTestVector else ((vector).encryptDescriptions if (vector).is_PositiveEncryptNegativeDecryptTestVector else (vector).encryptDescriptions)), AwsCryptographyMaterialProvidersTestVectorKeysTypes.CmmOperation_ENCRYPT())) + d_0_valueOrError0_ = out0_ + if (d_0_valueOrError0_).IsFailure(): + output = (d_0_valueOrError0_).PropagateFailure() + return output + d_1_cmm_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager + d_1_cmm_ = (d_0_valueOrError0_).Extract() + d_2_valueOrError1_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_2_valueOrError1_ = Wrappers.default__.Need(((vector).algorithmSuiteId).is_Some, AwsCryptographyMaterialProvidersTestVectorKeysTypes.Error_KeyVectorException(_dafny.Seq("Missing AlgorithmSuiteId in test vector"))) + if (d_2_valueOrError1_).IsFailure(): + output = (d_2_valueOrError1_).PropagateFailure() + return output + d_3_commitmentPolicy_: AwsCryptographyMaterialProvidersTypes.CommitmentPolicy + d_3_commitmentPolicy_ = AllAlgorithmSuites.default__.GetCompatibleCommitmentPolicy(((vector).algorithmSuiteId).value) + d_4_valueOrError2_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_4_valueOrError2_ = Wrappers.default__.Need((d_3_commitmentPolicy_).is_ESDK, AwsCryptographyMaterialProvidersTestVectorKeysTypes.Error_KeyVectorException(_dafny.Seq("Compatible commitment policy is not for ESDK"))) + if (d_4_valueOrError2_).IsFailure(): + output = (d_4_valueOrError2_).PropagateFailure() + return output + d_5_config_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig + d_5_config_ = WrappedESDK.default__.WrappedAwsEncryptionSdkConfigWithSuppliedCommitment((d_3_commitmentPolicy_).ESDK) + d_6_valueOrError3_: Wrappers.Result = None + out1_: Wrappers.Result + out1_ = WrappedESDK.default__.WrappedESDK(d_5_config_) + d_6_valueOrError3_ = out1_ + if not(not((d_6_valueOrError3_).IsFailure())): + raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(397,18): " + _dafny.string_of(d_6_valueOrError3_)) + d_7_client_: AwsCryptographyEncryptionSdkTypes.IAwsEncryptionSdkClient + d_7_client_ = (d_6_valueOrError3_).Extract() + d_8_test_: EncryptTest + d_8_test_ = EncryptTest_EncryptTest(d_1_cmm_, d_7_client_, vector) + output = Wrappers.Result_Success(d_8_test_) + return output + + @staticmethod + def EncryptTestToDecryptVector(test, result): + output: Wrappers.Result = Wrappers.Result.default(EsdkDecryptTestVector.default())() + source0_ = (test).vector + with _dafny.label("match0"): + if True: + if source0_.is_PositiveEncryptTestVector: + output = Wrappers.Result_Success(EsdkDecryptTestVector_PositiveDecryptTestVector((((test).vector).id).value, 3, ((test).vector).decryptManifestPath, default__.ciphertextPathPathRoot, (default__.plaintextPathRoot) + (((test).vector).plaintextPath), ((test).vector).reproducedEncryptionContext, ((test).vector).decryptDescriptions, ((test).vector).commitmentPolicy, ((test).vector).frameLength, ((test).vector).algorithmSuiteId, ((test).vector).description, DecryptionMethod_OneShot())) + raise _dafny.Break("match0") + if True: + output = Wrappers.Result_Failure(_dafny.Seq("Only postive tests supported")) + pass + d_0_decryptManifestCiphertext_: _dafny.Seq + d_0_decryptManifestCiphertext_ = ((((test).vector).decryptManifestPath) + (default__.ciphertextPathPathRoot)) + ((((test).vector).id).value) + d_1_valueOrError0_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() + out0_: Wrappers.Result + out0_ = default__.WriteVectorsFile(d_0_decryptManifestCiphertext_, (result).ciphertext) + d_1_valueOrError0_ = out0_ + if not(not((d_1_valueOrError0_).IsFailure())): + raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(439,13): " + _dafny.string_of(d_1_valueOrError0_)) + d_2___v52_: tuple + d_2___v52_ = (d_1_valueOrError0_).Extract() + return output + + @staticmethod + def MplPrintErr(e): + hresult_: tuple = () + _dafny.print(_dafny.string_of(e)) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + hresult_ = () + return hresult_ + return hresult_ + + @staticmethod + def MplVectorPrintErr(e): + hresult_: tuple = () + _dafny.print(_dafny.string_of(e)) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + hresult_ = () + return hresult_ + return hresult_ + + @staticmethod + def KeyDescriptionToCmm(keys, keyDescriptions): + output: Wrappers.Result = None + d_0_keyringList_: _dafny.Seq + d_0_keyringList_ = _dafny.Seq([]) + hi0_ = len(keyDescriptions) + for d_1_i_ in range(0, hi0_): + d_2_keyDescription_: AwsCryptographyMaterialProvidersTestVectorKeysTypes.KeyDescription + d_2_keyDescription_ = (keyDescriptions)[d_1_i_] + d_3_valueOrError0_: Wrappers.Result = None + out0_: Wrappers.Result + out0_ = (keys).CreateWrappedTestVectorKeyring(AwsCryptographyMaterialProvidersTestVectorKeysTypes.TestVectorKeyringInput_TestVectorKeyringInput(d_2_keyDescription_)) + d_3_valueOrError0_ = out0_ + if (d_3_valueOrError0_).IsFailure(): + output = (d_3_valueOrError0_).PropagateFailure() + return output + d_4_keyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + d_4_keyring_ = (d_3_valueOrError0_).Extract() + d_0_keyringList_ = (d_0_keyringList_) + (_dafny.Seq([d_4_keyring_])) + d_5_valueOrError1_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_5_valueOrError1_ = Wrappers.default__.Need((len(d_0_keyringList_)) == (1), AwsCryptographyMaterialProvidersTestVectorKeysTypes.Error_KeyVectorException(_dafny.Seq("Failed to create any keyrings"))) + if (d_5_valueOrError1_).IsFailure(): + output = (d_5_valueOrError1_).PropagateFailure() + return output + d_6_valueOrError2_: Wrappers.Result = None + out1_: Wrappers.Result + out1_ = WrappedMaterialProviders.default__.WrappedMaterialProviders(WrappedMaterialProviders.default__.WrappedDefaultMaterialProvidersConfig()) + d_6_valueOrError2_ = out1_ + if not(not((d_6_valueOrError2_).IsFailure())): + raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(482,15): " + _dafny.string_of(d_6_valueOrError2_)) + d_7_mpl_: AwsCryptographyMaterialProvidersTypes.IAwsCryptographicMaterialProvidersClient + d_7_mpl_ = (d_6_valueOrError2_).Extract() + d_8_generatorKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + d_8_generatorKeyring_ = (d_0_keyringList_)[0] + d_9_maybeMultiKeyring_: Wrappers.Result + out2_: Wrappers.Result + out2_ = (d_7_mpl_).CreateMultiKeyring(AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput_CreateMultiKeyringInput(Wrappers.Option_Some(d_8_generatorKeyring_), _dafny.Seq((d_0_keyringList_)[1::]))) + d_9_maybeMultiKeyring_ = out2_ + d_10_valueOrError3_: Wrappers.Result = None + def lambda0_(d_11_e_): + return AwsCryptographyMaterialProvidersTestVectorKeysTypes.Error_AwsCryptographyMaterialProviders(d_11_e_) + + d_10_valueOrError3_ = (d_9_maybeMultiKeyring_).MapFailure(lambda0_) + if (d_10_valueOrError3_).IsFailure(): + output = (d_10_valueOrError3_).PropagateFailure() + return output + d_12_keyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + d_12_keyring_ = (d_10_valueOrError3_).Extract() + d_13_maybeCmm_: Wrappers.Result + out3_: Wrappers.Result + out3_ = (d_7_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput((d_9_maybeMultiKeyring_).value)) + d_13_maybeCmm_ = out3_ + def lambda1_(d_14_e_): + return AwsCryptographyMaterialProvidersTestVectorKeysTypes.Error_AwsCryptographyMaterialProviders(d_14_e_) + + output = (d_13_maybeCmm_).MapFailure(lambda1_) + return output + + @staticmethod + def ReadVectorsFile(location): + output: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_0_valueOrError0_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + out0_: Wrappers.Result + out0_ = FileIO.default__.ReadBytesFromFile(location) + d_0_valueOrError0_ = out0_ + if (d_0_valueOrError0_).IsFailure(): + output = (d_0_valueOrError0_).PropagateFailure() + return output + d_1_fileBv_: _dafny.Seq + d_1_fileBv_ = (d_0_valueOrError0_).Extract() + output = Wrappers.Result_Success(JSONHelpers.default__.BvToBytes(d_1_fileBv_)) + return output + + @staticmethod + def WriteVectorsFile(location, bytes): + output: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() + d_0_bv_: _dafny.Seq + d_0_bv_ = JSONHelpers.default__.BytesBv(bytes) + out0_: Wrappers.Result + out0_ = FileIO.default__.WriteBytesToFile(location, d_0_bv_) + output = out0_ + return output + + @_dafny.classproperty + def ciphertextPathPathRoot(instance): + return _dafny.Seq("ciphertexts/") + @_dafny.classproperty + def plaintextPathRoot(instance): + return _dafny.Seq("plaintexts/") + +class EncryptTest: + @classmethod + def default(cls, ): + return lambda: EncryptTest_EncryptTest(None, None, EsdkEncryptTestVector.default()()) + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_EncryptTest(self) -> bool: + return isinstance(self, EncryptTest_EncryptTest) + +class EncryptTest_EncryptTest(EncryptTest, NamedTuple('EncryptTest', [('cmm', Any), ('client', Any), ('vector', Any)])): + def __dafnystr__(self) -> str: + return f'EsdkTestVectors.EncryptTest.EncryptTest({_dafny.string_of(self.cmm)}, {_dafny.string_of(self.client)}, {_dafny.string_of(self.vector)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, EncryptTest_EncryptTest) and self.cmm == __o.cmm and self.client == __o.client and self.vector == __o.vector + def __hash__(self) -> int: + return super().__hash__() + + +class DecryptTest: + @classmethod + def default(cls, ): + return lambda: DecryptTest_DecryptTest(None, None, EsdkDecryptTestVector.default()()) + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_DecryptTest(self) -> bool: + return isinstance(self, DecryptTest_DecryptTest) + +class DecryptTest_DecryptTest(DecryptTest, NamedTuple('DecryptTest', [('cmm', Any), ('client', Any), ('vector', Any)])): + def __dafnystr__(self) -> str: + return f'EsdkTestVectors.DecryptTest.DecryptTest({_dafny.string_of(self.cmm)}, {_dafny.string_of(self.client)}, {_dafny.string_of(self.vector)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, DecryptTest_DecryptTest) and self.cmm == __o.cmm and self.client == __o.client and self.vector == __o.vector + def __hash__(self) -> int: + return super().__hash__() + + +class SupportedGenerateManifestVersion: + def __init__(self): + pass + + @staticmethod + def default(): + return 4 + def _Is(source__): + d_0_v_: int = source__ + if System_.nat._Is(d_0_v_): + return default__.SupportedGenerateManifestVersion_q(d_0_v_) + return False + +class SupportedEncryptVersion: + def __init__(self): + pass + + @staticmethod + def default(): + return 1 + def _Is(source__): + d_1_v_: int = source__ + if System_.nat._Is(d_1_v_): + return default__.SupportedEncryptVersion_q(d_1_v_) + return False + +class EsdkEncryptTestVector: + @classmethod + def default(cls, ): + return lambda: EsdkEncryptTestVector_PositiveEncryptTestVector(Wrappers.Option.default()(), SupportedEncryptVersion.default(), _dafny.Seq(""), _dafny.Seq(""), _dafny.Seq(""), AwsCryptographyMaterialProvidersTestVectorKeysTypes.KeyDescription.default()(), AwsCryptographyMaterialProvidersTestVectorKeysTypes.KeyDescription.default()(), Wrappers.Option.default()(), Wrappers.Option.default()(), AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy.default()(), Wrappers.Option.default()(), Wrappers.Option.default()(), _dafny.Seq(""), Wrappers.Option.default()()) + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_PositiveEncryptTestVector(self) -> bool: + return isinstance(self, EsdkEncryptTestVector_PositiveEncryptTestVector) + @property + def is_PositiveEncryptNegativeDecryptTestVector(self) -> bool: + return isinstance(self, EsdkEncryptTestVector_PositiveEncryptNegativeDecryptTestVector) + @property + def is_NegativeEncryptTestVector(self) -> bool: + return isinstance(self, EsdkEncryptTestVector_NegativeEncryptTestVector) + +class EsdkEncryptTestVector_PositiveEncryptTestVector(EsdkEncryptTestVector, NamedTuple('PositiveEncryptTestVector', [('id', Any), ('version', Any), ('manifestPath', Any), ('decryptManifestPath', Any), ('plaintextPath', Any), ('encryptDescriptions', Any), ('decryptDescriptions', Any), ('encryptionContext', Any), ('reproducedEncryptionContext', Any), ('commitmentPolicy', Any), ('frameLength', Any), ('algorithmSuiteId', Any), ('description', Any), ('maxEncryptedDataKeys', Any)])): + def __dafnystr__(self) -> str: + return f'EsdkTestVectors.EsdkEncryptTestVector.PositiveEncryptTestVector({_dafny.string_of(self.id)}, {_dafny.string_of(self.version)}, {_dafny.string_of(self.manifestPath)}, {_dafny.string_of(self.decryptManifestPath)}, {_dafny.string_of(self.plaintextPath)}, {_dafny.string_of(self.encryptDescriptions)}, {_dafny.string_of(self.decryptDescriptions)}, {_dafny.string_of(self.encryptionContext)}, {_dafny.string_of(self.reproducedEncryptionContext)}, {_dafny.string_of(self.commitmentPolicy)}, {_dafny.string_of(self.frameLength)}, {_dafny.string_of(self.algorithmSuiteId)}, {_dafny.string_of(self.description)}, {_dafny.string_of(self.maxEncryptedDataKeys)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, EsdkEncryptTestVector_PositiveEncryptTestVector) and self.id == __o.id and self.version == __o.version and self.manifestPath == __o.manifestPath and self.decryptManifestPath == __o.decryptManifestPath and self.plaintextPath == __o.plaintextPath and self.encryptDescriptions == __o.encryptDescriptions and self.decryptDescriptions == __o.decryptDescriptions and self.encryptionContext == __o.encryptionContext and self.reproducedEncryptionContext == __o.reproducedEncryptionContext and self.commitmentPolicy == __o.commitmentPolicy and self.frameLength == __o.frameLength and self.algorithmSuiteId == __o.algorithmSuiteId and self.description == __o.description and self.maxEncryptedDataKeys == __o.maxEncryptedDataKeys + def __hash__(self) -> int: + return super().__hash__() + +class EsdkEncryptTestVector_PositiveEncryptNegativeDecryptTestVector(EsdkEncryptTestVector, NamedTuple('PositiveEncryptNegativeDecryptTestVector', [('id', Any), ('version', Any), ('manifestPath', Any), ('decryptManifestPath', Any), ('plaintextPath', Any), ('encryptDescriptions', Any), ('decryptDescriptions', Any), ('encryptionContext', Any), ('reproducedEncryptionContext', Any), ('commitmentPolicy', Any), ('frameLength', Any), ('algorithmSuiteId', Any), ('decryptErrorDescription', Any), ('description', Any), ('maxEncryptedDataKeys', Any)])): + def __dafnystr__(self) -> str: + return f'EsdkTestVectors.EsdkEncryptTestVector.PositiveEncryptNegativeDecryptTestVector({_dafny.string_of(self.id)}, {_dafny.string_of(self.version)}, {_dafny.string_of(self.manifestPath)}, {_dafny.string_of(self.decryptManifestPath)}, {_dafny.string_of(self.plaintextPath)}, {_dafny.string_of(self.encryptDescriptions)}, {_dafny.string_of(self.decryptDescriptions)}, {_dafny.string_of(self.encryptionContext)}, {_dafny.string_of(self.reproducedEncryptionContext)}, {_dafny.string_of(self.commitmentPolicy)}, {_dafny.string_of(self.frameLength)}, {_dafny.string_of(self.algorithmSuiteId)}, {_dafny.string_of(self.decryptErrorDescription)}, {_dafny.string_of(self.description)}, {_dafny.string_of(self.maxEncryptedDataKeys)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, EsdkEncryptTestVector_PositiveEncryptNegativeDecryptTestVector) and self.id == __o.id and self.version == __o.version and self.manifestPath == __o.manifestPath and self.decryptManifestPath == __o.decryptManifestPath and self.plaintextPath == __o.plaintextPath and self.encryptDescriptions == __o.encryptDescriptions and self.decryptDescriptions == __o.decryptDescriptions and self.encryptionContext == __o.encryptionContext and self.reproducedEncryptionContext == __o.reproducedEncryptionContext and self.commitmentPolicy == __o.commitmentPolicy and self.frameLength == __o.frameLength and self.algorithmSuiteId == __o.algorithmSuiteId and self.decryptErrorDescription == __o.decryptErrorDescription and self.description == __o.description and self.maxEncryptedDataKeys == __o.maxEncryptedDataKeys + def __hash__(self) -> int: + return super().__hash__() + +class EsdkEncryptTestVector_NegativeEncryptTestVector(EsdkEncryptTestVector, NamedTuple('NegativeEncryptTestVector', [('id', Any), ('version', Any), ('manifestPath', Any), ('plaintextPath', Any), ('encryptDescriptions', Any), ('encryptionContext', Any), ('reproducedEncryptionContext', Any), ('commitmentPolicy', Any), ('frameLength', Any), ('algorithmSuiteId', Any), ('errorDescription', Any), ('description', Any), ('maxEncryptedDataKeys', Any)])): + def __dafnystr__(self) -> str: + return f'EsdkTestVectors.EsdkEncryptTestVector.NegativeEncryptTestVector({_dafny.string_of(self.id)}, {_dafny.string_of(self.version)}, {_dafny.string_of(self.manifestPath)}, {_dafny.string_of(self.plaintextPath)}, {_dafny.string_of(self.encryptDescriptions)}, {_dafny.string_of(self.encryptionContext)}, {_dafny.string_of(self.reproducedEncryptionContext)}, {_dafny.string_of(self.commitmentPolicy)}, {_dafny.string_of(self.frameLength)}, {_dafny.string_of(self.algorithmSuiteId)}, {_dafny.string_of(self.errorDescription)}, {_dafny.string_of(self.description)}, {_dafny.string_of(self.maxEncryptedDataKeys)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, EsdkEncryptTestVector_NegativeEncryptTestVector) and self.id == __o.id and self.version == __o.version and self.manifestPath == __o.manifestPath and self.plaintextPath == __o.plaintextPath and self.encryptDescriptions == __o.encryptDescriptions and self.encryptionContext == __o.encryptionContext and self.reproducedEncryptionContext == __o.reproducedEncryptionContext and self.commitmentPolicy == __o.commitmentPolicy and self.frameLength == __o.frameLength and self.algorithmSuiteId == __o.algorithmSuiteId and self.errorDescription == __o.errorDescription and self.description == __o.description and self.maxEncryptedDataKeys == __o.maxEncryptedDataKeys + def __hash__(self) -> int: + return super().__hash__() + + +class SupportedDecryptVersion: + def __init__(self): + pass + + @staticmethod + def default(): + return 1 + def _Is(source__): + d_2_v_: int = source__ + if System_.nat._Is(d_2_v_): + return default__.SupportedDecryptVersion_q(d_2_v_) + return False + +class EsdkDecryptTestVector: + @classmethod + def default(cls, ): + return lambda: EsdkDecryptTestVector_PositiveDecryptTestVector(_dafny.Seq(""), SupportedDecryptVersion.default(), _dafny.Seq(""), _dafny.Seq(""), _dafny.Seq(""), Wrappers.Option.default()(), AwsCryptographyMaterialProvidersTestVectorKeysTypes.KeyDescription.default()(), AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy.default()(), Wrappers.Option.default()(), Wrappers.Option.default()(), _dafny.Seq(""), DecryptionMethod.default()()) + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_PositiveDecryptTestVector(self) -> bool: + return isinstance(self, EsdkDecryptTestVector_PositiveDecryptTestVector) + @property + def is_NegativeDecryptTestVector(self) -> bool: + return isinstance(self, EsdkDecryptTestVector_NegativeDecryptTestVector) + @property + def is_PositiveV1OrV2DecryptTestVector(self) -> bool: + return isinstance(self, EsdkDecryptTestVector_PositiveV1OrV2DecryptTestVector) + +class EsdkDecryptTestVector_PositiveDecryptTestVector(EsdkDecryptTestVector, NamedTuple('PositiveDecryptTestVector', [('id', Any), ('version', Any), ('manifestPath', Any), ('ciphertextPath', Any), ('plaintextPath', Any), ('reproducedEncryptionContext', Any), ('decryptDescriptions', Any), ('commitmentPolicy', Any), ('frameLength', Any), ('algorithmSuiteId', Any), ('description', Any), ('decryptionMethod', Any)])): + def __dafnystr__(self) -> str: + return f'EsdkTestVectors.EsdkDecryptTestVector.PositiveDecryptTestVector({_dafny.string_of(self.id)}, {_dafny.string_of(self.version)}, {_dafny.string_of(self.manifestPath)}, {_dafny.string_of(self.ciphertextPath)}, {_dafny.string_of(self.plaintextPath)}, {_dafny.string_of(self.reproducedEncryptionContext)}, {_dafny.string_of(self.decryptDescriptions)}, {_dafny.string_of(self.commitmentPolicy)}, {_dafny.string_of(self.frameLength)}, {_dafny.string_of(self.algorithmSuiteId)}, {_dafny.string_of(self.description)}, {_dafny.string_of(self.decryptionMethod)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, EsdkDecryptTestVector_PositiveDecryptTestVector) and self.id == __o.id and self.version == __o.version and self.manifestPath == __o.manifestPath and self.ciphertextPath == __o.ciphertextPath and self.plaintextPath == __o.plaintextPath and self.reproducedEncryptionContext == __o.reproducedEncryptionContext and self.decryptDescriptions == __o.decryptDescriptions and self.commitmentPolicy == __o.commitmentPolicy and self.frameLength == __o.frameLength and self.algorithmSuiteId == __o.algorithmSuiteId and self.description == __o.description and self.decryptionMethod == __o.decryptionMethod + def __hash__(self) -> int: + return super().__hash__() + +class EsdkDecryptTestVector_NegativeDecryptTestVector(EsdkDecryptTestVector, NamedTuple('NegativeDecryptTestVector', [('id', Any), ('version', Any), ('manifestPath', Any), ('ciphertextPath', Any), ('errorDescription', Any), ('reproducedEncryptionContext', Any), ('decryptDescriptions', Any), ('commitmentPolicy', Any), ('frameLength', Any), ('algorithmSuiteId', Any), ('description', Any), ('decryptionMethod', Any)])): + def __dafnystr__(self) -> str: + return f'EsdkTestVectors.EsdkDecryptTestVector.NegativeDecryptTestVector({_dafny.string_of(self.id)}, {_dafny.string_of(self.version)}, {_dafny.string_of(self.manifestPath)}, {_dafny.string_of(self.ciphertextPath)}, {_dafny.string_of(self.errorDescription)}, {_dafny.string_of(self.reproducedEncryptionContext)}, {_dafny.string_of(self.decryptDescriptions)}, {_dafny.string_of(self.commitmentPolicy)}, {_dafny.string_of(self.frameLength)}, {_dafny.string_of(self.algorithmSuiteId)}, {_dafny.string_of(self.description)}, {_dafny.string_of(self.decryptionMethod)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, EsdkDecryptTestVector_NegativeDecryptTestVector) and self.id == __o.id and self.version == __o.version and self.manifestPath == __o.manifestPath and self.ciphertextPath == __o.ciphertextPath and self.errorDescription == __o.errorDescription and self.reproducedEncryptionContext == __o.reproducedEncryptionContext and self.decryptDescriptions == __o.decryptDescriptions and self.commitmentPolicy == __o.commitmentPolicy and self.frameLength == __o.frameLength and self.algorithmSuiteId == __o.algorithmSuiteId and self.description == __o.description and self.decryptionMethod == __o.decryptionMethod + def __hash__(self) -> int: + return super().__hash__() + +class EsdkDecryptTestVector_PositiveV1OrV2DecryptTestVector(EsdkDecryptTestVector, NamedTuple('PositiveV1OrV2DecryptTestVector', [('id', Any), ('version', Any), ('manifestPath', Any), ('ciphertextPath', Any), ('plaintextPath', Any), ('reproducedEncryptionContext', Any), ('requiredEncryptionContextKeys', Any), ('decryptDescriptions', Any), ('commitmentPolicy', Any), ('frameLength', Any), ('algorithmSuiteId', Any), ('description', Any), ('decryptionMethod', Any)])): + def __dafnystr__(self) -> str: + return f'EsdkTestVectors.EsdkDecryptTestVector.PositiveV1OrV2DecryptTestVector({_dafny.string_of(self.id)}, {_dafny.string_of(self.version)}, {_dafny.string_of(self.manifestPath)}, {_dafny.string_of(self.ciphertextPath)}, {_dafny.string_of(self.plaintextPath)}, {_dafny.string_of(self.reproducedEncryptionContext)}, {_dafny.string_of(self.requiredEncryptionContextKeys)}, {_dafny.string_of(self.decryptDescriptions)}, {_dafny.string_of(self.commitmentPolicy)}, {_dafny.string_of(self.frameLength)}, {_dafny.string_of(self.algorithmSuiteId)}, {_dafny.string_of(self.description)}, {_dafny.string_of(self.decryptionMethod)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, EsdkDecryptTestVector_PositiveV1OrV2DecryptTestVector) and self.id == __o.id and self.version == __o.version and self.manifestPath == __o.manifestPath and self.ciphertextPath == __o.ciphertextPath and self.plaintextPath == __o.plaintextPath and self.reproducedEncryptionContext == __o.reproducedEncryptionContext and self.requiredEncryptionContextKeys == __o.requiredEncryptionContextKeys and self.decryptDescriptions == __o.decryptDescriptions and self.commitmentPolicy == __o.commitmentPolicy and self.frameLength == __o.frameLength and self.algorithmSuiteId == __o.algorithmSuiteId and self.description == __o.description and self.decryptionMethod == __o.decryptionMethod + def __hash__(self) -> int: + return super().__hash__() + + +class DecryptionMethod: + @_dafny.classproperty + def AllSingletonConstructors(cls): + return [DecryptionMethod_StreamingUnsignedOnly(), DecryptionMethod_OneShot()] + @classmethod + def default(cls, ): + return lambda: DecryptionMethod_StreamingUnsignedOnly() + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_StreamingUnsignedOnly(self) -> bool: + return isinstance(self, DecryptionMethod_StreamingUnsignedOnly) + @property + def is_OneShot(self) -> bool: + return isinstance(self, DecryptionMethod_OneShot) + +class DecryptionMethod_StreamingUnsignedOnly(DecryptionMethod, NamedTuple('StreamingUnsignedOnly', [])): + def __dafnystr__(self) -> str: + return f'EsdkTestVectors.DecryptionMethod.StreamingUnsignedOnly' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, DecryptionMethod_StreamingUnsignedOnly) + def __hash__(self) -> int: + return super().__hash__() + +class DecryptionMethod_OneShot(DecryptionMethod, NamedTuple('OneShot', [])): + def __dafnystr__(self) -> str: + return f'EsdkTestVectors.DecryptionMethod.OneShot' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, DecryptionMethod_OneShot) + def __hash__(self) -> int: + return super().__hash__() + + +class EncryptTestOutput: + @classmethod + def default(cls, ): + return lambda: EncryptTestOutput_EncryptTestOutput(False, Wrappers.Option.default()()) + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_EncryptTestOutput(self) -> bool: + return isinstance(self, EncryptTestOutput_EncryptTestOutput) + +class EncryptTestOutput_EncryptTestOutput(EncryptTestOutput, NamedTuple('EncryptTestOutput', [('output', Any), ('vector', Any)])): + def __dafnystr__(self) -> str: + return f'EsdkTestVectors.EncryptTestOutput.EncryptTestOutput({_dafny.string_of(self.output)}, {_dafny.string_of(self.vector)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, EncryptTestOutput_EncryptTestOutput) and self.output == __o.output and self.vector == __o.vector + def __hash__(self) -> int: + return super().__hash__() + diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/ParseEsdkJsonManifest.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/ParseEsdkJsonManifest.py new file mode 100644 index 000000000..593892eef --- /dev/null +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/ParseEsdkJsonManifest.py @@ -0,0 +1,629 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import aws_encryption_sdk_test_vectors.internaldafny.generated.module_ as module_ +import _dafny as _dafny +import System_ as System_ +import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers +import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary +import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom +import aws_cryptography_primitives.internaldafny.generated.Random as Random +import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption +import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest +import aws_cryptography_primitives.internaldafny.generated.Digest as Digest +import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC +import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC +import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF +import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF +import aws_cryptography_primitives.internaldafny.generated.Signature as Signature +import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr +import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption +import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives +import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 +import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites +import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials +import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring +import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations +import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort +import smithy_dafny_standard_library.internaldafny.generated.Math as Math +import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq +import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils +import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants +import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID +import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping +import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets +import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext +import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping +import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring +import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms +import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.Time as Time +import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker +import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC +import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring +import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring +import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM +import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults +import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment +import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM +import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier +import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils +import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders +import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn +import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure +import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable +import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Core as JSON_Utils_Views_Core +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Writers as JSON_Utils_Views_Writers +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Cursors as JSON_Utils_Cursors +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Parsers as JSON_Utils_Parsers +import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals +import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals +import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul +import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals +import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals +import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod +import smithy_dafny_standard_library.internaldafny.generated.Power as Power +import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str as JSON_Utils_Str +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Seq as JSON_Utils_Seq +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Vectors as JSON_Utils_Vectors +import smithy_dafny_standard_library.internaldafny.generated.JSON_Errors as JSON_Errors +import smithy_dafny_standard_library.internaldafny.generated.JSON_Values as JSON_Values +import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode +import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions +import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings +import smithy_dafny_standard_library.internaldafny.generated.JSON_Spec as JSON_Spec +import smithy_dafny_standard_library.internaldafny.generated.JSON_Grammar as JSON_Grammar +import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer as JSON_Serializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer as JSON_Deserializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec +import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_API as JSON_ZeroCopy_API +import smithy_dafny_standard_library.internaldafny.generated.JSON_API as JSON_API +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.JSONHelpers as JSONHelpers +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyDescription as KeyDescription +import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyMaterial as KeyMaterial +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyrings as CreateStaticKeyrings +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyStores as CreateStaticKeyStores +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyringFromKeyDescription as KeyringFromKeyDescription +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CmmFromKeyDescription as CmmFromKeyDescription +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProviders as WrappedMaterialProviders +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeysVectorOperations as KeysVectorOperations +import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyVectors as KeyVectors +import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams +import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk.internaldafny.generated.Header as Header +import aws_encryption_sdk.internaldafny.generated.Frames as Frames +import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions +import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestVectors as TestVectors +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllHierarchy as AllHierarchy +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKms as AllKms +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAware as AllKmsMrkAware +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsRsa as AllKmsRsa +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsEcdh as AllKmsEcdh +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawAES as AllRawAES +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawRSA as AllRawRSA +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawECDH as AllRawECDH +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllDefaultCmm as AllDefaultCmm +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllMulti as AllMulti +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WriteJsonManifests as WriteJsonManifests +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CompleteVectors as CompleteVectors +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.ParseJsonManifests as ParseJsonManifests +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestManifests as TestManifests +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProvidersMain as WrappedMaterialProvidersMain +import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr +import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop +import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting +import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare +import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall +import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas +import aws_encryption_sdk_test_vectors.internaldafny.generated.WrappedESDK as WrappedESDK +import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkManifestOptions as EsdkManifestOptions +import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkTestVectors as EsdkTestVectors +import aws_encryption_sdk_test_vectors.internaldafny.generated.AllEsdkV4NoReqEc as AllEsdkV4NoReqEc +import aws_encryption_sdk_test_vectors.internaldafny.generated.AllEsdkV4WithReqEc as AllEsdkV4WithReqEc +import aws_encryption_sdk_test_vectors.internaldafny.generated.WriteEsdkJsonManifests as WriteEsdkJsonManifests +import aws_encryption_sdk_test_vectors.internaldafny.generated.WriteVectors as WriteVectors + +# Module: ParseEsdkJsonManifest + +class default__: + def __init__(self): + pass + + @staticmethod + def BuildDecryptTestVector(op, version, keys, obj): + hresult_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_0_i_: int + d_0_i_ = len(obj) + d_1_vectors_: _dafny.Seq + d_1_vectors_ = _dafny.Seq([]) + while (d_0_i_) != (0): + d_0_i_ = (d_0_i_) - (1) + d_2_test_: Wrappers.Result + d_2_test_ = default__.ToDecryptTestVectors(op, version, keys, ((obj)[d_0_i_])[0], ((obj)[d_0_i_])[1]) + if ((d_2_test_).is_Failure) and (((d_2_test_).error) != (default__.negativeTestVectorFound)): + hresult_ = Wrappers.Result_Failure(default__.buildTestVectorError) + return hresult_ + if (d_2_test_).is_Success: + d_1_vectors_ = (_dafny.Seq([(d_2_test_).value])) + (d_1_vectors_) + if ((d_2_test_).is_Failure) and (((d_2_test_).error) == (default__.negativeTestVectorFound)): + d_1_vectors_ = d_1_vectors_ + hresult_ = Wrappers.Result_Success(d_1_vectors_) + return hresult_ + return hresult_ + + @staticmethod + def ToDecryptTestVectors(op, version, keys, name, json): + d_0_valueOrError0_ = Wrappers.default__.Need((json).is_Object, _dafny.Seq("Vector is not an object")) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + d_1_obj_ = (json).obj + source0_ = version + if True: + if (source0_) == (3): + d_2_valueOrError1_ = Wrappers.default__.Need((op).is_Decrypt, _dafny.Seq("Err parsing manifest expected Decrypt")) + if (d_2_valueOrError1_).IsFailure(): + return (d_2_valueOrError1_).PropagateFailure() + elif True: + return default__.V3ToDecryptTestVector(op, keys, name, d_1_obj_, version) + if True: + if (source0_) == (2): + d_3_valueOrError2_ = Wrappers.default__.Need((op).is_Decrypt, _dafny.Seq("Err parsing manifest expected Decrypt")) + if (d_3_valueOrError2_).IsFailure(): + return (d_3_valueOrError2_).PropagateFailure() + elif True: + return default__.V2ToDecryptTestVector(op, keys, name, d_1_obj_, version) + if True: + if (source0_) == (1): + d_4_valueOrError3_ = Wrappers.default__.Need((op).is_Decrypt, _dafny.Seq("Err parsing manifest expected Decrypt")) + if (d_4_valueOrError3_).IsFailure(): + return (d_4_valueOrError3_).PropagateFailure() + elif True: + return default__.V1ToDecryptTestVector(op, keys, name, d_1_obj_, version) + if True: + return Wrappers.Result_Failure(_dafny.Seq("Version not supported\n")) + + @staticmethod + def BuildEncryptTestVector(op, version, keys, obj): + hresult_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_0_i_: int + d_0_i_ = len(obj) + d_1_vectors_: _dafny.Seq + d_1_vectors_ = _dafny.Seq([]) + while (d_0_i_) != (0): + d_0_i_ = (d_0_i_) - (1) + d_2_test_: Wrappers.Result + d_2_test_ = default__.ToEncryptTestVector(op, version, keys, ((obj)[d_0_i_])[0], ((obj)[d_0_i_])[1]) + if (d_2_test_).is_Failure: + hresult_ = Wrappers.Result_Failure((d_2_test_).error) + return hresult_ + d_1_vectors_ = (_dafny.Seq([(d_2_test_).value])) + (d_1_vectors_) + hresult_ = Wrappers.Result_Success(d_1_vectors_) + return hresult_ + return hresult_ + + @staticmethod + def ToEncryptTestVector(op, version, keys, name, json): + d_0_valueOrError0_ = Wrappers.default__.Need((json).is_Object, _dafny.Seq("EncryptTestVector not an object")) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + d_1_obj_ = (json).obj + source0_ = version + if True: + if (source0_) == (5): + return default__.V5ToEncryptTestVector(op, keys, name, d_1_obj_, version) + if True: + return Wrappers.Result_Failure(_dafny.Seq("Version not supported")) + + @staticmethod + def V5ToEncryptTestVector(op, keys, name, obj, version): + d_0_scenarioString_ = _dafny.Seq("encryption-scenario") + d_1_valueOrError0_ = JSONHelpers.default__.GetObject(d_0_scenarioString_, obj) + if (d_1_valueOrError0_).IsFailure(): + return (d_1_valueOrError0_).PropagateFailure() + elif True: + d_2_scenario_ = (d_1_valueOrError0_).Extract() + d_3_typeString_ = _dafny.Seq("type") + d_4_valueOrError1_ = JSONHelpers.default__.GetString(d_3_typeString_, d_2_scenario_) + if (d_4_valueOrError1_).IsFailure(): + return (d_4_valueOrError1_).PropagateFailure() + elif True: + d_5_typ_ = (d_4_valueOrError1_).Extract() + d_6_valueOrError2_ = JSONHelpers.default__.GetString(default__.plaintextJsonKey, d_2_scenario_) + if (d_6_valueOrError2_).IsFailure(): + return (d_6_valueOrError2_).PropagateFailure() + elif True: + d_7_plaintextLoc_ = (d_6_valueOrError2_).Extract() + d_8_valueOrError3_ = ParseJsonManifests.default__.GetAlgorithmSuiteInfo(d_2_scenario_) + if (d_8_valueOrError3_).IsFailure(): + return (d_8_valueOrError3_).PropagateFailure() + elif True: + d_9_algorithmSuite_ = (d_8_valueOrError3_).Extract() + d_10_valueOrError4_ = Wrappers.default__.Need(((d_9_algorithmSuite_).id).is_ESDK, _dafny.Seq("Unsupported algorithmSuiteId")) + if (d_10_valueOrError4_).IsFailure(): + return (d_10_valueOrError4_).PropagateFailure() + elif True: + d_11_valueOrError5_ = JSONHelpers.default__.GetOptionalPositiveLong(default__.frameSizeJsonKey, d_2_scenario_) + if (d_11_valueOrError5_).IsFailure(): + return (d_11_valueOrError5_).PropagateFailure() + elif True: + d_12_frameLength_ = (d_11_valueOrError5_).Extract() + d_13_valueOrError6_ = JSONHelpers.default__.SmallObjectToStringStringMap(default__.encryptionContextJsonKey, d_2_scenario_) + if (d_13_valueOrError6_).IsFailure(): + return (d_13_valueOrError6_).PropagateFailure() + elif True: + d_14_encryptionContextStrings_ = (d_13_valueOrError6_).Extract() + d_15_valueOrError7_ = JSONHelpers.default__.utf8EncodeMap(d_14_encryptionContextStrings_) + if (d_15_valueOrError7_).IsFailure(): + return (d_15_valueOrError7_).PropagateFailure() + elif True: + d_16_encryptionContext_ = (d_15_valueOrError7_).Extract() + d_17_valueOrError8_ = JSONHelpers.default__.SmallObjectToStringStringMap(default__.reproducedEncryptionContextJsonKey, d_2_scenario_) + if (d_17_valueOrError8_).IsFailure(): + return (d_17_valueOrError8_).PropagateFailure() + elif True: + d_18_reproducedEncryptionContextString_ = (d_17_valueOrError8_).Extract() + d_19_valueOrError9_ = JSONHelpers.default__.utf8EncodeMap(d_18_reproducedEncryptionContextString_) + if (d_19_valueOrError9_).IsFailure(): + return (d_19_valueOrError9_).PropagateFailure() + elif True: + d_20_reproducedEncryptionContext_ = (d_19_valueOrError9_).Extract() + d_21_valueOrError10_ = JSONHelpers.default__.GetString(_dafny.Seq("description"), d_2_scenario_) + if (d_21_valueOrError10_).IsFailure(): + return (d_21_valueOrError10_).PropagateFailure() + elif True: + d_22_description_ = (d_21_valueOrError10_).Extract() + source0_ = d_5_typ_ + if True: + if (source0_) == (_dafny.Seq("positive-esdk")): + d_23_valueOrError11_ = ParseJsonManifests.default__.GetKeyDescription(keys, default__.encryptKeyDescription, d_2_scenario_) + if (d_23_valueOrError11_).IsFailure(): + return (d_23_valueOrError11_).PropagateFailure() + elif True: + d_24_encryptKeyDescription_ = (d_23_valueOrError11_).Extract() + d_25_valueOrError12_ = ParseJsonManifests.default__.GetKeyDescription(keys, default__.decryptKeyDescription, d_2_scenario_) + if (d_25_valueOrError12_).IsFailure(): + return (d_25_valueOrError12_).PropagateFailure() + elif True: + d_26_decryptKeyDescription_ = (d_25_valueOrError12_).Extract() + return Wrappers.Result_Success(EsdkTestVectors.EsdkEncryptTestVector_PositiveEncryptTestVector(Wrappers.Option_Some(name), version, (op).manifestPath, (op).decryptManifestOutput, d_7_plaintextLoc_, d_24_encryptKeyDescription_, d_26_decryptKeyDescription_, Wrappers.Option_Some(d_16_encryptionContext_), Wrappers.Option_Some(d_20_reproducedEncryptionContext_), AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT(), d_12_frameLength_, Wrappers.Option_Some(d_9_algorithmSuite_), d_22_description_, Wrappers.Option_Some(1))) + if True: + return Wrappers.Result_Failure((_dafny.Seq("Unsupported ESDK TestVector type: ")) + (d_5_typ_)) + + @staticmethod + def V1ToDecryptTestVector(op, keys, name, obj, version): + d_0_valueOrError0_ = JSONHelpers.default__.GetString(_dafny.Seq("plaintext"), obj) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + d_1_plaintextLoc_ = (d_0_valueOrError0_).Extract() + d_2_valueOrError1_ = JSONHelpers.default__.GetString(_dafny.Seq("ciphertext"), obj) + if (d_2_valueOrError1_).IsFailure(): + return (d_2_valueOrError1_).PropagateFailure() + elif True: + d_3_ciphertextLoc_ = (d_2_valueOrError1_).Extract() + d_4_valueOrError2_ = Wrappers.default__.Need(((_dafny.Seq("file://")) < (d_3_ciphertextLoc_)) and ((_dafny.Seq("file://")) < (d_1_plaintextLoc_)), _dafny.Seq("Invalid file prefix in test vector")) + if (d_4_valueOrError2_).IsFailure(): + return (d_4_valueOrError2_).PropagateFailure() + elif True: + d_5_valueOrError3_ = JSONHelpers.default__.GetArray(_dafny.Seq("master-keys"), obj) + if (d_5_valueOrError3_).IsFailure(): + return (d_5_valueOrError3_).PropagateFailure() + elif True: + d_6_masterKeys_ = (d_5_valueOrError3_).Extract() + d_7_valueOrError4_ = default__.GetKeyDescriptions(d_6_masterKeys_, keys) + if (d_7_valueOrError4_).IsFailure(): + return (d_7_valueOrError4_).PropagateFailure() + elif True: + d_8_keyDescriptions_ = (d_7_valueOrError4_).Extract() + d_9_valueOrError5_ = default__.ToMultiKeyDescription(d_8_keyDescriptions_) + if (d_9_valueOrError5_).IsFailure(): + return (d_9_valueOrError5_).PropagateFailure() + elif True: + d_10_keyDescription_ = (d_9_valueOrError5_).Extract() + return Wrappers.Result_Success(EsdkTestVectors.EsdkDecryptTestVector_PositiveV1OrV2DecryptTestVector(name, version, (op).manifestPath, _dafny.Seq((d_3_ciphertextLoc_)[len(default__.FILE__PREPEND)::]), _dafny.Seq((d_1_plaintextLoc_)[len(default__.FILE__PREPEND)::]), Wrappers.Option_None(), Wrappers.Option_None(), d_10_keyDescription_, AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT(), Wrappers.Option_None(), Wrappers.Option_None(), name, EsdkTestVectors.DecryptionMethod_OneShot())) + + @staticmethod + def V2ToDecryptTestVector(op, keys, name, obj, version): + d_0_valueOrError0_ = JSONHelpers.default__.GetObject(_dafny.Seq("result"), obj) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + d_1_resultLoc_ = (d_0_valueOrError0_).Extract() + d_2_errorLoc_q_ = JSONHelpers.default__.GetObject(_dafny.Seq("error"), d_1_resultLoc_) + if (d_2_errorLoc_q_).is_Success: + return Wrappers.Result_Failure(default__.negativeTestVectorFound) + elif True: + d_3_valueOrError1_ = JSONHelpers.default__.GetObject(_dafny.Seq("output"), d_1_resultLoc_) + if (d_3_valueOrError1_).IsFailure(): + return (d_3_valueOrError1_).PropagateFailure() + elif True: + d_4_outputLoc_ = (d_3_valueOrError1_).Extract() + d_5_valueOrError2_ = JSONHelpers.default__.GetString(_dafny.Seq("plaintext"), d_4_outputLoc_) + if (d_5_valueOrError2_).IsFailure(): + return (d_5_valueOrError2_).PropagateFailure() + elif True: + d_6_plaintextLoc_ = (d_5_valueOrError2_).Extract() + d_7_valueOrError3_ = JSONHelpers.default__.GetString(_dafny.Seq("ciphertext"), obj) + if (d_7_valueOrError3_).IsFailure(): + return (d_7_valueOrError3_).PropagateFailure() + elif True: + d_8_ciphertextLoc_ = (d_7_valueOrError3_).Extract() + d_9_valueOrError4_ = Wrappers.default__.Need(((_dafny.Seq("file://")) < (d_8_ciphertextLoc_)) and ((_dafny.Seq("file://")) < (d_6_plaintextLoc_)), _dafny.Seq("Invalid file prefix in test vector")) + if (d_9_valueOrError4_).IsFailure(): + return (d_9_valueOrError4_).PropagateFailure() + elif True: + d_10_valueOrError5_ = JSONHelpers.default__.GetArray(_dafny.Seq("master-keys"), obj) + if (d_10_valueOrError5_).IsFailure(): + return (d_10_valueOrError5_).PropagateFailure() + elif True: + d_11_masterKeys_ = (d_10_valueOrError5_).Extract() + d_12_valueOrError6_ = default__.GetKeyDescriptions(d_11_masterKeys_, keys) + if (d_12_valueOrError6_).IsFailure(): + return (d_12_valueOrError6_).PropagateFailure() + elif True: + d_13_keyDescriptions_ = (d_12_valueOrError6_).Extract() + d_14_valueOrError7_ = default__.ToMultiKeyDescription(d_13_keyDescriptions_) + if (d_14_valueOrError7_).IsFailure(): + return (d_14_valueOrError7_).PropagateFailure() + elif True: + d_15_keyDescription_ = (d_14_valueOrError7_).Extract() + return Wrappers.Result_Success(EsdkTestVectors.EsdkDecryptTestVector_PositiveV1OrV2DecryptTestVector(name, version, (op).manifestPath, _dafny.Seq((d_8_ciphertextLoc_)[len(default__.FILE__PREPEND)::]), _dafny.Seq((d_6_plaintextLoc_)[len(default__.FILE__PREPEND)::]), Wrappers.Option_None(), Wrappers.Option_None(), d_15_keyDescription_, AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT(), Wrappers.Option_None(), Wrappers.Option_None(), name, EsdkTestVectors.DecryptionMethod_OneShot())) + + @staticmethod + def V3ToDecryptTestVector(op, keys, name, obj, version): + d_0_scenarioString_ = _dafny.Seq("decryption-scenario") + d_1_valueOrError0_ = JSONHelpers.default__.GetObject(d_0_scenarioString_, obj) + if (d_1_valueOrError0_).IsFailure(): + return (d_1_valueOrError0_).PropagateFailure() + elif True: + d_2_scenario_ = (d_1_valueOrError0_).Extract() + d_3_typeString_ = _dafny.Seq("type") + d_4_valueOrError1_ = JSONHelpers.default__.GetString(d_3_typeString_, d_2_scenario_) + if (d_4_valueOrError1_).IsFailure(): + return (d_4_valueOrError1_).PropagateFailure() + elif True: + d_5_typ_ = (d_4_valueOrError1_).Extract() + d_6_valueOrError2_ = JSONHelpers.default__.GetString(default__.ciphertextJsonKey, d_2_scenario_) + if (d_6_valueOrError2_).IsFailure(): + return (d_6_valueOrError2_).PropagateFailure() + elif True: + d_7_ciphertextLoc_ = (d_6_valueOrError2_).Extract() + d_8_valueOrError3_ = ParseJsonManifests.default__.GetAlgorithmSuiteInfo(d_2_scenario_) + if (d_8_valueOrError3_).IsFailure(): + return (d_8_valueOrError3_).PropagateFailure() + elif True: + d_9_algorithmSuite_ = (d_8_valueOrError3_).Extract() + d_10_valueOrError4_ = Wrappers.default__.Need(((d_9_algorithmSuite_).id).is_ESDK, _dafny.Seq("Unsupported algorithmSuiteId")) + if (d_10_valueOrError4_).IsFailure(): + return (d_10_valueOrError4_).PropagateFailure() + elif True: + d_11_valueOrError5_ = JSONHelpers.default__.GetOptionalPositiveLong(default__.frameSizeJsonKey, d_2_scenario_) + if (d_11_valueOrError5_).IsFailure(): + return (d_11_valueOrError5_).PropagateFailure() + elif True: + d_12_frameLength_ = (d_11_valueOrError5_).Extract() + d_13_valueOrError6_ = JSONHelpers.default__.SmallObjectToStringStringMap(default__.reproducedEncryptionContextJsonKey, d_2_scenario_) + if (d_13_valueOrError6_).IsFailure(): + return (d_13_valueOrError6_).PropagateFailure() + elif True: + d_14_reproducedEncryptionContextStrings_ = (d_13_valueOrError6_).Extract() + d_15_valueOrError7_ = JSONHelpers.default__.utf8EncodeMap(d_14_reproducedEncryptionContextStrings_) + if (d_15_valueOrError7_).IsFailure(): + return (d_15_valueOrError7_).PropagateFailure() + elif True: + d_16_reproducedEncryptionContext_ = (d_15_valueOrError7_).Extract() + d_17_valueOrError8_ = JSONHelpers.default__.GetString(_dafny.Seq("description"), d_2_scenario_) + if (d_17_valueOrError8_).IsFailure(): + return (d_17_valueOrError8_).PropagateFailure() + elif True: + d_18_description_ = (d_17_valueOrError8_).Extract() + d_19_valueOrError9_ = JSONHelpers.default__.GetString(_dafny.Seq("result"), d_2_scenario_) + if (d_19_valueOrError9_).IsFailure(): + return (d_19_valueOrError9_).PropagateFailure() + elif True: + d_20_result_ = (d_19_valueOrError9_).Extract() + d_21_valueOrError10_ = Wrappers.default__.Need(((_dafny.Seq("file://")) < (d_7_ciphertextLoc_)) and ((_dafny.Seq("file://")) < (d_20_result_)), _dafny.Seq("Invalid file prefix in test vector")) + if (d_21_valueOrError10_).IsFailure(): + return (d_21_valueOrError10_).PropagateFailure() + elif True: + source0_ = d_5_typ_ + if True: + if (source0_) == (_dafny.Seq("positive-esdk")): + d_22_valueOrError11_ = ParseJsonManifests.default__.GetKeyDescription(keys, default__.decryptKeyDescription, d_2_scenario_) + if (d_22_valueOrError11_).IsFailure(): + return (d_22_valueOrError11_).PropagateFailure() + elif True: + d_23_decryptKeyDescription_ = (d_22_valueOrError11_).Extract() + return Wrappers.Result_Success(EsdkTestVectors.EsdkDecryptTestVector_PositiveDecryptTestVector(name, version, (op).manifestPath, _dafny.Seq((d_7_ciphertextLoc_)[len(default__.FILE__PREPEND)::]), _dafny.Seq((d_20_result_)[len(default__.FILE__PREPEND)::]), Wrappers.Option_Some(d_16_reproducedEncryptionContext_), d_23_decryptKeyDescription_, AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT(), d_12_frameLength_, Wrappers.Option_Some(d_9_algorithmSuite_), d_18_description_, EsdkTestVectors.DecryptionMethod_OneShot())) + if True: + return Wrappers.Result_Failure((_dafny.Seq("Unsupported ESDK TestVector type: ")) + (d_5_typ_)) + + @staticmethod + def GetKeyDescriptions(keyArray, keys): + if (len(keyArray)) == (0): + return Wrappers.Result_Success(_dafny.Seq([])) + elif True: + d_0_currKey_ = (keyArray)[0] + d_1_valueOrError0_ = Wrappers.default__.Need((d_0_currKey_).is_Object, _dafny.Seq("Not an object")) + if (d_1_valueOrError0_).IsFailure(): + return (d_1_valueOrError0_).PropagateFailure() + elif True: + def lambda0_(d_3_e_): + return (d_3_e_).ToString() + + d_2_valueOrError1_ = (JSON_API.default__.Serialize(d_0_currKey_)).MapFailure(lambda0_) + if (d_2_valueOrError1_).IsFailure(): + return (d_2_valueOrError1_).PropagateFailure() + elif True: + d_4_encryptStr_ = (d_2_valueOrError1_).Extract() + d_5_valueOrError2_ = ((keys).GetKeyDescription(AwsCryptographyMaterialProvidersTestVectorKeysTypes.GetKeyDescriptionInput_GetKeyDescriptionInput(d_4_encryptStr_))).MapFailure(ParseJsonManifests.default__.ErrorToString) + if (d_5_valueOrError2_).IsFailure(): + return (d_5_valueOrError2_).PropagateFailure() + elif True: + d_6_encryptDecryptKeyDescription_ = (d_5_valueOrError2_).Extract() + d_7_valueOrError3_ = default__.GetKeyDescriptions(_dafny.Seq((keyArray)[1::]), keys) + if (d_7_valueOrError3_).IsFailure(): + return (d_7_valueOrError3_).PropagateFailure() + elif True: + d_8_tail_ = (d_7_valueOrError3_).Extract() + return Wrappers.Result_Success((_dafny.Seq([(d_6_encryptDecryptKeyDescription_).keyDescription])) + (d_8_tail_)) + + @staticmethod + def ToMultiKeyDescription(keyDescriptions): + if (len(keyDescriptions)) == (1): + return Wrappers.Result_Success((keyDescriptions)[0]) + elif True: + d_0_valueOrError0_ = Wrappers.default__.Need((len(keyDescriptions)) > (1), _dafny.Seq("Received invalid key description length")) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + return Wrappers.Result_Success(AwsCryptographyMaterialProvidersTestVectorKeysTypes.KeyDescription_Multi(AwsCryptographyMaterialProvidersTestVectorKeysTypes.MultiKeyring_MultiKeyring(Wrappers.Option_Some((keyDescriptions)[0]), _dafny.Seq((keyDescriptions)[1::])))) + + @staticmethod + def GetPath(key, obj): + d_0_valueOrError0_ = JSONHelpers.default__.GetString(key, obj) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + d_1_path_ = (d_0_valueOrError0_).Extract() + d_2_valueOrError1_ = Wrappers.default__.Need((default__.FILE__PREPEND) < (d_1_path_), _dafny.Seq("Received Invalid location for plaintext or ciphertext.")) + if (d_2_valueOrError1_).IsFailure(): + return (d_2_valueOrError1_).PropagateFailure() + elif True: + return Wrappers.Result_Success(_dafny.Seq((d_1_path_)[len(default__.FILE__PREPEND)::])) + + @staticmethod + def Result_q(key): + return ((key) == (_dafny.Seq("output"))) or ((key) == (_dafny.Seq("error"))) + + @_dafny.classproperty + def ciphertextJsonKey(instance): + return _dafny.Seq("ciphertext") + @_dafny.classproperty + def frameSizeJsonKey(instance): + return _dafny.Seq("frame-size") + @_dafny.classproperty + def reproducedEncryptionContextJsonKey(instance): + return _dafny.Seq("reproduced-encryption-context") + @_dafny.classproperty + def decryptKeyDescription(instance): + return _dafny.Seq("decryptKeyDescription") + @_dafny.classproperty + def FILE__PREPEND(instance): + return _dafny.Seq("file://") + @_dafny.classproperty + def negativeTestVectorFound(instance): + return _dafny.Seq("Negative test vector found; not supported yet.") + @_dafny.classproperty + def buildTestVectorError(instance): + return _dafny.Seq("Error other than negative test vector found thrown") + @_dafny.classproperty + def plaintextJsonKey(instance): + return _dafny.Seq("plaintext") + @_dafny.classproperty + def encryptionContextJsonKey(instance): + return _dafny.Seq("encryption-context") + @_dafny.classproperty + def encryptKeyDescription(instance): + return _dafny.Seq("encryptKeyDescription") + @_dafny.classproperty + def masterKeysJsonKey(instance): + return _dafny.Seq("master-keys") + @_dafny.classproperty + def decryptionMethodJsonKey(instance): + return _dafny.Seq("decryption-method") diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WrappedESDK.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WrappedESDK.py new file mode 100644 index 000000000..996054c41 --- /dev/null +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WrappedESDK.py @@ -0,0 +1,229 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import aws_encryption_sdk_test_vectors.internaldafny.generated.module_ as module_ +import _dafny as _dafny +import System_ as System_ +import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers +import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary +import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom +import aws_cryptography_primitives.internaldafny.generated.Random as Random +import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption +import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest +import aws_cryptography_primitives.internaldafny.generated.Digest as Digest +import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC +import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC +import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF +import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF +import aws_cryptography_primitives.internaldafny.generated.Signature as Signature +import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr +import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption +import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives +import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 +import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites +import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials +import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring +import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations +import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort +import smithy_dafny_standard_library.internaldafny.generated.Math as Math +import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq +import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils +import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants +import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID +import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping +import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets +import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext +import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping +import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring +import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms +import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.Time as Time +import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker +import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC +import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring +import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring +import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM +import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults +import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment +import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM +import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier +import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils +import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders +import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn +import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure +import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable +import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Core as JSON_Utils_Views_Core +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Writers as JSON_Utils_Views_Writers +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Cursors as JSON_Utils_Cursors +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Parsers as JSON_Utils_Parsers +import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals +import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals +import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul +import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals +import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals +import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod +import smithy_dafny_standard_library.internaldafny.generated.Power as Power +import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str as JSON_Utils_Str +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Seq as JSON_Utils_Seq +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Vectors as JSON_Utils_Vectors +import smithy_dafny_standard_library.internaldafny.generated.JSON_Errors as JSON_Errors +import smithy_dafny_standard_library.internaldafny.generated.JSON_Values as JSON_Values +import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode +import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions +import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings +import smithy_dafny_standard_library.internaldafny.generated.JSON_Spec as JSON_Spec +import smithy_dafny_standard_library.internaldafny.generated.JSON_Grammar as JSON_Grammar +import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer as JSON_Serializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer as JSON_Deserializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec +import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_API as JSON_ZeroCopy_API +import smithy_dafny_standard_library.internaldafny.generated.JSON_API as JSON_API +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.JSONHelpers as JSONHelpers +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyDescription as KeyDescription +import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyMaterial as KeyMaterial +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyrings as CreateStaticKeyrings +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyStores as CreateStaticKeyStores +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyringFromKeyDescription as KeyringFromKeyDescription +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CmmFromKeyDescription as CmmFromKeyDescription +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProviders as WrappedMaterialProviders +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeysVectorOperations as KeysVectorOperations +import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyVectors as KeyVectors +import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams +import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk.internaldafny.generated.Header as Header +import aws_encryption_sdk.internaldafny.generated.Frames as Frames +import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions +import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestVectors as TestVectors +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllHierarchy as AllHierarchy +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKms as AllKms +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAware as AllKmsMrkAware +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsRsa as AllKmsRsa +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsEcdh as AllKmsEcdh +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawAES as AllRawAES +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawRSA as AllRawRSA +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawECDH as AllRawECDH +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllDefaultCmm as AllDefaultCmm +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllMulti as AllMulti +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WriteJsonManifests as WriteJsonManifests +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CompleteVectors as CompleteVectors +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.ParseJsonManifests as ParseJsonManifests +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestManifests as TestManifests +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProvidersMain as WrappedMaterialProvidersMain +import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr +import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop +import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting +import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare +import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall +import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas + +# Module: WrappedESDK + +class default__: + def __init__(self): + pass + + @staticmethod + def WrappedDefaultAwsEncryptionSdkConfig(): + return AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig_AwsEncryptionSdkConfig(Wrappers.Option_Some(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT()), Wrappers.Option_None(), Wrappers.Option_None()) + + @staticmethod + def WrappedAwsEncryptionSdkConfigWithSuppliedCommitment(commitmentPolicy): + return AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig_AwsEncryptionSdkConfig(Wrappers.Option_Some(commitmentPolicy), Wrappers.Option_None(), Wrappers.Option_None()) + + @staticmethod + def WrappedAwsEncryptionSdkConfig(commitmentPolicy, maxEncryptedDataKeys, netV4__0__0__RetryPolicy): + return AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig_AwsEncryptionSdkConfig(Wrappers.Option_Some(commitmentPolicy), Wrappers.Option_Some(maxEncryptedDataKeys), Wrappers.Option_Some(netV4__0__0__RetryPolicy)) + diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WrappedESDKMain.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WrappedESDKMain.py new file mode 100644 index 000000000..155d4caef --- /dev/null +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WrappedESDKMain.py @@ -0,0 +1,346 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import aws_encryption_sdk_test_vectors.internaldafny.generated.module_ as module_ +import _dafny as _dafny +import System_ as System_ +import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers +import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary +import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom +import aws_cryptography_primitives.internaldafny.generated.Random as Random +import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption +import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest +import aws_cryptography_primitives.internaldafny.generated.Digest as Digest +import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC +import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC +import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF +import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF +import aws_cryptography_primitives.internaldafny.generated.Signature as Signature +import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr +import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption +import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives +import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 +import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites +import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials +import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring +import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations +import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort +import smithy_dafny_standard_library.internaldafny.generated.Math as Math +import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq +import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils +import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants +import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID +import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping +import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets +import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext +import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping +import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring +import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms +import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.Time as Time +import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker +import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC +import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring +import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring +import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM +import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults +import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment +import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM +import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier +import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils +import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders +import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn +import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure +import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable +import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Core as JSON_Utils_Views_Core +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Writers as JSON_Utils_Views_Writers +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Cursors as JSON_Utils_Cursors +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Parsers as JSON_Utils_Parsers +import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals +import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals +import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul +import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals +import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals +import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod +import smithy_dafny_standard_library.internaldafny.generated.Power as Power +import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str as JSON_Utils_Str +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Seq as JSON_Utils_Seq +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Vectors as JSON_Utils_Vectors +import smithy_dafny_standard_library.internaldafny.generated.JSON_Errors as JSON_Errors +import smithy_dafny_standard_library.internaldafny.generated.JSON_Values as JSON_Values +import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode +import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions +import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings +import smithy_dafny_standard_library.internaldafny.generated.JSON_Spec as JSON_Spec +import smithy_dafny_standard_library.internaldafny.generated.JSON_Grammar as JSON_Grammar +import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer as JSON_Serializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer as JSON_Deserializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec +import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_API as JSON_ZeroCopy_API +import smithy_dafny_standard_library.internaldafny.generated.JSON_API as JSON_API +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.JSONHelpers as JSONHelpers +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyDescription as KeyDescription +import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyMaterial as KeyMaterial +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyrings as CreateStaticKeyrings +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyStores as CreateStaticKeyStores +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyringFromKeyDescription as KeyringFromKeyDescription +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CmmFromKeyDescription as CmmFromKeyDescription +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProviders as WrappedMaterialProviders +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeysVectorOperations as KeysVectorOperations +import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyVectors as KeyVectors +import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams +import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk.internaldafny.generated.Header as Header +import aws_encryption_sdk.internaldafny.generated.Frames as Frames +import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions +import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestVectors as TestVectors +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllHierarchy as AllHierarchy +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKms as AllKms +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAware as AllKmsMrkAware +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsRsa as AllKmsRsa +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsEcdh as AllKmsEcdh +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawAES as AllRawAES +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawRSA as AllRawRSA +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawECDH as AllRawECDH +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllDefaultCmm as AllDefaultCmm +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllMulti as AllMulti +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WriteJsonManifests as WriteJsonManifests +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CompleteVectors as CompleteVectors +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.ParseJsonManifests as ParseJsonManifests +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestManifests as TestManifests +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProvidersMain as WrappedMaterialProvidersMain +import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr +import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop +import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting +import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare +import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall +import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas +import aws_encryption_sdk_test_vectors.internaldafny.generated.WrappedESDK as WrappedESDK +import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkManifestOptions as EsdkManifestOptions +import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkTestVectors as EsdkTestVectors +import aws_encryption_sdk_test_vectors.internaldafny.generated.AllEsdkV4NoReqEc as AllEsdkV4NoReqEc +import aws_encryption_sdk_test_vectors.internaldafny.generated.AllEsdkV4WithReqEc as AllEsdkV4WithReqEc +import aws_encryption_sdk_test_vectors.internaldafny.generated.WriteEsdkJsonManifests as WriteEsdkJsonManifests +import aws_encryption_sdk_test_vectors.internaldafny.generated.WriteVectors as WriteVectors +import aws_encryption_sdk_test_vectors.internaldafny.generated.ParseEsdkJsonManifest as ParseEsdkJsonManifest +import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkTestManifests as EsdkTestManifests + +# Module: WrappedESDKMain + +class default__: + def __init__(self): + pass + + @staticmethod + def Main2(args): + d_0_vectorOptions_: GetOpt.Options + d_0_vectorOptions_ = GetOpt.Options_Options(_dafny.Seq("test-vectors"), _dafny.Seq("?"), _dafny.Seq([GetOpt.Param_Command(GetOpt.Options_Options(_dafny.Seq("decrypt"), _dafny.Seq("decrypt command for test-vectors"), _dafny.Seq([GetOpt.Param_Opt(_dafny.Seq("manifest-path"), _dafny.Seq("relative path to the location of the manifest"), _dafny.Seq("arg"), GetOpt.default__.NullChar, GetOpt.Unused_Required(), False, GetOpt.Visibility_Normal(), _dafny.Seq([]), _dafny.Seq([]), GetOpt.Tri_No()), GetOpt.Param_Opt(_dafny.Seq("manifest-name"), _dafny.Seq("name of file that contains the decrypt vectors file"), _dafny.Seq("arg"), GetOpt.default__.NullChar, GetOpt.Unused_Required(), False, GetOpt.Visibility_Normal(), _dafny.Seq([]), _dafny.Seq([]), GetOpt.Tri_No()), GetOpt.Param_Opt(_dafny.Seq("test-name"), _dafny.Seq("id of the test to run"), _dafny.Seq("arg"), GetOpt.default__.NullChar, GetOpt.Unused_UnusedOk(), False, GetOpt.Visibility_Normal(), _dafny.Seq([]), _dafny.Seq([]), GetOpt.Tri_No())]))), GetOpt.Param_Command(GetOpt.Options_Options(_dafny.Seq("encrypt"), _dafny.Seq("encrypt command for test-vectors"), _dafny.Seq([GetOpt.Param_Opt(_dafny.Seq("manifest-path"), _dafny.Seq("relative path to the location of the manifest"), _dafny.Seq("arg"), GetOpt.default__.NullChar, GetOpt.Unused_Required(), False, GetOpt.Visibility_Normal(), _dafny.Seq([]), _dafny.Seq([]), GetOpt.Tri_No()), GetOpt.Param_Opt(_dafny.Seq("decrypt-manifest-path"), _dafny.Seq("relative path to the location where the decrypted manifest will be written to."), _dafny.Seq("arg"), GetOpt.default__.NullChar, GetOpt.Unused_Required(), False, GetOpt.Visibility_Normal(), _dafny.Seq([]), _dafny.Seq([]), GetOpt.Tri_No()), GetOpt.Param_Opt(_dafny.Seq("test-name"), _dafny.Seq("id of the test to run"), _dafny.Seq("arg"), GetOpt.default__.NullChar, GetOpt.Unused_UnusedOk(), False, GetOpt.Visibility_Normal(), _dafny.Seq([]), _dafny.Seq([]), GetOpt.Tri_No())]))), GetOpt.Param_Command(GetOpt.Options_Options(_dafny.Seq("encrypt-manifest"), _dafny.Seq("encryp manifest command for test-vectors"), _dafny.Seq([GetOpt.Param_Opt(_dafny.Seq("encrypt-manifest-output"), _dafny.Seq("relative path of where to store the encrypt-manifest produced"), _dafny.Seq("arg"), GetOpt.default__.NullChar, GetOpt.Unused_Required(), False, GetOpt.Visibility_Normal(), _dafny.Seq([]), _dafny.Seq([]), GetOpt.Tri_No())])))])) + if not((0) < (len(args))): + raise _dafny.HaltException("dafny/TestVectors/src/Index.dfy(40,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_1_parsedOptions_q_: Wrappers.Result + d_1_parsedOptions_q_ = GetOpt.default__.GetOptions(d_0_vectorOptions_, args) + if (d_1_parsedOptions_q_).is_Success: + d_2_h_: Wrappers.Option + d_2_h_ = GetOpt.default__.NeedsHelp(d_0_vectorOptions_, (d_1_parsedOptions_q_).value, _dafny.Seq("")) + if (d_2_h_).is_Some: + _dafny.print(_dafny.string_of((d_2_h_).value)) + return + d_3_op_q_: Wrappers.Result + d_3_op_q_ = default__.ParseCommandLineOptions((d_1_parsedOptions_q_).value) + if (d_3_op_q_).is_Success: + d_4_op_: EsdkManifestOptions.ManifestOptions + d_4_op_ = (d_3_op_q_).value + source0_ = d_4_op_ + with _dafny.label("match0"): + if True: + if source0_.is_Decrypt: + d_5_result_: Wrappers.Result + out0_: Wrappers.Result + out0_ = EsdkTestManifests.default__.StartDecryptVectors(d_4_op_) + d_5_result_ = out0_ + if (d_5_result_).is_Failure: + _dafny.print(_dafny.string_of((d_5_result_).error)) + if not((d_5_result_).is_Success): + raise _dafny.HaltException("dafny/TestVectors/src/Index.dfy(59,10): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.Break("match0") + if True: + if source0_.is_Encrypt: + d_6_result_: Wrappers.Result + out1_: Wrappers.Result + out1_ = EsdkTestManifests.default__.StartEncryptVectors(d_4_op_) + d_6_result_ = out1_ + if (d_6_result_).is_Failure: + _dafny.print(_dafny.string_of((d_6_result_).error)) + if not((d_6_result_).is_Success): + raise _dafny.HaltException("dafny/TestVectors/src/Index.dfy(65,10): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.Break("match0") + if True: + d_7_result_: Wrappers.Result + out2_: Wrappers.Result + out2_ = WriteVectors.default__.WriteTestVectors(d_4_op_) + d_7_result_ = out2_ + if (d_7_result_).is_Failure: + _dafny.print(_dafny.string_of((d_7_result_).error)) + if not((d_7_result_).is_Success): + raise _dafny.HaltException("dafny/TestVectors/src/Index.dfy(71,10): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + pass + elif True: + _dafny.print(_dafny.string_of(((d_3_op_q_).error) + (_dafny.Seq("\n")))) + _dafny.print(_dafny.string_of(_dafny.Seq("help\n"))) + elif True: + _dafny.print(_dafny.string_of(((d_1_parsedOptions_q_).error) + (_dafny.Seq("\n")))) + + @staticmethod + def ParseCommandLineOptions(parsedOptions): + d_0_valueOrError0_ = Wrappers.default__.Need(((parsedOptions).subcommand).is_Some, _dafny.Seq("Must supply subcommand\n")) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + source0_ = (((parsedOptions).subcommand).value).command + if True: + if (source0_) == (_dafny.Seq("decrypt")): + return default__.ParseDecryptCmd((((parsedOptions).subcommand).value).params) + if True: + if (source0_) == (_dafny.Seq("encrypt")): + return default__.ParseEncryptCmd((((parsedOptions).subcommand).value).params) + if True: + if (source0_) == (_dafny.Seq("encrypt-manifest")): + return default__.ParseEncryptManifestCmd((((parsedOptions).subcommand).value).params) + if True: + return Wrappers.Result_Failure(_dafny.Seq("Received unknown subcommand")) + + @staticmethod + def ParseDecryptCmd(params): + d_0_manifestPath_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("manifest-path")) + d_1_testName_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("test-name")) + d_2_manifestFileName_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("manifest-name")) + d_3_manifestPath_ = ((d_0_manifestPath_q_).value if (d_0_manifestPath_q_).is_Some else _dafny.Seq(".")) + d_4_valueOrError0_ = Wrappers.default__.Need((0) < (len(d_3_manifestPath_)), _dafny.Seq("Invalid manifest path length\n")) + if (d_4_valueOrError0_).IsFailure(): + return (d_4_valueOrError0_).PropagateFailure() + elif True: + d_5_valueOrError1_ = Wrappers.default__.Need((d_2_manifestFileName_q_).is_Some, _dafny.Seq("Must supply manifest file name")) + if (d_5_valueOrError1_).IsFailure(): + return (d_5_valueOrError1_).PropagateFailure() + elif True: + d_6_manifestFileName_ = (d_2_manifestFileName_q_).value + return Wrappers.Result_Success(EsdkManifestOptions.ManifestOptions_Decrypt((d_3_manifestPath_ if (Seq.default__.Last(d_3_manifestPath_)) == ('/') else (d_3_manifestPath_) + (_dafny.Seq("/"))), d_6_manifestFileName_, (d_1_testName_q_ if (d_1_testName_q_).is_Some else Wrappers.Option_None()))) + + @staticmethod + def ParseEncryptCmd(params): + d_0_manifestPath_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("manifest-path")) + d_1_manifestName_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("manifest")) + d_2_decryptManifestPath_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("decrypt-manifest-path")) + d_3_testName_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("test-name")) + d_4_manifestPath_ = ((d_0_manifestPath_q_).value if (d_0_manifestPath_q_).is_Some else _dafny.Seq(".")) + d_5_manifestName_ = ((d_1_manifestName_q_).value if (d_1_manifestName_q_).is_Some else _dafny.Seq("encrypt-manifest.json")) + d_6_decryptManifestPath_ = ((d_2_decryptManifestPath_q_).value if (d_2_decryptManifestPath_q_).is_Some else _dafny.Seq(".")) + d_7_valueOrError0_ = Wrappers.default__.Need(((0) < (len(d_4_manifestPath_))) and ((0) < (len(d_6_decryptManifestPath_))), _dafny.Seq("Invalid manifest or decrypt manifest path length\n")) + if (d_7_valueOrError0_).IsFailure(): + return (d_7_valueOrError0_).PropagateFailure() + elif True: + return Wrappers.Result_Success(EsdkManifestOptions.ManifestOptions_Encrypt((d_4_manifestPath_ if (Seq.default__.Last(d_4_manifestPath_)) == ('/') else (d_4_manifestPath_) + (_dafny.Seq("/"))), d_5_manifestName_, (d_6_decryptManifestPath_ if (Seq.default__.Last(d_6_decryptManifestPath_)) == ('/') else (d_6_decryptManifestPath_) + (_dafny.Seq("/"))), (d_3_testName_q_ if (d_3_testName_q_).is_Some else Wrappers.Option_None()))) + + @staticmethod + def ParseEncryptManifestCmd(params): + d_0_encryptManifestOutput_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("encrypt-manifest-output")) + d_1_encryptManifestOutput_ = ((d_0_encryptManifestOutput_q_).value if (d_0_encryptManifestOutput_q_).is_Some else _dafny.Seq(".")) + d_2_valueOrError0_ = Wrappers.default__.Need((0) < (len(d_1_encryptManifestOutput_)), _dafny.Seq("Invalid encrypt manifest output length")) + if (d_2_valueOrError0_).IsFailure(): + return (d_2_valueOrError0_).PropagateFailure() + elif True: + return Wrappers.Result_Success(EsdkManifestOptions.ManifestOptions_EncryptManifest((d_1_encryptManifestOutput_ if (Seq.default__.Last(d_1_encryptManifestOutput_)) == ('/') else (d_1_encryptManifestOutput_) + (_dafny.Seq("/"))), 5)) + diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WriteEsdkJsonManifests.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WriteEsdkJsonManifests.py new file mode 100644 index 000000000..2588607e0 --- /dev/null +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WriteEsdkJsonManifests.py @@ -0,0 +1,369 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import aws_encryption_sdk_test_vectors.internaldafny.generated.module_ as module_ +import _dafny as _dafny +import System_ as System_ +import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers +import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary +import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom +import aws_cryptography_primitives.internaldafny.generated.Random as Random +import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption +import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest +import aws_cryptography_primitives.internaldafny.generated.Digest as Digest +import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC +import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC +import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF +import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF +import aws_cryptography_primitives.internaldafny.generated.Signature as Signature +import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr +import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption +import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives +import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 +import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites +import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials +import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring +import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations +import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort +import smithy_dafny_standard_library.internaldafny.generated.Math as Math +import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq +import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils +import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants +import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID +import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping +import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets +import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext +import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping +import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring +import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms +import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.Time as Time +import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker +import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC +import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring +import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring +import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM +import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults +import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment +import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM +import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier +import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils +import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders +import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn +import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure +import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable +import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Core as JSON_Utils_Views_Core +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Writers as JSON_Utils_Views_Writers +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Cursors as JSON_Utils_Cursors +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Parsers as JSON_Utils_Parsers +import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals +import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals +import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul +import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals +import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals +import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod +import smithy_dafny_standard_library.internaldafny.generated.Power as Power +import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str as JSON_Utils_Str +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Seq as JSON_Utils_Seq +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Vectors as JSON_Utils_Vectors +import smithy_dafny_standard_library.internaldafny.generated.JSON_Errors as JSON_Errors +import smithy_dafny_standard_library.internaldafny.generated.JSON_Values as JSON_Values +import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode +import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions +import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings +import smithy_dafny_standard_library.internaldafny.generated.JSON_Spec as JSON_Spec +import smithy_dafny_standard_library.internaldafny.generated.JSON_Grammar as JSON_Grammar +import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer as JSON_Serializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer as JSON_Deserializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec +import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_API as JSON_ZeroCopy_API +import smithy_dafny_standard_library.internaldafny.generated.JSON_API as JSON_API +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.JSONHelpers as JSONHelpers +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyDescription as KeyDescription +import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyMaterial as KeyMaterial +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyrings as CreateStaticKeyrings +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyStores as CreateStaticKeyStores +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyringFromKeyDescription as KeyringFromKeyDescription +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CmmFromKeyDescription as CmmFromKeyDescription +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProviders as WrappedMaterialProviders +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeysVectorOperations as KeysVectorOperations +import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyVectors as KeyVectors +import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams +import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk.internaldafny.generated.Header as Header +import aws_encryption_sdk.internaldafny.generated.Frames as Frames +import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions +import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestVectors as TestVectors +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllHierarchy as AllHierarchy +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKms as AllKms +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAware as AllKmsMrkAware +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsRsa as AllKmsRsa +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsEcdh as AllKmsEcdh +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawAES as AllRawAES +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawRSA as AllRawRSA +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawECDH as AllRawECDH +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllDefaultCmm as AllDefaultCmm +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllMulti as AllMulti +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WriteJsonManifests as WriteJsonManifests +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CompleteVectors as CompleteVectors +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.ParseJsonManifests as ParseJsonManifests +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestManifests as TestManifests +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProvidersMain as WrappedMaterialProvidersMain +import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr +import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop +import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting +import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare +import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall +import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas +import aws_encryption_sdk_test_vectors.internaldafny.generated.WrappedESDK as WrappedESDK +import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkManifestOptions as EsdkManifestOptions +import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkTestVectors as EsdkTestVectors +import aws_encryption_sdk_test_vectors.internaldafny.generated.AllEsdkV4NoReqEc as AllEsdkV4NoReqEc +import aws_encryption_sdk_test_vectors.internaldafny.generated.AllEsdkV4WithReqEc as AllEsdkV4WithReqEc + +# Module: WriteEsdkJsonManifests + +class default__: + def __init__(self): + pass + + @staticmethod + def EncryptionContextKeysToJson(keys): + if (keys).is_Some: + def lambda0_(d_1_bytes_): + def iife0_(_pat_let0_0): + def iife1_(d_2_valueOrError1_): + def iife2_(_pat_let1_0): + def iife3_(d_3_key_): + return Wrappers.Result_Success(JSON_Values.JSON_String(d_3_key_)) + return iife3_(_pat_let1_0) + return ((d_2_valueOrError1_).PropagateFailure() if (d_2_valueOrError1_).IsFailure() else iife2_((d_2_valueOrError1_).Extract())) + return iife1_(_pat_let0_0) + return iife0_(UTF8.default__.Decode(d_1_bytes_)) + + d_0_valueOrError0_ = Seq.default__.MapWithResult(lambda0_, (keys).value) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + d_4_tmp_ = (d_0_valueOrError0_).Extract() + return Wrappers.Result_Success(_dafny.Seq([(_dafny.Seq("requiredEncryptionContextKeys"), JSON_Values.JSON_Array(d_4_tmp_))])) + elif True: + return Wrappers.Result_Success(_dafny.Seq([])) + + @staticmethod + def EncryptionContextToJson(key, m): + def lambda0_(d_1_a_, d_2_b_): + return (d_1_a_) < (d_2_b_) + + d_0_keys_ = SortedSets.default__.SetToOrderedSequence2((m).keys, lambda0_) + def lambda1_(d_4_m_): + def lambda2_(d_5_k_): + def iife0_(_pat_let2_0): + def iife1_(d_6_valueOrError1_): + def iife2_(_pat_let3_0): + def iife3_(d_7_key_): + def iife4_(_pat_let4_0): + def iife5_(d_8_valueOrError2_): + def iife6_(_pat_let5_0): + def iife7_(d_9_value_): + return Wrappers.Result_Success((d_7_key_, JSON_Values.JSON_String(d_9_value_))) + return iife7_(_pat_let5_0) + return ((d_8_valueOrError2_).PropagateFailure() if (d_8_valueOrError2_).IsFailure() else iife6_((d_8_valueOrError2_).Extract())) + return iife5_(_pat_let4_0) + return iife4_(UTF8.default__.Decode((d_4_m_)[d_5_k_])) + return iife3_(_pat_let3_0) + return ((d_6_valueOrError1_).PropagateFailure() if (d_6_valueOrError1_).IsFailure() else iife2_((d_6_valueOrError1_).Extract())) + return iife1_(_pat_let2_0) + return iife0_(UTF8.default__.Decode(d_5_k_)) + + return lambda2_ + + d_3_valueOrError0_ = Seq.default__.MapWithResult(lambda1_(m), d_0_keys_) + if (d_3_valueOrError0_).IsFailure(): + return (d_3_valueOrError0_).PropagateFailure() + elif True: + d_10_pairsBytes_ = (d_3_valueOrError0_).Extract() + return Wrappers.Result_Success(_dafny.Seq([(key, JSON_Values.JSON_Object(d_10_pairsBytes_))])) + + @staticmethod + def printJson(j): + hresult_: tuple = () + _dafny.print(_dafny.string_of(j)) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + hresult_ = () + return hresult_ + return hresult_ + + @staticmethod + def EncryptTestVectorToJson(test): + d_0_valueOrError0_ = Wrappers.default__.Need((((test).algorithmSuiteId).is_Some) and (((test).frameLength).is_Some), _dafny.Seq("test is missing algorithmSuite ID, or frameLength")) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + d_1_id_ = AllAlgorithmSuites.default__.ToHex(((test).algorithmSuiteId).value) + d_2_valueOrError1_ = (default__.EncryptionContextToJson(_dafny.Seq("encryption-context"), ((test).encryptionContext).value) if ((test).encryptionContext).is_Some else default__.EncryptionContextToJson(_dafny.Seq("encryption-context"), _dafny.Map({}))) + if (d_2_valueOrError1_).IsFailure(): + return (d_2_valueOrError1_).PropagateFailure() + elif True: + d_3_encryptionContext_ = (d_2_valueOrError1_).Extract() + d_4_valueOrError2_ = Wrappers.default__.Need((len(d_3_encryptionContext_)) == (1), _dafny.Seq("Error parsing encryption context")) + if (d_4_valueOrError2_).IsFailure(): + return (d_4_valueOrError2_).PropagateFailure() + elif True: + d_5_valueOrError3_ = (default__.EncryptionContextToJson(_dafny.Seq("reproduced-encryption-context"), ((test).reproducedEncryptionContext).value) if ((test).reproducedEncryptionContext).is_Some else default__.EncryptionContextToJson(_dafny.Seq("reproduced-encryption-context"), _dafny.Map({}))) + if (d_5_valueOrError3_).IsFailure(): + return (d_5_valueOrError3_).PropagateFailure() + elif True: + d_6_reproducedEncryptionContext_ = (d_5_valueOrError3_).Extract() + d_7_optionalValues_ = (d_3_encryptionContext_) + (d_6_reproducedEncryptionContext_) + source0_ = test + if True: + if source0_.is_PositiveEncryptTestVector: + d_8_valueOrError4_ = KeyDescription.default__.ToJson((test).encryptDescriptions, 3) + if (d_8_valueOrError4_).IsFailure(): + return (d_8_valueOrError4_).PropagateFailure() + elif True: + d_9_encrypt_ = (d_8_valueOrError4_).Extract() + d_10_valueOrError5_ = KeyDescription.default__.ToJson((test).decryptDescriptions, 3) + if (d_10_valueOrError5_).IsFailure(): + return (d_10_valueOrError5_).PropagateFailure() + elif True: + d_11_decrypt_ = (d_10_valueOrError5_).Extract() + d_12_scenario_ = JSON_Values.JSON_Object((_dafny.Seq([(_dafny.Seq("type"), JSON_Values.JSON_String(_dafny.Seq("positive-esdk"))), (_dafny.Seq("plaintext"), JSON_Values.JSON_String(_dafny.Seq("small"))), (_dafny.Seq("description"), JSON_Values.JSON_String((test).description)), (_dafny.Seq("algorithmSuiteId"), JSON_Values.JSON_String(d_1_id_)), (_dafny.Seq("frame-size"), JSON_Values.JSON_Number(JSON_Values.default__.Int(((test).frameLength).value))), (_dafny.Seq("encryptKeyDescription"), d_9_encrypt_), (_dafny.Seq("decryptKeyDescription"), d_11_decrypt_)])) + (d_7_optionalValues_)) + return Wrappers.Result_Success(JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("encryption-scenario"), d_12_scenario_)]))) + if True: + return Wrappers.Result_Failure(_dafny.Seq("Only Positive Tests supported :(")) + + @staticmethod + def OptionalBytes(key, secret): + if (secret).is_Some: + d_0_base64_ = Base64.default__.Encode((secret).value) + return _dafny.Seq([(key, JSON_Values.JSON_String(d_0_base64_))]) + elif True: + return _dafny.Seq([]) + + @staticmethod + def DecryptTestVectorToJson(test): + d_0_valueOrError0_ = Wrappers.default__.Need((((test).algorithmSuiteId).is_Some) and (((test).frameLength).is_Some), _dafny.Seq("test is missing algorithmSuite ID, or frameLength")) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + d_1_id_ = AllAlgorithmSuites.default__.ToHex(((test).algorithmSuiteId).value) + d_2_description_ = (((test).description) + (_dafny.Seq(" "))) + (d_1_id_) + d_3_valueOrError1_ = (default__.EncryptionContextToJson(_dafny.Seq("reproduced-encryption-context"), ((test).reproducedEncryptionContext).value) if ((test).reproducedEncryptionContext).is_Some else default__.EncryptionContextToJson(_dafny.Seq("reproduced-encryption-context"), _dafny.Map({}))) + if (d_3_valueOrError1_).IsFailure(): + return (d_3_valueOrError1_).PropagateFailure() + elif True: + d_4_reproducedEncryptionContext_ = (d_3_valueOrError1_).Extract() + d_5_valueOrError2_ = Wrappers.default__.Need((len(d_4_reproducedEncryptionContext_)) == (1), _dafny.Seq("Error parsing encryption context")) + if (d_5_valueOrError2_).IsFailure(): + return (d_5_valueOrError2_).PropagateFailure() + elif True: + d_6_optionalValues_ = d_4_reproducedEncryptionContext_ + source0_ = test + if True: + if source0_.is_PositiveDecryptTestVector: + d_7_valueOrError3_ = KeyDescription.default__.ToJson((test).decryptDescriptions, 3) + if (d_7_valueOrError3_).IsFailure(): + return (d_7_valueOrError3_).PropagateFailure() + elif True: + d_8_decrypt_ = (d_7_valueOrError3_).Extract() + d_9_scenario_ = JSON_Values.JSON_Object((_dafny.Seq([(_dafny.Seq("type"), JSON_Values.JSON_String(_dafny.Seq("positive-esdk"))), (_dafny.Seq("ciphertext"), JSON_Values.JSON_String((_dafny.Seq("file://ciphertexts/")) + ((test).id))), (_dafny.Seq("result"), JSON_Values.JSON_String((_dafny.Seq("file://")) + ((test).plaintextPath))), (_dafny.Seq("algorithmSuiteId"), JSON_Values.JSON_String(d_1_id_)), (_dafny.Seq("frame-size"), JSON_Values.JSON_Number(JSON_Values.default__.Int(((test).frameLength).value))), (_dafny.Seq("description"), JSON_Values.JSON_String((test).description)), (_dafny.Seq("decryptKeyDescription"), d_8_decrypt_)])) + (d_6_optionalValues_)) + return Wrappers.Result_Success(JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("decryption-scenario"), d_9_scenario_)]))) + if True: + return Wrappers.Result_Failure(_dafny.Seq("Only Positive Tests supported :(")) + diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WriteVectors.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WriteVectors.py new file mode 100644 index 000000000..ec61a5ff9 --- /dev/null +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WriteVectors.py @@ -0,0 +1,369 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import aws_encryption_sdk_test_vectors.internaldafny.generated.module_ as module_ +import _dafny as _dafny +import System_ as System_ +import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers +import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary +import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom +import aws_cryptography_primitives.internaldafny.generated.Random as Random +import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption +import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest +import aws_cryptography_primitives.internaldafny.generated.Digest as Digest +import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC +import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC +import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF +import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF +import aws_cryptography_primitives.internaldafny.generated.Signature as Signature +import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr +import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption +import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives +import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 +import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites +import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials +import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring +import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations +import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort +import smithy_dafny_standard_library.internaldafny.generated.Math as Math +import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq +import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils +import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants +import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID +import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping +import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets +import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext +import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping +import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring +import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms +import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.Time as Time +import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker +import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC +import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring +import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring +import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM +import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults +import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment +import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM +import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier +import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils +import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders +import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn +import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure +import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable +import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Core as JSON_Utils_Views_Core +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Writers as JSON_Utils_Views_Writers +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Cursors as JSON_Utils_Cursors +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Parsers as JSON_Utils_Parsers +import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals +import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals +import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul +import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals +import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals +import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod +import smithy_dafny_standard_library.internaldafny.generated.Power as Power +import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str as JSON_Utils_Str +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Seq as JSON_Utils_Seq +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Vectors as JSON_Utils_Vectors +import smithy_dafny_standard_library.internaldafny.generated.JSON_Errors as JSON_Errors +import smithy_dafny_standard_library.internaldafny.generated.JSON_Values as JSON_Values +import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode +import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions +import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings +import smithy_dafny_standard_library.internaldafny.generated.JSON_Spec as JSON_Spec +import smithy_dafny_standard_library.internaldafny.generated.JSON_Grammar as JSON_Grammar +import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer as JSON_Serializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer as JSON_Deserializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec +import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_API as JSON_ZeroCopy_API +import smithy_dafny_standard_library.internaldafny.generated.JSON_API as JSON_API +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.JSONHelpers as JSONHelpers +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyDescription as KeyDescription +import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyMaterial as KeyMaterial +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyrings as CreateStaticKeyrings +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyStores as CreateStaticKeyStores +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyringFromKeyDescription as KeyringFromKeyDescription +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CmmFromKeyDescription as CmmFromKeyDescription +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProviders as WrappedMaterialProviders +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeysVectorOperations as KeysVectorOperations +import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyVectors as KeyVectors +import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams +import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk.internaldafny.generated.Header as Header +import aws_encryption_sdk.internaldafny.generated.Frames as Frames +import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions +import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestVectors as TestVectors +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllHierarchy as AllHierarchy +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKms as AllKms +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAware as AllKmsMrkAware +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsRsa as AllKmsRsa +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsEcdh as AllKmsEcdh +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawAES as AllRawAES +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawRSA as AllRawRSA +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawECDH as AllRawECDH +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllDefaultCmm as AllDefaultCmm +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllMulti as AllMulti +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WriteJsonManifests as WriteJsonManifests +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CompleteVectors as CompleteVectors +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.ParseJsonManifests as ParseJsonManifests +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestManifests as TestManifests +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProvidersMain as WrappedMaterialProvidersMain +import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr +import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop +import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting +import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare +import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall +import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas +import aws_encryption_sdk_test_vectors.internaldafny.generated.WrappedESDK as WrappedESDK +import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkManifestOptions as EsdkManifestOptions +import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkTestVectors as EsdkTestVectors +import aws_encryption_sdk_test_vectors.internaldafny.generated.AllEsdkV4NoReqEc as AllEsdkV4NoReqEc +import aws_encryption_sdk_test_vectors.internaldafny.generated.AllEsdkV4WithReqEc as AllEsdkV4WithReqEc +import aws_encryption_sdk_test_vectors.internaldafny.generated.WriteEsdkJsonManifests as WriteEsdkJsonManifests + +# Module: WriteVectors + +class default__: + def __init__(self): + pass + + @staticmethod + def GetCommitmentPolicyString(algorithmSuite): + source0_ = (algorithmSuite).id + if True: + if source0_.is_ESDK: + if ((algorithmSuite).commitment).is_None: + return _dafny.Seq("FORBID_ENCRYPT_ALLOW_DECRYPT") + elif True: + return _dafny.Seq("REQUIRE_ENCRYPT_REQUIRE_DECRYPT") + if True: + return _dafny.Seq("NOT SUPPORTED FOR UNSTRUCTURED ENCRYPTION") + + @staticmethod + def GetCommitmentPolicyType(commitmentPolicy): + if (commitmentPolicy) == (_dafny.Seq("FORBID_ENCRYPT_ALLOW_DECRYPT")): + return AwsCryptographyMaterialProvidersTypes.CommitmentPolicy_ESDK(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT()) + elif True: + return AwsCryptographyMaterialProvidersTypes.CommitmentPolicy_ESDK(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT()) + + @staticmethod + def WriteTestVectors(op): + output: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() + d_0_version_: int + d_0_version_ = (op).version + d_1_valueOrError0_: Wrappers.Result = Wrappers.Result.default(_dafny.Set)() + d_1_valueOrError0_ = default__.getVersionTests(d_0_version_) + if (d_1_valueOrError0_).IsFailure(): + output = (d_1_valueOrError0_).PropagateFailure() + return output + d_2_allTests_: _dafny.Set + d_2_allTests_ = (d_1_valueOrError0_).Extract() + d_3_tests_: _dafny.Seq + out0_: _dafny.Seq + out0_ = SortedSets.default__.SetToSequence(d_2_allTests_) + d_3_tests_ = out0_ + d_4_sortedTests_: _dafny.Seq + d_4_sortedTests_ = Seq_MergeSort.default__.MergeSortBy(d_3_tests_, default__.DescriptionLessThan) + d_5_testsJSON_: _dafny.Seq + d_5_testsJSON_ = _dafny.Seq([]) + hi0_ = len(d_4_sortedTests_) + for d_6_i_ in range(0, hi0_): + d_7_valueOrError1_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_7_valueOrError1_ = Wrappers.default__.Need((True) and ((((d_4_sortedTests_)[d_6_i_]).algorithmSuiteId).is_Some), _dafny.Seq("No algorithm suite defined in test")) + if (d_7_valueOrError1_).IsFailure(): + output = (d_7_valueOrError1_).PropagateFailure() + return output + d_8_id_: _dafny.Seq + d_8_id_ = AllAlgorithmSuites.default__.ToHex((((d_4_sortedTests_)[d_6_i_]).algorithmSuiteId).value) + d_9_valueOrError2_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + out1_: Wrappers.Result + out1_ = UUID.default__.GenerateUUID() + d_9_valueOrError2_ = out1_ + if not(not((d_9_valueOrError2_).IsFailure())): + raise _dafny.HaltException("dafny/TestVectors/src/WriteVectors.dfy(82,18): " + _dafny.string_of(d_9_valueOrError2_)) + d_10_uuid_: _dafny.Seq + d_10_uuid_ = (d_9_valueOrError2_).Extract() + d_11_valueOrError3_: Wrappers.Result = Wrappers.Result.default(JSON_Values.JSON.default())() + d_11_valueOrError3_ = WriteEsdkJsonManifests.default__.EncryptTestVectorToJson((d_4_sortedTests_)[d_6_i_]) + if (d_11_valueOrError3_).IsFailure(): + output = (d_11_valueOrError3_).PropagateFailure() + return output + d_12_test_: JSON_Values.JSON + d_12_test_ = (d_11_valueOrError3_).Extract() + d_5_testsJSON_ = (d_5_testsJSON_) + (_dafny.Seq([(d_10_uuid_, d_12_test_)])) + d_13_manifestJson_: JSON_Values.JSON + d_13_manifestJson_ = JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("type"), JSON_Values.JSON_String(_dafny.Seq("awses-encrypt"))), (_dafny.Seq("version"), JSON_Values.JSON_Number(JSON_Values.default__.Int(5)))])) + d_14_plaintexts_: JSON_Values.JSON + d_14_plaintexts_ = JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("small"), JSON_Values.JSON_Number(JSON_Values.default__.Int(10240)))])) + d_15_esdkEncryptManifests_: JSON_Values.JSON + d_15_esdkEncryptManifests_ = JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("manifest"), d_13_manifestJson_), (_dafny.Seq("keys"), JSON_Values.JSON_String(_dafny.Seq("file://keys.json"))), (_dafny.Seq("plaintexts"), d_14_plaintexts_), (_dafny.Seq("tests"), JSON_Values.JSON_Object(d_5_testsJSON_))])) + d_16_valueOrError4_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_16_valueOrError4_ = JSON_API.default__.Serialize(d_15_esdkEncryptManifests_) + if not(not((d_16_valueOrError4_).IsFailure())): + raise _dafny.HaltException("dafny/TestVectors/src/WriteVectors.dfy(102,36): " + _dafny.string_of(d_16_valueOrError4_)) + d_17_esdkEncryptManifestBytes_: _dafny.Seq + d_17_esdkEncryptManifestBytes_ = (d_16_valueOrError4_).Extract() + d_18_esdkEncryptManifestBv_: _dafny.Seq + d_18_esdkEncryptManifestBv_ = JSONHelpers.default__.BytesBv(d_17_esdkEncryptManifestBytes_) + d_19_valueOrError5_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() + out2_: Wrappers.Result + out2_ = FileIO.default__.WriteBytesToFile(((op).encryptManifestOutput) + (_dafny.Seq("encrypt-manifest.json")), d_18_esdkEncryptManifestBv_) + d_19_valueOrError5_ = out2_ + if not(not((d_19_valueOrError5_).IsFailure())): + raise _dafny.HaltException("dafny/TestVectors/src/WriteVectors.dfy(105,13): " + _dafny.string_of(d_19_valueOrError5_)) + d_20___v2_: tuple + d_20___v2_ = (d_19_valueOrError5_).Extract() + output = Wrappers.Result_Success(()) + return output + + @staticmethod + def WriteDecryptManifest(op, keys, tests): + output: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() + d_0_testsJSON_: _dafny.Seq + d_0_testsJSON_ = _dafny.Seq([]) + hi0_ = len(tests) + for d_1_i_ in range(0, hi0_): + d_2_name_: _dafny.Seq + d_2_name_ = ((tests)[d_1_i_]).id + d_3_valueOrError0_: Wrappers.Result = Wrappers.Result.default(JSON_Values.JSON.default())() + d_3_valueOrError0_ = WriteEsdkJsonManifests.default__.DecryptTestVectorToJson((tests)[d_1_i_]) + if (d_3_valueOrError0_).IsFailure(): + output = (d_3_valueOrError0_).PropagateFailure() + return output + d_4_test_: JSON_Values.JSON + d_4_test_ = (d_3_valueOrError0_).Extract() + d_0_testsJSON_ = (d_0_testsJSON_) + (_dafny.Seq([(d_2_name_, d_4_test_)])) + d_5_manifestJson_: JSON_Values.JSON + d_5_manifestJson_ = JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("type"), JSON_Values.JSON_String(_dafny.Seq("awses-decrypt"))), (_dafny.Seq("version"), JSON_Values.JSON_Number(JSON_Values.default__.Int(3)))])) + d_6_esdkDecryptManifest_: JSON_Values.JSON + d_6_esdkDecryptManifest_ = JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("manifest"), d_5_manifestJson_), (_dafny.Seq("client"), JSON_Values.JSON_String(_dafny.Seq("aws-encryption-sdk-dafny"))), (_dafny.Seq("keys"), JSON_Values.JSON_String(_dafny.Seq("file://keys.json"))), (_dafny.Seq("tests"), JSON_Values.JSON_Object(d_0_testsJSON_))])) + d_7_valueOrError1_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_7_valueOrError1_ = JSON_API.default__.Serialize(d_6_esdkDecryptManifest_) + if not(not((d_7_valueOrError1_).IsFailure())): + raise _dafny.HaltException("dafny/TestVectors/src/WriteVectors.dfy(146,36): " + _dafny.string_of(d_7_valueOrError1_)) + d_8_esdkDecryptManifestBytes_: _dafny.Seq + d_8_esdkDecryptManifestBytes_ = (d_7_valueOrError1_).Extract() + d_9_esdkDecryptManifestBv_: _dafny.Seq + d_9_esdkDecryptManifestBv_ = JSONHelpers.default__.BytesBv(d_8_esdkDecryptManifestBytes_) + d_10_valueOrError2_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() + out0_: Wrappers.Result + out0_ = FileIO.default__.WriteBytesToFile(((op).decryptManifestOutput) + (_dafny.Seq("decrypt-manifest.json")), d_9_esdkDecryptManifestBv_) + d_10_valueOrError2_ = out0_ + if not(not((d_10_valueOrError2_).IsFailure())): + raise _dafny.HaltException("dafny/TestVectors/src/WriteVectors.dfy(149,13): " + _dafny.string_of(d_10_valueOrError2_)) + d_11___v3_: tuple + d_11___v3_ = (d_10_valueOrError2_).Extract() + output = Wrappers.Result_Success(()) + return output + + @staticmethod + def getVersionTests(version): + source0_ = version + if True: + if (source0_) == (5): + return Wrappers.Result_Success((AllEsdkV4NoReqEc.default__.Tests) | (AllEsdkV4WithReqEc.default__.Tests)) + if True: + return Wrappers.Result_Failure(_dafny.Seq("Only version 4 of generate manifest is supported\n")) + + @staticmethod + def DescriptionLessThan(x, y): + return default__.Below((x).description, (y).description) + + @staticmethod + def Below(x, y): + return not ((len(x)) != (0)) or ((((len(y)) != (0)) and (((x)[0]) <= ((y)[0]))) and (not (((x)[0]) == ((y)[0])) or (default__.Below(_dafny.Seq((x)[1::]), _dafny.Seq((y)[1::]))))) + diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__main__.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__main__.py new file mode 100644 index 000000000..7303208b4 --- /dev/null +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__main__.py @@ -0,0 +1,15 @@ +# Dafny program the_program compiled into Python +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import aws_encryption_sdk_test_vectors.internaldafny.generated.module_ as module_ +import _dafny as _dafny + +try: + dafnyArgs = [_dafny.Seq(a) for a in sys.argv] + module_.default__.Test____Main____(dafnyArgs) +except _dafny.HaltException as e: + _dafny.print("[Program halted] " + e.message + "\n") + sys.exit(1) diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/AllEsdkV4NoReqEc.cpython-311.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/AllEsdkV4NoReqEc.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5b4e335ddca6e1b955c13b4a668b446c82e97199 GIT binary patch literal 41096 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 H?zQ+Qx_DfS literal 0 HcmV?d00001 diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/AllEsdkV4NoReqEc.cpython-312.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/AllEsdkV4NoReqEc.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bafd1fb715b38c8bdac3ee685b52571dcf950dd8 GIT binary patch literal 34692 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 literal 0 HcmV?d00001 diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/AllEsdkV4WithReqEc.cpython-311.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/AllEsdkV4WithReqEc.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..df57a2c5649299425f6bb650c23f85869174db33 GIT binary patch literal 37299 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 U#vUw~i*`403vL%3p^FlDwdmD7ar*~0jz2?P1( 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 U5jL;f(uH{eTa7`~7CqGRU)?^}EC2ui literal 0 HcmV?d00001 diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/EsdkManifestOptions.cpython-312.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/EsdkManifestOptions.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..737420939e243b79fbc70a622690ab13a0eb1633 GIT binary patch literal 35046 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 literal 0 HcmV?d00001 diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/EsdkTestManifests.cpython-311.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/EsdkTestManifests.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..119fa671fa38b3a8bdc3529bc541434ade1d0411 GIT binary patch literal 70239 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 Ws0;4D2j{HiBB9Cx_kbXoi2gsG9y6=} literal 0 HcmV?d00001 diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/EsdkTestVectors.cpython-311.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/EsdkTestVectors.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c8fc306d60b1fe6d78561c19c34383aa85f8907e GIT binary patch literal 105553 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

YYvS>y?{T2 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 Y&o7(RtLD~Au-%`9=I(bG<}cBq{xX!4 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 literal 0 HcmV?d00001 diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/ParseEsdkJsonManifest.cpython-312.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/ParseEsdkJsonManifest.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..624ebe96713c4aeaf4926b3a319f57b0113cfb8d GIT binary patch literal 59215 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 UCvJb=K9OdreV4$ic&6+B0k>7d@c;k- literal 0 HcmV?d00001 diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/WrappedESDK.cpython-311.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/WrappedESDK.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..aa32519bf2d576e697fda9261e1d2a38834fce55 GIT binary patch literal 35584 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 LOTiJpPx^lWD^Qu0 literal 0 HcmV?d00001 diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/WriteEsdkJsonManifests.cpython-311.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/WriteEsdkJsonManifests.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..457b24e313983afcb4dffada2e8b046aea2b1241 GIT binary patch literal 53261 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 literal 0 HcmV?d00001 diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/WriteEsdkJsonManifests.cpython-312.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/WriteEsdkJsonManifests.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a48b7ba2d2e8dad8f98c18489c25b72225d5c12c GIT binary patch literal 45429 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 literal 0 HcmV?d00001 diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/WriteVectors.cpython-311.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/WriteVectors.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..59d2abe68a8e59b575e0e8edcca92b2489412ad9 GIT binary patch literal 48774 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�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 literal 0 HcmV?d00001 diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/WriteVectors.cpython-312.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/WriteVectors.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b6bf50e62a35933a3f672a919af2eadb176e6b37 GIT binary patch literal 41100 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 BC~^P* literal 0 HcmV?d00001 diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/module_.cpython-311.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/module_.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..166cc9872cb720d885e00c3b219cb774d3046dd2 GIT binary patch literal 35924 zcmcJY3xFI&na6t{*;n?FU9x%c3PcD2lMsOb;W^nyHrXec-Go#K!(^tjJ7gZ4?%5<8 z2muKKA_5{JA|fInA|fK9=Xsvzd7h`7Jtv-Rd7gUed7kGP4n0pjPrrI}ZC7p2c5nCG zQt7Gw{cFB@bai#TdU&R#rAdRo;fdYjx9rrkACVL1uac>5Afdss_r>8h-T$Y*u7 zDp!rFb2X?YSBq+M3($fp!fUd1xq4Jj{k7SKTqA0v{;F(KZegmrO3O9VV+(5GycM-l zyKShAelC*2wWD?(u0!G{p_4dYEb&g%$@vnAFGWi^UncS8XgTLABz`hFne$U5ekwYZ z^V1}LIy#;6l@dP#ox%B;5?_T@asDQWpM}oi{A`J@MyokLN8)SH8qUv^_<86&&fhHY zwP-Ep>m^rFiEls~IDd=8FF+S?exbxKLKktqQQ{Y)i#fkU;+LXJIo~Al%g|+< zUoP=0&=s6tDeKHN=V^)SNauW?#K+M%=MxgopbY0XN_;=s&v{nj zIh5l(FYy8@a6T#V1Ly$fhQv)|a$c196q@4vpu`WML!2L$_%xd4{D{PFLN{@Kv&4_0 zqnzI&@nh&1=eJ7yHgp^3Zh#utp-4cHYJ;eEYB>pgZnDh5a{1NmB=kJsF zqv%o2-!JjU&|{o`K;n<1$2tF?#GgPpUV zmh+EF{5kX-=O2^!^XPfbKQ8eX&hy{L>PD1--)g zXC(ev^jXgTOyZwIpX2<`CH{HzdCvbr;$J{t;QTKo{zddf&i_i{UqWBv{I4bcW%Omv z|3>0pL0{qgZzcX!^i|IPPU2rfU*r7i5`PuF%K6_*{2S;SoLdqvp%Ul+An|XaZ*u;c z#J`2U#rZ!<{M+c;oZAxr4*Cw~SmNJB-{t(DB>p}0J${ zAE6&{{$q*%1pS2bf0g)8(N8)5H;MlY{fzT}m-x@o&pH1OiT?uqg7g2B_%G2fIX@xs z*U{^o|ChwyKyPsVD~bOa{hIUtmiTYbZ#e%SiT@V;mh<09{P*bhod2)H|A79$`Tt4$ zkLZt#-w!=>w{m|~uIm0OR3+4EMXdp~MyR!lx&YJ#LakHOdQj_y+MuY7pf(D%Nl_Pq zx=^UiirNBdi%?q?wGGrZp)OL?c2L`e+M%c?fqIfq7b|KfsGUMxqNqzjT`JUNin<)s zgk}KF4UEZdIqRx2=z=wT?OhYp}t8`&jR%Sd4XA5`dak0L2kLo3eY2vj1$C`Z*D30HP}d9fd_~;=>IR{{MNuyR^#Y+@ zsHhi#dXZ2!D(c0cUM$p06!lV2FBR%0MZFBv%Y=HlqFw>&6+*pIQLh5^DxqGjs4-Au zLfx#WU7&UewOdhpKDQO7_X6Y35{-3jVWplAelsC$HZ zy`m;SO$hY{MNNX56zX0@O@W#cYFbfsP<5g1Q`B)#$Avnfs2NZ*LcLK@_k+4$s98nL zftnL)UQr967KA#fs0TnjAXGz9O;Amt78P|0)G47JRMbPD9un$dMV$t9TBt`9^(Ihn z66(#0dKA>7LcK*%kAZqjsJANWZJ^#J)VC_??V#Q+)Z>bJ2dH-l^=*oJC#ZJ{^)5xd z8`Qgn`gTRV2h@9n`VK|C7u0)&`c6f?57hgFdcUGR0O|umeV3v>2g0qPS%{g9$Q z3F?zV{jj1w1?p2meOghU0reT7ene591@&2>epFGP1NAwfeoRrH2laWOeq2#s0QCi- zenL@S1ocIseo|3i0`(=Keo9ea2K8m3ep*pq0rizCtyd%`WxrM>BE|?p{lfos?$}+HB_V5rmK%@PlNKD_zqf-u7Nbv;>NVT zFFBPhCKAv-&-@X84g7nf4i03}90FGjJqrh1YwFp3(70*Z%HKV-e$3PjbA5Iyl}n`y z`Sphi#{S7{GNrFi9x~VJ`IIp|SYEtGK0MN`I2M=Vv>S)!?Rpwwz21 zqLImuCkp#;O!64e3EZ4coS!hKQYqau6DG;p%9TbdeBebS z@&x=1CNp{Rd1S>*NvqnA;TvW@9B$Q4)M?93xvSZ3JNblG)p&LF_d1rn)^WDA`r^-@ z{o1B&uWtPMCTqvdrT(L@^&c&5y5+S^x0F`jQtCMNTE{V~`PhjX@)h<)V-eUJT2n`^ zbsiE7sclLmcpZS0ClUvyl3Au0Z6wLfW-(dJq#$n-g|x8@kkL#I#1PGtLDrDy;RoO` zyWnuE`0qq@)q)m?+Bwu|bsZB z=^Lb87`5cEfE>uphHG=l;)FpeC~nNabto1JS<@hO5?|$WZ>*EcPc@U$6L{uN2Hj8>Lfv+@knc~DWt3wGW!F)Ptq!Zc9UL$EtmyK_yk(``_h5i=i}NfDupA`Dz%pL!Nrx&E1KeFx(4OgdnHq~w1}YR2 zy`}MzS@AI5Q;}G3n_?bs3TJn0wD%HROOM-0y{3Ubs9f^z*746v!sN1VFxG`@>5;aA^Q|qc9ZFLJ3*9H-Qq$kv3#lQ; zNU0$PL~6*%6=BLIo*B<4i_i z2D=KmST1>_kOv#xJTPkkmzS5em5*?Lu6&d0HrSstSu~41=`JOPOez8W8r{ewv(UH~ z4rbEOJt&*0n0&?h_31c_7jzckDRZiOD;e=1Px6S9VwQrlloXT+c6qo5G;v!@0lksTJ2^LTxO2SnBeBLAZ^+s|Hnz1J zdjI4&7%8t%a`dS}`*ft9Et*BH4p$4vy{@O@I^?&>x0B z)Pw;KsUvz?m|W~hqxCzj4h} zGCSm?zEwFNigdAA;gAG7_SjWS4+T76901wD|()pG~Fsx`gmX zEQ&$WOq!%LTvxlZ-xEiRs=Ir$S5)3OTI14X=xk&TGYu~PNTf?C4AHtXO7|C?Y!+Eo zRtdR5!ewtjKMYZ@>?|q6ha;C6kA)0O^W!F7K06{u>Wds#*OXzx9y;9Nio{{jt&>@M za!uUU9o8Ez?OW(py)2z`gsCPIFPcR{)>@d`5LSl@`D`Yy!}iHeZ@f8N>fOdLStSuM z;*iTXU<22XL)csw$hIgtZD+c3?TJIi(VaQy6^AztTe7YML&>_&LRxeu4>wC^A=hNV z1|$r_78d$>S-3hhQaA+t`vvSH|q62;z*WOfQ>NSQr;5^@C=)^t;aw2tc?PsqEacPh`ns|ZZ?IjJO2h1uT{Sxevjc^^PiC3M?XyvoQ3*WyQU<*I0IMCvyg~{neTvR7M`tnl7BIHxplj3_Lf&i@} zAeGL`6n;zx8Ia z`qp7w$3NATy(n#kGn3K;>2>^cw~H>`sv|F<2VK&cSrw0`_p=2Yb;ZgfNXTgtXp!_J z?8B^gJeQN|6fogV-=C}uvV^wJM)ZZWc^cGbrdm22i!L^wG|m(ibV%qf>Gs)Z<2*9m zrzhdfBbMET?i0EfCTK=sqEt__Z_nhlGwz8)WLHmjCyQh=7VNO)*>$0d=aJnV8(1ng z7t+(XSvs4SnYT!0+-DcfBQ?xOYzkg{foCYW5Y)e6-X?Gz`#PS_S9{418^F8w{Bu6F zhVMG3rMS?2Lf>Z$SZm;VcEfP{Abl$dx5%gSseZgl@V7{u{!^znrfcB=Qy4pBaw9PL z56zdWHD57@HlIR}?87F0(Z)h_Sl#j*x>+Bb%nl~=nSHRDK1_Rou#oA&LOzUOrvq5U zb^Nnpsg7l{>f3o89;{+r&Y8^yFlp~TQQtNReH|e6&Tds`exx&X*Hx4_$g2o-V4Zwc zY#71pIs3_Rt8$(ojh6HldXB$|G~X>DG~G@-V!u9KDn~dYsN1_EmK<#I#f>a3;;mTM zikT$)W^t3tU&+)%T4CQTO+EKk*gEW$b*vL_CCdhE(Kp&j**JdnHNz-Z*4adw%fXwM z*{thS-Gmt>mh!tjA>PwT*2-=cg#hXXwoiG~0&C*%O#cHzRMSjIBUnDzcIZuvP|+im%|VC{x~9kaC?EI(&! zdo4d_Ygx=WM@92({GKuDASLuwwAK|oUIv_p9>b|h^6^B(nfXBwk6up_Ny3Bb8Nqh4z%{*!_O3 zrTI8po3#8~ur|Txrl5IGTbhrv{Vo<<&0ysmqz(5;45Zf9ZnXSdu=X&>{WWB1KF;>L zpm4=)?K;cP1q&189^7teKCY5|fIaj+jdl!nO@rip)Y5!hu;)&YxPpWUa^3Tm=Hr6& zTgWx-r`ICdF-UzTaUG#?MLXKse#_5QZmefonvb(J-STt6!Xz!t#|6uKkg;BnK4g$` z4iY9vdV+)r(&rB{j`Q!Ule)T@*41c7TRUp`xnTW-Abp7-^)Sd>N{}!?`uzUoZ2MJs zxFc9Uv*gv)1jslm!;)8b3n1fcj8^g*rU7J}jqyufQzZZyCv~Hn){XA!*I^Xz_{oUA zyq|@1hiBvWlGjucK*mX212nDy8kgfIah3OzSd{Q!r;pm{qjnrWu~Xhp?8xDRT?;bL zR`Qx^1IReZmoo=KVsZR)&x){+?(nRgpF1vFJ7#IeO7sXGw*$y{rP5PLJ0tXZjnM1m z_(}Pc_mh%Q!dIxANxp_?dWL9v96w1y5+3Y0_XtrPKe1EZ&q7M!!Ok|Co^3Qe zj-S{m?r_2p+cs$T*t=DS1uR0%SZ`Tx71hnfY) z_scu!+myVfGyyVhYvYzSUZO|vxE(;o**sgxYqkv_<7~dJdPC9kOxfQ;KT3ct7xS=ynJ zMvjUD$T*wB_p9?k?2xrTzqXEyQ%YXLMu3b5>5m0zGf5lej2cM0;rPk3sl1Iv89poQG%spol~Cz?}EJx_o2=-RH@*-f^4 zZvN=0`h2T@_3Y~Es_On`Lqi>cU;o(d(HnOn^keFAf0e><;+91S9Y=8#FH0g!|I3qQ zsd8MNs=yVgN?e(mhv$`1UXiRyRpV;ru1waXYH=-dmnG{`^JC>@C{@pn4Y)z@M%>8k zHsL1rzd#AsjGINc7KNXNPZNBh!dr2x;ENQ#7%vuliNcrSrGhV0`04m`!Ivxi419** zXDa+Ge3sxV6n-{7Tkvxfz7nq#{7ni!7oRKmc?w^JR|$T;!dK(fg1=ee7vKv7e~ZG` z;5CA;Rror*PVfsAz8izD?oXxLfcZ zh4p;U+c(A5r)y9u<5{;R&1&e4oO{@wnhgg{N>z z@U+4+I3xIk!uR9-f?Eo=u`PI3;gfh$@B<1zhz|;WNZ~o06a28kkKiMM-=OfL_^9AF zD*PBeCiqPXzZu^w_$>;*72hiOZ3@2~-!Ayu6n+Q3L-0Eleiyz=@V6`cZhW`k?@;(X z_#VOEsqlO8y@KDT@cZ%og1<}Q58wv`f49OP#19Jo9)%yr#|3|{!XLs93I0BXKa3w1 z{QU}l1V1A92NeD&epK)eD*Q40nBX5$_~ZC-!9T3v$;|0@2f;D4*|ui>u={&x!h zI{v!gf3NUw;BN^24+{S#{-)sHQuw#=w*~)4g?|TsNAQ;v{xW`9@PAUcgB`*DS>fNs z-xWNs@K^9Ff`3op-^bqh5sD?T=4%;_%HA;1piNk{}TUF@c&Zyukfz~e_i3f#=jQ) zHwr(2PYC|s3jZzst>C{?_#5~Q!T(3$zsJ89{0|EMBmSe{|Eusn;Xeufe+vII{xj$I z!3f=}+*g(=yRQtFNwr*4D?qJ~YNe*m19hHMt2DJ5)M}~LXlgB}wNkCq)cK&!mukJH zHh|h7)kaNi0<}r13pBME)Mlx+XzFR8o+j0Wn%W9#t5g?h>S9nAOLd8+E(LX|RF`S$ z>7br2)#aLc2B>F9^-N7Y3)Hiux!U zzNW4Qb+uIAtf?1(dVy5mqN!^@T_e@Cnz|0ubyB@hQ`dvKUaD`^)Qdp9NU9fW>IP6Z zNOhy8UIOYRQoU4DF9Y>5sczEL%R#+ds#j?0W>7av^-4{>3e>BldbOs8Kn+Q?O;f|5 zhNarBsU4tpNVQW_w}84us$H7871XU#-KMGCpms~OM^k%2?UiburuKu{FVz7}-45z@ zsqWC!2&fUM4r=NUs6$d6*3_M#?v&~^nz{?rT~fuGx*OEpQoUAF_kg-bs@G|16x66x zuh&!qR70wJH8lomOsa8BH9<9{I-;qgppHs)Oj8q}CZxJgQ^!FamugZ|Q=q1#n%2|| zs2QnFXzG4Y_e<5%R2x)Vs##5)1a(rX2Q>8{s0XEbNKQPXS zO7%ufJqGGAsotciH-mb!RBzGLTS2{5s<&zC?V#Q+)wgNt9iZMJ)jKuyE>Q21>f1H- zZcy)*>N_;`9#HR*>N_>{UQq9q>V2AeKdARh^ynePR4krJuREBr#wU_S%v@(2wAYyFn3bEz zCNk+Yc6@wI+!#sc)(x6=cG!$%GjN^-$xozAd)-7XI|irQR*aq)ojNfJCq}byO7ws@ zCy~yYR@z8%Yolh`w2Z77Uzf_nCzED$?L>~$M5Bpx0&;Y?MP_cT%YFnYx97p(CiK0U z`V-(lO2%sdu#Ddc4p<#1J6d)_nSEte7S2AmjOnT37cckd?)ri&!oNqY@?iJu3TV>o z=l&lCpXvbNz1fXWMZ*N%QEAe zR@kPw!q}TRV6Lr$3a*N>q9P4lMl#!RC}y%6A+>haN~A}lnGsSEG54=7C(Y?h$Qrc= z3=3Kt6mm35>f_N1qxNJhX4-btrWs$c!fJ#+vVcY&grQsW#?xW78 z8(&^^qtkNirTSy9SD*#Utp#AAZ*>)|-!vo<(pMLaih75%Mx*;DjU-pBCYs24J8NVU zG04qWCT=YOWYyCHHN>)E(N!XL_#rs#GvII=`b~M+yaq^TRm-o-E9YHZexgD;`I+>j z^FIewMk?%_O{%iF2`EX6wi=68zD1jtMJt+Ari|>ERZX3>2`JNSCX=)++Q!ILCu!+x zm6pC%w)C|k$D~0CKx$7PmVwWdbG%X&^J4zA@Y0}J-P5$f-4R&5iD%o)dZP%>h&x}ILf%Z0G zC7|IY4w&|gZ7g)q4%2&uIAuVdL2rRJIrAj?)qdjaI7IIxJK!qFq)5Hu+vLZduv8`f zLw;<8IwBqNu1OkHZ-893Cq|*ac5^9wzH%wftrGv2`pIQiZzxPE*^%{vb8RiWABr;r z^SvH_sp)R-gw)Vupwv(UGBwn**-zO-5~FD&3wLxGU8s5$USp(^9WV2pDyx+a*S7|% zLwJ-=xP@Kc>-FjV#N28Uu9A?IhKEC&)@Ot2?GKb@umv4ZuQeXB%%OAwM%bjK2;1zh zU_&u}Q>b9IFZUZLdJU4@P5Xggalja==o70_$lj7Ln!Z=J`j4?*U3O@xhf zCY^{G$*D0Clx5aDlqJh%(ex3*+#-c%T+@Q-zyy>PT7SALEYknQ^aT&#YuP0b{ z(qUN{s~4t~40tdh4XQVoX?~5keIV_rpm%Y-!Fs9)JbcHpO0U{dghc{f1U$j*2|ET; zcvj9$`Jx&47A>+IOn%Y_TNs<2WcU}AW6da(5NU?7pN6*2Z2MHkvL0*hXqGHeW072+ zHkjK*AxlfCo7UoZSj*MiqTCZOMG)cij0e}k}yK`Pm?BTz;6WZ-5J?hTU~ z>C!L3xi!{EE*%@Q;3jq0j7yUXi_&1@PWnif8nleqxM`7k#TTprPML!704`7N)TsGO(OGmQU~0mOjnSckdmV|+qL>t{!1(pK!#3QQ#1-oy!Ja}pV(~HW zK%hwn!RiBU1ax-DO?{*0?+aAfyl`lOUHi?`QLy0$q!*@bUGoj9H?V1#f%BU7c=g%g zxpfrb-d<8c55YRHcD|SlYemwfk5A^9u1pHn4pJs8?9{=?!F2~SD$+)?Tjy~@RVgbM zb4#gfD4Br7MkXgFz+sWr;%bRE(1l#`1YaxFvI za&)Q-8`F9Ux($YJb)tpJR~s(UGJHxWb^CkR*%s;Vi?W+UbU0zcy)6t^8fh(#eQuDL zW^5-cP|(dHOJ-DjZjkWU>oE^O6g)eNX5jsS%S^;VA57DuHd#77B3J4P99MYKvSCLY zY4Jqjvf$R~tUaw0uXUGo`b+y3w(%~><{V+F$tDY?5udFV<~F3&zDzoqNSm+)vb8vF z^Ot(BF+x{KWQ@e;@(tJ^74+aY*BQDkicQOKI3Rl94Hn?aqPEbJqd=A_4<5T z^d^tgD?XoVvS0%eMqmpI`@h^@8yd(Qgz^16{^xU9vnMlZumxRGJLMeqmmW{g0sT@m zJZ4z%4-*?OiEP8R2(sd&AqGnsbB7%>=)OpDX7PBX?sF@uI*Dp}6i^8~CAdObnx4I9Zxm?7o%gvaL!EUf9qGI5hsyAGdMOXp--tmW2D zIep&0hO#4l6j(jyoDPzt3`IO(rs7 z#z^gy(`RqZ3~YfNqali7gAmEVdPG%VkZqV>|ogL40nP)eMs+9qbN} zr*;ztWw3>cvDVQF}=XEm8G-;lWf;^SLtuJQ5 ziwv;Zku?rQSp(-!CB>9$0+eDAdoYg$`w_Erk?9H>n zl%W9ml=hT1$(}0DVws#JK#=k+Zr1GudHK#Bru4D*O{VtJXR6s^cf;%{d71a`-3RYO zu~&6$vTByHR|1y46u9}>OTi6uZOKa^WLZW|6vBD46oNNgkh@UvHpZ;mgx`f`4T4Kv z0?@07U0iRPCI3^QN}qc%G@LE>B1n*@iy4Y_V5@k#m{}hvb(xc8GnX_8axav52tl^^ zy--0uU*BS>r6y~nOW&X5dj^zR>@t(=?J)MF;Cl2`bKfz*%qiS#Vpf8`wb-cneeMSA zG7q_Tk2;ULWaR>>bSHMne6Q!)Qq4W{xqo2A`!lHD~|5Kc7DZ(bLTBHIS zrHWPLuG7k-!0BxaOJ|l!m*-TfNX)I_qWJn!<(cicG~;d?l8d5b$&5og0CQlIm0or$EmwVzape|=>yNMGU3q|`xrT{qk9V#>Gb=qu%?x}-C;DjtcC^93Az z#i~dUpVK7JBbf&5!>o24SJ38kiV1he{&Z!KC$xDwVlSl4(V#gs)zacx^su?4ajK|b zK*DxOH%~_!=aA_x(||XRcy{M|J!~(`sb&-=O3gSwdn&K3k)qf~cFlOZk)@llV27>9 zt_NK*hwKio=c#PV#B-!x@y*H1TNN{2--bD)h8qb@!iz6(52Y2s-0SCTf>iO-$y`qD zq#r4OckjjjTw0CTbTS=rr_0FaFi6$Z5B5}u0t;I20 z3qQpah7Q`o2u%J%_vPu$m(8Nhr4SVRu!&#xu@D{6w>OAgJrXJD?`(|0{g|o!gVXv%fojOZdHeidr(N4?8b?dJg z2B}$h6KN_1Z(b&o9y_E= zq-}O4?cPz~UQ&eVueA8i3v5}2k9K8E_gSP#2PMlH+s~urtOzSvtE9J>sX}Z}z421@ zr!zh7(yvaD<+G~nVMpoHPvtu_rY$~~Q5%v@pBvV+PwTL)H<^iPU-WUg-={`+v6b$! zsHShVQisol+spfW5NQnP3jdN z+byk*j!$hPr)WnVk@jx+1sCRFZ?gEY*a4Fa?$zNAT2Ctm*ePx`UX`f_Sb?Fkpnz}aqT z-|@JedOfr5`q3qUsyvsI0Rbz8?ukH?BhtI>b{#)euud<~sjW}qe zfUtvb0S!B7xPT%KiWJap2kmy#%+qkagRU>2y$;%2KuHHB3#i{g{RPD1y3Rq@xpsI? z#~d`~=Hdni-B3UW9CV<7ct~!?Yc1=bYyrg_6e}RhL6&OWPhu8@I+o4mxPiEfa5!xV5x{(!9*6wQgpi8!XUxDLKr@VIboU8dqDC z?I62=Ob40n(QuIAhU6`Z*BU>UA35hoUi-W)(Hf^Qwy_x7AjYE(I$A)yZ26JL#alQ( z^4jOEg~uMt)4JP}r!^AE(^j-Ak9JYZ?d89N_Sp`Wqj?miq=%6n)+W1{y9-oqVSgU& zr(rr7r>&Zj0y>sQ$Glv353uk9%%*!T4b#VXALDLHDBs5THibjp^EB_1c{J&!XM3Jr zcZoc`t}}U*fmWTT*Cr=N^7M+PXL-{zMcf$S+Ginq^YpqK&7)DccJlN(?a$Ne=$brj zy*N*=MDFg%qaJ9_iH7p)hbJDQ6&Rx-3Dn0ea9cxt)ZOHz51qTzS2@H=D;a{Ij2xZ4fs);si> ztW+s?OMtc(xBYN8Kk{@MdD_Bbtc~&X@VeNYr#%(7!_!7XzEM+K2474?^vFJz`WM~q BE-wH8 literal 0 HcmV?d00001 diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/dafny_src-py.dtr b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/dafny_src-py.dtr new file mode 100644 index 000000000..2e95eed63 --- /dev/null +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/dafny_src-py.dtr @@ -0,0 +1,35 @@ +file_format_version = "1.0" +dafny_version = "4.9.0.0" +[options_by_module.WrappedAbstractAwsCryptographyEncryptionSdkService] +legacy-module-names = false +python-module-name = "aws_encryption_sdk_test_vectors.internaldafny.generated" +[options_by_module.WrappedESDK] +legacy-module-names = false +python-module-name = "aws_encryption_sdk_test_vectors.internaldafny.generated" +[options_by_module.EsdkManifestOptions] +legacy-module-names = false +python-module-name = "aws_encryption_sdk_test_vectors.internaldafny.generated" +[options_by_module.EsdkTestVectors] +legacy-module-names = false +python-module-name = "aws_encryption_sdk_test_vectors.internaldafny.generated" +[options_by_module.AllEsdkV4NoReqEc] +legacy-module-names = false +python-module-name = "aws_encryption_sdk_test_vectors.internaldafny.generated" +[options_by_module.AllEsdkV4WithReqEc] +legacy-module-names = false +python-module-name = "aws_encryption_sdk_test_vectors.internaldafny.generated" +[options_by_module.WriteEsdkJsonManifests] +legacy-module-names = false +python-module-name = "aws_encryption_sdk_test_vectors.internaldafny.generated" +[options_by_module.WriteVectors] +legacy-module-names = false +python-module-name = "aws_encryption_sdk_test_vectors.internaldafny.generated" +[options_by_module.ParseEsdkJsonManifest] +legacy-module-names = false +python-module-name = "aws_encryption_sdk_test_vectors.internaldafny.generated" +[options_by_module.EsdkTestManifests] +legacy-module-names = false +python-module-name = "aws_encryption_sdk_test_vectors.internaldafny.generated" +[options_by_module.WrappedESDKMain] +legacy-module-names = false +python-module-name = "aws_encryption_sdk_test_vectors.internaldafny.generated" diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/module_.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/module_.py new file mode 100644 index 000000000..0fbd0d7f7 --- /dev/null +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/module_.py @@ -0,0 +1,234 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import aws_encryption_sdk_test_vectors.internaldafny.generated.module_ as module_ +import _dafny as _dafny +import System_ as System_ +import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers +import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary +import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom +import aws_cryptography_primitives.internaldafny.generated.Random as Random +import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption +import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest +import aws_cryptography_primitives.internaldafny.generated.Digest as Digest +import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC +import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC +import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF +import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF +import aws_cryptography_primitives.internaldafny.generated.Signature as Signature +import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr +import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption +import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives +import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 +import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites +import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials +import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring +import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations +import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort +import smithy_dafny_standard_library.internaldafny.generated.Math as Math +import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq +import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils +import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants +import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID +import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping +import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets +import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext +import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping +import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring +import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms +import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.Time as Time +import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker +import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC +import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring +import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring +import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM +import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults +import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment +import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM +import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier +import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils +import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders +import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn +import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure +import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable +import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Core as JSON_Utils_Views_Core +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Writers as JSON_Utils_Views_Writers +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Cursors as JSON_Utils_Cursors +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Parsers as JSON_Utils_Parsers +import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals +import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals +import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul +import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals +import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals +import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod +import smithy_dafny_standard_library.internaldafny.generated.Power as Power +import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str as JSON_Utils_Str +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Seq as JSON_Utils_Seq +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Vectors as JSON_Utils_Vectors +import smithy_dafny_standard_library.internaldafny.generated.JSON_Errors as JSON_Errors +import smithy_dafny_standard_library.internaldafny.generated.JSON_Values as JSON_Values +import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode +import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions +import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings +import smithy_dafny_standard_library.internaldafny.generated.JSON_Spec as JSON_Spec +import smithy_dafny_standard_library.internaldafny.generated.JSON_Grammar as JSON_Grammar +import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer as JSON_Serializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer as JSON_Deserializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec +import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_API as JSON_ZeroCopy_API +import smithy_dafny_standard_library.internaldafny.generated.JSON_API as JSON_API +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.JSONHelpers as JSONHelpers +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyDescription as KeyDescription +import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyMaterial as KeyMaterial +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyrings as CreateStaticKeyrings +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyStores as CreateStaticKeyStores +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyringFromKeyDescription as KeyringFromKeyDescription +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CmmFromKeyDescription as CmmFromKeyDescription +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProviders as WrappedMaterialProviders +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeysVectorOperations as KeysVectorOperations +import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyVectors as KeyVectors +import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams +import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk.internaldafny.generated.Header as Header +import aws_encryption_sdk.internaldafny.generated.Frames as Frames +import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions +import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestVectors as TestVectors +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllHierarchy as AllHierarchy +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKms as AllKms +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAware as AllKmsMrkAware +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsRsa as AllKmsRsa +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsEcdh as AllKmsEcdh +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawAES as AllRawAES +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawRSA as AllRawRSA +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawECDH as AllRawECDH +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllDefaultCmm as AllDefaultCmm +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllMulti as AllMulti +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WriteJsonManifests as WriteJsonManifests +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CompleteVectors as CompleteVectors +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.ParseJsonManifests as ParseJsonManifests +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestManifests as TestManifests +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProvidersMain as WrappedMaterialProvidersMain +import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr +import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop +import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting +import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare +import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall +import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas +import aws_encryption_sdk_test_vectors.internaldafny.generated.WrappedESDK as WrappedESDK +import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkManifestOptions as EsdkManifestOptions +import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkTestVectors as EsdkTestVectors +import aws_encryption_sdk_test_vectors.internaldafny.generated.AllEsdkV4NoReqEc as AllEsdkV4NoReqEc +import aws_encryption_sdk_test_vectors.internaldafny.generated.AllEsdkV4WithReqEc as AllEsdkV4WithReqEc +import aws_encryption_sdk_test_vectors.internaldafny.generated.WriteEsdkJsonManifests as WriteEsdkJsonManifests +import aws_encryption_sdk_test_vectors.internaldafny.generated.WriteVectors as WriteVectors +import aws_encryption_sdk_test_vectors.internaldafny.generated.ParseEsdkJsonManifest as ParseEsdkJsonManifest +import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkTestManifests as EsdkTestManifests +import aws_encryption_sdk_test_vectors.internaldafny.generated.WrappedESDKMain as WrappedESDKMain + +# Module: module_ + +class default__: + def __init__(self): + pass + + @staticmethod + def Test____Main____(noArgsParameter__): + d_0_success_: bool + d_0_success_ = True + if not(d_0_success_): + raise _dafny.HaltException("(1,0): " + _dafny.string_of(_dafny.Seq("Test failures occurred: see above.\n"))) + diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/smithygenerated/aws_cryptography_encryptionsdk/__init__.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/smithygenerated/aws_cryptography_encryptionsdk/__init__.py new file mode 100644 index 000000000..09be6133b --- /dev/null +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/smithygenerated/aws_cryptography_encryptionsdk/__init__.py @@ -0,0 +1,3 @@ +# Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 +# Do not modify this file. This file is machine generated, and any changes to it will be overwritten. diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/smithygenerated/aws_cryptography_encryptionsdk/__pycache__/__init__.cpython-311.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/smithygenerated/aws_cryptography_encryptionsdk/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ad9cf8ce43308aa3a72a7d552badb67297ba6bdf GIT binary patch literal 282 zcmYk%K}th05CG7`qKHs>4ux+nARfVu+Kr14lJWo0|C2B?-;$H`2*rhW@eW>~&|O!~ zFD*KY$xJejB-{D?MoHY|xAt4spQ$;AJ{9{bDK;voXLYNeJ{4X_zn=~dU*?qn$@HTi ze8|bHGp`F_9~Nt@jVZFV_oW`LABG&p9v<;hUO)Yh7Ls-|t@Tcw I6V7Ds7xAT6$p8QV literal 0 HcmV?d00001 diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/smithygenerated/aws_cryptography_encryptionsdk/__pycache__/__init__.cpython-312.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/smithygenerated/aws_cryptography_encryptionsdk/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..239a759b69941689af6346dc21f2a66fdd49b0ce GIT binary patch literal 270 zcmZ9`L23gr3;@7&(?AL2AuVkDfs!ZW)b`SYF}AX6vTGYj+u)bv4LRf`x#SOdLCGzr zYD1u<0%6H$kdE{Dtde+1pUp|$^Vs~4%cK14s!~0x)xN?9=`Q2U^`PGgkaRb=-uV>u zHsL0B)`7NLsv$ZonL~;-`AzNZIu`u~#2?@|iNhgs=z(-D+zKajBQ(Fz2sA9jeBBN8 zf!oqR1hfqPHh)`_8nn4Bf3R3>Oo)MvS>$qkdhL@RI#}XVu2+&Y7T*)46i%f20b|}( Ay#N3J literal 0 HcmV?d00001 diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/smithygenerated/aws_cryptography_encryptionsdk/__pycache__/shim.cpython-311.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/smithygenerated/aws_cryptography_encryptionsdk/__pycache__/shim.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7290c627e128f016c4a33663aed7beb093b84ec7 GIT binary patch literal 3959 zcmeGeO>YxN^zDb8#IYUc6GEU(LPG1L*od~Gty-i2f%4G=FtlYWb>;4E5+}QBGrJ}j zg%(vDIP^}B94e}af5E9oQyJA7iBqLYy_p77#HsUkXBRsmq@_r`bUc3Z-kW)EX5PM! z`7x1*0c#V*FXq3A1N@3a&>|dJ`;8$tK?hwh!4eeFk`&pBC{e3TX%~<$njK2a8$0PNTy{vc*M|1 zrQ{yBOJ!GWCg>2SX3K8VoKMlgX}d|TnV>_Q;&Lt24BN8jaM3gk%`Ft|*|}*#io~Iv zv!(pSvf)uQo-@d$g2t(xs$&)0g^Ft6Qq?W0dVbF4WLluolwHyI?Yu$c#M&N)+yny@ zK?gb@95a$hveLl!z`f7}X=p9#PspojYdCu^29OVf*XcDYEFN@iX& zviW6aui@L08Dy`cFYWd2mpx}V?x)O5%sg3Aw%vkdIN4IgU0~u4(NIu*Ca5w&)ny{; zB`)JzZQigAl6MW=Tkn0c;ylTh(4OJ0Og8JVt7l3T+ODbvyWpzomF~bInSeFIZsQ~v zxCZt99XI6fVmH`tjWM9bTv5jG%vBQ5Tpi%z65bXW&u@#Ni5Elvyd?*-&Etx2n@QaX zC9jGruo%QG+`|1fv=wokjO2DbTeR37;9H)pBUpLM%OL?3j4M*>KCM&^c7q#6D!>?! z$*Xe9NmxGen>!R>04s8oc|FR*-cRsLGe@o`yLhRf0gSQbc%X-Ow(&qfEKUF)2J zzJ`l7_X^tO#~KSdUy@F~SU}~`?xhni1ZW%gGur+c^ScrY1DZT*IAzmSb7f64949zd z7~Ax%zqbp|MIF(y zu%7Ldine1=!En&ghOv9zX|T!V&~=r|=jjzahDT55kSb*7fe z{|V4NBmUvRdaD1SBz7ks0RxQ)Bt{!C*fa5i^2_*vpT`eW-}~g=_)KklrWzl8&^uJ? zop_KMZBaDqDVi1QeG{mt2Nm@^l;l39l7R-uiR6>VF-Q$IKww8{hQ7x8lgEA%?oFPk zO`f>dd$QJhvKn9CpRm@DP@ExaSX{oH`sfhAU5FieSGpS;KD1A|J0T#xFT&veS%8_y zYpwD6pJf4psfXbEfNV!F$iS8{-24jQF|7Nq1hNyA>_ULfuw|UKydcOh%8ekvuq2}l zY=|u`(G**p^A3uq16P3oA747hxTZYC_=nW<&xFh0|G?dJK0WxSlebgoh|9D)^;b|1l~5x1D1gJtCR zH1qweNieH%0j|y$z+%b;IG?B4{r}*+{BwBjN6$P*a9ttF;F8VjP-cA@`uN|g^q!Lr zX=B$V_!uBq=RMD)uRuF9fMGhX;_AFE1@B%Obt|QUJx@CEJ00Y+zI_}wZ|ixYt7hRV zk|&i--6^cZi57>W9ihj0k^U+S;RoQe6hxz(vmehtGPRXs({0DunihvY>{V_*X5Yq- z7RK?@_78o}J4lYQ34AX)gh5ur1fda&2x0?X4#YwDpbGE%y$+vOgIgsNJ%7^p%^Z$v>j%NCz`aj!$J8uU7RS>38PqGJN4v**LQJW!LzYI3F~pRUOZ O4<%goXp_a>H~9;96)eU8 literal 0 HcmV?d00001 diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/smithygenerated/aws_cryptography_encryptionsdk/__pycache__/shim.cpython-312.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/smithygenerated/aws_cryptography_encryptionsdk/__pycache__/shim.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..02debfe14ef8b58e1e1a974e5ab88e19b14add55 GIT binary patch literal 3701 zcmeGeO>YxNbY^$$B#!MkpAZ5xgwWyuwv<+)st^){&{EQbVEVyUVzu4fBzAV!W_C?5 z3N5N~=%u$x^x9K}_yN7sOQl}0(#p|5)k9CcrI;!ey>#B}tnC;m{oqomb9i4f@9n&| z?_<7ABw~oIiQ@Z?R)?YNUr6HZc1Iz4KSlTuUSe6Kjy$FXAfI|J%~*c)_)3<)D=2ZuY=okEU;&aktK z?~HJ`Tit_^gkDExWDS{7D^@rhI?%+0Op^|&!m*HQ;==JJ9a6XDfKo>*Qo7@3VA2X5 zK4lrCQu5EZrLwQJGIT_6b7j9}FW~6#wA-TB%Fq$P3B7IHEc;~NRMECA!_ODpxrJ#$ zio~Pcb0z(9+2S0H=PYt1ZwPL;<~ezPsiIkMRP&3PsV}&KO=Bvba4SaWBw$G}^>Ier zL>5x9iB!qNmb@UD(wd?wro4vKh^a6btwhpM+Buy&bvCz@cW6Y*J0;r)jf4gvc=bMR za22m24di@P&@DWh#w5wOv_uupvKKhxfr-)4N4K(XdlvDscG++Yv*>15ie$ND>xPxp zSG*%u5Jwh_Bc8c@g!`7gV0r#KEJQ3cSyFcWykmLUQpI0l>K-vbQEMt{Oi}Zhigrcl z1QA=bT#M+wW%BdOQzRGm79&N8$xUC4(cd=**)8p;$ww4egmXj=vNY};DJx7jyfU6)o- zfmeUPhp>&k~pPT&>1g09LJ(F!KuX*x;!9#0_J)0Q-JFC2P$ z*3h1y4p~74n)J}0D`=t<@K(c1gm#ELq@C}wyezRYp~>@>SGIjES2hgG^TKO2>Yg6{ zYhMw4s%!eHVU?iQG%TOi^LCk71ajt9g!D2*BYEh5bWpS!!_Hf-uMvy&B+sWq?P9M~ zbUlk=%Y)%E3X8z+ryat_YpF&72?;c#`d19xK$}vcYX(1zqTcKAJ5z|rb~qjz6@YyH6N-T2u3{*hY$ zM74k7eroK==H|G$IcZ~H0?hT*Wo00_iIhb0w}&y58h(H|GQ?*viFX7G+6yTQmF0FW@xtk!LB3^EFOFll&kk}*a-R$)S;rNV^d z70^2fAkDyRx&!8!t2>sa(U_(=MYC)J9oMwWW!)A#-J;fE>XUxZehC0Pv~D3X05tqe z0@H*8aLe1pz#7_&;>gJ7%XP%igJ?1`gX^OJ12xb{@1rx1_u5R}^)2G+Ht(RB#+=Ta zSn;OdH73TiXdSG1<;>*^m6GKV7_YSV6uf|h+d(^pQA+z-?vhRb@R;D~MW2Ip768lk zo`>sV#DvdV8ucrsyt_!c;XfT0yFq+BUw2KNn3|pcfas+1)O2bL)x@@hqg{=R bool: + return not self.__eq__(__o) + @property + def is_Decrypt(self) -> bool: + return isinstance(self, ManifestOptions_Decrypt) + @property + def is_Encrypt(self) -> bool: + return isinstance(self, ManifestOptions_Encrypt) + @property + def is_DecryptSingle(self) -> bool: + return isinstance(self, ManifestOptions_DecryptSingle) + @property + def is_EncryptManifest(self) -> bool: + return isinstance(self, ManifestOptions_EncryptManifest) + +class ManifestOptions_Decrypt(ManifestOptions, NamedTuple('Decrypt', [('manifestPath', Any), ('manifestFileName', Any), ('testName', Any)])): + def __dafnystr__(self) -> str: + return f'EsdkManifestOptions.ManifestOptions.Decrypt({_dafny.string_of(self.manifestPath)}, {_dafny.string_of(self.manifestFileName)}, {_dafny.string_of(self.testName)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, ManifestOptions_Decrypt) and self.manifestPath == __o.manifestPath and self.manifestFileName == __o.manifestFileName and self.testName == __o.testName + def __hash__(self) -> int: + return super().__hash__() + +class ManifestOptions_Encrypt(ManifestOptions, NamedTuple('Encrypt', [('manifestPath', Any), ('manifest', Any), ('decryptManifestOutput', Any), ('testName', Any)])): + def __dafnystr__(self) -> str: + return f'EsdkManifestOptions.ManifestOptions.Encrypt({_dafny.string_of(self.manifestPath)}, {_dafny.string_of(self.manifest)}, {_dafny.string_of(self.decryptManifestOutput)}, {_dafny.string_of(self.testName)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, ManifestOptions_Encrypt) and self.manifestPath == __o.manifestPath and self.manifest == __o.manifest and self.decryptManifestOutput == __o.decryptManifestOutput and self.testName == __o.testName + def __hash__(self) -> int: + return super().__hash__() + +class ManifestOptions_DecryptSingle(ManifestOptions, NamedTuple('DecryptSingle', [('keysPath', Any), ('keyDescription', Any), ('base64Bytes', Any)])): + def __dafnystr__(self) -> str: + return f'EsdkManifestOptions.ManifestOptions.DecryptSingle({_dafny.string_of(self.keysPath)}, {_dafny.string_of(self.keyDescription)}, {_dafny.string_of(self.base64Bytes)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, ManifestOptions_DecryptSingle) and self.keysPath == __o.keysPath and self.keyDescription == __o.keyDescription and self.base64Bytes == __o.base64Bytes + def __hash__(self) -> int: + return super().__hash__() + +class ManifestOptions_EncryptManifest(ManifestOptions, NamedTuple('EncryptManifest', [('encryptManifestOutput', Any), ('version', Any)])): + def __dafnystr__(self) -> str: + return f'EsdkManifestOptions.ManifestOptions.EncryptManifest({_dafny.string_of(self.encryptManifestOutput)}, {_dafny.string_of(self.version)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, ManifestOptions_EncryptManifest) and self.encryptManifestOutput == __o.encryptManifestOutput and self.version == __o.version + def __hash__(self) -> int: + return super().__hash__() + diff --git a/TestVectors/runtimes/python/src/internaldafny/generated/EsdkTestManifests.py b/TestVectors/runtimes/python/src/internaldafny/generated/EsdkTestManifests.py new file mode 100644 index 000000000..46dbf686f --- /dev/null +++ b/TestVectors/runtimes/python/src/internaldafny/generated/EsdkTestManifests.py @@ -0,0 +1,633 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import .internaldafny.generated.module_ as module_ +import _dafny as _dafny +import System_ as System_ +import Wrappers as Wrappers +import BoundedInts as BoundedInts +import StandardLibrary_UInt as StandardLibrary_UInt +import StandardLibrary_Sequence as StandardLibrary_Sequence +import StandardLibrary_String as StandardLibrary_String +import StandardLibrary as StandardLibrary +import UTF8 as UTF8 +import AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import ExternRandom as ExternRandom +import Random as Random +import AESEncryption as AESEncryption +import ExternDigest as ExternDigest +import Digest as Digest +import HMAC as HMAC +import WrappedHMAC as WrappedHMAC +import HKDF as HKDF +import WrappedHKDF as WrappedHKDF +import Signature as Signature +import KdfCtr as KdfCtr +import RSAEncryption as RSAEncryption +import ECDH as ECDH +import AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import AtomicPrimitives as AtomicPrimitives +import ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import Base64 as Base64 +import AlgorithmSuites as AlgorithmSuites +import Materials as Materials +import Keyring as Keyring +import Relations as Relations +import Seq_MergeSort as Seq_MergeSort +import Math as Math +import Seq as Seq +import MultiKeyring as MultiKeyring +import AwsArnParsing as AwsArnParsing +import AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import Actions as Actions +import AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import AwsKmsUtils as AwsKmsUtils +import Constants as Constants +import UUID as UUID +import MaterialWrapping as MaterialWrapping +import SortedSets as SortedSets +import CanonicalEncryptionContext as CanonicalEncryptionContext +import IntermediateKeyWrapping as IntermediateKeyWrapping +import EdkWrapping as EdkWrapping +import ErrorMessages as ErrorMessages +import AwsKmsKeyring as AwsKmsKeyring +import StrictMultiKeyring as StrictMultiKeyring +import AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import Com_Amazonaws_Kms as Com_Amazonaws_Kms +import Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import DiscoveryMultiKeyring as DiscoveryMultiKeyring +import AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import AwsKmsMrkKeyring as AwsKmsMrkKeyring +import MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import DafnyLibraries as DafnyLibraries +import Time as Time +import LocalCMC as LocalCMC +import SynchronizedLocalCMC as SynchronizedLocalCMC +import StormTracker as StormTracker +import StormTrackingCMC as StormTrackingCMC +import CacheConstants as CacheConstants +import AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import AwsKmsRsaKeyring as AwsKmsRsaKeyring +import EcdhEdkWrapping as EcdhEdkWrapping +import RawECDHKeyring as RawECDHKeyring +import AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import RawAESKeyring as RawAESKeyring +import RawRSAKeyring as RawRSAKeyring +import CMM as CMM +import Defaults as Defaults +import Commitment as Commitment +import DefaultCMM as DefaultCMM +import DefaultClientSupplier as DefaultClientSupplier +import Utils as Utils +import RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import MaterialProviders as MaterialProviders +import KeyStoreErrorMessages as KeyStoreErrorMessages +import KmsArn as KmsArn +import Structure as Structure +import KMSKeystoreOperations as KMSKeystoreOperations +import DDBKeystoreOperations as DDBKeystoreOperations +import CreateKeys as CreateKeys +import CreateKeyStoreTable as CreateKeyStoreTable +import GetKeys as GetKeys +import AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import KeyStore as KeyStore +import AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes +import JSON_Utils_Views_Core as JSON_Utils_Views_Core +import JSON_Utils_Views_Writers as JSON_Utils_Views_Writers +import JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core +import JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings +import JSON_Utils_Cursors as JSON_Utils_Cursors +import JSON_Utils_Parsers as JSON_Utils_Parsers +import GeneralInternals as GeneralInternals +import MulInternalsNonlinear as MulInternalsNonlinear +import MulInternals as MulInternals +import Mul as Mul +import ModInternalsNonlinear as ModInternalsNonlinear +import DivInternalsNonlinear as DivInternalsNonlinear +import ModInternals as ModInternals +import DivInternals as DivInternals +import DivMod as DivMod +import Power as Power +import Logarithm as Logarithm +import JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion +import JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping +import JSON_Utils_Str as JSON_Utils_Str +import JSON_Utils_Seq as JSON_Utils_Seq +import JSON_Utils_Vectors as JSON_Utils_Vectors +import JSON_Errors as JSON_Errors +import JSON_Values as JSON_Values +import Unicode as Unicode +import Functions as Functions +import Utf8EncodingForm as Utf8EncodingForm +import Utf16EncodingForm as Utf16EncodingForm +import UnicodeStrings as UnicodeStrings +import JSON_Spec as JSON_Spec +import JSON_Grammar as JSON_Grammar +import JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion +import JSON_Serializer as JSON_Serializer +import JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion +import JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion +import JSON_Deserializer as JSON_Deserializer +import JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec +import JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties +import JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer +import JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core +import JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings +import JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers +import JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams +import JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects +import JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams +import JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays +import JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants +import JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values +import JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API +import JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer +import JSON_ZeroCopy_API as JSON_ZeroCopy_API +import JSON_API as JSON_API +import JSONHelpers as JSONHelpers +import KeyDescription as KeyDescription +import HexStrings as HexStrings +import KeyMaterial as KeyMaterial +import CreateStaticKeyrings as CreateStaticKeyrings +import CreateStaticKeyStores as CreateStaticKeyStores +import KeyringFromKeyDescription as KeyringFromKeyDescription +import CmmFromKeyDescription as CmmFromKeyDescription +import WrappedMaterialProviders as WrappedMaterialProviders +import KeysVectorOperations as KeysVectorOperations +import FileIO as FileIO +import KeyVectors as KeyVectors +import AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import Streams as Streams +import SerializableTypes as SerializableTypes +import SerializeFunctions as SerializeFunctions +import EncryptionContext as EncryptionContext +import HeaderTypes as HeaderTypes +import SharedHeaderFunctions as SharedHeaderFunctions +import EncryptedDataKeys as EncryptedDataKeys +import V1HeaderBody as V1HeaderBody +import V2HeaderBody as V2HeaderBody +import HeaderAuth as HeaderAuth +import Header as Header +import Frames as Frames +import MessageBody as MessageBody +import KeyDerivation as KeyDerivation +import EncryptDecryptHelpers as EncryptDecryptHelpers +import AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import EncryptionSdk as EncryptionSdk +import MplManifestOptions as MplManifestOptions +import GetOpt as GetOpt +import AllAlgorithmSuites as AllAlgorithmSuites +import TestVectors as TestVectors +import AllHierarchy as AllHierarchy +import AllKms as AllKms +import AllKmsMrkAware as AllKmsMrkAware +import AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery +import AllKmsRsa as AllKmsRsa +import AllKmsEcdh as AllKmsEcdh +import AllRawAES as AllRawAES +import AllRawRSA as AllRawRSA +import AllRawECDH as AllRawECDH +import AllDefaultCmm as AllDefaultCmm +import AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm +import AllMulti as AllMulti +import WriteJsonManifests as WriteJsonManifests +import CompleteVectors as CompleteVectors +import ParseJsonManifests as ParseJsonManifests +import TestManifests as TestManifests +import WrappedMaterialProvidersMain as WrappedMaterialProvidersMain +import AesKdfCtr as AesKdfCtr +import StandardLibraryInterop as StandardLibraryInterop +import Sorting as Sorting +import FloatCompare as FloatCompare +import ConcurrentCall as ConcurrentCall +import Base64Lemmas as Base64Lemmas +import .internaldafny.generated.WrappedESDK as WrappedESDK +import .internaldafny.generated.EsdkManifestOptions as EsdkManifestOptions +import .internaldafny.generated.EsdkTestVectors as EsdkTestVectors +import .internaldafny.generated.AllEsdkV4NoReqEc as AllEsdkV4NoReqEc +import .internaldafny.generated.AllEsdkV4WithReqEc as AllEsdkV4WithReqEc +import .internaldafny.generated.WriteEsdkJsonManifests as WriteEsdkJsonManifests +import .internaldafny.generated.WriteVectors as WriteVectors +import .internaldafny.generated.ParseEsdkJsonManifest as ParseEsdkJsonManifest + +# Module: EsdkTestManifests + +class default__: + def __init__(self): + pass + + @staticmethod + def StartDecryptVectors(op): + output: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_0_valueOrError0_: Wrappers.Result = None + out0_: Wrappers.Result + out0_ = default__.GetManifest((op).manifestPath, (op).manifestFileName) + d_0_valueOrError0_ = out0_ + if not(not((d_0_valueOrError0_).IsFailure())): + raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestManifests.dfy(40,27): " + _dafny.string_of(d_0_valueOrError0_)) + d_1_decryptManifest_: ManifestData + d_1_decryptManifest_ = (d_0_valueOrError0_).Extract() + d_2_valueOrError1_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_2_valueOrError1_ = Wrappers.default__.Need((d_1_decryptManifest_).is_DecryptManifest, _dafny.Seq("Not a decrypt manifest")) + if (d_2_valueOrError1_).IsFailure(): + output = (d_2_valueOrError1_).PropagateFailure() + return output + d_3_valueOrError2_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_3_valueOrError2_ = ParseEsdkJsonManifest.default__.BuildDecryptTestVector(op, (d_1_decryptManifest_).version, (d_1_decryptManifest_).keys, (d_1_decryptManifest_).jsonTests) + if (d_3_valueOrError2_).IsFailure(): + output = (d_3_valueOrError2_).PropagateFailure() + return output + d_4_decryptVectors_: _dafny.Seq + d_4_decryptVectors_ = (d_3_valueOrError2_).Extract() + out1_: Wrappers.Result + out1_ = default__.TestDecrypts((d_1_decryptManifest_).keys, d_4_decryptVectors_) + output = out1_ + return output + + @staticmethod + def TestDecryptVector_q(v): + return (True) and (((v).decryptionMethod).is_OneShot) + + @staticmethod + def TestDecrypts(keys, vectors): + manifest: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + _dafny.print(_dafny.string_of(_dafny.Seq("\n=================== Starting "))) + _dafny.print(_dafny.string_of(len(vectors))) + _dafny.print(_dafny.string_of(_dafny.Seq(" Decrypt Tests =================== \n\n"))) + d_0_hasFailure_: bool + d_0_hasFailure_ = False + d_1_skipped_: int + d_1_skipped_ = 0 + hi0_ = len(vectors) + for d_2_i_ in range(0, hi0_): + d_3_vector_: EsdkTestVectors.EsdkDecryptTestVector + d_3_vector_ = (vectors)[d_2_i_] + if default__.TestDecryptVector_q(d_3_vector_): + d_4_pass_: bool + out0_: bool + out0_ = EsdkTestVectors.default__.TestDecrypt(keys, d_3_vector_) + d_4_pass_ = out0_ + if not(d_4_pass_): + d_0_hasFailure_ = True + elif True: + d_1_skipped_ = (d_1_skipped_) + (1) + _dafny.print(_dafny.string_of(_dafny.Seq("\nSKIP===> "))) + _dafny.print(_dafny.string_of((d_3_vector_).id)) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + _dafny.print(_dafny.string_of(_dafny.Seq("\n=================== Completed "))) + _dafny.print(_dafny.string_of(len(vectors))) + _dafny.print(_dafny.string_of(_dafny.Seq(" Decrypt Tests =================== \n\n"))) + if (0) < (d_1_skipped_): + _dafny.print(_dafny.string_of(_dafny.Seq("Skipped: "))) + _dafny.print(_dafny.string_of(d_1_skipped_)) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + if not(not(d_0_hasFailure_)): + raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestManifests.dfy(92,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + manifest = Wrappers.Result_Success(_dafny.Seq([])) + return manifest + + @staticmethod + def StartEncryptVectors(op): + output: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() + d_0_valueOrError0_: Wrappers.Result = None + out0_: Wrappers.Result + out0_ = default__.GetManifest((op).manifestPath, (op).manifest) + d_0_valueOrError0_ = out0_ + if (d_0_valueOrError0_).IsFailure(): + output = (d_0_valueOrError0_).PropagateFailure() + return output + d_1_encryptManifest_: ManifestData + d_1_encryptManifest_ = (d_0_valueOrError0_).Extract() + d_2_valueOrError1_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_2_valueOrError1_ = Wrappers.default__.Need((d_1_encryptManifest_).is_EncryptManifest, _dafny.Seq("Not a encrypt manifest")) + if (d_2_valueOrError1_).IsFailure(): + output = (d_2_valueOrError1_).PropagateFailure() + return output + d_3_valueOrError2_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_3_valueOrError2_ = ParseEsdkJsonManifest.default__.BuildEncryptTestVector(op, (d_1_encryptManifest_).version, (d_1_encryptManifest_).keys, (d_1_encryptManifest_).jsonTests) + if (d_3_valueOrError2_).IsFailure(): + output = (d_3_valueOrError2_).PropagateFailure() + return output + d_4_encryptVectors_: _dafny.Seq + d_4_encryptVectors_ = (d_3_valueOrError2_).Extract() + d_5_valueOrError3_: Wrappers.Result = None + out1_: Wrappers.Result + out1_ = AtomicPrimitives.default__.AtomicPrimitives(AtomicPrimitives.default__.DefaultCryptoConfig()) + d_5_valueOrError3_ = out1_ + if not(not((d_5_valueOrError3_).IsFailure())): + raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestManifests.dfy(114,13): " + _dafny.string_of(d_5_valueOrError3_)) + d_6_p_: AtomicPrimitives.AtomicPrimitivesClient + d_6_p_ = (d_5_valueOrError3_).Extract() + d_7_plaintext_: _dafny.Map + d_7_plaintext_ = _dafny.Map({}) + hi0_ = len((d_1_encryptManifest_).plaintext) + for d_8_i_ in range(0, hi0_): + let_tmp_rhs0_ = ((d_1_encryptManifest_).plaintext)[d_8_i_] + d_9_name_ = let_tmp_rhs0_[0] + d_10_length_ = let_tmp_rhs0_[1] + d_11_valueOrError4_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + out2_: Wrappers.Result + out2_ = (d_6_p_).GenerateRandomBytes(AwsCryptographyPrimitivesTypes.GenerateRandomBytesInput_GenerateRandomBytesInput(d_10_length_)) + d_11_valueOrError4_ = out2_ + if not(not((d_11_valueOrError4_).IsFailure())): + raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestManifests.dfy(119,18): " + _dafny.string_of(d_11_valueOrError4_)) + d_12_data_: _dafny.Seq + d_12_data_ = (d_11_valueOrError4_).Extract() + _dafny.print(_dafny.string_of((((op).decryptManifestOutput) + (EsdkTestVectors.default__.plaintextPathRoot)) + (d_9_name_))) + _dafny.print(_dafny.string_of(_dafny.Seq("\n\n"))) + d_13_valueOrError5_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() + out3_: Wrappers.Result + out3_ = EsdkTestVectors.default__.WriteVectorsFile((((op).decryptManifestOutput) + (EsdkTestVectors.default__.plaintextPathRoot)) + (d_9_name_), d_12_data_) + d_13_valueOrError5_ = out3_ + if (d_13_valueOrError5_).IsFailure(): + output = (d_13_valueOrError5_).PropagateFailure() + return output + d_14___v0_: tuple + d_14___v0_ = (d_13_valueOrError5_).Extract() + d_7_plaintext_ = (d_7_plaintext_) | (_dafny.Map({d_9_name_: d_12_data_})) + d_15_encryptTests_q_: Wrappers.Result + out4_: Wrappers.Result + out4_ = default__.ToEncryptTests((d_1_encryptManifest_).keys, d_4_encryptVectors_) + d_15_encryptTests_q_ = out4_ + d_16_valueOrError6_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + def lambda0_(d_17_e_): + def iife0_(_pat_let6_0): + def iife1_(d_18___v1_): + return _dafny.Seq("Cmm failure") + return iife1_(_pat_let6_0) + return iife0_(EsdkTestVectors.default__.MplVectorPrintErr(d_17_e_)) + + d_16_valueOrError6_ = (d_15_encryptTests_q_).MapFailure(lambda0_) + if (d_16_valueOrError6_).IsFailure(): + output = (d_16_valueOrError6_).PropagateFailure() + return output + d_19_encryptTests_: _dafny.Seq + d_19_encryptTests_ = (d_16_valueOrError6_).Extract() + d_20_valueOrError7_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + out5_: Wrappers.Result + out5_ = default__.TestEncrypts(d_7_plaintext_, (d_1_encryptManifest_).keys, d_19_encryptTests_) + d_20_valueOrError7_ = out5_ + if (d_20_valueOrError7_).IsFailure(): + output = (d_20_valueOrError7_).PropagateFailure() + return output + d_21_decryptVectors_: _dafny.Seq + d_21_decryptVectors_ = (d_20_valueOrError7_).Extract() + d_22_valueOrError8_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() + out6_: Wrappers.Result + out6_ = WriteVectors.default__.WriteDecryptManifest(op, (d_1_encryptManifest_).keys, d_21_decryptVectors_) + d_22_valueOrError8_ = out6_ + if (d_22_valueOrError8_).IsFailure(): + output = (d_22_valueOrError8_).PropagateFailure() + return output + d_23___v2_: tuple + d_23___v2_ = (d_22_valueOrError8_).Extract() + output = Wrappers.Result_Success(()) + return output + + @staticmethod + def TestEncryptVector_q(vector): + return (True) and (not (((vector).frameLength).is_Some) or (AwsCryptographyEncryptionSdkTypes.default__.IsValid__FrameLength(((vector).frameLength).value))) + + @staticmethod + def ToEncryptTests(keys, vectors): + output: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_0_encryptTests_: _dafny.Seq + d_0_encryptTests_ = _dafny.Seq([]) + hi0_ = len(vectors) + for d_1_i_ in range(0, hi0_): + d_2_valueOrError0_: Wrappers.Result = None + out0_: Wrappers.Result + out0_ = EsdkTestVectors.default__.EncryptVectorToEncryptTest(keys, (vectors)[d_1_i_]) + d_2_valueOrError0_ = out0_ + if (d_2_valueOrError0_).IsFailure(): + output = (d_2_valueOrError0_).PropagateFailure() + return output + d_3_test_: EsdkTestVectors.EncryptTest + d_3_test_ = (d_2_valueOrError0_).Extract() + d_0_encryptTests_ = (d_0_encryptTests_) + (_dafny.Seq([d_3_test_])) + output = Wrappers.Result_Success(d_0_encryptTests_) + return output + return output + + @staticmethod + def TestEncrypts(plaintexts, keys, tests): + manifest: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + _dafny.print(_dafny.string_of(_dafny.Seq("\n=================== Starting "))) + _dafny.print(_dafny.string_of(len(tests))) + _dafny.print(_dafny.string_of(_dafny.Seq(" Encrypt Tests =================== \n\n"))) + d_0_hasFailure_: bool + d_0_hasFailure_ = False + d_1_decryptVectors_: _dafny.Seq + d_1_decryptVectors_ = _dafny.Seq([]) + d_2_skipped_: _dafny.Seq + d_2_skipped_ = _dafny.Seq([]) + hi0_ = len(tests) + for d_3_i_ in range(0, hi0_): + d_4_test_: EsdkTestVectors.EncryptTest + d_4_test_ = (tests)[d_3_i_] + d_5_valueOrError0_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_5_valueOrError0_ = Wrappers.default__.Need((((d_4_test_).vector).id).is_Some, _dafny.Seq("Vector is missing uuid")) + if (d_5_valueOrError0_).IsFailure(): + manifest = (d_5_valueOrError0_).PropagateFailure() + return manifest + if default__.TestEncryptVector_q((d_4_test_).vector): + d_6_valueOrError1_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_6_valueOrError1_ = Wrappers.default__.Need(((((d_4_test_).vector).algorithmSuiteId).is_Some) and ((((((d_4_test_).vector).algorithmSuiteId).value).id).is_ESDK), _dafny.Seq("Vector is using an algorithm suite other than ESDK")) + if (d_6_valueOrError1_).IsFailure(): + manifest = (d_6_valueOrError1_).PropagateFailure() + return manifest + d_7_valueOrError2_: Wrappers.Result = Wrappers.Result.default(EsdkTestVectors.EncryptTestOutput.default())() + out0_: Wrappers.Result + out0_ = EsdkTestVectors.default__.TestEncrypt(plaintexts, keys, d_4_test_) + d_7_valueOrError2_ = out0_ + if (d_7_valueOrError2_).IsFailure(): + manifest = (d_7_valueOrError2_).PropagateFailure() + return manifest + d_8_pass_: EsdkTestVectors.EncryptTestOutput + d_8_pass_ = (d_7_valueOrError2_).Extract() + if not((d_8_pass_).output): + d_0_hasFailure_ = True + elif ((d_8_pass_).vector).is_Some: + d_1_decryptVectors_ = (d_1_decryptVectors_) + (_dafny.Seq([((d_8_pass_).vector).value])) + elif True: + d_2_skipped_ = (d_2_skipped_) + (_dafny.Seq([((((d_4_test_).vector).id).value) + (_dafny.Seq("\n"))])) + _dafny.print(_dafny.string_of(_dafny.Seq("\nSKIP===> "))) + _dafny.print(_dafny.string_of((((d_4_test_).vector).id).value)) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + _dafny.print(_dafny.string_of(_dafny.Seq("\n=================== Completed "))) + _dafny.print(_dafny.string_of(len(tests))) + _dafny.print(_dafny.string_of(_dafny.Seq(" Encrypt Tests =================== \n\n"))) + if not(not(d_0_hasFailure_)): + raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestManifests.dfy(215,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + manifest = Wrappers.Result_Success(d_1_decryptVectors_) + return manifest + + @staticmethod + def GetManifest(manifestPath, manifestFileName): + manifestData: Wrappers.Result = None + d_0_valueOrError0_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + out0_: Wrappers.Result + out0_ = FileIO.default__.ReadBytesFromFile((manifestPath) + (manifestFileName)) + d_0_valueOrError0_ = out0_ + if (d_0_valueOrError0_).IsFailure(): + manifestData = (d_0_valueOrError0_).PropagateFailure() + return manifestData + d_1_decryptManifestBv_: _dafny.Seq + d_1_decryptManifestBv_ = (d_0_valueOrError0_).Extract() + d_2_decryptManifestBytes_: _dafny.Seq + d_2_decryptManifestBytes_ = JSONHelpers.default__.BvToBytes(d_1_decryptManifestBv_) + d_3_valueOrError1_: Wrappers.Result = Wrappers.Result.default(JSON_Values.JSON.default())() + def lambda0_(d_4_e_): + return (d_4_e_).ToString() + + d_3_valueOrError1_ = (JSON_API.default__.Deserialize(d_2_decryptManifestBytes_)).MapFailure(lambda0_) + if (d_3_valueOrError1_).IsFailure(): + manifestData = (d_3_valueOrError1_).PropagateFailure() + return manifestData + d_5_manifestJson_: JSON_Values.JSON + d_5_manifestJson_ = (d_3_valueOrError1_).Extract() + d_6_valueOrError2_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_6_valueOrError2_ = Wrappers.default__.Need((d_5_manifestJson_).is_Object, _dafny.Seq("Not a JSON object")) + if (d_6_valueOrError2_).IsFailure(): + manifestData = (d_6_valueOrError2_).PropagateFailure() + return manifestData + d_7_valueOrError3_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_7_valueOrError3_ = JSONHelpers.default__.GetObject(_dafny.Seq("manifest"), (d_5_manifestJson_).obj) + if (d_7_valueOrError3_).IsFailure(): + manifestData = (d_7_valueOrError3_).PropagateFailure() + return manifestData + d_8_manifest_: _dafny.Seq + d_8_manifest_ = (d_7_valueOrError3_).Extract() + d_9_valueOrError4_: Wrappers.Result = Wrappers.Result.default(System_.nat.default)() + d_9_valueOrError4_ = JSONHelpers.default__.GetNat(_dafny.Seq("version"), d_8_manifest_) + if (d_9_valueOrError4_).IsFailure(): + manifestData = (d_9_valueOrError4_).PropagateFailure() + return manifestData + d_10_version_: int + d_10_version_ = (d_9_valueOrError4_).Extract() + d_11_valueOrError5_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_11_valueOrError5_ = JSONHelpers.default__.GetString(_dafny.Seq("type"), d_8_manifest_) + if (d_11_valueOrError5_).IsFailure(): + manifestData = (d_11_valueOrError5_).PropagateFailure() + return manifestData + d_12_typ_: _dafny.Seq + d_12_typ_ = (d_11_valueOrError5_).Extract() + d_13_valueOrError6_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_13_valueOrError6_ = JSONHelpers.default__.GetString(_dafny.Seq("keys"), (d_5_manifestJson_).obj) + if (d_13_valueOrError6_).IsFailure(): + manifestData = (d_13_valueOrError6_).PropagateFailure() + return manifestData + d_14_keyManifestUri_: _dafny.Seq + d_14_keyManifestUri_ = (d_13_valueOrError6_).Extract() + d_15_valueOrError7_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_15_valueOrError7_ = Wrappers.default__.Need((_dafny.Seq("file://")) < (d_14_keyManifestUri_), _dafny.Seq("Unexpected URI prefix")) + if (d_15_valueOrError7_).IsFailure(): + manifestData = (d_15_valueOrError7_).PropagateFailure() + return manifestData + d_16_keyManifestPath_: _dafny.Seq + d_16_keyManifestPath_ = (manifestPath) + (_dafny.Seq((d_14_keyManifestUri_)[7::])) + d_17_valueOrError8_: Wrappers.Result = None + out1_: Wrappers.Result + out1_ = KeyVectors.default__.KeyVectors(AwsCryptographyMaterialProvidersTestVectorKeysTypes.KeyVectorsConfig_KeyVectorsConfig(d_16_keyManifestPath_)) + d_17_valueOrError8_ = out1_ + if not(not((d_17_valueOrError8_).IsFailure())): + raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestManifests.dfy(263,16): " + _dafny.string_of(d_17_valueOrError8_)) + d_18_keys_: KeyVectors.KeyVectorsClient + d_18_keys_ = (d_17_valueOrError8_).Extract() + d_19_valueOrError9_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_19_valueOrError9_ = JSONHelpers.default__.GetObject(_dafny.Seq("tests"), (d_5_manifestJson_).obj) + if (d_19_valueOrError9_).IsFailure(): + manifestData = (d_19_valueOrError9_).PropagateFailure() + return manifestData + d_20_jsonTests_: _dafny.Seq + d_20_jsonTests_ = (d_19_valueOrError9_).Extract() + source0_ = d_12_typ_ + with _dafny.label("match0"): + if True: + if (source0_) == (_dafny.Seq("awses-decrypt")): + d_21_valueOrError10_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_21_valueOrError10_ = Wrappers.default__.Need(EsdkTestVectors.default__.SupportedDecryptVersion_q(d_10_version_), _dafny.Seq("Unsupported manifest version")) + if (d_21_valueOrError10_).IsFailure(): + manifestData = (d_21_valueOrError10_).PropagateFailure() + return manifestData + d_22_valueOrError11_: Wrappers.Result = Wrappers.Result.default(JSON_Values.JSON.default())() + d_22_valueOrError11_ = JSONHelpers.default__.Get(_dafny.Seq("client"), (d_5_manifestJson_).obj) + if (d_22_valueOrError11_).IsFailure(): + manifestData = (d_22_valueOrError11_).PropagateFailure() + return manifestData + d_23_client_: JSON_Values.JSON + d_23_client_ = (d_22_valueOrError11_).Extract() + manifestData = Wrappers.Result_Success(ManifestData_DecryptManifest(d_10_version_, d_18_keys_, d_23_client_, d_20_jsonTests_)) + raise _dafny.Break("match0") + if True: + if (source0_) == (_dafny.Seq("awses-encrypt")): + d_24_valueOrError12_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_24_valueOrError12_ = Wrappers.default__.Need(EsdkTestVectors.default__.SupportedEncryptVersion_q(d_10_version_), _dafny.Seq("Unsupported manifest version")) + if (d_24_valueOrError12_).IsFailure(): + manifestData = (d_24_valueOrError12_).PropagateFailure() + return manifestData + d_25_valueOrError13_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_25_valueOrError13_ = JSONHelpers.default__.GetObject(_dafny.Seq("plaintexts"), (d_5_manifestJson_).obj) + if (d_25_valueOrError13_).IsFailure(): + manifestData = (d_25_valueOrError13_).PropagateFailure() + return manifestData + d_26_plaintextsJson_: _dafny.Seq + d_26_plaintextsJson_ = (d_25_valueOrError13_).Extract() + d_27_valueOrError15_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + def lambda1_(d_28_obj_): + def iife0_(_pat_let7_0): + def iife1_(d_29_valueOrError14_): + return ((d_29_valueOrError14_).PropagateFailure() if (d_29_valueOrError14_).IsFailure() else Wrappers.Result_Success(((d_28_obj_)[0], (((d_28_obj_)[1]).num).n))) + return iife1_(_pat_let7_0) + return iife0_(Wrappers.default__.Need((((d_28_obj_)[1]).is_Number) and (((0) < ((((d_28_obj_)[1]).num).n)) and (((((d_28_obj_)[1]).num).n) <= (BoundedInts.default__.INT32__MAX))), _dafny.Seq("Size is not a natural number."))) + + d_27_valueOrError15_ = Seq.default__.MapWithResult(lambda1_, d_26_plaintextsJson_) + if (d_27_valueOrError15_).IsFailure(): + manifestData = (d_27_valueOrError15_).PropagateFailure() + return manifestData + d_30_plaintextsLength_: _dafny.Seq + d_30_plaintextsLength_ = (d_27_valueOrError15_).Extract() + manifestData = Wrappers.Result_Success(ManifestData_EncryptManifest(d_10_version_, d_18_keys_, d_30_plaintextsLength_, d_20_jsonTests_)) + raise _dafny.Break("match0") + if True: + manifestData = Wrappers.Result_Failure((_dafny.Seq("Unsupported manifest type:")) + (d_12_typ_)) + pass + return manifestData + + +class ManifestData: + @classmethod + def default(cls, ): + return lambda: ManifestData_DecryptManifest(int(0), None, JSON_Values.JSON.default()(), _dafny.Seq({})) + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_DecryptManifest(self) -> bool: + return isinstance(self, ManifestData_DecryptManifest) + @property + def is_EncryptManifest(self) -> bool: + return isinstance(self, ManifestData_EncryptManifest) + +class ManifestData_DecryptManifest(ManifestData, NamedTuple('DecryptManifest', [('version', Any), ('keys', Any), ('client', Any), ('jsonTests', Any)])): + def __dafnystr__(self) -> str: + return f'EsdkTestManifests.ManifestData.DecryptManifest({_dafny.string_of(self.version)}, {_dafny.string_of(self.keys)}, {_dafny.string_of(self.client)}, {_dafny.string_of(self.jsonTests)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, ManifestData_DecryptManifest) and self.version == __o.version and self.keys == __o.keys and self.client == __o.client and self.jsonTests == __o.jsonTests + def __hash__(self) -> int: + return super().__hash__() + +class ManifestData_EncryptManifest(ManifestData, NamedTuple('EncryptManifest', [('version', Any), ('keys', Any), ('plaintext', Any), ('jsonTests', Any)])): + def __dafnystr__(self) -> str: + return f'EsdkTestManifests.ManifestData.EncryptManifest({_dafny.string_of(self.version)}, {_dafny.string_of(self.keys)}, {_dafny.string_of(self.plaintext)}, {_dafny.string_of(self.jsonTests)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, ManifestData_EncryptManifest) and self.version == __o.version and self.keys == __o.keys and self.plaintext == __o.plaintext and self.jsonTests == __o.jsonTests + def __hash__(self) -> int: + return super().__hash__() + diff --git a/TestVectors/runtimes/python/src/internaldafny/generated/EsdkTestVectors.py b/TestVectors/runtimes/python/src/internaldafny/generated/EsdkTestVectors.py new file mode 100644 index 000000000..4c25e1195 --- /dev/null +++ b/TestVectors/runtimes/python/src/internaldafny/generated/EsdkTestVectors.py @@ -0,0 +1,780 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import .internaldafny.generated.module_ as module_ +import _dafny as _dafny +import System_ as System_ +import Wrappers as Wrappers +import BoundedInts as BoundedInts +import StandardLibrary_UInt as StandardLibrary_UInt +import StandardLibrary_Sequence as StandardLibrary_Sequence +import StandardLibrary_String as StandardLibrary_String +import StandardLibrary as StandardLibrary +import UTF8 as UTF8 +import AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import ExternRandom as ExternRandom +import Random as Random +import AESEncryption as AESEncryption +import ExternDigest as ExternDigest +import Digest as Digest +import HMAC as HMAC +import WrappedHMAC as WrappedHMAC +import HKDF as HKDF +import WrappedHKDF as WrappedHKDF +import Signature as Signature +import KdfCtr as KdfCtr +import RSAEncryption as RSAEncryption +import ECDH as ECDH +import AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import AtomicPrimitives as AtomicPrimitives +import ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import Base64 as Base64 +import AlgorithmSuites as AlgorithmSuites +import Materials as Materials +import Keyring as Keyring +import Relations as Relations +import Seq_MergeSort as Seq_MergeSort +import Math as Math +import Seq as Seq +import MultiKeyring as MultiKeyring +import AwsArnParsing as AwsArnParsing +import AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import Actions as Actions +import AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import AwsKmsUtils as AwsKmsUtils +import Constants as Constants +import UUID as UUID +import MaterialWrapping as MaterialWrapping +import SortedSets as SortedSets +import CanonicalEncryptionContext as CanonicalEncryptionContext +import IntermediateKeyWrapping as IntermediateKeyWrapping +import EdkWrapping as EdkWrapping +import ErrorMessages as ErrorMessages +import AwsKmsKeyring as AwsKmsKeyring +import StrictMultiKeyring as StrictMultiKeyring +import AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import Com_Amazonaws_Kms as Com_Amazonaws_Kms +import Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import DiscoveryMultiKeyring as DiscoveryMultiKeyring +import AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import AwsKmsMrkKeyring as AwsKmsMrkKeyring +import MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import DafnyLibraries as DafnyLibraries +import Time as Time +import LocalCMC as LocalCMC +import SynchronizedLocalCMC as SynchronizedLocalCMC +import StormTracker as StormTracker +import StormTrackingCMC as StormTrackingCMC +import CacheConstants as CacheConstants +import AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import AwsKmsRsaKeyring as AwsKmsRsaKeyring +import EcdhEdkWrapping as EcdhEdkWrapping +import RawECDHKeyring as RawECDHKeyring +import AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import RawAESKeyring as RawAESKeyring +import RawRSAKeyring as RawRSAKeyring +import CMM as CMM +import Defaults as Defaults +import Commitment as Commitment +import DefaultCMM as DefaultCMM +import DefaultClientSupplier as DefaultClientSupplier +import Utils as Utils +import RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import MaterialProviders as MaterialProviders +import KeyStoreErrorMessages as KeyStoreErrorMessages +import KmsArn as KmsArn +import Structure as Structure +import KMSKeystoreOperations as KMSKeystoreOperations +import DDBKeystoreOperations as DDBKeystoreOperations +import CreateKeys as CreateKeys +import CreateKeyStoreTable as CreateKeyStoreTable +import GetKeys as GetKeys +import AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import KeyStore as KeyStore +import AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes +import JSON_Utils_Views_Core as JSON_Utils_Views_Core +import JSON_Utils_Views_Writers as JSON_Utils_Views_Writers +import JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core +import JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings +import JSON_Utils_Cursors as JSON_Utils_Cursors +import JSON_Utils_Parsers as JSON_Utils_Parsers +import GeneralInternals as GeneralInternals +import MulInternalsNonlinear as MulInternalsNonlinear +import MulInternals as MulInternals +import Mul as Mul +import ModInternalsNonlinear as ModInternalsNonlinear +import DivInternalsNonlinear as DivInternalsNonlinear +import ModInternals as ModInternals +import DivInternals as DivInternals +import DivMod as DivMod +import Power as Power +import Logarithm as Logarithm +import JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion +import JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping +import JSON_Utils_Str as JSON_Utils_Str +import JSON_Utils_Seq as JSON_Utils_Seq +import JSON_Utils_Vectors as JSON_Utils_Vectors +import JSON_Errors as JSON_Errors +import JSON_Values as JSON_Values +import Unicode as Unicode +import Functions as Functions +import Utf8EncodingForm as Utf8EncodingForm +import Utf16EncodingForm as Utf16EncodingForm +import UnicodeStrings as UnicodeStrings +import JSON_Spec as JSON_Spec +import JSON_Grammar as JSON_Grammar +import JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion +import JSON_Serializer as JSON_Serializer +import JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion +import JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion +import JSON_Deserializer as JSON_Deserializer +import JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec +import JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties +import JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer +import JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core +import JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings +import JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers +import JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams +import JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects +import JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams +import JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays +import JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants +import JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values +import JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API +import JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer +import JSON_ZeroCopy_API as JSON_ZeroCopy_API +import JSON_API as JSON_API +import JSONHelpers as JSONHelpers +import KeyDescription as KeyDescription +import HexStrings as HexStrings +import KeyMaterial as KeyMaterial +import CreateStaticKeyrings as CreateStaticKeyrings +import CreateStaticKeyStores as CreateStaticKeyStores +import KeyringFromKeyDescription as KeyringFromKeyDescription +import CmmFromKeyDescription as CmmFromKeyDescription +import WrappedMaterialProviders as WrappedMaterialProviders +import KeysVectorOperations as KeysVectorOperations +import FileIO as FileIO +import KeyVectors as KeyVectors +import AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import Streams as Streams +import SerializableTypes as SerializableTypes +import SerializeFunctions as SerializeFunctions +import EncryptionContext as EncryptionContext +import HeaderTypes as HeaderTypes +import SharedHeaderFunctions as SharedHeaderFunctions +import EncryptedDataKeys as EncryptedDataKeys +import V1HeaderBody as V1HeaderBody +import V2HeaderBody as V2HeaderBody +import HeaderAuth as HeaderAuth +import Header as Header +import Frames as Frames +import MessageBody as MessageBody +import KeyDerivation as KeyDerivation +import EncryptDecryptHelpers as EncryptDecryptHelpers +import AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import EncryptionSdk as EncryptionSdk +import MplManifestOptions as MplManifestOptions +import GetOpt as GetOpt +import AllAlgorithmSuites as AllAlgorithmSuites +import TestVectors as TestVectors +import AllHierarchy as AllHierarchy +import AllKms as AllKms +import AllKmsMrkAware as AllKmsMrkAware +import AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery +import AllKmsRsa as AllKmsRsa +import AllKmsEcdh as AllKmsEcdh +import AllRawAES as AllRawAES +import AllRawRSA as AllRawRSA +import AllRawECDH as AllRawECDH +import AllDefaultCmm as AllDefaultCmm +import AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm +import AllMulti as AllMulti +import WriteJsonManifests as WriteJsonManifests +import CompleteVectors as CompleteVectors +import ParseJsonManifests as ParseJsonManifests +import TestManifests as TestManifests +import WrappedMaterialProvidersMain as WrappedMaterialProvidersMain +import AesKdfCtr as AesKdfCtr +import StandardLibraryInterop as StandardLibraryInterop +import Sorting as Sorting +import FloatCompare as FloatCompare +import ConcurrentCall as ConcurrentCall +import Base64Lemmas as Base64Lemmas +import .internaldafny.generated.WrappedESDK as WrappedESDK +import .internaldafny.generated.EsdkManifestOptions as EsdkManifestOptions + +# Module: EsdkTestVectors + +class default__: + def __init__(self): + pass + + @staticmethod + def SupportedGenerateManifestVersion_q(v): + return (False) or ((v) == (4)) + + @staticmethod + def SupportedEncryptVersion_q(v): + return (((v) == (1)) or ((v) == (4))) or ((v) == (5)) + + @staticmethod + def SupportedDecryptVersion_q(v): + return (((v) == (1)) or ((v) == (2))) or ((v) == (3)) + + @staticmethod + def TestDecrypt(keys, vector): + output: bool = False + if ((vector).algorithmSuiteId).is_Some: + d_0_id_: _dafny.Seq + d_0_id_ = AllAlgorithmSuites.default__.ToHex(((vector).algorithmSuiteId).value) + _dafny.print(_dafny.string_of(_dafny.Seq("\nTEST-DECRYPT===> "))) + _dafny.print(_dafny.string_of((vector).id)) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + _dafny.print(_dafny.string_of(d_0_id_)) + _dafny.print(_dafny.string_of(_dafny.Seq(" "))) + _dafny.print(_dafny.string_of((vector).description)) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + elif True: + _dafny.print(_dafny.string_of(_dafny.Seq("\nTEST-DECRYPT===> "))) + _dafny.print(_dafny.string_of((vector).id)) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + _dafny.print(_dafny.string_of((vector).description)) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + d_1_test_q_: Wrappers.Result + out0_: Wrappers.Result + out0_ = default__.DecryptVectorToDecryptTest(keys, vector) + d_1_test_q_ = out0_ + if (d_1_test_q_).is_Failure: + _dafny.print(_dafny.string_of((d_1_test_q_).error)) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + _dafny.print(_dafny.string_of(_dafny.Seq("\nFAILED! <-----------\n"))) + output = False + return output + d_2_test_: DecryptTest + d_2_test_ = (d_1_test_q_).value + d_3_valueOrError0_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + out1_: Wrappers.Result + out1_ = default__.ReadVectorsFile((((d_2_test_).vector).manifestPath) + (((d_2_test_).vector).ciphertextPath)) + d_3_valueOrError0_ = out1_ + if not(not((d_3_valueOrError0_).IsFailure())): + raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(202,22): " + _dafny.string_of(d_3_valueOrError0_)) + d_4_ciphertext_: _dafny.Seq + d_4_ciphertext_ = (d_3_valueOrError0_).Extract() + d_5_plaintext_: _dafny.Seq = _dafny.Seq({}) + if (((d_2_test_).vector).is_PositiveDecryptTestVector) or (((d_2_test_).vector).is_PositiveV1OrV2DecryptTestVector): + d_6_valueOrError1_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + out2_: Wrappers.Result + out2_ = default__.ReadVectorsFile((((d_2_test_).vector).manifestPath) + (((d_2_test_).vector).plaintextPath)) + d_6_valueOrError1_ = out2_ + if not(not((d_6_valueOrError1_).IsFailure())): + raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(205,19): " + _dafny.string_of(d_6_valueOrError1_)) + d_5_plaintext_ = (d_6_valueOrError1_).Extract() + d_7_input_: AwsCryptographyEncryptionSdkTypes.DecryptInput + d_7_input_ = AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_4_ciphertext_, Wrappers.Option_Some((d_2_test_).cmm), Wrappers.Option_None(), ((d_2_test_).vector).reproducedEncryptionContext) + d_8_result_: Wrappers.Result + out3_: Wrappers.Result + out3_ = ((d_2_test_).client).Decrypt(d_7_input_) + d_8_result_ = out3_ + source0_ = (d_2_test_).vector + with _dafny.label("match0"): + if True: + if source0_.is_PositiveDecryptTestVector: + output = ((d_8_result_).is_Success) and ((((d_8_result_).value).plaintext) == (d_5_plaintext_)) + raise _dafny.Break("match0") + if True: + if source0_.is_NegativeDecryptTestVector: + output = (True) and ((d_8_result_).is_Failure) + raise _dafny.Break("match0") + if True: + output = ((d_8_result_).is_Success) and ((((d_8_result_).value).plaintext) == (d_5_plaintext_)) + pass + if not(output): + if ((((d_2_test_).vector).is_PositiveDecryptTestVector) or (((d_2_test_).vector).is_PositiveV1OrV2DecryptTestVector)) and ((d_8_result_).is_Failure): + _dafny.print(_dafny.string_of((d_8_result_).error)) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + if (((d_8_result_).error).is_AwsCryptographyMaterialProviders) and ((((d_8_result_).error).AwsCryptographyMaterialProviders).is_CollectionOfErrors): + _dafny.print(_dafny.string_of(_dafny.Seq("list:"))) + _dafny.print(_dafny.string_of((((d_8_result_).error).AwsCryptographyMaterialProviders).list)) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + _dafny.print(_dafny.string_of(_dafny.Seq("\nFAILED! <-----------\n"))) + return output + + @staticmethod + def DecryptVectorToDecryptTest(keys, vector): + output: Wrappers.Result = None + d_0_valueOrError0_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_0_valueOrError0_ = Wrappers.default__.Need(not((vector).is_NegativeDecryptTestVector), AwsCryptographyMaterialProvidersTestVectorKeysTypes.Error_KeyVectorException(_dafny.Seq("Negative Test Vectors not supported at this time"))) + if (d_0_valueOrError0_).IsFailure(): + output = (d_0_valueOrError0_).PropagateFailure() + return output + d_1_valueOrError1_: Wrappers.Result = None + out0_: Wrappers.Result + out0_ = (keys).CreateWrappedTestVectorCmm(AwsCryptographyMaterialProvidersTestVectorKeysTypes.TestVectorCmmInput_TestVectorCmmInput((vector).decryptDescriptions, AwsCryptographyMaterialProvidersTestVectorKeysTypes.CmmOperation_DECRYPT())) + d_1_valueOrError1_ = out0_ + if (d_1_valueOrError1_).IsFailure(): + output = (d_1_valueOrError1_).PropagateFailure() + return output + d_2_cmm_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager + d_2_cmm_ = (d_1_valueOrError1_).Extract() + d_3_commitmentPolicy_: AwsCryptographyMaterialProvidersTypes.CommitmentPolicy + if ((vector).algorithmSuiteId).is_Some: + d_3_commitmentPolicy_ = AllAlgorithmSuites.default__.GetCompatibleCommitmentPolicy(((vector).algorithmSuiteId).value) + elif True: + d_3_commitmentPolicy_ = AwsCryptographyMaterialProvidersTypes.CommitmentPolicy_ESDK(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT()) + d_4_valueOrError2_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_4_valueOrError2_ = Wrappers.default__.Need((d_3_commitmentPolicy_).is_ESDK, AwsCryptographyMaterialProvidersTestVectorKeysTypes.Error_KeyVectorException(_dafny.Seq("Compatible commitment policy is not for ESDK"))) + if (d_4_valueOrError2_).IsFailure(): + output = (d_4_valueOrError2_).PropagateFailure() + return output + d_5_config_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig + d_5_config_ = WrappedESDK.default__.WrappedAwsEncryptionSdkConfigWithSuppliedCommitment((d_3_commitmentPolicy_).ESDK) + d_6_valueOrError3_: Wrappers.Result = None + out1_: Wrappers.Result + out1_ = WrappedESDK.default__.WrappedESDK(d_5_config_) + d_6_valueOrError3_ = out1_ + if not(not((d_6_valueOrError3_).IsFailure())): + raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(281,18): " + _dafny.string_of(d_6_valueOrError3_)) + d_7_client_: AwsCryptographyEncryptionSdkTypes.IAwsEncryptionSdkClient + d_7_client_ = (d_6_valueOrError3_).Extract() + d_8_test_: DecryptTest + d_8_test_ = DecryptTest_DecryptTest(d_2_cmm_, d_7_client_, vector) + output = Wrappers.Result_Success(d_8_test_) + return output + + @staticmethod + def TestEncrypt(plaintexts, keys, test): + output: Wrappers.Result = Wrappers.Result.default(EncryptTestOutput.default())() + d_0_id_: _dafny.Seq + d_0_id_ = AllAlgorithmSuites.default__.ToHex((((test).vector).algorithmSuiteId).value) + _dafny.print(_dafny.string_of(_dafny.Seq("\nTEST-ENCRYPT===> "))) + _dafny.print(_dafny.string_of((((test).vector).id).value)) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + _dafny.print(_dafny.string_of(d_0_id_)) + _dafny.print(_dafny.string_of(_dafny.Seq(" "))) + _dafny.print(_dafny.string_of(((test).vector).description)) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + d_1_vector_: EsdkEncryptTestVector + d_1_vector_ = (test).vector + if not((((test).vector).plaintextPath) in (plaintexts)): + raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(324,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_2_plaintext_: _dafny.Seq + d_2_plaintext_ = (plaintexts)[((test).vector).plaintextPath] + d_3_frameLength_: Wrappers.Option + d_3_frameLength_ = (d_1_vector_).frameLength + d_4_input_: AwsCryptographyEncryptionSdkTypes.EncryptInput + d_4_input_ = AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_2_plaintext_, ((test).vector).encryptionContext, Wrappers.Option_Some((test).cmm), Wrappers.Option_None(), Wrappers.Option_Some((((((test).vector).algorithmSuiteId).value).id).ESDK), d_3_frameLength_) + d_5_result_: Wrappers.Result + out0_: Wrappers.Result + out0_ = ((test).client).Encrypt(d_4_input_) + d_5_result_ = out0_ + if ((d_5_result_).is_Success) and ((((test).vector).is_PositiveEncryptTestVector) or (((test).vector).is_PositiveEncryptNegativeDecryptTestVector)): + d_6_valueOrError0_: Wrappers.Result = Wrappers.Result.default(EsdkDecryptTestVector.default())() + out1_: Wrappers.Result + out1_ = default__.EncryptTestToDecryptVector(test, (d_5_result_).value) + d_6_valueOrError0_ = out1_ + if (d_6_valueOrError0_).IsFailure(): + output = (d_6_valueOrError0_).PropagateFailure() + return output + d_7_decryptVector_: EsdkDecryptTestVector + d_7_decryptVector_ = (d_6_valueOrError0_).Extract() + output = Wrappers.Result_Success(EncryptTestOutput_EncryptTestOutput(True, Wrappers.Option_Some(d_7_decryptVector_))) + elif ((d_5_result_).is_Failure) and (((test).vector).is_NegativeEncryptTestVector): + output = Wrappers.Result_Success(EncryptTestOutput_EncryptTestOutput(True, Wrappers.Option_None())) + elif True: + output = Wrappers.Result_Success(EncryptTestOutput_EncryptTestOutput(False, Wrappers.Option_None())) + if (not(((test).vector).is_NegativeEncryptTestVector)) and ((d_5_result_).is_Failure): + _dafny.print(_dafny.string_of((d_5_result_).error)) + _dafny.print(_dafny.string_of(_dafny.Seq("\nFAILED! <-----------\n"))) + return output + + @staticmethod + def EncryptVectorToEncryptTest(keys, vector): + output: Wrappers.Result = None + d_0_valueOrError0_: Wrappers.Result = None + out0_: Wrappers.Result + out0_ = (keys).CreateWrappedTestVectorCmm(AwsCryptographyMaterialProvidersTestVectorKeysTypes.TestVectorCmmInput_TestVectorCmmInput(((vector).encryptDescriptions if (vector).is_PositiveEncryptTestVector else ((vector).encryptDescriptions if (vector).is_PositiveEncryptNegativeDecryptTestVector else (vector).encryptDescriptions)), AwsCryptographyMaterialProvidersTestVectorKeysTypes.CmmOperation_ENCRYPT())) + d_0_valueOrError0_ = out0_ + if (d_0_valueOrError0_).IsFailure(): + output = (d_0_valueOrError0_).PropagateFailure() + return output + d_1_cmm_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager + d_1_cmm_ = (d_0_valueOrError0_).Extract() + d_2_valueOrError1_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_2_valueOrError1_ = Wrappers.default__.Need(((vector).algorithmSuiteId).is_Some, AwsCryptographyMaterialProvidersTestVectorKeysTypes.Error_KeyVectorException(_dafny.Seq("Missing AlgorithmSuiteId in test vector"))) + if (d_2_valueOrError1_).IsFailure(): + output = (d_2_valueOrError1_).PropagateFailure() + return output + d_3_commitmentPolicy_: AwsCryptographyMaterialProvidersTypes.CommitmentPolicy + d_3_commitmentPolicy_ = AllAlgorithmSuites.default__.GetCompatibleCommitmentPolicy(((vector).algorithmSuiteId).value) + d_4_valueOrError2_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_4_valueOrError2_ = Wrappers.default__.Need((d_3_commitmentPolicy_).is_ESDK, AwsCryptographyMaterialProvidersTestVectorKeysTypes.Error_KeyVectorException(_dafny.Seq("Compatible commitment policy is not for ESDK"))) + if (d_4_valueOrError2_).IsFailure(): + output = (d_4_valueOrError2_).PropagateFailure() + return output + d_5_config_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig + d_5_config_ = WrappedESDK.default__.WrappedAwsEncryptionSdkConfigWithSuppliedCommitment((d_3_commitmentPolicy_).ESDK) + d_6_valueOrError3_: Wrappers.Result = None + out1_: Wrappers.Result + out1_ = WrappedESDK.default__.WrappedESDK(d_5_config_) + d_6_valueOrError3_ = out1_ + if not(not((d_6_valueOrError3_).IsFailure())): + raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(397,18): " + _dafny.string_of(d_6_valueOrError3_)) + d_7_client_: AwsCryptographyEncryptionSdkTypes.IAwsEncryptionSdkClient + d_7_client_ = (d_6_valueOrError3_).Extract() + d_8_test_: EncryptTest + d_8_test_ = EncryptTest_EncryptTest(d_1_cmm_, d_7_client_, vector) + output = Wrappers.Result_Success(d_8_test_) + return output + + @staticmethod + def EncryptTestToDecryptVector(test, result): + output: Wrappers.Result = Wrappers.Result.default(EsdkDecryptTestVector.default())() + source0_ = (test).vector + with _dafny.label("match0"): + if True: + if source0_.is_PositiveEncryptTestVector: + output = Wrappers.Result_Success(EsdkDecryptTestVector_PositiveDecryptTestVector((((test).vector).id).value, 3, ((test).vector).decryptManifestPath, default__.ciphertextPathPathRoot, (default__.plaintextPathRoot) + (((test).vector).plaintextPath), ((test).vector).reproducedEncryptionContext, ((test).vector).decryptDescriptions, ((test).vector).commitmentPolicy, ((test).vector).frameLength, ((test).vector).algorithmSuiteId, ((test).vector).description, DecryptionMethod_OneShot())) + raise _dafny.Break("match0") + if True: + output = Wrappers.Result_Failure(_dafny.Seq("Only postive tests supported")) + pass + d_0_decryptManifestCiphertext_: _dafny.Seq + d_0_decryptManifestCiphertext_ = ((((test).vector).decryptManifestPath) + (default__.ciphertextPathPathRoot)) + ((((test).vector).id).value) + d_1_valueOrError0_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() + out0_: Wrappers.Result + out0_ = default__.WriteVectorsFile(d_0_decryptManifestCiphertext_, (result).ciphertext) + d_1_valueOrError0_ = out0_ + if not(not((d_1_valueOrError0_).IsFailure())): + raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(439,13): " + _dafny.string_of(d_1_valueOrError0_)) + d_2___v52_: tuple + d_2___v52_ = (d_1_valueOrError0_).Extract() + return output + + @staticmethod + def MplPrintErr(e): + hresult_: tuple = () + _dafny.print(_dafny.string_of(e)) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + hresult_ = () + return hresult_ + return hresult_ + + @staticmethod + def MplVectorPrintErr(e): + hresult_: tuple = () + _dafny.print(_dafny.string_of(e)) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + hresult_ = () + return hresult_ + return hresult_ + + @staticmethod + def KeyDescriptionToCmm(keys, keyDescriptions): + output: Wrappers.Result = None + d_0_keyringList_: _dafny.Seq + d_0_keyringList_ = _dafny.Seq([]) + hi0_ = len(keyDescriptions) + for d_1_i_ in range(0, hi0_): + d_2_keyDescription_: AwsCryptographyMaterialProvidersTestVectorKeysTypes.KeyDescription + d_2_keyDescription_ = (keyDescriptions)[d_1_i_] + d_3_valueOrError0_: Wrappers.Result = None + out0_: Wrappers.Result + out0_ = (keys).CreateWrappedTestVectorKeyring(AwsCryptographyMaterialProvidersTestVectorKeysTypes.TestVectorKeyringInput_TestVectorKeyringInput(d_2_keyDescription_)) + d_3_valueOrError0_ = out0_ + if (d_3_valueOrError0_).IsFailure(): + output = (d_3_valueOrError0_).PropagateFailure() + return output + d_4_keyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + d_4_keyring_ = (d_3_valueOrError0_).Extract() + d_0_keyringList_ = (d_0_keyringList_) + (_dafny.Seq([d_4_keyring_])) + d_5_valueOrError1_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_5_valueOrError1_ = Wrappers.default__.Need((len(d_0_keyringList_)) == (1), AwsCryptographyMaterialProvidersTestVectorKeysTypes.Error_KeyVectorException(_dafny.Seq("Failed to create any keyrings"))) + if (d_5_valueOrError1_).IsFailure(): + output = (d_5_valueOrError1_).PropagateFailure() + return output + d_6_valueOrError2_: Wrappers.Result = None + out1_: Wrappers.Result + out1_ = WrappedMaterialProviders.default__.WrappedMaterialProviders(WrappedMaterialProviders.default__.WrappedDefaultMaterialProvidersConfig()) + d_6_valueOrError2_ = out1_ + if not(not((d_6_valueOrError2_).IsFailure())): + raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(482,15): " + _dafny.string_of(d_6_valueOrError2_)) + d_7_mpl_: AwsCryptographyMaterialProvidersTypes.IAwsCryptographicMaterialProvidersClient + d_7_mpl_ = (d_6_valueOrError2_).Extract() + d_8_generatorKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + d_8_generatorKeyring_ = (d_0_keyringList_)[0] + d_9_maybeMultiKeyring_: Wrappers.Result + out2_: Wrappers.Result + out2_ = (d_7_mpl_).CreateMultiKeyring(AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput_CreateMultiKeyringInput(Wrappers.Option_Some(d_8_generatorKeyring_), _dafny.Seq((d_0_keyringList_)[1::]))) + d_9_maybeMultiKeyring_ = out2_ + d_10_valueOrError3_: Wrappers.Result = None + def lambda0_(d_11_e_): + return AwsCryptographyMaterialProvidersTestVectorKeysTypes.Error_AwsCryptographyMaterialProviders(d_11_e_) + + d_10_valueOrError3_ = (d_9_maybeMultiKeyring_).MapFailure(lambda0_) + if (d_10_valueOrError3_).IsFailure(): + output = (d_10_valueOrError3_).PropagateFailure() + return output + d_12_keyring_: AwsCryptographyMaterialProvidersTypes.IKeyring + d_12_keyring_ = (d_10_valueOrError3_).Extract() + d_13_maybeCmm_: Wrappers.Result + out3_: Wrappers.Result + out3_ = (d_7_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput((d_9_maybeMultiKeyring_).value)) + d_13_maybeCmm_ = out3_ + def lambda1_(d_14_e_): + return AwsCryptographyMaterialProvidersTestVectorKeysTypes.Error_AwsCryptographyMaterialProviders(d_14_e_) + + output = (d_13_maybeCmm_).MapFailure(lambda1_) + return output + + @staticmethod + def ReadVectorsFile(location): + output: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_0_valueOrError0_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + out0_: Wrappers.Result + out0_ = FileIO.default__.ReadBytesFromFile(location) + d_0_valueOrError0_ = out0_ + if (d_0_valueOrError0_).IsFailure(): + output = (d_0_valueOrError0_).PropagateFailure() + return output + d_1_fileBv_: _dafny.Seq + d_1_fileBv_ = (d_0_valueOrError0_).Extract() + output = Wrappers.Result_Success(JSONHelpers.default__.BvToBytes(d_1_fileBv_)) + return output + + @staticmethod + def WriteVectorsFile(location, bytes): + output: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() + d_0_bv_: _dafny.Seq + d_0_bv_ = JSONHelpers.default__.BytesBv(bytes) + out0_: Wrappers.Result + out0_ = FileIO.default__.WriteBytesToFile(location, d_0_bv_) + output = out0_ + return output + + @_dafny.classproperty + def ciphertextPathPathRoot(instance): + return _dafny.Seq("ciphertexts/") + @_dafny.classproperty + def plaintextPathRoot(instance): + return _dafny.Seq("plaintexts/") + +class EncryptTest: + @classmethod + def default(cls, ): + return lambda: EncryptTest_EncryptTest(None, None, EsdkEncryptTestVector.default()()) + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_EncryptTest(self) -> bool: + return isinstance(self, EncryptTest_EncryptTest) + +class EncryptTest_EncryptTest(EncryptTest, NamedTuple('EncryptTest', [('cmm', Any), ('client', Any), ('vector', Any)])): + def __dafnystr__(self) -> str: + return f'EsdkTestVectors.EncryptTest.EncryptTest({_dafny.string_of(self.cmm)}, {_dafny.string_of(self.client)}, {_dafny.string_of(self.vector)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, EncryptTest_EncryptTest) and self.cmm == __o.cmm and self.client == __o.client and self.vector == __o.vector + def __hash__(self) -> int: + return super().__hash__() + + +class DecryptTest: + @classmethod + def default(cls, ): + return lambda: DecryptTest_DecryptTest(None, None, EsdkDecryptTestVector.default()()) + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_DecryptTest(self) -> bool: + return isinstance(self, DecryptTest_DecryptTest) + +class DecryptTest_DecryptTest(DecryptTest, NamedTuple('DecryptTest', [('cmm', Any), ('client', Any), ('vector', Any)])): + def __dafnystr__(self) -> str: + return f'EsdkTestVectors.DecryptTest.DecryptTest({_dafny.string_of(self.cmm)}, {_dafny.string_of(self.client)}, {_dafny.string_of(self.vector)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, DecryptTest_DecryptTest) and self.cmm == __o.cmm and self.client == __o.client and self.vector == __o.vector + def __hash__(self) -> int: + return super().__hash__() + + +class SupportedGenerateManifestVersion: + def __init__(self): + pass + + @staticmethod + def default(): + return 4 + def _Is(source__): + d_0_v_: int = source__ + if System_.nat._Is(d_0_v_): + return default__.SupportedGenerateManifestVersion_q(d_0_v_) + return False + +class SupportedEncryptVersion: + def __init__(self): + pass + + @staticmethod + def default(): + return 1 + def _Is(source__): + d_1_v_: int = source__ + if System_.nat._Is(d_1_v_): + return default__.SupportedEncryptVersion_q(d_1_v_) + return False + +class EsdkEncryptTestVector: + @classmethod + def default(cls, ): + return lambda: EsdkEncryptTestVector_PositiveEncryptTestVector(Wrappers.Option.default()(), SupportedEncryptVersion.default(), _dafny.Seq(""), _dafny.Seq(""), _dafny.Seq(""), AwsCryptographyMaterialProvidersTestVectorKeysTypes.KeyDescription.default()(), AwsCryptographyMaterialProvidersTestVectorKeysTypes.KeyDescription.default()(), Wrappers.Option.default()(), Wrappers.Option.default()(), AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy.default()(), Wrappers.Option.default()(), Wrappers.Option.default()(), _dafny.Seq(""), Wrappers.Option.default()()) + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_PositiveEncryptTestVector(self) -> bool: + return isinstance(self, EsdkEncryptTestVector_PositiveEncryptTestVector) + @property + def is_PositiveEncryptNegativeDecryptTestVector(self) -> bool: + return isinstance(self, EsdkEncryptTestVector_PositiveEncryptNegativeDecryptTestVector) + @property + def is_NegativeEncryptTestVector(self) -> bool: + return isinstance(self, EsdkEncryptTestVector_NegativeEncryptTestVector) + +class EsdkEncryptTestVector_PositiveEncryptTestVector(EsdkEncryptTestVector, NamedTuple('PositiveEncryptTestVector', [('id', Any), ('version', Any), ('manifestPath', Any), ('decryptManifestPath', Any), ('plaintextPath', Any), ('encryptDescriptions', Any), ('decryptDescriptions', Any), ('encryptionContext', Any), ('reproducedEncryptionContext', Any), ('commitmentPolicy', Any), ('frameLength', Any), ('algorithmSuiteId', Any), ('description', Any), ('maxEncryptedDataKeys', Any)])): + def __dafnystr__(self) -> str: + return f'EsdkTestVectors.EsdkEncryptTestVector.PositiveEncryptTestVector({_dafny.string_of(self.id)}, {_dafny.string_of(self.version)}, {_dafny.string_of(self.manifestPath)}, {_dafny.string_of(self.decryptManifestPath)}, {_dafny.string_of(self.plaintextPath)}, {_dafny.string_of(self.encryptDescriptions)}, {_dafny.string_of(self.decryptDescriptions)}, {_dafny.string_of(self.encryptionContext)}, {_dafny.string_of(self.reproducedEncryptionContext)}, {_dafny.string_of(self.commitmentPolicy)}, {_dafny.string_of(self.frameLength)}, {_dafny.string_of(self.algorithmSuiteId)}, {_dafny.string_of(self.description)}, {_dafny.string_of(self.maxEncryptedDataKeys)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, EsdkEncryptTestVector_PositiveEncryptTestVector) and self.id == __o.id and self.version == __o.version and self.manifestPath == __o.manifestPath and self.decryptManifestPath == __o.decryptManifestPath and self.plaintextPath == __o.plaintextPath and self.encryptDescriptions == __o.encryptDescriptions and self.decryptDescriptions == __o.decryptDescriptions and self.encryptionContext == __o.encryptionContext and self.reproducedEncryptionContext == __o.reproducedEncryptionContext and self.commitmentPolicy == __o.commitmentPolicy and self.frameLength == __o.frameLength and self.algorithmSuiteId == __o.algorithmSuiteId and self.description == __o.description and self.maxEncryptedDataKeys == __o.maxEncryptedDataKeys + def __hash__(self) -> int: + return super().__hash__() + +class EsdkEncryptTestVector_PositiveEncryptNegativeDecryptTestVector(EsdkEncryptTestVector, NamedTuple('PositiveEncryptNegativeDecryptTestVector', [('id', Any), ('version', Any), ('manifestPath', Any), ('decryptManifestPath', Any), ('plaintextPath', Any), ('encryptDescriptions', Any), ('decryptDescriptions', Any), ('encryptionContext', Any), ('reproducedEncryptionContext', Any), ('commitmentPolicy', Any), ('frameLength', Any), ('algorithmSuiteId', Any), ('decryptErrorDescription', Any), ('description', Any), ('maxEncryptedDataKeys', Any)])): + def __dafnystr__(self) -> str: + return f'EsdkTestVectors.EsdkEncryptTestVector.PositiveEncryptNegativeDecryptTestVector({_dafny.string_of(self.id)}, {_dafny.string_of(self.version)}, {_dafny.string_of(self.manifestPath)}, {_dafny.string_of(self.decryptManifestPath)}, {_dafny.string_of(self.plaintextPath)}, {_dafny.string_of(self.encryptDescriptions)}, {_dafny.string_of(self.decryptDescriptions)}, {_dafny.string_of(self.encryptionContext)}, {_dafny.string_of(self.reproducedEncryptionContext)}, {_dafny.string_of(self.commitmentPolicy)}, {_dafny.string_of(self.frameLength)}, {_dafny.string_of(self.algorithmSuiteId)}, {_dafny.string_of(self.decryptErrorDescription)}, {_dafny.string_of(self.description)}, {_dafny.string_of(self.maxEncryptedDataKeys)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, EsdkEncryptTestVector_PositiveEncryptNegativeDecryptTestVector) and self.id == __o.id and self.version == __o.version and self.manifestPath == __o.manifestPath and self.decryptManifestPath == __o.decryptManifestPath and self.plaintextPath == __o.plaintextPath and self.encryptDescriptions == __o.encryptDescriptions and self.decryptDescriptions == __o.decryptDescriptions and self.encryptionContext == __o.encryptionContext and self.reproducedEncryptionContext == __o.reproducedEncryptionContext and self.commitmentPolicy == __o.commitmentPolicy and self.frameLength == __o.frameLength and self.algorithmSuiteId == __o.algorithmSuiteId and self.decryptErrorDescription == __o.decryptErrorDescription and self.description == __o.description and self.maxEncryptedDataKeys == __o.maxEncryptedDataKeys + def __hash__(self) -> int: + return super().__hash__() + +class EsdkEncryptTestVector_NegativeEncryptTestVector(EsdkEncryptTestVector, NamedTuple('NegativeEncryptTestVector', [('id', Any), ('version', Any), ('manifestPath', Any), ('plaintextPath', Any), ('encryptDescriptions', Any), ('encryptionContext', Any), ('reproducedEncryptionContext', Any), ('commitmentPolicy', Any), ('frameLength', Any), ('algorithmSuiteId', Any), ('errorDescription', Any), ('description', Any), ('maxEncryptedDataKeys', Any)])): + def __dafnystr__(self) -> str: + return f'EsdkTestVectors.EsdkEncryptTestVector.NegativeEncryptTestVector({_dafny.string_of(self.id)}, {_dafny.string_of(self.version)}, {_dafny.string_of(self.manifestPath)}, {_dafny.string_of(self.plaintextPath)}, {_dafny.string_of(self.encryptDescriptions)}, {_dafny.string_of(self.encryptionContext)}, {_dafny.string_of(self.reproducedEncryptionContext)}, {_dafny.string_of(self.commitmentPolicy)}, {_dafny.string_of(self.frameLength)}, {_dafny.string_of(self.algorithmSuiteId)}, {_dafny.string_of(self.errorDescription)}, {_dafny.string_of(self.description)}, {_dafny.string_of(self.maxEncryptedDataKeys)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, EsdkEncryptTestVector_NegativeEncryptTestVector) and self.id == __o.id and self.version == __o.version and self.manifestPath == __o.manifestPath and self.plaintextPath == __o.plaintextPath and self.encryptDescriptions == __o.encryptDescriptions and self.encryptionContext == __o.encryptionContext and self.reproducedEncryptionContext == __o.reproducedEncryptionContext and self.commitmentPolicy == __o.commitmentPolicy and self.frameLength == __o.frameLength and self.algorithmSuiteId == __o.algorithmSuiteId and self.errorDescription == __o.errorDescription and self.description == __o.description and self.maxEncryptedDataKeys == __o.maxEncryptedDataKeys + def __hash__(self) -> int: + return super().__hash__() + + +class SupportedDecryptVersion: + def __init__(self): + pass + + @staticmethod + def default(): + return 1 + def _Is(source__): + d_2_v_: int = source__ + if System_.nat._Is(d_2_v_): + return default__.SupportedDecryptVersion_q(d_2_v_) + return False + +class EsdkDecryptTestVector: + @classmethod + def default(cls, ): + return lambda: EsdkDecryptTestVector_PositiveDecryptTestVector(_dafny.Seq(""), SupportedDecryptVersion.default(), _dafny.Seq(""), _dafny.Seq(""), _dafny.Seq(""), Wrappers.Option.default()(), AwsCryptographyMaterialProvidersTestVectorKeysTypes.KeyDescription.default()(), AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy.default()(), Wrappers.Option.default()(), Wrappers.Option.default()(), _dafny.Seq(""), DecryptionMethod.default()()) + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_PositiveDecryptTestVector(self) -> bool: + return isinstance(self, EsdkDecryptTestVector_PositiveDecryptTestVector) + @property + def is_NegativeDecryptTestVector(self) -> bool: + return isinstance(self, EsdkDecryptTestVector_NegativeDecryptTestVector) + @property + def is_PositiveV1OrV2DecryptTestVector(self) -> bool: + return isinstance(self, EsdkDecryptTestVector_PositiveV1OrV2DecryptTestVector) + +class EsdkDecryptTestVector_PositiveDecryptTestVector(EsdkDecryptTestVector, NamedTuple('PositiveDecryptTestVector', [('id', Any), ('version', Any), ('manifestPath', Any), ('ciphertextPath', Any), ('plaintextPath', Any), ('reproducedEncryptionContext', Any), ('decryptDescriptions', Any), ('commitmentPolicy', Any), ('frameLength', Any), ('algorithmSuiteId', Any), ('description', Any), ('decryptionMethod', Any)])): + def __dafnystr__(self) -> str: + return f'EsdkTestVectors.EsdkDecryptTestVector.PositiveDecryptTestVector({_dafny.string_of(self.id)}, {_dafny.string_of(self.version)}, {_dafny.string_of(self.manifestPath)}, {_dafny.string_of(self.ciphertextPath)}, {_dafny.string_of(self.plaintextPath)}, {_dafny.string_of(self.reproducedEncryptionContext)}, {_dafny.string_of(self.decryptDescriptions)}, {_dafny.string_of(self.commitmentPolicy)}, {_dafny.string_of(self.frameLength)}, {_dafny.string_of(self.algorithmSuiteId)}, {_dafny.string_of(self.description)}, {_dafny.string_of(self.decryptionMethod)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, EsdkDecryptTestVector_PositiveDecryptTestVector) and self.id == __o.id and self.version == __o.version and self.manifestPath == __o.manifestPath and self.ciphertextPath == __o.ciphertextPath and self.plaintextPath == __o.plaintextPath and self.reproducedEncryptionContext == __o.reproducedEncryptionContext and self.decryptDescriptions == __o.decryptDescriptions and self.commitmentPolicy == __o.commitmentPolicy and self.frameLength == __o.frameLength and self.algorithmSuiteId == __o.algorithmSuiteId and self.description == __o.description and self.decryptionMethod == __o.decryptionMethod + def __hash__(self) -> int: + return super().__hash__() + +class EsdkDecryptTestVector_NegativeDecryptTestVector(EsdkDecryptTestVector, NamedTuple('NegativeDecryptTestVector', [('id', Any), ('version', Any), ('manifestPath', Any), ('ciphertextPath', Any), ('errorDescription', Any), ('reproducedEncryptionContext', Any), ('decryptDescriptions', Any), ('commitmentPolicy', Any), ('frameLength', Any), ('algorithmSuiteId', Any), ('description', Any), ('decryptionMethod', Any)])): + def __dafnystr__(self) -> str: + return f'EsdkTestVectors.EsdkDecryptTestVector.NegativeDecryptTestVector({_dafny.string_of(self.id)}, {_dafny.string_of(self.version)}, {_dafny.string_of(self.manifestPath)}, {_dafny.string_of(self.ciphertextPath)}, {_dafny.string_of(self.errorDescription)}, {_dafny.string_of(self.reproducedEncryptionContext)}, {_dafny.string_of(self.decryptDescriptions)}, {_dafny.string_of(self.commitmentPolicy)}, {_dafny.string_of(self.frameLength)}, {_dafny.string_of(self.algorithmSuiteId)}, {_dafny.string_of(self.description)}, {_dafny.string_of(self.decryptionMethod)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, EsdkDecryptTestVector_NegativeDecryptTestVector) and self.id == __o.id and self.version == __o.version and self.manifestPath == __o.manifestPath and self.ciphertextPath == __o.ciphertextPath and self.errorDescription == __o.errorDescription and self.reproducedEncryptionContext == __o.reproducedEncryptionContext and self.decryptDescriptions == __o.decryptDescriptions and self.commitmentPolicy == __o.commitmentPolicy and self.frameLength == __o.frameLength and self.algorithmSuiteId == __o.algorithmSuiteId and self.description == __o.description and self.decryptionMethod == __o.decryptionMethod + def __hash__(self) -> int: + return super().__hash__() + +class EsdkDecryptTestVector_PositiveV1OrV2DecryptTestVector(EsdkDecryptTestVector, NamedTuple('PositiveV1OrV2DecryptTestVector', [('id', Any), ('version', Any), ('manifestPath', Any), ('ciphertextPath', Any), ('plaintextPath', Any), ('reproducedEncryptionContext', Any), ('requiredEncryptionContextKeys', Any), ('decryptDescriptions', Any), ('commitmentPolicy', Any), ('frameLength', Any), ('algorithmSuiteId', Any), ('description', Any), ('decryptionMethod', Any)])): + def __dafnystr__(self) -> str: + return f'EsdkTestVectors.EsdkDecryptTestVector.PositiveV1OrV2DecryptTestVector({_dafny.string_of(self.id)}, {_dafny.string_of(self.version)}, {_dafny.string_of(self.manifestPath)}, {_dafny.string_of(self.ciphertextPath)}, {_dafny.string_of(self.plaintextPath)}, {_dafny.string_of(self.reproducedEncryptionContext)}, {_dafny.string_of(self.requiredEncryptionContextKeys)}, {_dafny.string_of(self.decryptDescriptions)}, {_dafny.string_of(self.commitmentPolicy)}, {_dafny.string_of(self.frameLength)}, {_dafny.string_of(self.algorithmSuiteId)}, {_dafny.string_of(self.description)}, {_dafny.string_of(self.decryptionMethod)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, EsdkDecryptTestVector_PositiveV1OrV2DecryptTestVector) and self.id == __o.id and self.version == __o.version and self.manifestPath == __o.manifestPath and self.ciphertextPath == __o.ciphertextPath and self.plaintextPath == __o.plaintextPath and self.reproducedEncryptionContext == __o.reproducedEncryptionContext and self.requiredEncryptionContextKeys == __o.requiredEncryptionContextKeys and self.decryptDescriptions == __o.decryptDescriptions and self.commitmentPolicy == __o.commitmentPolicy and self.frameLength == __o.frameLength and self.algorithmSuiteId == __o.algorithmSuiteId and self.description == __o.description and self.decryptionMethod == __o.decryptionMethod + def __hash__(self) -> int: + return super().__hash__() + + +class DecryptionMethod: + @_dafny.classproperty + def AllSingletonConstructors(cls): + return [DecryptionMethod_StreamingUnsignedOnly(), DecryptionMethod_OneShot()] + @classmethod + def default(cls, ): + return lambda: DecryptionMethod_StreamingUnsignedOnly() + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_StreamingUnsignedOnly(self) -> bool: + return isinstance(self, DecryptionMethod_StreamingUnsignedOnly) + @property + def is_OneShot(self) -> bool: + return isinstance(self, DecryptionMethod_OneShot) + +class DecryptionMethod_StreamingUnsignedOnly(DecryptionMethod, NamedTuple('StreamingUnsignedOnly', [])): + def __dafnystr__(self) -> str: + return f'EsdkTestVectors.DecryptionMethod.StreamingUnsignedOnly' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, DecryptionMethod_StreamingUnsignedOnly) + def __hash__(self) -> int: + return super().__hash__() + +class DecryptionMethod_OneShot(DecryptionMethod, NamedTuple('OneShot', [])): + def __dafnystr__(self) -> str: + return f'EsdkTestVectors.DecryptionMethod.OneShot' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, DecryptionMethod_OneShot) + def __hash__(self) -> int: + return super().__hash__() + + +class EncryptTestOutput: + @classmethod + def default(cls, ): + return lambda: EncryptTestOutput_EncryptTestOutput(False, Wrappers.Option.default()()) + def __ne__(self, __o: object) -> bool: + return not self.__eq__(__o) + @property + def is_EncryptTestOutput(self) -> bool: + return isinstance(self, EncryptTestOutput_EncryptTestOutput) + +class EncryptTestOutput_EncryptTestOutput(EncryptTestOutput, NamedTuple('EncryptTestOutput', [('output', Any), ('vector', Any)])): + def __dafnystr__(self) -> str: + return f'EsdkTestVectors.EncryptTestOutput.EncryptTestOutput({_dafny.string_of(self.output)}, {_dafny.string_of(self.vector)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, EncryptTestOutput_EncryptTestOutput) and self.output == __o.output and self.vector == __o.vector + def __hash__(self) -> int: + return super().__hash__() + diff --git a/TestVectors/runtimes/python/src/internaldafny/generated/ParseEsdkJsonManifest.py b/TestVectors/runtimes/python/src/internaldafny/generated/ParseEsdkJsonManifest.py new file mode 100644 index 000000000..364875e05 --- /dev/null +++ b/TestVectors/runtimes/python/src/internaldafny/generated/ParseEsdkJsonManifest.py @@ -0,0 +1,629 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import .internaldafny.generated.module_ as module_ +import _dafny as _dafny +import System_ as System_ +import Wrappers as Wrappers +import BoundedInts as BoundedInts +import StandardLibrary_UInt as StandardLibrary_UInt +import StandardLibrary_Sequence as StandardLibrary_Sequence +import StandardLibrary_String as StandardLibrary_String +import StandardLibrary as StandardLibrary +import UTF8 as UTF8 +import AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import ExternRandom as ExternRandom +import Random as Random +import AESEncryption as AESEncryption +import ExternDigest as ExternDigest +import Digest as Digest +import HMAC as HMAC +import WrappedHMAC as WrappedHMAC +import HKDF as HKDF +import WrappedHKDF as WrappedHKDF +import Signature as Signature +import KdfCtr as KdfCtr +import RSAEncryption as RSAEncryption +import ECDH as ECDH +import AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import AtomicPrimitives as AtomicPrimitives +import ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import Base64 as Base64 +import AlgorithmSuites as AlgorithmSuites +import Materials as Materials +import Keyring as Keyring +import Relations as Relations +import Seq_MergeSort as Seq_MergeSort +import Math as Math +import Seq as Seq +import MultiKeyring as MultiKeyring +import AwsArnParsing as AwsArnParsing +import AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import Actions as Actions +import AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import AwsKmsUtils as AwsKmsUtils +import Constants as Constants +import UUID as UUID +import MaterialWrapping as MaterialWrapping +import SortedSets as SortedSets +import CanonicalEncryptionContext as CanonicalEncryptionContext +import IntermediateKeyWrapping as IntermediateKeyWrapping +import EdkWrapping as EdkWrapping +import ErrorMessages as ErrorMessages +import AwsKmsKeyring as AwsKmsKeyring +import StrictMultiKeyring as StrictMultiKeyring +import AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import Com_Amazonaws_Kms as Com_Amazonaws_Kms +import Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import DiscoveryMultiKeyring as DiscoveryMultiKeyring +import AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import AwsKmsMrkKeyring as AwsKmsMrkKeyring +import MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import DafnyLibraries as DafnyLibraries +import Time as Time +import LocalCMC as LocalCMC +import SynchronizedLocalCMC as SynchronizedLocalCMC +import StormTracker as StormTracker +import StormTrackingCMC as StormTrackingCMC +import CacheConstants as CacheConstants +import AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import AwsKmsRsaKeyring as AwsKmsRsaKeyring +import EcdhEdkWrapping as EcdhEdkWrapping +import RawECDHKeyring as RawECDHKeyring +import AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import RawAESKeyring as RawAESKeyring +import RawRSAKeyring as RawRSAKeyring +import CMM as CMM +import Defaults as Defaults +import Commitment as Commitment +import DefaultCMM as DefaultCMM +import DefaultClientSupplier as DefaultClientSupplier +import Utils as Utils +import RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import MaterialProviders as MaterialProviders +import KeyStoreErrorMessages as KeyStoreErrorMessages +import KmsArn as KmsArn +import Structure as Structure +import KMSKeystoreOperations as KMSKeystoreOperations +import DDBKeystoreOperations as DDBKeystoreOperations +import CreateKeys as CreateKeys +import CreateKeyStoreTable as CreateKeyStoreTable +import GetKeys as GetKeys +import AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import KeyStore as KeyStore +import AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes +import JSON_Utils_Views_Core as JSON_Utils_Views_Core +import JSON_Utils_Views_Writers as JSON_Utils_Views_Writers +import JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core +import JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings +import JSON_Utils_Cursors as JSON_Utils_Cursors +import JSON_Utils_Parsers as JSON_Utils_Parsers +import GeneralInternals as GeneralInternals +import MulInternalsNonlinear as MulInternalsNonlinear +import MulInternals as MulInternals +import Mul as Mul +import ModInternalsNonlinear as ModInternalsNonlinear +import DivInternalsNonlinear as DivInternalsNonlinear +import ModInternals as ModInternals +import DivInternals as DivInternals +import DivMod as DivMod +import Power as Power +import Logarithm as Logarithm +import JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion +import JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping +import JSON_Utils_Str as JSON_Utils_Str +import JSON_Utils_Seq as JSON_Utils_Seq +import JSON_Utils_Vectors as JSON_Utils_Vectors +import JSON_Errors as JSON_Errors +import JSON_Values as JSON_Values +import Unicode as Unicode +import Functions as Functions +import Utf8EncodingForm as Utf8EncodingForm +import Utf16EncodingForm as Utf16EncodingForm +import UnicodeStrings as UnicodeStrings +import JSON_Spec as JSON_Spec +import JSON_Grammar as JSON_Grammar +import JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion +import JSON_Serializer as JSON_Serializer +import JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion +import JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion +import JSON_Deserializer as JSON_Deserializer +import JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec +import JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties +import JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer +import JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core +import JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings +import JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers +import JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams +import JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects +import JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams +import JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays +import JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants +import JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values +import JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API +import JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer +import JSON_ZeroCopy_API as JSON_ZeroCopy_API +import JSON_API as JSON_API +import JSONHelpers as JSONHelpers +import KeyDescription as KeyDescription +import HexStrings as HexStrings +import KeyMaterial as KeyMaterial +import CreateStaticKeyrings as CreateStaticKeyrings +import CreateStaticKeyStores as CreateStaticKeyStores +import KeyringFromKeyDescription as KeyringFromKeyDescription +import CmmFromKeyDescription as CmmFromKeyDescription +import WrappedMaterialProviders as WrappedMaterialProviders +import KeysVectorOperations as KeysVectorOperations +import FileIO as FileIO +import KeyVectors as KeyVectors +import AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import Streams as Streams +import SerializableTypes as SerializableTypes +import SerializeFunctions as SerializeFunctions +import EncryptionContext as EncryptionContext +import HeaderTypes as HeaderTypes +import SharedHeaderFunctions as SharedHeaderFunctions +import EncryptedDataKeys as EncryptedDataKeys +import V1HeaderBody as V1HeaderBody +import V2HeaderBody as V2HeaderBody +import HeaderAuth as HeaderAuth +import Header as Header +import Frames as Frames +import MessageBody as MessageBody +import KeyDerivation as KeyDerivation +import EncryptDecryptHelpers as EncryptDecryptHelpers +import AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import EncryptionSdk as EncryptionSdk +import MplManifestOptions as MplManifestOptions +import GetOpt as GetOpt +import AllAlgorithmSuites as AllAlgorithmSuites +import TestVectors as TestVectors +import AllHierarchy as AllHierarchy +import AllKms as AllKms +import AllKmsMrkAware as AllKmsMrkAware +import AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery +import AllKmsRsa as AllKmsRsa +import AllKmsEcdh as AllKmsEcdh +import AllRawAES as AllRawAES +import AllRawRSA as AllRawRSA +import AllRawECDH as AllRawECDH +import AllDefaultCmm as AllDefaultCmm +import AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm +import AllMulti as AllMulti +import WriteJsonManifests as WriteJsonManifests +import CompleteVectors as CompleteVectors +import ParseJsonManifests as ParseJsonManifests +import TestManifests as TestManifests +import WrappedMaterialProvidersMain as WrappedMaterialProvidersMain +import AesKdfCtr as AesKdfCtr +import StandardLibraryInterop as StandardLibraryInterop +import Sorting as Sorting +import FloatCompare as FloatCompare +import ConcurrentCall as ConcurrentCall +import Base64Lemmas as Base64Lemmas +import .internaldafny.generated.WrappedESDK as WrappedESDK +import .internaldafny.generated.EsdkManifestOptions as EsdkManifestOptions +import .internaldafny.generated.EsdkTestVectors as EsdkTestVectors +import .internaldafny.generated.AllEsdkV4NoReqEc as AllEsdkV4NoReqEc +import .internaldafny.generated.AllEsdkV4WithReqEc as AllEsdkV4WithReqEc +import .internaldafny.generated.WriteEsdkJsonManifests as WriteEsdkJsonManifests +import .internaldafny.generated.WriteVectors as WriteVectors + +# Module: ParseEsdkJsonManifest + +class default__: + def __init__(self): + pass + + @staticmethod + def BuildDecryptTestVector(op, version, keys, obj): + hresult_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_0_i_: int + d_0_i_ = len(obj) + d_1_vectors_: _dafny.Seq + d_1_vectors_ = _dafny.Seq([]) + while (d_0_i_) != (0): + d_0_i_ = (d_0_i_) - (1) + d_2_test_: Wrappers.Result + d_2_test_ = default__.ToDecryptTestVectors(op, version, keys, ((obj)[d_0_i_])[0], ((obj)[d_0_i_])[1]) + if ((d_2_test_).is_Failure) and (((d_2_test_).error) != (default__.negativeTestVectorFound)): + hresult_ = Wrappers.Result_Failure(default__.buildTestVectorError) + return hresult_ + if (d_2_test_).is_Success: + d_1_vectors_ = (_dafny.Seq([(d_2_test_).value])) + (d_1_vectors_) + if ((d_2_test_).is_Failure) and (((d_2_test_).error) == (default__.negativeTestVectorFound)): + d_1_vectors_ = d_1_vectors_ + hresult_ = Wrappers.Result_Success(d_1_vectors_) + return hresult_ + return hresult_ + + @staticmethod + def ToDecryptTestVectors(op, version, keys, name, json): + d_0_valueOrError0_ = Wrappers.default__.Need((json).is_Object, _dafny.Seq("Vector is not an object")) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + d_1_obj_ = (json).obj + source0_ = version + if True: + if (source0_) == (3): + d_2_valueOrError1_ = Wrappers.default__.Need((op).is_Decrypt, _dafny.Seq("Err parsing manifest expected Decrypt")) + if (d_2_valueOrError1_).IsFailure(): + return (d_2_valueOrError1_).PropagateFailure() + elif True: + return default__.V3ToDecryptTestVector(op, keys, name, d_1_obj_, version) + if True: + if (source0_) == (2): + d_3_valueOrError2_ = Wrappers.default__.Need((op).is_Decrypt, _dafny.Seq("Err parsing manifest expected Decrypt")) + if (d_3_valueOrError2_).IsFailure(): + return (d_3_valueOrError2_).PropagateFailure() + elif True: + return default__.V2ToDecryptTestVector(op, keys, name, d_1_obj_, version) + if True: + if (source0_) == (1): + d_4_valueOrError3_ = Wrappers.default__.Need((op).is_Decrypt, _dafny.Seq("Err parsing manifest expected Decrypt")) + if (d_4_valueOrError3_).IsFailure(): + return (d_4_valueOrError3_).PropagateFailure() + elif True: + return default__.V1ToDecryptTestVector(op, keys, name, d_1_obj_, version) + if True: + return Wrappers.Result_Failure(_dafny.Seq("Version not supported\n")) + + @staticmethod + def BuildEncryptTestVector(op, version, keys, obj): + hresult_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_0_i_: int + d_0_i_ = len(obj) + d_1_vectors_: _dafny.Seq + d_1_vectors_ = _dafny.Seq([]) + while (d_0_i_) != (0): + d_0_i_ = (d_0_i_) - (1) + d_2_test_: Wrappers.Result + d_2_test_ = default__.ToEncryptTestVector(op, version, keys, ((obj)[d_0_i_])[0], ((obj)[d_0_i_])[1]) + if (d_2_test_).is_Failure: + hresult_ = Wrappers.Result_Failure((d_2_test_).error) + return hresult_ + d_1_vectors_ = (_dafny.Seq([(d_2_test_).value])) + (d_1_vectors_) + hresult_ = Wrappers.Result_Success(d_1_vectors_) + return hresult_ + return hresult_ + + @staticmethod + def ToEncryptTestVector(op, version, keys, name, json): + d_0_valueOrError0_ = Wrappers.default__.Need((json).is_Object, _dafny.Seq("EncryptTestVector not an object")) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + d_1_obj_ = (json).obj + source0_ = version + if True: + if (source0_) == (5): + return default__.V5ToEncryptTestVector(op, keys, name, d_1_obj_, version) + if True: + return Wrappers.Result_Failure(_dafny.Seq("Version not supported")) + + @staticmethod + def V5ToEncryptTestVector(op, keys, name, obj, version): + d_0_scenarioString_ = _dafny.Seq("encryption-scenario") + d_1_valueOrError0_ = JSONHelpers.default__.GetObject(d_0_scenarioString_, obj) + if (d_1_valueOrError0_).IsFailure(): + return (d_1_valueOrError0_).PropagateFailure() + elif True: + d_2_scenario_ = (d_1_valueOrError0_).Extract() + d_3_typeString_ = _dafny.Seq("type") + d_4_valueOrError1_ = JSONHelpers.default__.GetString(d_3_typeString_, d_2_scenario_) + if (d_4_valueOrError1_).IsFailure(): + return (d_4_valueOrError1_).PropagateFailure() + elif True: + d_5_typ_ = (d_4_valueOrError1_).Extract() + d_6_valueOrError2_ = JSONHelpers.default__.GetString(default__.plaintextJsonKey, d_2_scenario_) + if (d_6_valueOrError2_).IsFailure(): + return (d_6_valueOrError2_).PropagateFailure() + elif True: + d_7_plaintextLoc_ = (d_6_valueOrError2_).Extract() + d_8_valueOrError3_ = ParseJsonManifests.default__.GetAlgorithmSuiteInfo(d_2_scenario_) + if (d_8_valueOrError3_).IsFailure(): + return (d_8_valueOrError3_).PropagateFailure() + elif True: + d_9_algorithmSuite_ = (d_8_valueOrError3_).Extract() + d_10_valueOrError4_ = Wrappers.default__.Need(((d_9_algorithmSuite_).id).is_ESDK, _dafny.Seq("Unsupported algorithmSuiteId")) + if (d_10_valueOrError4_).IsFailure(): + return (d_10_valueOrError4_).PropagateFailure() + elif True: + d_11_valueOrError5_ = JSONHelpers.default__.GetOptionalPositiveLong(default__.frameSizeJsonKey, d_2_scenario_) + if (d_11_valueOrError5_).IsFailure(): + return (d_11_valueOrError5_).PropagateFailure() + elif True: + d_12_frameLength_ = (d_11_valueOrError5_).Extract() + d_13_valueOrError6_ = JSONHelpers.default__.SmallObjectToStringStringMap(default__.encryptionContextJsonKey, d_2_scenario_) + if (d_13_valueOrError6_).IsFailure(): + return (d_13_valueOrError6_).PropagateFailure() + elif True: + d_14_encryptionContextStrings_ = (d_13_valueOrError6_).Extract() + d_15_valueOrError7_ = JSONHelpers.default__.utf8EncodeMap(d_14_encryptionContextStrings_) + if (d_15_valueOrError7_).IsFailure(): + return (d_15_valueOrError7_).PropagateFailure() + elif True: + d_16_encryptionContext_ = (d_15_valueOrError7_).Extract() + d_17_valueOrError8_ = JSONHelpers.default__.SmallObjectToStringStringMap(default__.reproducedEncryptionContextJsonKey, d_2_scenario_) + if (d_17_valueOrError8_).IsFailure(): + return (d_17_valueOrError8_).PropagateFailure() + elif True: + d_18_reproducedEncryptionContextString_ = (d_17_valueOrError8_).Extract() + d_19_valueOrError9_ = JSONHelpers.default__.utf8EncodeMap(d_18_reproducedEncryptionContextString_) + if (d_19_valueOrError9_).IsFailure(): + return (d_19_valueOrError9_).PropagateFailure() + elif True: + d_20_reproducedEncryptionContext_ = (d_19_valueOrError9_).Extract() + d_21_valueOrError10_ = JSONHelpers.default__.GetString(_dafny.Seq("description"), d_2_scenario_) + if (d_21_valueOrError10_).IsFailure(): + return (d_21_valueOrError10_).PropagateFailure() + elif True: + d_22_description_ = (d_21_valueOrError10_).Extract() + source0_ = d_5_typ_ + if True: + if (source0_) == (_dafny.Seq("positive-esdk")): + d_23_valueOrError11_ = ParseJsonManifests.default__.GetKeyDescription(keys, default__.encryptKeyDescription, d_2_scenario_) + if (d_23_valueOrError11_).IsFailure(): + return (d_23_valueOrError11_).PropagateFailure() + elif True: + d_24_encryptKeyDescription_ = (d_23_valueOrError11_).Extract() + d_25_valueOrError12_ = ParseJsonManifests.default__.GetKeyDescription(keys, default__.decryptKeyDescription, d_2_scenario_) + if (d_25_valueOrError12_).IsFailure(): + return (d_25_valueOrError12_).PropagateFailure() + elif True: + d_26_decryptKeyDescription_ = (d_25_valueOrError12_).Extract() + return Wrappers.Result_Success(EsdkTestVectors.EsdkEncryptTestVector_PositiveEncryptTestVector(Wrappers.Option_Some(name), version, (op).manifestPath, (op).decryptManifestOutput, d_7_plaintextLoc_, d_24_encryptKeyDescription_, d_26_decryptKeyDescription_, Wrappers.Option_Some(d_16_encryptionContext_), Wrappers.Option_Some(d_20_reproducedEncryptionContext_), AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT(), d_12_frameLength_, Wrappers.Option_Some(d_9_algorithmSuite_), d_22_description_, Wrappers.Option_Some(1))) + if True: + return Wrappers.Result_Failure((_dafny.Seq("Unsupported ESDK TestVector type: ")) + (d_5_typ_)) + + @staticmethod + def V1ToDecryptTestVector(op, keys, name, obj, version): + d_0_valueOrError0_ = JSONHelpers.default__.GetString(_dafny.Seq("plaintext"), obj) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + d_1_plaintextLoc_ = (d_0_valueOrError0_).Extract() + d_2_valueOrError1_ = JSONHelpers.default__.GetString(_dafny.Seq("ciphertext"), obj) + if (d_2_valueOrError1_).IsFailure(): + return (d_2_valueOrError1_).PropagateFailure() + elif True: + d_3_ciphertextLoc_ = (d_2_valueOrError1_).Extract() + d_4_valueOrError2_ = Wrappers.default__.Need(((_dafny.Seq("file://")) < (d_3_ciphertextLoc_)) and ((_dafny.Seq("file://")) < (d_1_plaintextLoc_)), _dafny.Seq("Invalid file prefix in test vector")) + if (d_4_valueOrError2_).IsFailure(): + return (d_4_valueOrError2_).PropagateFailure() + elif True: + d_5_valueOrError3_ = JSONHelpers.default__.GetArray(_dafny.Seq("master-keys"), obj) + if (d_5_valueOrError3_).IsFailure(): + return (d_5_valueOrError3_).PropagateFailure() + elif True: + d_6_masterKeys_ = (d_5_valueOrError3_).Extract() + d_7_valueOrError4_ = default__.GetKeyDescriptions(d_6_masterKeys_, keys) + if (d_7_valueOrError4_).IsFailure(): + return (d_7_valueOrError4_).PropagateFailure() + elif True: + d_8_keyDescriptions_ = (d_7_valueOrError4_).Extract() + d_9_valueOrError5_ = default__.ToMultiKeyDescription(d_8_keyDescriptions_) + if (d_9_valueOrError5_).IsFailure(): + return (d_9_valueOrError5_).PropagateFailure() + elif True: + d_10_keyDescription_ = (d_9_valueOrError5_).Extract() + return Wrappers.Result_Success(EsdkTestVectors.EsdkDecryptTestVector_PositiveV1OrV2DecryptTestVector(name, version, (op).manifestPath, _dafny.Seq((d_3_ciphertextLoc_)[len(default__.FILE__PREPEND)::]), _dafny.Seq((d_1_plaintextLoc_)[len(default__.FILE__PREPEND)::]), Wrappers.Option_None(), Wrappers.Option_None(), d_10_keyDescription_, AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT(), Wrappers.Option_None(), Wrappers.Option_None(), name, EsdkTestVectors.DecryptionMethod_OneShot())) + + @staticmethod + def V2ToDecryptTestVector(op, keys, name, obj, version): + d_0_valueOrError0_ = JSONHelpers.default__.GetObject(_dafny.Seq("result"), obj) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + d_1_resultLoc_ = (d_0_valueOrError0_).Extract() + d_2_errorLoc_q_ = JSONHelpers.default__.GetObject(_dafny.Seq("error"), d_1_resultLoc_) + if (d_2_errorLoc_q_).is_Success: + return Wrappers.Result_Failure(default__.negativeTestVectorFound) + elif True: + d_3_valueOrError1_ = JSONHelpers.default__.GetObject(_dafny.Seq("output"), d_1_resultLoc_) + if (d_3_valueOrError1_).IsFailure(): + return (d_3_valueOrError1_).PropagateFailure() + elif True: + d_4_outputLoc_ = (d_3_valueOrError1_).Extract() + d_5_valueOrError2_ = JSONHelpers.default__.GetString(_dafny.Seq("plaintext"), d_4_outputLoc_) + if (d_5_valueOrError2_).IsFailure(): + return (d_5_valueOrError2_).PropagateFailure() + elif True: + d_6_plaintextLoc_ = (d_5_valueOrError2_).Extract() + d_7_valueOrError3_ = JSONHelpers.default__.GetString(_dafny.Seq("ciphertext"), obj) + if (d_7_valueOrError3_).IsFailure(): + return (d_7_valueOrError3_).PropagateFailure() + elif True: + d_8_ciphertextLoc_ = (d_7_valueOrError3_).Extract() + d_9_valueOrError4_ = Wrappers.default__.Need(((_dafny.Seq("file://")) < (d_8_ciphertextLoc_)) and ((_dafny.Seq("file://")) < (d_6_plaintextLoc_)), _dafny.Seq("Invalid file prefix in test vector")) + if (d_9_valueOrError4_).IsFailure(): + return (d_9_valueOrError4_).PropagateFailure() + elif True: + d_10_valueOrError5_ = JSONHelpers.default__.GetArray(_dafny.Seq("master-keys"), obj) + if (d_10_valueOrError5_).IsFailure(): + return (d_10_valueOrError5_).PropagateFailure() + elif True: + d_11_masterKeys_ = (d_10_valueOrError5_).Extract() + d_12_valueOrError6_ = default__.GetKeyDescriptions(d_11_masterKeys_, keys) + if (d_12_valueOrError6_).IsFailure(): + return (d_12_valueOrError6_).PropagateFailure() + elif True: + d_13_keyDescriptions_ = (d_12_valueOrError6_).Extract() + d_14_valueOrError7_ = default__.ToMultiKeyDescription(d_13_keyDescriptions_) + if (d_14_valueOrError7_).IsFailure(): + return (d_14_valueOrError7_).PropagateFailure() + elif True: + d_15_keyDescription_ = (d_14_valueOrError7_).Extract() + return Wrappers.Result_Success(EsdkTestVectors.EsdkDecryptTestVector_PositiveV1OrV2DecryptTestVector(name, version, (op).manifestPath, _dafny.Seq((d_8_ciphertextLoc_)[len(default__.FILE__PREPEND)::]), _dafny.Seq((d_6_plaintextLoc_)[len(default__.FILE__PREPEND)::]), Wrappers.Option_None(), Wrappers.Option_None(), d_15_keyDescription_, AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT(), Wrappers.Option_None(), Wrappers.Option_None(), name, EsdkTestVectors.DecryptionMethod_OneShot())) + + @staticmethod + def V3ToDecryptTestVector(op, keys, name, obj, version): + d_0_scenarioString_ = _dafny.Seq("decryption-scenario") + d_1_valueOrError0_ = JSONHelpers.default__.GetObject(d_0_scenarioString_, obj) + if (d_1_valueOrError0_).IsFailure(): + return (d_1_valueOrError0_).PropagateFailure() + elif True: + d_2_scenario_ = (d_1_valueOrError0_).Extract() + d_3_typeString_ = _dafny.Seq("type") + d_4_valueOrError1_ = JSONHelpers.default__.GetString(d_3_typeString_, d_2_scenario_) + if (d_4_valueOrError1_).IsFailure(): + return (d_4_valueOrError1_).PropagateFailure() + elif True: + d_5_typ_ = (d_4_valueOrError1_).Extract() + d_6_valueOrError2_ = JSONHelpers.default__.GetString(default__.ciphertextJsonKey, d_2_scenario_) + if (d_6_valueOrError2_).IsFailure(): + return (d_6_valueOrError2_).PropagateFailure() + elif True: + d_7_ciphertextLoc_ = (d_6_valueOrError2_).Extract() + d_8_valueOrError3_ = ParseJsonManifests.default__.GetAlgorithmSuiteInfo(d_2_scenario_) + if (d_8_valueOrError3_).IsFailure(): + return (d_8_valueOrError3_).PropagateFailure() + elif True: + d_9_algorithmSuite_ = (d_8_valueOrError3_).Extract() + d_10_valueOrError4_ = Wrappers.default__.Need(((d_9_algorithmSuite_).id).is_ESDK, _dafny.Seq("Unsupported algorithmSuiteId")) + if (d_10_valueOrError4_).IsFailure(): + return (d_10_valueOrError4_).PropagateFailure() + elif True: + d_11_valueOrError5_ = JSONHelpers.default__.GetOptionalPositiveLong(default__.frameSizeJsonKey, d_2_scenario_) + if (d_11_valueOrError5_).IsFailure(): + return (d_11_valueOrError5_).PropagateFailure() + elif True: + d_12_frameLength_ = (d_11_valueOrError5_).Extract() + d_13_valueOrError6_ = JSONHelpers.default__.SmallObjectToStringStringMap(default__.reproducedEncryptionContextJsonKey, d_2_scenario_) + if (d_13_valueOrError6_).IsFailure(): + return (d_13_valueOrError6_).PropagateFailure() + elif True: + d_14_reproducedEncryptionContextStrings_ = (d_13_valueOrError6_).Extract() + d_15_valueOrError7_ = JSONHelpers.default__.utf8EncodeMap(d_14_reproducedEncryptionContextStrings_) + if (d_15_valueOrError7_).IsFailure(): + return (d_15_valueOrError7_).PropagateFailure() + elif True: + d_16_reproducedEncryptionContext_ = (d_15_valueOrError7_).Extract() + d_17_valueOrError8_ = JSONHelpers.default__.GetString(_dafny.Seq("description"), d_2_scenario_) + if (d_17_valueOrError8_).IsFailure(): + return (d_17_valueOrError8_).PropagateFailure() + elif True: + d_18_description_ = (d_17_valueOrError8_).Extract() + d_19_valueOrError9_ = JSONHelpers.default__.GetString(_dafny.Seq("result"), d_2_scenario_) + if (d_19_valueOrError9_).IsFailure(): + return (d_19_valueOrError9_).PropagateFailure() + elif True: + d_20_result_ = (d_19_valueOrError9_).Extract() + d_21_valueOrError10_ = Wrappers.default__.Need(((_dafny.Seq("file://")) < (d_7_ciphertextLoc_)) and ((_dafny.Seq("file://")) < (d_20_result_)), _dafny.Seq("Invalid file prefix in test vector")) + if (d_21_valueOrError10_).IsFailure(): + return (d_21_valueOrError10_).PropagateFailure() + elif True: + source0_ = d_5_typ_ + if True: + if (source0_) == (_dafny.Seq("positive-esdk")): + d_22_valueOrError11_ = ParseJsonManifests.default__.GetKeyDescription(keys, default__.decryptKeyDescription, d_2_scenario_) + if (d_22_valueOrError11_).IsFailure(): + return (d_22_valueOrError11_).PropagateFailure() + elif True: + d_23_decryptKeyDescription_ = (d_22_valueOrError11_).Extract() + return Wrappers.Result_Success(EsdkTestVectors.EsdkDecryptTestVector_PositiveDecryptTestVector(name, version, (op).manifestPath, _dafny.Seq((d_7_ciphertextLoc_)[len(default__.FILE__PREPEND)::]), _dafny.Seq((d_20_result_)[len(default__.FILE__PREPEND)::]), Wrappers.Option_Some(d_16_reproducedEncryptionContext_), d_23_decryptKeyDescription_, AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT(), d_12_frameLength_, Wrappers.Option_Some(d_9_algorithmSuite_), d_18_description_, EsdkTestVectors.DecryptionMethod_OneShot())) + if True: + return Wrappers.Result_Failure((_dafny.Seq("Unsupported ESDK TestVector type: ")) + (d_5_typ_)) + + @staticmethod + def GetKeyDescriptions(keyArray, keys): + if (len(keyArray)) == (0): + return Wrappers.Result_Success(_dafny.Seq([])) + elif True: + d_0_currKey_ = (keyArray)[0] + d_1_valueOrError0_ = Wrappers.default__.Need((d_0_currKey_).is_Object, _dafny.Seq("Not an object")) + if (d_1_valueOrError0_).IsFailure(): + return (d_1_valueOrError0_).PropagateFailure() + elif True: + def lambda0_(d_3_e_): + return (d_3_e_).ToString() + + d_2_valueOrError1_ = (JSON_API.default__.Serialize(d_0_currKey_)).MapFailure(lambda0_) + if (d_2_valueOrError1_).IsFailure(): + return (d_2_valueOrError1_).PropagateFailure() + elif True: + d_4_encryptStr_ = (d_2_valueOrError1_).Extract() + d_5_valueOrError2_ = ((keys).GetKeyDescription(AwsCryptographyMaterialProvidersTestVectorKeysTypes.GetKeyDescriptionInput_GetKeyDescriptionInput(d_4_encryptStr_))).MapFailure(ParseJsonManifests.default__.ErrorToString) + if (d_5_valueOrError2_).IsFailure(): + return (d_5_valueOrError2_).PropagateFailure() + elif True: + d_6_encryptDecryptKeyDescription_ = (d_5_valueOrError2_).Extract() + d_7_valueOrError3_ = default__.GetKeyDescriptions(_dafny.Seq((keyArray)[1::]), keys) + if (d_7_valueOrError3_).IsFailure(): + return (d_7_valueOrError3_).PropagateFailure() + elif True: + d_8_tail_ = (d_7_valueOrError3_).Extract() + return Wrappers.Result_Success((_dafny.Seq([(d_6_encryptDecryptKeyDescription_).keyDescription])) + (d_8_tail_)) + + @staticmethod + def ToMultiKeyDescription(keyDescriptions): + if (len(keyDescriptions)) == (1): + return Wrappers.Result_Success((keyDescriptions)[0]) + elif True: + d_0_valueOrError0_ = Wrappers.default__.Need((len(keyDescriptions)) > (1), _dafny.Seq("Received invalid key description length")) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + return Wrappers.Result_Success(AwsCryptographyMaterialProvidersTestVectorKeysTypes.KeyDescription_Multi(AwsCryptographyMaterialProvidersTestVectorKeysTypes.MultiKeyring_MultiKeyring(Wrappers.Option_Some((keyDescriptions)[0]), _dafny.Seq((keyDescriptions)[1::])))) + + @staticmethod + def GetPath(key, obj): + d_0_valueOrError0_ = JSONHelpers.default__.GetString(key, obj) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + d_1_path_ = (d_0_valueOrError0_).Extract() + d_2_valueOrError1_ = Wrappers.default__.Need((default__.FILE__PREPEND) < (d_1_path_), _dafny.Seq("Received Invalid location for plaintext or ciphertext.")) + if (d_2_valueOrError1_).IsFailure(): + return (d_2_valueOrError1_).PropagateFailure() + elif True: + return Wrappers.Result_Success(_dafny.Seq((d_1_path_)[len(default__.FILE__PREPEND)::])) + + @staticmethod + def Result_q(key): + return ((key) == (_dafny.Seq("output"))) or ((key) == (_dafny.Seq("error"))) + + @_dafny.classproperty + def ciphertextJsonKey(instance): + return _dafny.Seq("ciphertext") + @_dafny.classproperty + def frameSizeJsonKey(instance): + return _dafny.Seq("frame-size") + @_dafny.classproperty + def reproducedEncryptionContextJsonKey(instance): + return _dafny.Seq("reproduced-encryption-context") + @_dafny.classproperty + def decryptKeyDescription(instance): + return _dafny.Seq("decryptKeyDescription") + @_dafny.classproperty + def FILE__PREPEND(instance): + return _dafny.Seq("file://") + @_dafny.classproperty + def negativeTestVectorFound(instance): + return _dafny.Seq("Negative test vector found; not supported yet.") + @_dafny.classproperty + def buildTestVectorError(instance): + return _dafny.Seq("Error other than negative test vector found thrown") + @_dafny.classproperty + def plaintextJsonKey(instance): + return _dafny.Seq("plaintext") + @_dafny.classproperty + def encryptionContextJsonKey(instance): + return _dafny.Seq("encryption-context") + @_dafny.classproperty + def encryptKeyDescription(instance): + return _dafny.Seq("encryptKeyDescription") + @_dafny.classproperty + def masterKeysJsonKey(instance): + return _dafny.Seq("master-keys") + @_dafny.classproperty + def decryptionMethodJsonKey(instance): + return _dafny.Seq("decryption-method") diff --git a/TestVectors/runtimes/python/src/internaldafny/generated/WrappedESDK.py b/TestVectors/runtimes/python/src/internaldafny/generated/WrappedESDK.py new file mode 100644 index 000000000..cb1a2e45b --- /dev/null +++ b/TestVectors/runtimes/python/src/internaldafny/generated/WrappedESDK.py @@ -0,0 +1,229 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import .internaldafny.generated.module_ as module_ +import _dafny as _dafny +import System_ as System_ +import Wrappers as Wrappers +import BoundedInts as BoundedInts +import StandardLibrary_UInt as StandardLibrary_UInt +import StandardLibrary_Sequence as StandardLibrary_Sequence +import StandardLibrary_String as StandardLibrary_String +import StandardLibrary as StandardLibrary +import UTF8 as UTF8 +import AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import ExternRandom as ExternRandom +import Random as Random +import AESEncryption as AESEncryption +import ExternDigest as ExternDigest +import Digest as Digest +import HMAC as HMAC +import WrappedHMAC as WrappedHMAC +import HKDF as HKDF +import WrappedHKDF as WrappedHKDF +import Signature as Signature +import KdfCtr as KdfCtr +import RSAEncryption as RSAEncryption +import ECDH as ECDH +import AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import AtomicPrimitives as AtomicPrimitives +import ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import Base64 as Base64 +import AlgorithmSuites as AlgorithmSuites +import Materials as Materials +import Keyring as Keyring +import Relations as Relations +import Seq_MergeSort as Seq_MergeSort +import Math as Math +import Seq as Seq +import MultiKeyring as MultiKeyring +import AwsArnParsing as AwsArnParsing +import AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import Actions as Actions +import AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import AwsKmsUtils as AwsKmsUtils +import Constants as Constants +import UUID as UUID +import MaterialWrapping as MaterialWrapping +import SortedSets as SortedSets +import CanonicalEncryptionContext as CanonicalEncryptionContext +import IntermediateKeyWrapping as IntermediateKeyWrapping +import EdkWrapping as EdkWrapping +import ErrorMessages as ErrorMessages +import AwsKmsKeyring as AwsKmsKeyring +import StrictMultiKeyring as StrictMultiKeyring +import AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import Com_Amazonaws_Kms as Com_Amazonaws_Kms +import Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import DiscoveryMultiKeyring as DiscoveryMultiKeyring +import AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import AwsKmsMrkKeyring as AwsKmsMrkKeyring +import MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import DafnyLibraries as DafnyLibraries +import Time as Time +import LocalCMC as LocalCMC +import SynchronizedLocalCMC as SynchronizedLocalCMC +import StormTracker as StormTracker +import StormTrackingCMC as StormTrackingCMC +import CacheConstants as CacheConstants +import AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import AwsKmsRsaKeyring as AwsKmsRsaKeyring +import EcdhEdkWrapping as EcdhEdkWrapping +import RawECDHKeyring as RawECDHKeyring +import AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import RawAESKeyring as RawAESKeyring +import RawRSAKeyring as RawRSAKeyring +import CMM as CMM +import Defaults as Defaults +import Commitment as Commitment +import DefaultCMM as DefaultCMM +import DefaultClientSupplier as DefaultClientSupplier +import Utils as Utils +import RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import MaterialProviders as MaterialProviders +import KeyStoreErrorMessages as KeyStoreErrorMessages +import KmsArn as KmsArn +import Structure as Structure +import KMSKeystoreOperations as KMSKeystoreOperations +import DDBKeystoreOperations as DDBKeystoreOperations +import CreateKeys as CreateKeys +import CreateKeyStoreTable as CreateKeyStoreTable +import GetKeys as GetKeys +import AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import KeyStore as KeyStore +import AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes +import JSON_Utils_Views_Core as JSON_Utils_Views_Core +import JSON_Utils_Views_Writers as JSON_Utils_Views_Writers +import JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core +import JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings +import JSON_Utils_Cursors as JSON_Utils_Cursors +import JSON_Utils_Parsers as JSON_Utils_Parsers +import GeneralInternals as GeneralInternals +import MulInternalsNonlinear as MulInternalsNonlinear +import MulInternals as MulInternals +import Mul as Mul +import ModInternalsNonlinear as ModInternalsNonlinear +import DivInternalsNonlinear as DivInternalsNonlinear +import ModInternals as ModInternals +import DivInternals as DivInternals +import DivMod as DivMod +import Power as Power +import Logarithm as Logarithm +import JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion +import JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping +import JSON_Utils_Str as JSON_Utils_Str +import JSON_Utils_Seq as JSON_Utils_Seq +import JSON_Utils_Vectors as JSON_Utils_Vectors +import JSON_Errors as JSON_Errors +import JSON_Values as JSON_Values +import Unicode as Unicode +import Functions as Functions +import Utf8EncodingForm as Utf8EncodingForm +import Utf16EncodingForm as Utf16EncodingForm +import UnicodeStrings as UnicodeStrings +import JSON_Spec as JSON_Spec +import JSON_Grammar as JSON_Grammar +import JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion +import JSON_Serializer as JSON_Serializer +import JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion +import JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion +import JSON_Deserializer as JSON_Deserializer +import JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec +import JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties +import JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer +import JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core +import JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings +import JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers +import JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams +import JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects +import JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams +import JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays +import JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants +import JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values +import JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API +import JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer +import JSON_ZeroCopy_API as JSON_ZeroCopy_API +import JSON_API as JSON_API +import JSONHelpers as JSONHelpers +import KeyDescription as KeyDescription +import HexStrings as HexStrings +import KeyMaterial as KeyMaterial +import CreateStaticKeyrings as CreateStaticKeyrings +import CreateStaticKeyStores as CreateStaticKeyStores +import KeyringFromKeyDescription as KeyringFromKeyDescription +import CmmFromKeyDescription as CmmFromKeyDescription +import WrappedMaterialProviders as WrappedMaterialProviders +import KeysVectorOperations as KeysVectorOperations +import FileIO as FileIO +import KeyVectors as KeyVectors +import AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import Streams as Streams +import SerializableTypes as SerializableTypes +import SerializeFunctions as SerializeFunctions +import EncryptionContext as EncryptionContext +import HeaderTypes as HeaderTypes +import SharedHeaderFunctions as SharedHeaderFunctions +import EncryptedDataKeys as EncryptedDataKeys +import V1HeaderBody as V1HeaderBody +import V2HeaderBody as V2HeaderBody +import HeaderAuth as HeaderAuth +import Header as Header +import Frames as Frames +import MessageBody as MessageBody +import KeyDerivation as KeyDerivation +import EncryptDecryptHelpers as EncryptDecryptHelpers +import AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import EncryptionSdk as EncryptionSdk +import MplManifestOptions as MplManifestOptions +import GetOpt as GetOpt +import AllAlgorithmSuites as AllAlgorithmSuites +import TestVectors as TestVectors +import AllHierarchy as AllHierarchy +import AllKms as AllKms +import AllKmsMrkAware as AllKmsMrkAware +import AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery +import AllKmsRsa as AllKmsRsa +import AllKmsEcdh as AllKmsEcdh +import AllRawAES as AllRawAES +import AllRawRSA as AllRawRSA +import AllRawECDH as AllRawECDH +import AllDefaultCmm as AllDefaultCmm +import AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm +import AllMulti as AllMulti +import WriteJsonManifests as WriteJsonManifests +import CompleteVectors as CompleteVectors +import ParseJsonManifests as ParseJsonManifests +import TestManifests as TestManifests +import WrappedMaterialProvidersMain as WrappedMaterialProvidersMain +import AesKdfCtr as AesKdfCtr +import StandardLibraryInterop as StandardLibraryInterop +import Sorting as Sorting +import FloatCompare as FloatCompare +import ConcurrentCall as ConcurrentCall +import Base64Lemmas as Base64Lemmas + +# Module: WrappedESDK + +class default__: + def __init__(self): + pass + + @staticmethod + def WrappedDefaultAwsEncryptionSdkConfig(): + return AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig_AwsEncryptionSdkConfig(Wrappers.Option_Some(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT()), Wrappers.Option_None(), Wrappers.Option_None()) + + @staticmethod + def WrappedAwsEncryptionSdkConfigWithSuppliedCommitment(commitmentPolicy): + return AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig_AwsEncryptionSdkConfig(Wrappers.Option_Some(commitmentPolicy), Wrappers.Option_None(), Wrappers.Option_None()) + + @staticmethod + def WrappedAwsEncryptionSdkConfig(commitmentPolicy, maxEncryptedDataKeys, netV4__0__0__RetryPolicy): + return AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig_AwsEncryptionSdkConfig(Wrappers.Option_Some(commitmentPolicy), Wrappers.Option_Some(maxEncryptedDataKeys), Wrappers.Option_Some(netV4__0__0__RetryPolicy)) + diff --git a/TestVectors/runtimes/python/src/internaldafny/generated/WrappedESDKMain.py b/TestVectors/runtimes/python/src/internaldafny/generated/WrappedESDKMain.py new file mode 100644 index 000000000..98095ea8b --- /dev/null +++ b/TestVectors/runtimes/python/src/internaldafny/generated/WrappedESDKMain.py @@ -0,0 +1,346 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import .internaldafny.generated.module_ as module_ +import _dafny as _dafny +import System_ as System_ +import Wrappers as Wrappers +import BoundedInts as BoundedInts +import StandardLibrary_UInt as StandardLibrary_UInt +import StandardLibrary_Sequence as StandardLibrary_Sequence +import StandardLibrary_String as StandardLibrary_String +import StandardLibrary as StandardLibrary +import UTF8 as UTF8 +import AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import ExternRandom as ExternRandom +import Random as Random +import AESEncryption as AESEncryption +import ExternDigest as ExternDigest +import Digest as Digest +import HMAC as HMAC +import WrappedHMAC as WrappedHMAC +import HKDF as HKDF +import WrappedHKDF as WrappedHKDF +import Signature as Signature +import KdfCtr as KdfCtr +import RSAEncryption as RSAEncryption +import ECDH as ECDH +import AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import AtomicPrimitives as AtomicPrimitives +import ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import Base64 as Base64 +import AlgorithmSuites as AlgorithmSuites +import Materials as Materials +import Keyring as Keyring +import Relations as Relations +import Seq_MergeSort as Seq_MergeSort +import Math as Math +import Seq as Seq +import MultiKeyring as MultiKeyring +import AwsArnParsing as AwsArnParsing +import AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import Actions as Actions +import AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import AwsKmsUtils as AwsKmsUtils +import Constants as Constants +import UUID as UUID +import MaterialWrapping as MaterialWrapping +import SortedSets as SortedSets +import CanonicalEncryptionContext as CanonicalEncryptionContext +import IntermediateKeyWrapping as IntermediateKeyWrapping +import EdkWrapping as EdkWrapping +import ErrorMessages as ErrorMessages +import AwsKmsKeyring as AwsKmsKeyring +import StrictMultiKeyring as StrictMultiKeyring +import AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import Com_Amazonaws_Kms as Com_Amazonaws_Kms +import Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import DiscoveryMultiKeyring as DiscoveryMultiKeyring +import AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import AwsKmsMrkKeyring as AwsKmsMrkKeyring +import MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import DafnyLibraries as DafnyLibraries +import Time as Time +import LocalCMC as LocalCMC +import SynchronizedLocalCMC as SynchronizedLocalCMC +import StormTracker as StormTracker +import StormTrackingCMC as StormTrackingCMC +import CacheConstants as CacheConstants +import AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import AwsKmsRsaKeyring as AwsKmsRsaKeyring +import EcdhEdkWrapping as EcdhEdkWrapping +import RawECDHKeyring as RawECDHKeyring +import AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import RawAESKeyring as RawAESKeyring +import RawRSAKeyring as RawRSAKeyring +import CMM as CMM +import Defaults as Defaults +import Commitment as Commitment +import DefaultCMM as DefaultCMM +import DefaultClientSupplier as DefaultClientSupplier +import Utils as Utils +import RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import MaterialProviders as MaterialProviders +import KeyStoreErrorMessages as KeyStoreErrorMessages +import KmsArn as KmsArn +import Structure as Structure +import KMSKeystoreOperations as KMSKeystoreOperations +import DDBKeystoreOperations as DDBKeystoreOperations +import CreateKeys as CreateKeys +import CreateKeyStoreTable as CreateKeyStoreTable +import GetKeys as GetKeys +import AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import KeyStore as KeyStore +import AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes +import JSON_Utils_Views_Core as JSON_Utils_Views_Core +import JSON_Utils_Views_Writers as JSON_Utils_Views_Writers +import JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core +import JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings +import JSON_Utils_Cursors as JSON_Utils_Cursors +import JSON_Utils_Parsers as JSON_Utils_Parsers +import GeneralInternals as GeneralInternals +import MulInternalsNonlinear as MulInternalsNonlinear +import MulInternals as MulInternals +import Mul as Mul +import ModInternalsNonlinear as ModInternalsNonlinear +import DivInternalsNonlinear as DivInternalsNonlinear +import ModInternals as ModInternals +import DivInternals as DivInternals +import DivMod as DivMod +import Power as Power +import Logarithm as Logarithm +import JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion +import JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping +import JSON_Utils_Str as JSON_Utils_Str +import JSON_Utils_Seq as JSON_Utils_Seq +import JSON_Utils_Vectors as JSON_Utils_Vectors +import JSON_Errors as JSON_Errors +import JSON_Values as JSON_Values +import Unicode as Unicode +import Functions as Functions +import Utf8EncodingForm as Utf8EncodingForm +import Utf16EncodingForm as Utf16EncodingForm +import UnicodeStrings as UnicodeStrings +import JSON_Spec as JSON_Spec +import JSON_Grammar as JSON_Grammar +import JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion +import JSON_Serializer as JSON_Serializer +import JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion +import JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion +import JSON_Deserializer as JSON_Deserializer +import JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec +import JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties +import JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer +import JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core +import JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings +import JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers +import JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams +import JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects +import JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams +import JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays +import JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants +import JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values +import JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API +import JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer +import JSON_ZeroCopy_API as JSON_ZeroCopy_API +import JSON_API as JSON_API +import JSONHelpers as JSONHelpers +import KeyDescription as KeyDescription +import HexStrings as HexStrings +import KeyMaterial as KeyMaterial +import CreateStaticKeyrings as CreateStaticKeyrings +import CreateStaticKeyStores as CreateStaticKeyStores +import KeyringFromKeyDescription as KeyringFromKeyDescription +import CmmFromKeyDescription as CmmFromKeyDescription +import WrappedMaterialProviders as WrappedMaterialProviders +import KeysVectorOperations as KeysVectorOperations +import FileIO as FileIO +import KeyVectors as KeyVectors +import AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import Streams as Streams +import SerializableTypes as SerializableTypes +import SerializeFunctions as SerializeFunctions +import EncryptionContext as EncryptionContext +import HeaderTypes as HeaderTypes +import SharedHeaderFunctions as SharedHeaderFunctions +import EncryptedDataKeys as EncryptedDataKeys +import V1HeaderBody as V1HeaderBody +import V2HeaderBody as V2HeaderBody +import HeaderAuth as HeaderAuth +import Header as Header +import Frames as Frames +import MessageBody as MessageBody +import KeyDerivation as KeyDerivation +import EncryptDecryptHelpers as EncryptDecryptHelpers +import AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import EncryptionSdk as EncryptionSdk +import MplManifestOptions as MplManifestOptions +import GetOpt as GetOpt +import AllAlgorithmSuites as AllAlgorithmSuites +import TestVectors as TestVectors +import AllHierarchy as AllHierarchy +import AllKms as AllKms +import AllKmsMrkAware as AllKmsMrkAware +import AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery +import AllKmsRsa as AllKmsRsa +import AllKmsEcdh as AllKmsEcdh +import AllRawAES as AllRawAES +import AllRawRSA as AllRawRSA +import AllRawECDH as AllRawECDH +import AllDefaultCmm as AllDefaultCmm +import AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm +import AllMulti as AllMulti +import WriteJsonManifests as WriteJsonManifests +import CompleteVectors as CompleteVectors +import ParseJsonManifests as ParseJsonManifests +import TestManifests as TestManifests +import WrappedMaterialProvidersMain as WrappedMaterialProvidersMain +import AesKdfCtr as AesKdfCtr +import StandardLibraryInterop as StandardLibraryInterop +import Sorting as Sorting +import FloatCompare as FloatCompare +import ConcurrentCall as ConcurrentCall +import Base64Lemmas as Base64Lemmas +import .internaldafny.generated.WrappedESDK as WrappedESDK +import .internaldafny.generated.EsdkManifestOptions as EsdkManifestOptions +import .internaldafny.generated.EsdkTestVectors as EsdkTestVectors +import .internaldafny.generated.AllEsdkV4NoReqEc as AllEsdkV4NoReqEc +import .internaldafny.generated.AllEsdkV4WithReqEc as AllEsdkV4WithReqEc +import .internaldafny.generated.WriteEsdkJsonManifests as WriteEsdkJsonManifests +import .internaldafny.generated.WriteVectors as WriteVectors +import .internaldafny.generated.ParseEsdkJsonManifest as ParseEsdkJsonManifest +import .internaldafny.generated.EsdkTestManifests as EsdkTestManifests + +# Module: WrappedESDKMain + +class default__: + def __init__(self): + pass + + @staticmethod + def Main2(args): + d_0_vectorOptions_: GetOpt.Options + d_0_vectorOptions_ = GetOpt.Options_Options(_dafny.Seq("test-vectors"), _dafny.Seq("?"), _dafny.Seq([GetOpt.Param_Command(GetOpt.Options_Options(_dafny.Seq("decrypt"), _dafny.Seq("decrypt command for test-vectors"), _dafny.Seq([GetOpt.Param_Opt(_dafny.Seq("manifest-path"), _dafny.Seq("relative path to the location of the manifest"), _dafny.Seq("arg"), GetOpt.default__.NullChar, GetOpt.Unused_Required(), False, GetOpt.Visibility_Normal(), _dafny.Seq([]), _dafny.Seq([]), GetOpt.Tri_No()), GetOpt.Param_Opt(_dafny.Seq("manifest-name"), _dafny.Seq("name of file that contains the decrypt vectors file"), _dafny.Seq("arg"), GetOpt.default__.NullChar, GetOpt.Unused_Required(), False, GetOpt.Visibility_Normal(), _dafny.Seq([]), _dafny.Seq([]), GetOpt.Tri_No()), GetOpt.Param_Opt(_dafny.Seq("test-name"), _dafny.Seq("id of the test to run"), _dafny.Seq("arg"), GetOpt.default__.NullChar, GetOpt.Unused_UnusedOk(), False, GetOpt.Visibility_Normal(), _dafny.Seq([]), _dafny.Seq([]), GetOpt.Tri_No())]))), GetOpt.Param_Command(GetOpt.Options_Options(_dafny.Seq("encrypt"), _dafny.Seq("encrypt command for test-vectors"), _dafny.Seq([GetOpt.Param_Opt(_dafny.Seq("manifest-path"), _dafny.Seq("relative path to the location of the manifest"), _dafny.Seq("arg"), GetOpt.default__.NullChar, GetOpt.Unused_Required(), False, GetOpt.Visibility_Normal(), _dafny.Seq([]), _dafny.Seq([]), GetOpt.Tri_No()), GetOpt.Param_Opt(_dafny.Seq("decrypt-manifest-path"), _dafny.Seq("relative path to the location where the decrypted manifest will be written to."), _dafny.Seq("arg"), GetOpt.default__.NullChar, GetOpt.Unused_Required(), False, GetOpt.Visibility_Normal(), _dafny.Seq([]), _dafny.Seq([]), GetOpt.Tri_No()), GetOpt.Param_Opt(_dafny.Seq("test-name"), _dafny.Seq("id of the test to run"), _dafny.Seq("arg"), GetOpt.default__.NullChar, GetOpt.Unused_UnusedOk(), False, GetOpt.Visibility_Normal(), _dafny.Seq([]), _dafny.Seq([]), GetOpt.Tri_No())]))), GetOpt.Param_Command(GetOpt.Options_Options(_dafny.Seq("encrypt-manifest"), _dafny.Seq("encryp manifest command for test-vectors"), _dafny.Seq([GetOpt.Param_Opt(_dafny.Seq("encrypt-manifest-output"), _dafny.Seq("relative path of where to store the encrypt-manifest produced"), _dafny.Seq("arg"), GetOpt.default__.NullChar, GetOpt.Unused_Required(), False, GetOpt.Visibility_Normal(), _dafny.Seq([]), _dafny.Seq([]), GetOpt.Tri_No())])))])) + if not((0) < (len(args))): + raise _dafny.HaltException("dafny/TestVectors/src/Index.dfy(40,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + d_1_parsedOptions_q_: Wrappers.Result + d_1_parsedOptions_q_ = GetOpt.default__.GetOptions(d_0_vectorOptions_, args) + if (d_1_parsedOptions_q_).is_Success: + d_2_h_: Wrappers.Option + d_2_h_ = GetOpt.default__.NeedsHelp(d_0_vectorOptions_, (d_1_parsedOptions_q_).value, _dafny.Seq("")) + if (d_2_h_).is_Some: + _dafny.print(_dafny.string_of((d_2_h_).value)) + return + d_3_op_q_: Wrappers.Result + d_3_op_q_ = default__.ParseCommandLineOptions((d_1_parsedOptions_q_).value) + if (d_3_op_q_).is_Success: + d_4_op_: EsdkManifestOptions.ManifestOptions + d_4_op_ = (d_3_op_q_).value + source0_ = d_4_op_ + with _dafny.label("match0"): + if True: + if source0_.is_Decrypt: + d_5_result_: Wrappers.Result + out0_: Wrappers.Result + out0_ = EsdkTestManifests.default__.StartDecryptVectors(d_4_op_) + d_5_result_ = out0_ + if (d_5_result_).is_Failure: + _dafny.print(_dafny.string_of((d_5_result_).error)) + if not((d_5_result_).is_Success): + raise _dafny.HaltException("dafny/TestVectors/src/Index.dfy(59,10): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.Break("match0") + if True: + if source0_.is_Encrypt: + d_6_result_: Wrappers.Result + out1_: Wrappers.Result + out1_ = EsdkTestManifests.default__.StartEncryptVectors(d_4_op_) + d_6_result_ = out1_ + if (d_6_result_).is_Failure: + _dafny.print(_dafny.string_of((d_6_result_).error)) + if not((d_6_result_).is_Success): + raise _dafny.HaltException("dafny/TestVectors/src/Index.dfy(65,10): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.Break("match0") + if True: + d_7_result_: Wrappers.Result + out2_: Wrappers.Result + out2_ = WriteVectors.default__.WriteTestVectors(d_4_op_) + d_7_result_ = out2_ + if (d_7_result_).is_Failure: + _dafny.print(_dafny.string_of((d_7_result_).error)) + if not((d_7_result_).is_Success): + raise _dafny.HaltException("dafny/TestVectors/src/Index.dfy(71,10): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + pass + elif True: + _dafny.print(_dafny.string_of(((d_3_op_q_).error) + (_dafny.Seq("\n")))) + _dafny.print(_dafny.string_of(_dafny.Seq("help\n"))) + elif True: + _dafny.print(_dafny.string_of(((d_1_parsedOptions_q_).error) + (_dafny.Seq("\n")))) + + @staticmethod + def ParseCommandLineOptions(parsedOptions): + d_0_valueOrError0_ = Wrappers.default__.Need(((parsedOptions).subcommand).is_Some, _dafny.Seq("Must supply subcommand\n")) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + source0_ = (((parsedOptions).subcommand).value).command + if True: + if (source0_) == (_dafny.Seq("decrypt")): + return default__.ParseDecryptCmd((((parsedOptions).subcommand).value).params) + if True: + if (source0_) == (_dafny.Seq("encrypt")): + return default__.ParseEncryptCmd((((parsedOptions).subcommand).value).params) + if True: + if (source0_) == (_dafny.Seq("encrypt-manifest")): + return default__.ParseEncryptManifestCmd((((parsedOptions).subcommand).value).params) + if True: + return Wrappers.Result_Failure(_dafny.Seq("Received unknown subcommand")) + + @staticmethod + def ParseDecryptCmd(params): + d_0_manifestPath_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("manifest-path")) + d_1_testName_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("test-name")) + d_2_manifestFileName_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("manifest-name")) + d_3_manifestPath_ = ((d_0_manifestPath_q_).value if (d_0_manifestPath_q_).is_Some else _dafny.Seq(".")) + d_4_valueOrError0_ = Wrappers.default__.Need((0) < (len(d_3_manifestPath_)), _dafny.Seq("Invalid manifest path length\n")) + if (d_4_valueOrError0_).IsFailure(): + return (d_4_valueOrError0_).PropagateFailure() + elif True: + d_5_valueOrError1_ = Wrappers.default__.Need((d_2_manifestFileName_q_).is_Some, _dafny.Seq("Must supply manifest file name")) + if (d_5_valueOrError1_).IsFailure(): + return (d_5_valueOrError1_).PropagateFailure() + elif True: + d_6_manifestFileName_ = (d_2_manifestFileName_q_).value + return Wrappers.Result_Success(EsdkManifestOptions.ManifestOptions_Decrypt((d_3_manifestPath_ if (Seq.default__.Last(d_3_manifestPath_)) == ('/') else (d_3_manifestPath_) + (_dafny.Seq("/"))), d_6_manifestFileName_, (d_1_testName_q_ if (d_1_testName_q_).is_Some else Wrappers.Option_None()))) + + @staticmethod + def ParseEncryptCmd(params): + d_0_manifestPath_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("manifest-path")) + d_1_manifestName_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("manifest")) + d_2_decryptManifestPath_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("decrypt-manifest-path")) + d_3_testName_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("test-name")) + d_4_manifestPath_ = ((d_0_manifestPath_q_).value if (d_0_manifestPath_q_).is_Some else _dafny.Seq(".")) + d_5_manifestName_ = ((d_1_manifestName_q_).value if (d_1_manifestName_q_).is_Some else _dafny.Seq("encrypt-manifest.json")) + d_6_decryptManifestPath_ = ((d_2_decryptManifestPath_q_).value if (d_2_decryptManifestPath_q_).is_Some else _dafny.Seq(".")) + d_7_valueOrError0_ = Wrappers.default__.Need(((0) < (len(d_4_manifestPath_))) and ((0) < (len(d_6_decryptManifestPath_))), _dafny.Seq("Invalid manifest or decrypt manifest path length\n")) + if (d_7_valueOrError0_).IsFailure(): + return (d_7_valueOrError0_).PropagateFailure() + elif True: + return Wrappers.Result_Success(EsdkManifestOptions.ManifestOptions_Encrypt((d_4_manifestPath_ if (Seq.default__.Last(d_4_manifestPath_)) == ('/') else (d_4_manifestPath_) + (_dafny.Seq("/"))), d_5_manifestName_, (d_6_decryptManifestPath_ if (Seq.default__.Last(d_6_decryptManifestPath_)) == ('/') else (d_6_decryptManifestPath_) + (_dafny.Seq("/"))), (d_3_testName_q_ if (d_3_testName_q_).is_Some else Wrappers.Option_None()))) + + @staticmethod + def ParseEncryptManifestCmd(params): + d_0_encryptManifestOutput_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("encrypt-manifest-output")) + d_1_encryptManifestOutput_ = ((d_0_encryptManifestOutput_q_).value if (d_0_encryptManifestOutput_q_).is_Some else _dafny.Seq(".")) + d_2_valueOrError0_ = Wrappers.default__.Need((0) < (len(d_1_encryptManifestOutput_)), _dafny.Seq("Invalid encrypt manifest output length")) + if (d_2_valueOrError0_).IsFailure(): + return (d_2_valueOrError0_).PropagateFailure() + elif True: + return Wrappers.Result_Success(EsdkManifestOptions.ManifestOptions_EncryptManifest((d_1_encryptManifestOutput_ if (Seq.default__.Last(d_1_encryptManifestOutput_)) == ('/') else (d_1_encryptManifestOutput_) + (_dafny.Seq("/"))), 5)) + diff --git a/TestVectors/runtimes/python/src/internaldafny/generated/WriteEsdkJsonManifests.py b/TestVectors/runtimes/python/src/internaldafny/generated/WriteEsdkJsonManifests.py new file mode 100644 index 000000000..6a65a3f66 --- /dev/null +++ b/TestVectors/runtimes/python/src/internaldafny/generated/WriteEsdkJsonManifests.py @@ -0,0 +1,369 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import .internaldafny.generated.module_ as module_ +import _dafny as _dafny +import System_ as System_ +import Wrappers as Wrappers +import BoundedInts as BoundedInts +import StandardLibrary_UInt as StandardLibrary_UInt +import StandardLibrary_Sequence as StandardLibrary_Sequence +import StandardLibrary_String as StandardLibrary_String +import StandardLibrary as StandardLibrary +import UTF8 as UTF8 +import AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import ExternRandom as ExternRandom +import Random as Random +import AESEncryption as AESEncryption +import ExternDigest as ExternDigest +import Digest as Digest +import HMAC as HMAC +import WrappedHMAC as WrappedHMAC +import HKDF as HKDF +import WrappedHKDF as WrappedHKDF +import Signature as Signature +import KdfCtr as KdfCtr +import RSAEncryption as RSAEncryption +import ECDH as ECDH +import AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import AtomicPrimitives as AtomicPrimitives +import ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import Base64 as Base64 +import AlgorithmSuites as AlgorithmSuites +import Materials as Materials +import Keyring as Keyring +import Relations as Relations +import Seq_MergeSort as Seq_MergeSort +import Math as Math +import Seq as Seq +import MultiKeyring as MultiKeyring +import AwsArnParsing as AwsArnParsing +import AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import Actions as Actions +import AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import AwsKmsUtils as AwsKmsUtils +import Constants as Constants +import UUID as UUID +import MaterialWrapping as MaterialWrapping +import SortedSets as SortedSets +import CanonicalEncryptionContext as CanonicalEncryptionContext +import IntermediateKeyWrapping as IntermediateKeyWrapping +import EdkWrapping as EdkWrapping +import ErrorMessages as ErrorMessages +import AwsKmsKeyring as AwsKmsKeyring +import StrictMultiKeyring as StrictMultiKeyring +import AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import Com_Amazonaws_Kms as Com_Amazonaws_Kms +import Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import DiscoveryMultiKeyring as DiscoveryMultiKeyring +import AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import AwsKmsMrkKeyring as AwsKmsMrkKeyring +import MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import DafnyLibraries as DafnyLibraries +import Time as Time +import LocalCMC as LocalCMC +import SynchronizedLocalCMC as SynchronizedLocalCMC +import StormTracker as StormTracker +import StormTrackingCMC as StormTrackingCMC +import CacheConstants as CacheConstants +import AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import AwsKmsRsaKeyring as AwsKmsRsaKeyring +import EcdhEdkWrapping as EcdhEdkWrapping +import RawECDHKeyring as RawECDHKeyring +import AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import RawAESKeyring as RawAESKeyring +import RawRSAKeyring as RawRSAKeyring +import CMM as CMM +import Defaults as Defaults +import Commitment as Commitment +import DefaultCMM as DefaultCMM +import DefaultClientSupplier as DefaultClientSupplier +import Utils as Utils +import RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import MaterialProviders as MaterialProviders +import KeyStoreErrorMessages as KeyStoreErrorMessages +import KmsArn as KmsArn +import Structure as Structure +import KMSKeystoreOperations as KMSKeystoreOperations +import DDBKeystoreOperations as DDBKeystoreOperations +import CreateKeys as CreateKeys +import CreateKeyStoreTable as CreateKeyStoreTable +import GetKeys as GetKeys +import AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import KeyStore as KeyStore +import AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes +import JSON_Utils_Views_Core as JSON_Utils_Views_Core +import JSON_Utils_Views_Writers as JSON_Utils_Views_Writers +import JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core +import JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings +import JSON_Utils_Cursors as JSON_Utils_Cursors +import JSON_Utils_Parsers as JSON_Utils_Parsers +import GeneralInternals as GeneralInternals +import MulInternalsNonlinear as MulInternalsNonlinear +import MulInternals as MulInternals +import Mul as Mul +import ModInternalsNonlinear as ModInternalsNonlinear +import DivInternalsNonlinear as DivInternalsNonlinear +import ModInternals as ModInternals +import DivInternals as DivInternals +import DivMod as DivMod +import Power as Power +import Logarithm as Logarithm +import JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion +import JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping +import JSON_Utils_Str as JSON_Utils_Str +import JSON_Utils_Seq as JSON_Utils_Seq +import JSON_Utils_Vectors as JSON_Utils_Vectors +import JSON_Errors as JSON_Errors +import JSON_Values as JSON_Values +import Unicode as Unicode +import Functions as Functions +import Utf8EncodingForm as Utf8EncodingForm +import Utf16EncodingForm as Utf16EncodingForm +import UnicodeStrings as UnicodeStrings +import JSON_Spec as JSON_Spec +import JSON_Grammar as JSON_Grammar +import JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion +import JSON_Serializer as JSON_Serializer +import JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion +import JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion +import JSON_Deserializer as JSON_Deserializer +import JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec +import JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties +import JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer +import JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core +import JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings +import JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers +import JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams +import JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects +import JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams +import JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays +import JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants +import JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values +import JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API +import JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer +import JSON_ZeroCopy_API as JSON_ZeroCopy_API +import JSON_API as JSON_API +import JSONHelpers as JSONHelpers +import KeyDescription as KeyDescription +import HexStrings as HexStrings +import KeyMaterial as KeyMaterial +import CreateStaticKeyrings as CreateStaticKeyrings +import CreateStaticKeyStores as CreateStaticKeyStores +import KeyringFromKeyDescription as KeyringFromKeyDescription +import CmmFromKeyDescription as CmmFromKeyDescription +import WrappedMaterialProviders as WrappedMaterialProviders +import KeysVectorOperations as KeysVectorOperations +import FileIO as FileIO +import KeyVectors as KeyVectors +import AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import Streams as Streams +import SerializableTypes as SerializableTypes +import SerializeFunctions as SerializeFunctions +import EncryptionContext as EncryptionContext +import HeaderTypes as HeaderTypes +import SharedHeaderFunctions as SharedHeaderFunctions +import EncryptedDataKeys as EncryptedDataKeys +import V1HeaderBody as V1HeaderBody +import V2HeaderBody as V2HeaderBody +import HeaderAuth as HeaderAuth +import Header as Header +import Frames as Frames +import MessageBody as MessageBody +import KeyDerivation as KeyDerivation +import EncryptDecryptHelpers as EncryptDecryptHelpers +import AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import EncryptionSdk as EncryptionSdk +import MplManifestOptions as MplManifestOptions +import GetOpt as GetOpt +import AllAlgorithmSuites as AllAlgorithmSuites +import TestVectors as TestVectors +import AllHierarchy as AllHierarchy +import AllKms as AllKms +import AllKmsMrkAware as AllKmsMrkAware +import AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery +import AllKmsRsa as AllKmsRsa +import AllKmsEcdh as AllKmsEcdh +import AllRawAES as AllRawAES +import AllRawRSA as AllRawRSA +import AllRawECDH as AllRawECDH +import AllDefaultCmm as AllDefaultCmm +import AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm +import AllMulti as AllMulti +import WriteJsonManifests as WriteJsonManifests +import CompleteVectors as CompleteVectors +import ParseJsonManifests as ParseJsonManifests +import TestManifests as TestManifests +import WrappedMaterialProvidersMain as WrappedMaterialProvidersMain +import AesKdfCtr as AesKdfCtr +import StandardLibraryInterop as StandardLibraryInterop +import Sorting as Sorting +import FloatCompare as FloatCompare +import ConcurrentCall as ConcurrentCall +import Base64Lemmas as Base64Lemmas +import .internaldafny.generated.WrappedESDK as WrappedESDK +import .internaldafny.generated.EsdkManifestOptions as EsdkManifestOptions +import .internaldafny.generated.EsdkTestVectors as EsdkTestVectors +import .internaldafny.generated.AllEsdkV4NoReqEc as AllEsdkV4NoReqEc +import .internaldafny.generated.AllEsdkV4WithReqEc as AllEsdkV4WithReqEc + +# Module: WriteEsdkJsonManifests + +class default__: + def __init__(self): + pass + + @staticmethod + def EncryptionContextKeysToJson(keys): + if (keys).is_Some: + def lambda0_(d_1_bytes_): + def iife0_(_pat_let0_0): + def iife1_(d_2_valueOrError1_): + def iife2_(_pat_let1_0): + def iife3_(d_3_key_): + return Wrappers.Result_Success(JSON_Values.JSON_String(d_3_key_)) + return iife3_(_pat_let1_0) + return ((d_2_valueOrError1_).PropagateFailure() if (d_2_valueOrError1_).IsFailure() else iife2_((d_2_valueOrError1_).Extract())) + return iife1_(_pat_let0_0) + return iife0_(UTF8.default__.Decode(d_1_bytes_)) + + d_0_valueOrError0_ = Seq.default__.MapWithResult(lambda0_, (keys).value) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + d_4_tmp_ = (d_0_valueOrError0_).Extract() + return Wrappers.Result_Success(_dafny.Seq([(_dafny.Seq("requiredEncryptionContextKeys"), JSON_Values.JSON_Array(d_4_tmp_))])) + elif True: + return Wrappers.Result_Success(_dafny.Seq([])) + + @staticmethod + def EncryptionContextToJson(key, m): + def lambda0_(d_1_a_, d_2_b_): + return (d_1_a_) < (d_2_b_) + + d_0_keys_ = SortedSets.default__.SetToOrderedSequence2((m).keys, lambda0_) + def lambda1_(d_4_m_): + def lambda2_(d_5_k_): + def iife0_(_pat_let2_0): + def iife1_(d_6_valueOrError1_): + def iife2_(_pat_let3_0): + def iife3_(d_7_key_): + def iife4_(_pat_let4_0): + def iife5_(d_8_valueOrError2_): + def iife6_(_pat_let5_0): + def iife7_(d_9_value_): + return Wrappers.Result_Success((d_7_key_, JSON_Values.JSON_String(d_9_value_))) + return iife7_(_pat_let5_0) + return ((d_8_valueOrError2_).PropagateFailure() if (d_8_valueOrError2_).IsFailure() else iife6_((d_8_valueOrError2_).Extract())) + return iife5_(_pat_let4_0) + return iife4_(UTF8.default__.Decode((d_4_m_)[d_5_k_])) + return iife3_(_pat_let3_0) + return ((d_6_valueOrError1_).PropagateFailure() if (d_6_valueOrError1_).IsFailure() else iife2_((d_6_valueOrError1_).Extract())) + return iife1_(_pat_let2_0) + return iife0_(UTF8.default__.Decode(d_5_k_)) + + return lambda2_ + + d_3_valueOrError0_ = Seq.default__.MapWithResult(lambda1_(m), d_0_keys_) + if (d_3_valueOrError0_).IsFailure(): + return (d_3_valueOrError0_).PropagateFailure() + elif True: + d_10_pairsBytes_ = (d_3_valueOrError0_).Extract() + return Wrappers.Result_Success(_dafny.Seq([(key, JSON_Values.JSON_Object(d_10_pairsBytes_))])) + + @staticmethod + def printJson(j): + hresult_: tuple = () + _dafny.print(_dafny.string_of(j)) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + hresult_ = () + return hresult_ + return hresult_ + + @staticmethod + def EncryptTestVectorToJson(test): + d_0_valueOrError0_ = Wrappers.default__.Need((((test).algorithmSuiteId).is_Some) and (((test).frameLength).is_Some), _dafny.Seq("test is missing algorithmSuite ID, or frameLength")) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + d_1_id_ = AllAlgorithmSuites.default__.ToHex(((test).algorithmSuiteId).value) + d_2_valueOrError1_ = (default__.EncryptionContextToJson(_dafny.Seq("encryption-context"), ((test).encryptionContext).value) if ((test).encryptionContext).is_Some else default__.EncryptionContextToJson(_dafny.Seq("encryption-context"), _dafny.Map({}))) + if (d_2_valueOrError1_).IsFailure(): + return (d_2_valueOrError1_).PropagateFailure() + elif True: + d_3_encryptionContext_ = (d_2_valueOrError1_).Extract() + d_4_valueOrError2_ = Wrappers.default__.Need((len(d_3_encryptionContext_)) == (1), _dafny.Seq("Error parsing encryption context")) + if (d_4_valueOrError2_).IsFailure(): + return (d_4_valueOrError2_).PropagateFailure() + elif True: + d_5_valueOrError3_ = (default__.EncryptionContextToJson(_dafny.Seq("reproduced-encryption-context"), ((test).reproducedEncryptionContext).value) if ((test).reproducedEncryptionContext).is_Some else default__.EncryptionContextToJson(_dafny.Seq("reproduced-encryption-context"), _dafny.Map({}))) + if (d_5_valueOrError3_).IsFailure(): + return (d_5_valueOrError3_).PropagateFailure() + elif True: + d_6_reproducedEncryptionContext_ = (d_5_valueOrError3_).Extract() + d_7_optionalValues_ = (d_3_encryptionContext_) + (d_6_reproducedEncryptionContext_) + source0_ = test + if True: + if source0_.is_PositiveEncryptTestVector: + d_8_valueOrError4_ = KeyDescription.default__.ToJson((test).encryptDescriptions, 3) + if (d_8_valueOrError4_).IsFailure(): + return (d_8_valueOrError4_).PropagateFailure() + elif True: + d_9_encrypt_ = (d_8_valueOrError4_).Extract() + d_10_valueOrError5_ = KeyDescription.default__.ToJson((test).decryptDescriptions, 3) + if (d_10_valueOrError5_).IsFailure(): + return (d_10_valueOrError5_).PropagateFailure() + elif True: + d_11_decrypt_ = (d_10_valueOrError5_).Extract() + d_12_scenario_ = JSON_Values.JSON_Object((_dafny.Seq([(_dafny.Seq("type"), JSON_Values.JSON_String(_dafny.Seq("positive-esdk"))), (_dafny.Seq("plaintext"), JSON_Values.JSON_String(_dafny.Seq("small"))), (_dafny.Seq("description"), JSON_Values.JSON_String((test).description)), (_dafny.Seq("algorithmSuiteId"), JSON_Values.JSON_String(d_1_id_)), (_dafny.Seq("frame-size"), JSON_Values.JSON_Number(JSON_Values.default__.Int(((test).frameLength).value))), (_dafny.Seq("encryptKeyDescription"), d_9_encrypt_), (_dafny.Seq("decryptKeyDescription"), d_11_decrypt_)])) + (d_7_optionalValues_)) + return Wrappers.Result_Success(JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("encryption-scenario"), d_12_scenario_)]))) + if True: + return Wrappers.Result_Failure(_dafny.Seq("Only Positive Tests supported :(")) + + @staticmethod + def OptionalBytes(key, secret): + if (secret).is_Some: + d_0_base64_ = Base64.default__.Encode((secret).value) + return _dafny.Seq([(key, JSON_Values.JSON_String(d_0_base64_))]) + elif True: + return _dafny.Seq([]) + + @staticmethod + def DecryptTestVectorToJson(test): + d_0_valueOrError0_ = Wrappers.default__.Need((((test).algorithmSuiteId).is_Some) and (((test).frameLength).is_Some), _dafny.Seq("test is missing algorithmSuite ID, or frameLength")) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + d_1_id_ = AllAlgorithmSuites.default__.ToHex(((test).algorithmSuiteId).value) + d_2_description_ = (((test).description) + (_dafny.Seq(" "))) + (d_1_id_) + d_3_valueOrError1_ = (default__.EncryptionContextToJson(_dafny.Seq("reproduced-encryption-context"), ((test).reproducedEncryptionContext).value) if ((test).reproducedEncryptionContext).is_Some else default__.EncryptionContextToJson(_dafny.Seq("reproduced-encryption-context"), _dafny.Map({}))) + if (d_3_valueOrError1_).IsFailure(): + return (d_3_valueOrError1_).PropagateFailure() + elif True: + d_4_reproducedEncryptionContext_ = (d_3_valueOrError1_).Extract() + d_5_valueOrError2_ = Wrappers.default__.Need((len(d_4_reproducedEncryptionContext_)) == (1), _dafny.Seq("Error parsing encryption context")) + if (d_5_valueOrError2_).IsFailure(): + return (d_5_valueOrError2_).PropagateFailure() + elif True: + d_6_optionalValues_ = d_4_reproducedEncryptionContext_ + source0_ = test + if True: + if source0_.is_PositiveDecryptTestVector: + d_7_valueOrError3_ = KeyDescription.default__.ToJson((test).decryptDescriptions, 3) + if (d_7_valueOrError3_).IsFailure(): + return (d_7_valueOrError3_).PropagateFailure() + elif True: + d_8_decrypt_ = (d_7_valueOrError3_).Extract() + d_9_scenario_ = JSON_Values.JSON_Object((_dafny.Seq([(_dafny.Seq("type"), JSON_Values.JSON_String(_dafny.Seq("positive-esdk"))), (_dafny.Seq("ciphertext"), JSON_Values.JSON_String((_dafny.Seq("file://ciphertexts/")) + ((test).id))), (_dafny.Seq("result"), JSON_Values.JSON_String((_dafny.Seq("file://")) + ((test).plaintextPath))), (_dafny.Seq("algorithmSuiteId"), JSON_Values.JSON_String(d_1_id_)), (_dafny.Seq("frame-size"), JSON_Values.JSON_Number(JSON_Values.default__.Int(((test).frameLength).value))), (_dafny.Seq("description"), JSON_Values.JSON_String((test).description)), (_dafny.Seq("decryptKeyDescription"), d_8_decrypt_)])) + (d_6_optionalValues_)) + return Wrappers.Result_Success(JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("decryption-scenario"), d_9_scenario_)]))) + if True: + return Wrappers.Result_Failure(_dafny.Seq("Only Positive Tests supported :(")) + diff --git a/TestVectors/runtimes/python/src/internaldafny/generated/WriteVectors.py b/TestVectors/runtimes/python/src/internaldafny/generated/WriteVectors.py new file mode 100644 index 000000000..28b22dbb9 --- /dev/null +++ b/TestVectors/runtimes/python/src/internaldafny/generated/WriteVectors.py @@ -0,0 +1,369 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import .internaldafny.generated.module_ as module_ +import _dafny as _dafny +import System_ as System_ +import Wrappers as Wrappers +import BoundedInts as BoundedInts +import StandardLibrary_UInt as StandardLibrary_UInt +import StandardLibrary_Sequence as StandardLibrary_Sequence +import StandardLibrary_String as StandardLibrary_String +import StandardLibrary as StandardLibrary +import UTF8 as UTF8 +import AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import ExternRandom as ExternRandom +import Random as Random +import AESEncryption as AESEncryption +import ExternDigest as ExternDigest +import Digest as Digest +import HMAC as HMAC +import WrappedHMAC as WrappedHMAC +import HKDF as HKDF +import WrappedHKDF as WrappedHKDF +import Signature as Signature +import KdfCtr as KdfCtr +import RSAEncryption as RSAEncryption +import ECDH as ECDH +import AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import AtomicPrimitives as AtomicPrimitives +import ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import Base64 as Base64 +import AlgorithmSuites as AlgorithmSuites +import Materials as Materials +import Keyring as Keyring +import Relations as Relations +import Seq_MergeSort as Seq_MergeSort +import Math as Math +import Seq as Seq +import MultiKeyring as MultiKeyring +import AwsArnParsing as AwsArnParsing +import AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import Actions as Actions +import AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import AwsKmsUtils as AwsKmsUtils +import Constants as Constants +import UUID as UUID +import MaterialWrapping as MaterialWrapping +import SortedSets as SortedSets +import CanonicalEncryptionContext as CanonicalEncryptionContext +import IntermediateKeyWrapping as IntermediateKeyWrapping +import EdkWrapping as EdkWrapping +import ErrorMessages as ErrorMessages +import AwsKmsKeyring as AwsKmsKeyring +import StrictMultiKeyring as StrictMultiKeyring +import AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import Com_Amazonaws_Kms as Com_Amazonaws_Kms +import Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import DiscoveryMultiKeyring as DiscoveryMultiKeyring +import AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import AwsKmsMrkKeyring as AwsKmsMrkKeyring +import MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import DafnyLibraries as DafnyLibraries +import Time as Time +import LocalCMC as LocalCMC +import SynchronizedLocalCMC as SynchronizedLocalCMC +import StormTracker as StormTracker +import StormTrackingCMC as StormTrackingCMC +import CacheConstants as CacheConstants +import AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import AwsKmsRsaKeyring as AwsKmsRsaKeyring +import EcdhEdkWrapping as EcdhEdkWrapping +import RawECDHKeyring as RawECDHKeyring +import AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import RawAESKeyring as RawAESKeyring +import RawRSAKeyring as RawRSAKeyring +import CMM as CMM +import Defaults as Defaults +import Commitment as Commitment +import DefaultCMM as DefaultCMM +import DefaultClientSupplier as DefaultClientSupplier +import Utils as Utils +import RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import MaterialProviders as MaterialProviders +import KeyStoreErrorMessages as KeyStoreErrorMessages +import KmsArn as KmsArn +import Structure as Structure +import KMSKeystoreOperations as KMSKeystoreOperations +import DDBKeystoreOperations as DDBKeystoreOperations +import CreateKeys as CreateKeys +import CreateKeyStoreTable as CreateKeyStoreTable +import GetKeys as GetKeys +import AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import KeyStore as KeyStore +import AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes +import JSON_Utils_Views_Core as JSON_Utils_Views_Core +import JSON_Utils_Views_Writers as JSON_Utils_Views_Writers +import JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core +import JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings +import JSON_Utils_Cursors as JSON_Utils_Cursors +import JSON_Utils_Parsers as JSON_Utils_Parsers +import GeneralInternals as GeneralInternals +import MulInternalsNonlinear as MulInternalsNonlinear +import MulInternals as MulInternals +import Mul as Mul +import ModInternalsNonlinear as ModInternalsNonlinear +import DivInternalsNonlinear as DivInternalsNonlinear +import ModInternals as ModInternals +import DivInternals as DivInternals +import DivMod as DivMod +import Power as Power +import Logarithm as Logarithm +import JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion +import JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping +import JSON_Utils_Str as JSON_Utils_Str +import JSON_Utils_Seq as JSON_Utils_Seq +import JSON_Utils_Vectors as JSON_Utils_Vectors +import JSON_Errors as JSON_Errors +import JSON_Values as JSON_Values +import Unicode as Unicode +import Functions as Functions +import Utf8EncodingForm as Utf8EncodingForm +import Utf16EncodingForm as Utf16EncodingForm +import UnicodeStrings as UnicodeStrings +import JSON_Spec as JSON_Spec +import JSON_Grammar as JSON_Grammar +import JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion +import JSON_Serializer as JSON_Serializer +import JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion +import JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion +import JSON_Deserializer as JSON_Deserializer +import JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec +import JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties +import JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer +import JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core +import JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings +import JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers +import JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams +import JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects +import JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams +import JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays +import JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants +import JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values +import JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API +import JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer +import JSON_ZeroCopy_API as JSON_ZeroCopy_API +import JSON_API as JSON_API +import JSONHelpers as JSONHelpers +import KeyDescription as KeyDescription +import HexStrings as HexStrings +import KeyMaterial as KeyMaterial +import CreateStaticKeyrings as CreateStaticKeyrings +import CreateStaticKeyStores as CreateStaticKeyStores +import KeyringFromKeyDescription as KeyringFromKeyDescription +import CmmFromKeyDescription as CmmFromKeyDescription +import WrappedMaterialProviders as WrappedMaterialProviders +import KeysVectorOperations as KeysVectorOperations +import FileIO as FileIO +import KeyVectors as KeyVectors +import AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import Streams as Streams +import SerializableTypes as SerializableTypes +import SerializeFunctions as SerializeFunctions +import EncryptionContext as EncryptionContext +import HeaderTypes as HeaderTypes +import SharedHeaderFunctions as SharedHeaderFunctions +import EncryptedDataKeys as EncryptedDataKeys +import V1HeaderBody as V1HeaderBody +import V2HeaderBody as V2HeaderBody +import HeaderAuth as HeaderAuth +import Header as Header +import Frames as Frames +import MessageBody as MessageBody +import KeyDerivation as KeyDerivation +import EncryptDecryptHelpers as EncryptDecryptHelpers +import AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import EncryptionSdk as EncryptionSdk +import MplManifestOptions as MplManifestOptions +import GetOpt as GetOpt +import AllAlgorithmSuites as AllAlgorithmSuites +import TestVectors as TestVectors +import AllHierarchy as AllHierarchy +import AllKms as AllKms +import AllKmsMrkAware as AllKmsMrkAware +import AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery +import AllKmsRsa as AllKmsRsa +import AllKmsEcdh as AllKmsEcdh +import AllRawAES as AllRawAES +import AllRawRSA as AllRawRSA +import AllRawECDH as AllRawECDH +import AllDefaultCmm as AllDefaultCmm +import AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm +import AllMulti as AllMulti +import WriteJsonManifests as WriteJsonManifests +import CompleteVectors as CompleteVectors +import ParseJsonManifests as ParseJsonManifests +import TestManifests as TestManifests +import WrappedMaterialProvidersMain as WrappedMaterialProvidersMain +import AesKdfCtr as AesKdfCtr +import StandardLibraryInterop as StandardLibraryInterop +import Sorting as Sorting +import FloatCompare as FloatCompare +import ConcurrentCall as ConcurrentCall +import Base64Lemmas as Base64Lemmas +import .internaldafny.generated.WrappedESDK as WrappedESDK +import .internaldafny.generated.EsdkManifestOptions as EsdkManifestOptions +import .internaldafny.generated.EsdkTestVectors as EsdkTestVectors +import .internaldafny.generated.AllEsdkV4NoReqEc as AllEsdkV4NoReqEc +import .internaldafny.generated.AllEsdkV4WithReqEc as AllEsdkV4WithReqEc +import .internaldafny.generated.WriteEsdkJsonManifests as WriteEsdkJsonManifests + +# Module: WriteVectors + +class default__: + def __init__(self): + pass + + @staticmethod + def GetCommitmentPolicyString(algorithmSuite): + source0_ = (algorithmSuite).id + if True: + if source0_.is_ESDK: + if ((algorithmSuite).commitment).is_None: + return _dafny.Seq("FORBID_ENCRYPT_ALLOW_DECRYPT") + elif True: + return _dafny.Seq("REQUIRE_ENCRYPT_REQUIRE_DECRYPT") + if True: + return _dafny.Seq("NOT SUPPORTED FOR UNSTRUCTURED ENCRYPTION") + + @staticmethod + def GetCommitmentPolicyType(commitmentPolicy): + if (commitmentPolicy) == (_dafny.Seq("FORBID_ENCRYPT_ALLOW_DECRYPT")): + return AwsCryptographyMaterialProvidersTypes.CommitmentPolicy_ESDK(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT()) + elif True: + return AwsCryptographyMaterialProvidersTypes.CommitmentPolicy_ESDK(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT()) + + @staticmethod + def WriteTestVectors(op): + output: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() + d_0_version_: int + d_0_version_ = (op).version + d_1_valueOrError0_: Wrappers.Result = Wrappers.Result.default(_dafny.Set)() + d_1_valueOrError0_ = default__.getVersionTests(d_0_version_) + if (d_1_valueOrError0_).IsFailure(): + output = (d_1_valueOrError0_).PropagateFailure() + return output + d_2_allTests_: _dafny.Set + d_2_allTests_ = (d_1_valueOrError0_).Extract() + d_3_tests_: _dafny.Seq + out0_: _dafny.Seq + out0_ = SortedSets.default__.SetToSequence(d_2_allTests_) + d_3_tests_ = out0_ + d_4_sortedTests_: _dafny.Seq + d_4_sortedTests_ = Seq_MergeSort.default__.MergeSortBy(d_3_tests_, default__.DescriptionLessThan) + d_5_testsJSON_: _dafny.Seq + d_5_testsJSON_ = _dafny.Seq([]) + hi0_ = len(d_4_sortedTests_) + for d_6_i_ in range(0, hi0_): + d_7_valueOrError1_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_7_valueOrError1_ = Wrappers.default__.Need((True) and ((((d_4_sortedTests_)[d_6_i_]).algorithmSuiteId).is_Some), _dafny.Seq("No algorithm suite defined in test")) + if (d_7_valueOrError1_).IsFailure(): + output = (d_7_valueOrError1_).PropagateFailure() + return output + d_8_id_: _dafny.Seq + d_8_id_ = AllAlgorithmSuites.default__.ToHex((((d_4_sortedTests_)[d_6_i_]).algorithmSuiteId).value) + d_9_valueOrError2_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + out1_: Wrappers.Result + out1_ = UUID.default__.GenerateUUID() + d_9_valueOrError2_ = out1_ + if not(not((d_9_valueOrError2_).IsFailure())): + raise _dafny.HaltException("dafny/TestVectors/src/WriteVectors.dfy(82,18): " + _dafny.string_of(d_9_valueOrError2_)) + d_10_uuid_: _dafny.Seq + d_10_uuid_ = (d_9_valueOrError2_).Extract() + d_11_valueOrError3_: Wrappers.Result = Wrappers.Result.default(JSON_Values.JSON.default())() + d_11_valueOrError3_ = WriteEsdkJsonManifests.default__.EncryptTestVectorToJson((d_4_sortedTests_)[d_6_i_]) + if (d_11_valueOrError3_).IsFailure(): + output = (d_11_valueOrError3_).PropagateFailure() + return output + d_12_test_: JSON_Values.JSON + d_12_test_ = (d_11_valueOrError3_).Extract() + d_5_testsJSON_ = (d_5_testsJSON_) + (_dafny.Seq([(d_10_uuid_, d_12_test_)])) + d_13_manifestJson_: JSON_Values.JSON + d_13_manifestJson_ = JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("type"), JSON_Values.JSON_String(_dafny.Seq("awses-encrypt"))), (_dafny.Seq("version"), JSON_Values.JSON_Number(JSON_Values.default__.Int(5)))])) + d_14_plaintexts_: JSON_Values.JSON + d_14_plaintexts_ = JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("small"), JSON_Values.JSON_Number(JSON_Values.default__.Int(10240)))])) + d_15_esdkEncryptManifests_: JSON_Values.JSON + d_15_esdkEncryptManifests_ = JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("manifest"), d_13_manifestJson_), (_dafny.Seq("keys"), JSON_Values.JSON_String(_dafny.Seq("file://keys.json"))), (_dafny.Seq("plaintexts"), d_14_plaintexts_), (_dafny.Seq("tests"), JSON_Values.JSON_Object(d_5_testsJSON_))])) + d_16_valueOrError4_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_16_valueOrError4_ = JSON_API.default__.Serialize(d_15_esdkEncryptManifests_) + if not(not((d_16_valueOrError4_).IsFailure())): + raise _dafny.HaltException("dafny/TestVectors/src/WriteVectors.dfy(102,36): " + _dafny.string_of(d_16_valueOrError4_)) + d_17_esdkEncryptManifestBytes_: _dafny.Seq + d_17_esdkEncryptManifestBytes_ = (d_16_valueOrError4_).Extract() + d_18_esdkEncryptManifestBv_: _dafny.Seq + d_18_esdkEncryptManifestBv_ = JSONHelpers.default__.BytesBv(d_17_esdkEncryptManifestBytes_) + d_19_valueOrError5_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() + out2_: Wrappers.Result + out2_ = FileIO.default__.WriteBytesToFile(((op).encryptManifestOutput) + (_dafny.Seq("encrypt-manifest.json")), d_18_esdkEncryptManifestBv_) + d_19_valueOrError5_ = out2_ + if not(not((d_19_valueOrError5_).IsFailure())): + raise _dafny.HaltException("dafny/TestVectors/src/WriteVectors.dfy(105,13): " + _dafny.string_of(d_19_valueOrError5_)) + d_20___v2_: tuple + d_20___v2_ = (d_19_valueOrError5_).Extract() + output = Wrappers.Result_Success(()) + return output + + @staticmethod + def WriteDecryptManifest(op, keys, tests): + output: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() + d_0_testsJSON_: _dafny.Seq + d_0_testsJSON_ = _dafny.Seq([]) + hi0_ = len(tests) + for d_1_i_ in range(0, hi0_): + d_2_name_: _dafny.Seq + d_2_name_ = ((tests)[d_1_i_]).id + d_3_valueOrError0_: Wrappers.Result = Wrappers.Result.default(JSON_Values.JSON.default())() + d_3_valueOrError0_ = WriteEsdkJsonManifests.default__.DecryptTestVectorToJson((tests)[d_1_i_]) + if (d_3_valueOrError0_).IsFailure(): + output = (d_3_valueOrError0_).PropagateFailure() + return output + d_4_test_: JSON_Values.JSON + d_4_test_ = (d_3_valueOrError0_).Extract() + d_0_testsJSON_ = (d_0_testsJSON_) + (_dafny.Seq([(d_2_name_, d_4_test_)])) + d_5_manifestJson_: JSON_Values.JSON + d_5_manifestJson_ = JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("type"), JSON_Values.JSON_String(_dafny.Seq("awses-decrypt"))), (_dafny.Seq("version"), JSON_Values.JSON_Number(JSON_Values.default__.Int(3)))])) + d_6_esdkDecryptManifest_: JSON_Values.JSON + d_6_esdkDecryptManifest_ = JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("manifest"), d_5_manifestJson_), (_dafny.Seq("client"), JSON_Values.JSON_String(_dafny.Seq("aws-encryption-sdk-dafny"))), (_dafny.Seq("keys"), JSON_Values.JSON_String(_dafny.Seq("file://keys.json"))), (_dafny.Seq("tests"), JSON_Values.JSON_Object(d_0_testsJSON_))])) + d_7_valueOrError1_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_7_valueOrError1_ = JSON_API.default__.Serialize(d_6_esdkDecryptManifest_) + if not(not((d_7_valueOrError1_).IsFailure())): + raise _dafny.HaltException("dafny/TestVectors/src/WriteVectors.dfy(146,36): " + _dafny.string_of(d_7_valueOrError1_)) + d_8_esdkDecryptManifestBytes_: _dafny.Seq + d_8_esdkDecryptManifestBytes_ = (d_7_valueOrError1_).Extract() + d_9_esdkDecryptManifestBv_: _dafny.Seq + d_9_esdkDecryptManifestBv_ = JSONHelpers.default__.BytesBv(d_8_esdkDecryptManifestBytes_) + d_10_valueOrError2_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() + out0_: Wrappers.Result + out0_ = FileIO.default__.WriteBytesToFile(((op).decryptManifestOutput) + (_dafny.Seq("decrypt-manifest.json")), d_9_esdkDecryptManifestBv_) + d_10_valueOrError2_ = out0_ + if not(not((d_10_valueOrError2_).IsFailure())): + raise _dafny.HaltException("dafny/TestVectors/src/WriteVectors.dfy(149,13): " + _dafny.string_of(d_10_valueOrError2_)) + d_11___v3_: tuple + d_11___v3_ = (d_10_valueOrError2_).Extract() + output = Wrappers.Result_Success(()) + return output + + @staticmethod + def getVersionTests(version): + source0_ = version + if True: + if (source0_) == (5): + return Wrappers.Result_Success((AllEsdkV4NoReqEc.default__.Tests) | (AllEsdkV4WithReqEc.default__.Tests)) + if True: + return Wrappers.Result_Failure(_dafny.Seq("Only version 4 of generate manifest is supported\n")) + + @staticmethod + def DescriptionLessThan(x, y): + return default__.Below((x).description, (y).description) + + @staticmethod + def Below(x, y): + return not ((len(x)) != (0)) or ((((len(y)) != (0)) and (((x)[0]) <= ((y)[0]))) and (not (((x)[0]) == ((y)[0])) or (default__.Below(_dafny.Seq((x)[1::]), _dafny.Seq((y)[1::]))))) + diff --git a/TestVectors/runtimes/python/src/internaldafny/generated/__main__.py b/TestVectors/runtimes/python/src/internaldafny/generated/__main__.py new file mode 100644 index 000000000..ac52f84fa --- /dev/null +++ b/TestVectors/runtimes/python/src/internaldafny/generated/__main__.py @@ -0,0 +1,15 @@ +# Dafny program the_program compiled into Python +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import .internaldafny.generated.module_ as module_ +import _dafny as _dafny + +try: + dafnyArgs = [_dafny.Seq(a) for a in sys.argv] + module_.default__.Test____Main____(dafnyArgs) +except _dafny.HaltException as e: + _dafny.print("[Program halted] " + e.message + "\n") + sys.exit(1) diff --git a/TestVectors/runtimes/python/src/internaldafny/generated/dafny_src-py.dtr b/TestVectors/runtimes/python/src/internaldafny/generated/dafny_src-py.dtr new file mode 100644 index 000000000..55675106c --- /dev/null +++ b/TestVectors/runtimes/python/src/internaldafny/generated/dafny_src-py.dtr @@ -0,0 +1,35 @@ +file_format_version = "1.0" +dafny_version = "4.9.0.0" +[options_by_module.WrappedAbstractAwsCryptographyEncryptionSdkService] +legacy-module-names = false +python-module-name = ".internaldafny.generated" +[options_by_module.WrappedESDK] +legacy-module-names = false +python-module-name = ".internaldafny.generated" +[options_by_module.EsdkManifestOptions] +legacy-module-names = false +python-module-name = ".internaldafny.generated" +[options_by_module.EsdkTestVectors] +legacy-module-names = false +python-module-name = ".internaldafny.generated" +[options_by_module.AllEsdkV4NoReqEc] +legacy-module-names = false +python-module-name = ".internaldafny.generated" +[options_by_module.AllEsdkV4WithReqEc] +legacy-module-names = false +python-module-name = ".internaldafny.generated" +[options_by_module.WriteEsdkJsonManifests] +legacy-module-names = false +python-module-name = ".internaldafny.generated" +[options_by_module.WriteVectors] +legacy-module-names = false +python-module-name = ".internaldafny.generated" +[options_by_module.ParseEsdkJsonManifest] +legacy-module-names = false +python-module-name = ".internaldafny.generated" +[options_by_module.EsdkTestManifests] +legacy-module-names = false +python-module-name = ".internaldafny.generated" +[options_by_module.WrappedESDKMain] +legacy-module-names = false +python-module-name = ".internaldafny.generated" diff --git a/TestVectors/runtimes/python/src/internaldafny/generated/module_.py b/TestVectors/runtimes/python/src/internaldafny/generated/module_.py new file mode 100644 index 000000000..05f8d1a12 --- /dev/null +++ b/TestVectors/runtimes/python/src/internaldafny/generated/module_.py @@ -0,0 +1,234 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import .internaldafny.generated.module_ as module_ +import _dafny as _dafny +import System_ as System_ +import Wrappers as Wrappers +import BoundedInts as BoundedInts +import StandardLibrary_UInt as StandardLibrary_UInt +import StandardLibrary_Sequence as StandardLibrary_Sequence +import StandardLibrary_String as StandardLibrary_String +import StandardLibrary as StandardLibrary +import UTF8 as UTF8 +import AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import ExternRandom as ExternRandom +import Random as Random +import AESEncryption as AESEncryption +import ExternDigest as ExternDigest +import Digest as Digest +import HMAC as HMAC +import WrappedHMAC as WrappedHMAC +import HKDF as HKDF +import WrappedHKDF as WrappedHKDF +import Signature as Signature +import KdfCtr as KdfCtr +import RSAEncryption as RSAEncryption +import ECDH as ECDH +import AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import AtomicPrimitives as AtomicPrimitives +import ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import Base64 as Base64 +import AlgorithmSuites as AlgorithmSuites +import Materials as Materials +import Keyring as Keyring +import Relations as Relations +import Seq_MergeSort as Seq_MergeSort +import Math as Math +import Seq as Seq +import MultiKeyring as MultiKeyring +import AwsArnParsing as AwsArnParsing +import AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import Actions as Actions +import AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import AwsKmsUtils as AwsKmsUtils +import Constants as Constants +import UUID as UUID +import MaterialWrapping as MaterialWrapping +import SortedSets as SortedSets +import CanonicalEncryptionContext as CanonicalEncryptionContext +import IntermediateKeyWrapping as IntermediateKeyWrapping +import EdkWrapping as EdkWrapping +import ErrorMessages as ErrorMessages +import AwsKmsKeyring as AwsKmsKeyring +import StrictMultiKeyring as StrictMultiKeyring +import AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import Com_Amazonaws_Kms as Com_Amazonaws_Kms +import Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import DiscoveryMultiKeyring as DiscoveryMultiKeyring +import AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import AwsKmsMrkKeyring as AwsKmsMrkKeyring +import MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import DafnyLibraries as DafnyLibraries +import Time as Time +import LocalCMC as LocalCMC +import SynchronizedLocalCMC as SynchronizedLocalCMC +import StormTracker as StormTracker +import StormTrackingCMC as StormTrackingCMC +import CacheConstants as CacheConstants +import AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import AwsKmsRsaKeyring as AwsKmsRsaKeyring +import EcdhEdkWrapping as EcdhEdkWrapping +import RawECDHKeyring as RawECDHKeyring +import AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import RawAESKeyring as RawAESKeyring +import RawRSAKeyring as RawRSAKeyring +import CMM as CMM +import Defaults as Defaults +import Commitment as Commitment +import DefaultCMM as DefaultCMM +import DefaultClientSupplier as DefaultClientSupplier +import Utils as Utils +import RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import MaterialProviders as MaterialProviders +import KeyStoreErrorMessages as KeyStoreErrorMessages +import KmsArn as KmsArn +import Structure as Structure +import KMSKeystoreOperations as KMSKeystoreOperations +import DDBKeystoreOperations as DDBKeystoreOperations +import CreateKeys as CreateKeys +import CreateKeyStoreTable as CreateKeyStoreTable +import GetKeys as GetKeys +import AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import KeyStore as KeyStore +import AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes +import JSON_Utils_Views_Core as JSON_Utils_Views_Core +import JSON_Utils_Views_Writers as JSON_Utils_Views_Writers +import JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core +import JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings +import JSON_Utils_Cursors as JSON_Utils_Cursors +import JSON_Utils_Parsers as JSON_Utils_Parsers +import GeneralInternals as GeneralInternals +import MulInternalsNonlinear as MulInternalsNonlinear +import MulInternals as MulInternals +import Mul as Mul +import ModInternalsNonlinear as ModInternalsNonlinear +import DivInternalsNonlinear as DivInternalsNonlinear +import ModInternals as ModInternals +import DivInternals as DivInternals +import DivMod as DivMod +import Power as Power +import Logarithm as Logarithm +import JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion +import JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping +import JSON_Utils_Str as JSON_Utils_Str +import JSON_Utils_Seq as JSON_Utils_Seq +import JSON_Utils_Vectors as JSON_Utils_Vectors +import JSON_Errors as JSON_Errors +import JSON_Values as JSON_Values +import Unicode as Unicode +import Functions as Functions +import Utf8EncodingForm as Utf8EncodingForm +import Utf16EncodingForm as Utf16EncodingForm +import UnicodeStrings as UnicodeStrings +import JSON_Spec as JSON_Spec +import JSON_Grammar as JSON_Grammar +import JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion +import JSON_Serializer as JSON_Serializer +import JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion +import JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion +import JSON_Deserializer as JSON_Deserializer +import JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec +import JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties +import JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer +import JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core +import JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings +import JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers +import JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams +import JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects +import JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams +import JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays +import JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants +import JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values +import JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API +import JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer +import JSON_ZeroCopy_API as JSON_ZeroCopy_API +import JSON_API as JSON_API +import JSONHelpers as JSONHelpers +import KeyDescription as KeyDescription +import HexStrings as HexStrings +import KeyMaterial as KeyMaterial +import CreateStaticKeyrings as CreateStaticKeyrings +import CreateStaticKeyStores as CreateStaticKeyStores +import KeyringFromKeyDescription as KeyringFromKeyDescription +import CmmFromKeyDescription as CmmFromKeyDescription +import WrappedMaterialProviders as WrappedMaterialProviders +import KeysVectorOperations as KeysVectorOperations +import FileIO as FileIO +import KeyVectors as KeyVectors +import AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import Streams as Streams +import SerializableTypes as SerializableTypes +import SerializeFunctions as SerializeFunctions +import EncryptionContext as EncryptionContext +import HeaderTypes as HeaderTypes +import SharedHeaderFunctions as SharedHeaderFunctions +import EncryptedDataKeys as EncryptedDataKeys +import V1HeaderBody as V1HeaderBody +import V2HeaderBody as V2HeaderBody +import HeaderAuth as HeaderAuth +import Header as Header +import Frames as Frames +import MessageBody as MessageBody +import KeyDerivation as KeyDerivation +import EncryptDecryptHelpers as EncryptDecryptHelpers +import AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import EncryptionSdk as EncryptionSdk +import MplManifestOptions as MplManifestOptions +import GetOpt as GetOpt +import AllAlgorithmSuites as AllAlgorithmSuites +import TestVectors as TestVectors +import AllHierarchy as AllHierarchy +import AllKms as AllKms +import AllKmsMrkAware as AllKmsMrkAware +import AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery +import AllKmsRsa as AllKmsRsa +import AllKmsEcdh as AllKmsEcdh +import AllRawAES as AllRawAES +import AllRawRSA as AllRawRSA +import AllRawECDH as AllRawECDH +import AllDefaultCmm as AllDefaultCmm +import AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm +import AllMulti as AllMulti +import WriteJsonManifests as WriteJsonManifests +import CompleteVectors as CompleteVectors +import ParseJsonManifests as ParseJsonManifests +import TestManifests as TestManifests +import WrappedMaterialProvidersMain as WrappedMaterialProvidersMain +import AesKdfCtr as AesKdfCtr +import StandardLibraryInterop as StandardLibraryInterop +import Sorting as Sorting +import FloatCompare as FloatCompare +import ConcurrentCall as ConcurrentCall +import Base64Lemmas as Base64Lemmas +import .internaldafny.generated.WrappedESDK as WrappedESDK +import .internaldafny.generated.EsdkManifestOptions as EsdkManifestOptions +import .internaldafny.generated.EsdkTestVectors as EsdkTestVectors +import .internaldafny.generated.AllEsdkV4NoReqEc as AllEsdkV4NoReqEc +import .internaldafny.generated.AllEsdkV4WithReqEc as AllEsdkV4WithReqEc +import .internaldafny.generated.WriteEsdkJsonManifests as WriteEsdkJsonManifests +import .internaldafny.generated.WriteVectors as WriteVectors +import .internaldafny.generated.ParseEsdkJsonManifest as ParseEsdkJsonManifest +import .internaldafny.generated.EsdkTestManifests as EsdkTestManifests +import .internaldafny.generated.WrappedESDKMain as WrappedESDKMain + +# Module: module_ + +class default__: + def __init__(self): + pass + + @staticmethod + def Test____Main____(noArgsParameter__): + d_0_success_: bool + d_0_success_ = True + if not(d_0_success_): + raise _dafny.HaltException("(1,0): " + _dafny.string_of(_dafny.Seq("Test failures occurred: see above.\n"))) + diff --git a/TestVectors/runtimes/python/test/internaldafny/__init__.py b/TestVectors/runtimes/python/test/internaldafny/__init__.py new file mode 100644 index 000000000..f94fd12a2 --- /dev/null +++ b/TestVectors/runtimes/python/test/internaldafny/__init__.py @@ -0,0 +1,2 @@ +# Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 diff --git a/TestVectors/runtimes/python/test/internaldafny/__pycache__/__init__.cpython-311.pyc b/TestVectors/runtimes/python/test/internaldafny/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..870d04f7cbf64b83a606ad1bea9f19257adb48ce GIT binary patch literal 218 zcmXv|OA5j;5KSzK2*q=_sJVc61UG&*E<#C0jZKr1q?DY*BZzn`FHq>NE2n7R;?0|R z^O$+2>4G5MaK7HLeuicQ{flmf;z1x!MF(f@f6>H;f1Lm@)yJ$@OoYb7fTEd|kzU bzA3G&HEi7!uMhwEB~qJEN?S6LOK|oDkk35& literal 0 HcmV?d00001 diff --git a/TestVectors/runtimes/python/test/internaldafny/__pycache__/__init__.cpython-312.pyc b/TestVectors/runtimes/python/test/internaldafny/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9400f60078d734d05555fd90a8dd23c3d609a5d6 GIT binary patch literal 206 zcmZ8aOA5j;6ilpw2tA04nhS_WaHVcsgpfQnnjc9@$w@qecodJ}38cHOe8rsuk2mw) z4D+h%1wlOFc)sF(kK!Nw6fbvD$dYa!Bu-HEqi3*epCBe?T4|;7j&(lXf)Ns!=u!ht z#uBpju1V_FC~;Ua#dCM?U&KnM2AnQcl*Oo+jF z_X6=^Pb%@k!IOVQoAf~TMB<5C6K-7e%`QbsI5@lWX5M@IzJL2|WJE)-e)2b~y9tDT zE2h8Fr_EGwLlZkQAsoJLE73YVfsE3WQE&|tayU34QAB??yiz2=8D@S0h56wE5dV#-&9OR zTc~kKOxyMvlGG&$Ji;B{69I8NTDO@bg1xPC!6;d7#$L*+%w@t1Kot4YmKnri7lU2= ztfIvsNrT%qr07y&!j4m9B&ad6r2H9FrMg5M7Sue5${@A7TBF9TT5LLC!QFrf*R&%e zBeIY6o~ZcXC29qCWA~??DU@Rco@iFIBQ>u16RaQofwh^{*@p7Bsp)4$9w|VSaF~fz zma^zCz$r??J{|`GxKx-#4t|GVItb>HoEHkZdpOJ)hGTNqFiMFqf96}{K`RtWrHVpM z8u|;#gw*Z23@xt3`90r%Xpr0eCV9(@6t_A)9+>Z0xj++k9O zUe~}}HAEliQ6!3cY&2rLK%+wKU+aZJ^;MPAbs$^lAa%Qa*?SCHR2mDjhCw~cFv8q& zo!fvm84f@4o5mS8X`F)1lu(??z9Lvd@PLK+Gf|lB%QP^KvN1)Nlua3?);#X24ys{7 zoV4_99)x29br~?#Fy)&;EzGFDz@;G)8OSgyXAcSWhl(K}C%FePwjYWcz^cZ}UqE_E zjBziQ!Kofnq<}Eqg8DCgw5{klEMD80`!u)v`pe?y#qWHUfQTl*8;sr#Mc zY_~YuMq`I4xt;qs`hK)sxY>HzDU>^?(nXavsvMlxJnIyuJ7}hhX4+`x5Ea{lZ!d-M MogQR$kwmrq1$oSP>;M1& literal 0 HcmV?d00001 diff --git a/TestVectors/runtimes/python/test/internaldafny/__pycache__/test_dafny_wrapper.cpython-312-pytest-7.4.4.pyc b/TestVectors/runtimes/python/test/internaldafny/__pycache__/test_dafny_wrapper.cpython-312-pytest-7.4.4.pyc new file mode 100644 index 0000000000000000000000000000000000000000..15c03764e3dde217362d03528469e36a9ef3f668 GIT binary patch literal 1214 zcmb7Dy=xRf6rZ{8+a%_K5x}Kz{bPnvydo%Oi`@P@%_UqV~hG2Z*FPFA5 z2>nn_I`St*?--0tL{S4#OfxoaWa2gJ)15E9?Fnym1(&RQHO-~TE!mLif-6itKY`P%{m<%Lo3eO>asGPbs*W!|xw(WH# z=|~cIggd?`0^)eIV>3wvd)48BQL-2&S!zqnWx@<#E6%4aGN{E)7dw5et|cW&m)kZ# zbSW|6OCT~5v=~`X`3$O{E)a(WEf1swz$ON$N zso-vs{vk1yQsNCO*is_yP!Es?zL|GZiDA)G5tH@HX26gh%w|Njv47Fgu^F=w| z3|dh^$=#(95(PjQBi}}1OxYta9hdGUBEB!KfU7u`O_+XVF~+}31)Td+K^U*2x7y+4 z`OTSkGg~h{%)g)i^l*P_dgtuUwcV*Z`;&Kf(ZnIjZj{za8{=!^yOpaSAMaIa2dMsS Wc=yR(W%>Z!`iUlcIgD?_IQ{|2UsvY< literal 0 HcmV?d00001 diff --git a/TestVectors/runtimes/python/test/internaldafny/extern/TestWrappedESDKMain_extern.py b/TestVectors/runtimes/python/test/internaldafny/extern/TestWrappedESDKMain_extern.py new file mode 100644 index 000000000..574e31c52 --- /dev/null +++ b/TestVectors/runtimes/python/test/internaldafny/extern/TestWrappedESDKMain_extern.py @@ -0,0 +1,10 @@ +import TestWrappedESDKMain +import _dafny +import os + +class default__(TestWrappedESDKMain.default__): + @staticmethod + def GetTestVectorExecutionDirectory(): + return _dafny.Seq(os.getcwd() + "/../../") + +TestWrappedESDKMain.default__ = default__ \ No newline at end of file diff --git a/TestVectors/runtimes/python/test/internaldafny/extern/__init__.py b/TestVectors/runtimes/python/test/internaldafny/extern/__init__.py new file mode 100644 index 000000000..0e8ddce01 --- /dev/null +++ b/TestVectors/runtimes/python/test/internaldafny/extern/__init__.py @@ -0,0 +1,3 @@ +from . import ( + TestWrappedESDKMain_extern, +) \ No newline at end of file diff --git a/TestVectors/runtimes/python/test/internaldafny/extern/__pycache__/TestWrappedESDKMain_extern.cpython-311.pyc b/TestVectors/runtimes/python/test/internaldafny/extern/__pycache__/TestWrappedESDKMain_extern.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..49d1ed40b90fd98f3b1fb7cc41ad9500604136c6 GIT binary patch literal 943 zcmah{J8u&~5T3oWjcsftV9`X15Rb-0_6gG>szfOeE-(-2Kw2HQn{dhb&e_|OV^=OL zD*6a1v6c4lY3`DS+aQ?Zx_9ABMR`@eAiri|rC zFO=C+R8D{aBQBWpotPxHHB-}I7ns%urgJ#Zm*4?v!^ARmj$WGBj5MH}`k{jB_7b9Y zZDGvrqH+Qp6pyKKosm8a@NBpU05DTb!z_A~V|>pFT}kPsR4I&9gp2YeNsw@m=yKU4 zI{zphtrZa?U9<;?874R+*6Q6WMzyL|ITd9nv-Z4Bq&N6cr1?RV+2_)3voA1Hych3` z=KΞf8k8X1-^%eR0@wEt?xwJE(Ba7M+%Ke6JF)!%CdXc*XTCHf4t{KRrRI(JoDo#^H+m#e%x$J`DT>$W3e zqE5G*+-CJZp&9He*hJBT?`t>ScR$`fEq~ZL-TIt6+qi$WRvWL?M%kLUiV^j4I?7V& zSxru9l&7@mv(Qy~fzqSUau=RLAT8QADIr|1-`Z3QAM28VmJsK?OxGnUnOj zsYcQdrhwvHhs^c<>(xPgI?tq%;G31yMf`PDLUkpwO2kx`=`XSm=aoMaB@9vDA$Wsg zsuMycurXS$2^4$roItJ@&uL00SlPc~w0>v2UO88upDTABZrvL}X$+gAc*TYP27~kD Ap8x;= literal 0 HcmV?d00001 diff --git a/TestVectors/runtimes/python/test/internaldafny/extern/__pycache__/TestWrappedESDKMain_extern.cpython-312.pyc b/TestVectors/runtimes/python/test/internaldafny/extern/__pycache__/TestWrappedESDKMain_extern.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..90f591a54de416108ecf6af97d33d64cc198c980 GIT binary patch literal 861 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 literal 0 HcmV?d00001 diff --git a/TestVectors/runtimes/python/test/internaldafny/generated/__pycache__/TestWrappedESDKMain.cpython-312.pyc b/TestVectors/runtimes/python/test/internaldafny/generated/__pycache__/TestWrappedESDKMain.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2956f35db8ddb8bc6c4a9582dc12bfaa483b3566 GIT binary patch literal 32003 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 PT<(Ieog#9iA20oH5zLO& literal 0 HcmV?d00001 diff --git a/TestVectors/runtimes/python/test/internaldafny/generated/__pycache__/__main__.cpython-311.pyc b/TestVectors/runtimes/python/test/internaldafny/generated/__pycache__/__main__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6d5985a46e466fb54816a48a85dabae8fe3ff5e9 GIT binary patch literal 1216 zcmah|&1>976rYhs`=QOctGcmigJEeyU`d?KLYw*!0#4eJk`G$!1|k#0L>jMmGy2F# z+qFUpTkxTWUIHoU(TC!;B!&J9$zPx?3l%yAa>~u%OYkXgw2>3%k~eSO{N9^+AM-}~ zvtHK`khihc{RboTTq*@=ufg6a*m;N?>HM3Slj<$su>K`c*eT8-aJ}OjX)|uX)Db(!`3iS5M>N`-?BbZZy zJa`3thFGoNC~U`(IBOb;w0&6EoDwtovxRmSfK!(8-Du#2`X3eNoXWfVHz1#BtQj)v z6bFA-*$20RDDo9ln0seIJVae|58a&m2}f_8=^x;G_;8)~m0#yq(BG(~WF^a?>rjHa z!tQ{ooIaCb8Y&R9+1wwte+Zcf+k9ZVw&Q#4p)YO+oZ75Shv6dgY!L@h&-WHX=k{VA zsJ+U<=sL3_AN&MV-E&#k4&rD7+#}d)_q>P+kMim9F7ue65p&v><UwE)^VBCW<=&rH$o$$MYy3GyBA@v&3RsY3aY$Ah(YeE7~^M1ALS!OUnKA26wM`vIYq~k!~6_= zoD`g*`J~`oqTxoGcm6N+aRu5vZgeJ%&gk2e)F$NU|K!Af(VdZ|9pAt^61cb j3AC$0Fj&KRXvNOScI*5p|7 z9Ry%YT=pgSAN-o_<`z$2gslKhMx2Vf46l637sbRXRZZ#f$wOM!=#h-c3Mt(=6@ z^+oStoj!H=R>Y)yza9b)>H%2jkOODLywgYX8v*OlDgq+fbTn$nq$1sX)IZBzMo{R3 zX}kwWpFNsuCvl&WSpf68Q+hzjjcGhxdqhmLjon+W-n8eg2#(2XX3~!5Fwp96&<2ioN z^)e|d$t3P$NGMq-@eO=rVt0}$0)|p9VXkdchpFPOn6{CnB;f}W2A<%A5N64HzI2;R z`=Np-&XNv?WCCZYn@ISPVd8L`NZi0FOIW|GpL4o8qmzuAvMnDHU(T?Uw~JITvk9*gmjgjtvt)04y^4D(&Z5(%?F^<2i=Q!f@D+{5ZP5kbaz z#?_7lA>0DtAE0XubZvsFO;Ec9PJRa`c90As8_lin)i>%|q~o=^(($-zxn`;6Y5Ymu zD>WbKn7_V(O4d@m922 aTF>EXt1NW;vEED4>gCSfZs}9E%<(_%zXPcN literal 0 HcmV?d00001 diff --git a/TestVectors/runtimes/python/test/internaldafny/generated/__pycache__/module_.cpython-311.pyc b/TestVectors/runtimes/python/test/internaldafny/generated/__pycache__/module_.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2c8b6cd7ce40bb07628b158e606800191e7bf0f4 GIT binary patch literal 36936 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 asUcRKA>r51x<8fFdEl$3h+NGNp8h|*Lc=it literal 0 HcmV?d00001 diff --git a/TestVectors/runtimes/python/test/internaldafny/generated/dafny_test-py.dtr b/TestVectors/runtimes/python/test/internaldafny/generated/dafny_test-py.dtr new file mode 100644 index 000000000..ede2d6ffa --- /dev/null +++ b/TestVectors/runtimes/python/test/internaldafny/generated/dafny_test-py.dtr @@ -0,0 +1,4 @@ +file_format_version = "1.0" +dafny_version = "4.9.0.0" +[options_by_module.TestWrappedESDKMain] +legacy-module-names = false diff --git a/TestVectors/runtimes/python/test/internaldafny/generated/module_.py b/TestVectors/runtimes/python/test/internaldafny/generated/module_.py new file mode 100644 index 000000000..508814e7a --- /dev/null +++ b/TestVectors/runtimes/python/test/internaldafny/generated/module_.py @@ -0,0 +1,248 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import module_ as module_ +import _dafny as _dafny +import System_ as System_ +import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers +import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary +import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 +import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom +import aws_cryptography_primitives.internaldafny.generated.Random as Random +import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption +import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest +import aws_cryptography_primitives.internaldafny.generated.Digest as Digest +import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC +import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC +import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF +import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF +import aws_cryptography_primitives.internaldafny.generated.Signature as Signature +import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr +import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption +import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives +import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 +import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites +import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials +import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring +import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations +import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort +import smithy_dafny_standard_library.internaldafny.generated.Math as Math +import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq +import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils +import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants +import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID +import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping +import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets +import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext +import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping +import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring +import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms +import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.Time as Time +import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker +import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC +import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring +import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring +import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM +import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults +import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment +import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM +import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier +import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils +import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders +import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams +import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk.internaldafny.generated.Header as Header +import aws_encryption_sdk.internaldafny.generated.Frames as Frames +import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_encryption_sdk_test_vectors.internaldafny.generated.WrappedESDK as WrappedESDK +import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProviders as WrappedMaterialProviders +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Core as JSON_Utils_Views_Core +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Writers as JSON_Utils_Views_Writers +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Cursors as JSON_Utils_Cursors +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Parsers as JSON_Utils_Parsers +import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals +import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals +import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul +import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals +import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals +import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod +import smithy_dafny_standard_library.internaldafny.generated.Power as Power +import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str as JSON_Utils_Str +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Seq as JSON_Utils_Seq +import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Vectors as JSON_Utils_Vectors +import smithy_dafny_standard_library.internaldafny.generated.JSON_Errors as JSON_Errors +import smithy_dafny_standard_library.internaldafny.generated.JSON_Values as JSON_Values +import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode +import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions +import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings +import smithy_dafny_standard_library.internaldafny.generated.JSON_Spec as JSON_Spec +import smithy_dafny_standard_library.internaldafny.generated.JSON_Grammar as JSON_Grammar +import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer as JSON_Serializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion +import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer as JSON_Deserializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec +import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer +import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_API as JSON_ZeroCopy_API +import smithy_dafny_standard_library.internaldafny.generated.JSON_API as JSON_API +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.JSONHelpers as JSONHelpers +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyDescription as KeyDescription +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyMaterial as KeyMaterial +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyrings as CreateStaticKeyrings +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyStores as CreateStaticKeyStores +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyringFromKeyDescription as KeyringFromKeyDescription +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CmmFromKeyDescription as CmmFromKeyDescription +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeysVectorOperations as KeysVectorOperations +import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyVectors as KeyVectors +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestVectors as TestVectors +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllHierarchy as AllHierarchy +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKms as AllKms +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAware as AllKmsMrkAware +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsRsa as AllKmsRsa +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsEcdh as AllKmsEcdh +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawAES as AllRawAES +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawRSA as AllRawRSA +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawECDH as AllRawECDH +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllDefaultCmm as AllDefaultCmm +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllMulti as AllMulti +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WriteJsonManifests as WriteJsonManifests +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CompleteVectors as CompleteVectors +import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkManifestOptions as EsdkManifestOptions +import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkTestVectors as EsdkTestVectors +import aws_encryption_sdk_test_vectors.internaldafny.generated.AllEsdkV4NoReqEc as AllEsdkV4NoReqEc +import aws_encryption_sdk_test_vectors.internaldafny.generated.AllEsdkV4WithReqEc as AllEsdkV4WithReqEc +import aws_encryption_sdk_test_vectors.internaldafny.generated.WriteEsdkJsonManifests as WriteEsdkJsonManifests +import aws_encryption_sdk_test_vectors.internaldafny.generated.WriteVectors as WriteVectors +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.ParseJsonManifests as ParseJsonManifests +import aws_encryption_sdk_test_vectors.internaldafny.generated.ParseEsdkJsonManifest as ParseEsdkJsonManifest +import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkTestManifests as EsdkTestManifests +import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt +import aws_encryption_sdk_test_vectors.internaldafny.generated.WrappedESDKMain as WrappedESDKMain +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestManifests as TestManifests +import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProvidersMain as WrappedMaterialProvidersMain +import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr +import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn +import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure +import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable +import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore +import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop +import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting +import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare +import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall +import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas +import TestWrappedESDKMain as TestWrappedESDKMain + +# Module: module_ + +class default__: + def __init__(self): + pass + + @staticmethod + def Test____Main____(noArgsParameter__): + d_0_success_: bool + d_0_success_ = True + _dafny.print(_dafny.string_of(_dafny.Seq("TestWrappedESDKMain.RunManifestTests: "))) + try: + if True: + TestWrappedESDKMain.default__.RunManifestTests() + if True: + _dafny.print(_dafny.string_of(_dafny.Seq("PASSED\n"))) + except _dafny.HaltException as e: + d_1_haltMessage_ = e.message + if True: + _dafny.print(_dafny.string_of(_dafny.Seq("FAILED\n "))) + _dafny.print(_dafny.string_of(d_1_haltMessage_)) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + d_0_success_ = False + if not(d_0_success_): + raise _dafny.HaltException("(1,0): " + _dafny.string_of(_dafny.Seq("Test failures occurred: see above.\n"))) + diff --git a/TestVectors/runtimes/python/test/internaldafny/test_dafny_wrapper.py b/TestVectors/runtimes/python/test/internaldafny/test_dafny_wrapper.py new file mode 100644 index 000000000..2a70bb22c --- /dev/null +++ b/TestVectors/runtimes/python/test/internaldafny/test_dafny_wrapper.py @@ -0,0 +1,22 @@ +# Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + +""" +Wrapper file for executing Dafny tests from pytest. +This allows us to import modules required by Dafny-generated tests +before executing Dafny-generated tests. +pytest will find and execute the `test_dafny` method below, +which will execute the `internaldafny_test_executor.py` file in the `dafny` directory. +""" + +import sys + +internaldafny_dir = '/'.join(__file__.split("/")[:-1]) + +sys.path.append(internaldafny_dir + "/extern") +sys.path.append(internaldafny_dir + "/generated") + +from . import extern + +def test_dafny(): + from .generated import __main__ diff --git a/TestVectors/runtimes/python/tox.ini b/TestVectors/runtimes/python/tox.ini new file mode 100644 index 000000000..4406ea808 --- /dev/null +++ b/TestVectors/runtimes/python/tox.ini @@ -0,0 +1,26 @@ +[tox] +isolated_build = True +envlist = + py{311,312} + +[testenv] +skip_install = true +allowlist_externals = poetry +passenv = AWS_* +commands_pre = + poetry lock + poetry install +commands = + poetry run pytest -s -v test/ + +[testenv:cli] +skip_install = true +allowlist_externals = poetry +passenv = AWS_* +setenv = VIRTUALENV_DOWNLOAD=0 + PIP_DISABLE_PIP_VERSION_CHECK=1 +commands_pre = + poetry lock + poetry install --with test +commands = + poetry run python src/aws_cryptography_materialproviders_test_vectors/internaldafny/generated {posargs} \ No newline at end of file From 6a33fb31adf7df005d39abe08a0831d11a73e8a8 Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Thu, 12 Dec 2024 16:26:16 -0800 Subject: [PATCH 05/50] m --- TestVectors/runtimes/python/tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TestVectors/runtimes/python/tox.ini b/TestVectors/runtimes/python/tox.ini index 4406ea808..fdd406a52 100644 --- a/TestVectors/runtimes/python/tox.ini +++ b/TestVectors/runtimes/python/tox.ini @@ -23,4 +23,4 @@ commands_pre = poetry lock poetry install --with test commands = - poetry run python src/aws_cryptography_materialproviders_test_vectors/internaldafny/generated {posargs} \ No newline at end of file + poetry run python src/aws_encryption_sdk_test_vectors/internaldafny/generated {posargs} \ No newline at end of file From 65fe119179bcff847cb32052159e0ca19c79953a Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Thu, 12 Dec 2024 16:42:40 -0800 Subject: [PATCH 06/50] m --- .../AwsCryptographyEncryptionSdkTypes.py | 34 ++- .../internaldafny/generated/EncryptionSdk.py | 234 ------------------ .../internaldafny/generated/dafny_src-py.dtr | 2 +- .../internaldafny/generated/module_.py | 2 +- .../test/internaldafny/generated/Fixtures.py | 2 +- .../generated/TestCreateEsdkClient.py | 20 +- .../generated/TestEncryptDecrypt.py | 8 +- .../TestReproducedEncryptionContext.py | 20 +- .../TestRequiredEncryptionContext.py | 62 ++--- .../__pycache__/Fixtures.cpython-311.pyc | Bin 53811 -> 0 bytes .../TestCreateEsdkClient.cpython-311.pyc | Bin 32545 -> 0 bytes .../TestEncryptDecrypt.cpython-311.pyc | Bin 27006 -> 0 bytes ...eproducedEncryptionContext.cpython-311.pyc | Bin 38481 -> 0 bytes ...tRequiredEncryptionContext.cpython-311.pyc | Bin 114477 -> 0 bytes .../__pycache__/__main__.cpython-311.pyc | Bin 1221 -> 0 bytes .../__pycache__/module_.cpython-311.pyc | Bin 45581 -> 0 bytes .../test/internaldafny/generated/module_.py | 2 +- 17 files changed, 89 insertions(+), 297 deletions(-) delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptionSdk.py delete mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/Fixtures.cpython-311.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestCreateEsdkClient.cpython-311.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestEncryptDecrypt.cpython-311.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestReproducedEncryptionContext.cpython-311.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestRequiredEncryptionContext.cpython-311.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/__main__.cpython-311.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/module_.cpython-311.pyc diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/AwsCryptographyEncryptionSdkTypes.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/AwsCryptographyEncryptionSdkTypes.py index ed9650c2f..4a2cdb854 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/AwsCryptographyEncryptionSdkTypes.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/AwsCryptographyEncryptionSdkTypes.py @@ -139,6 +139,10 @@ def IsValid__CountingNumbers(x): def IsValid__FrameLength(x): return ((1) <= (x)) and ((x) <= (4294967296)) + @staticmethod + def IsDummySubsetType(x): + return (0) < (x) + class DafnyCallEvent: @classmethod @@ -350,6 +354,9 @@ def is_CollectionOfErrors(self) -> bool: @property def is_Opaque(self) -> bool: return isinstance(self, Error_Opaque) + @property + def is_OpaqueWithText(self) -> bool: + return isinstance(self, Error_OpaqueWithText) class Error_AwsEncryptionSdkException(Error, NamedTuple('AwsEncryptionSdkException', [('message', Any)])): def __dafnystr__(self) -> str: @@ -383,11 +390,19 @@ def __eq__(self, __o: object) -> bool: def __hash__(self) -> int: return super().__hash__() -class Error_Opaque(Error, NamedTuple('Opaque', [('obj', Any), ('alt__text', Any)])): +class Error_Opaque(Error, NamedTuple('Opaque', [('obj', Any)])): + def __dafnystr__(self) -> str: + return f'AwsCryptographyEncryptionSdkTypes.Error.Opaque({_dafny.string_of(self.obj)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, Error_Opaque) and self.obj == __o.obj + def __hash__(self) -> int: + return super().__hash__() + +class Error_OpaqueWithText(Error, NamedTuple('OpaqueWithText', [('obj', Any), ('objMessage', Any)])): def __dafnystr__(self) -> str: - return f'AwsCryptographyEncryptionSdkTypes.Error.Opaque({_dafny.string_of(self.obj)}, {_dafny.string_of(self.alt__text)})' + return f'AwsCryptographyEncryptionSdkTypes.Error.OpaqueWithText({_dafny.string_of(self.obj)}, {_dafny.string_of(self.objMessage)})' def __eq__(self, __o: object) -> bool: - return isinstance(__o, Error_Opaque) and self.obj == __o.obj and self.alt__text == __o.alt__text + return isinstance(__o, Error_OpaqueWithText) and self.obj == __o.obj and self.objMessage == __o.objMessage def __hash__(self) -> int: return super().__hash__() @@ -401,4 +416,15 @@ def default(): return Error.default()() def _Is(source__): d_2_e_: Error = source__ - return (d_2_e_).is_Opaque + return ((d_2_e_).is_Opaque) or ((d_2_e_).is_OpaqueWithText) + +class DummySubsetType: + def __init__(self): + pass + + @staticmethod + def default(): + return 1 + def _Is(source__): + d_3_x_: int = source__ + return default__.IsDummySubsetType(d_3_x_) diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptionSdk.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptionSdk.py deleted file mode 100644 index a8c45fe50..000000000 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptionSdk.py +++ /dev/null @@ -1,234 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import aws_encryption_sdk.internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary -import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom -import aws_cryptography_primitives.internaldafny.generated.Random as Random -import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption -import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest -import aws_cryptography_primitives.internaldafny.generated.Digest as Digest -import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC -import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC -import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF -import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF -import aws_cryptography_primitives.internaldafny.generated.Signature as Signature -import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr -import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption -import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives -import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 -import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites -import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials -import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring -import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations -import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort -import smithy_dafny_standard_library.internaldafny.generated.Math as Math -import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq -import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils -import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants -import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID -import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping -import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets -import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext -import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping -import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring -import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms -import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries -import smithy_dafny_standard_library.internaldafny.generated.Time as Time -import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker -import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC -import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring -import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring -import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM -import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults -import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment -import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM -import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier -import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils -import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders -import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn -import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure -import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable -import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore -import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr -import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode -import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions -import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings -import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO -import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals -import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals -import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul -import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals -import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals -import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod -import smithy_dafny_standard_library.internaldafny.generated.Power as Power -import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm -import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop -import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting -import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings -import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt -import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare -import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall -import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk.internaldafny.generated.Header as Header -import aws_encryption_sdk.internaldafny.generated.Frames as Frames -import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations - -# Module: EncryptionSdk - -class default__: - def __init__(self): - pass - - @staticmethod - def DefaultAwsEncryptionSdkConfig(): - return AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig_AwsEncryptionSdkConfig(Wrappers.Option_Some(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT()), Wrappers.Option_None(), Wrappers.Option_Some(AwsCryptographyEncryptionSdkTypes.NetV4__0__0__RetryPolicy_ALLOW__RETRY())) - - @staticmethod - def ESDK(config): - res: Wrappers.Result = None - d_0_maybeCrypto_: Wrappers.Result - out0_: Wrappers.Result - out0_ = AtomicPrimitives.default__.AtomicPrimitives(AtomicPrimitives.default__.DefaultCryptoConfig()) - d_0_maybeCrypto_ = out0_ - d_1_valueOrError0_: Wrappers.Result = None - def lambda0_(d_2_e_): - return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyPrimitives(d_2_e_) - - d_1_valueOrError0_ = (d_0_maybeCrypto_).MapFailure(lambda0_) - if (d_1_valueOrError0_).IsFailure(): - res = (d_1_valueOrError0_).PropagateFailure() - return res - d_3_cryptoX_: AwsCryptographyPrimitivesTypes.IAwsCryptographicPrimitivesClient - d_3_cryptoX_ = (d_1_valueOrError0_).Extract() - d_4_crypto_: AtomicPrimitives.AtomicPrimitivesClient - d_4_crypto_ = d_3_cryptoX_ - d_5_maybeMpl_: Wrappers.Result - out1_: Wrappers.Result - out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) - d_5_maybeMpl_ = out1_ - d_6_valueOrError1_: Wrappers.Result = None - def lambda1_(d_7_e_): - return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyMaterialProviders(d_7_e_) - - d_6_valueOrError1_ = (d_5_maybeMpl_).MapFailure(lambda1_) - if (d_6_valueOrError1_).IsFailure(): - res = (d_6_valueOrError1_).PropagateFailure() - return res - d_8_mplX_: AwsCryptographyMaterialProvidersTypes.IAwsCryptographicMaterialProvidersClient - d_8_mplX_ = (d_6_valueOrError1_).Extract() - d_9_mpl_: MaterialProviders.MaterialProvidersClient - d_9_mpl_ = d_8_mplX_ - d_10_internalConfig_: AwsEncryptionSdkOperations.Config - d_10_internalConfig_ = AwsEncryptionSdkOperations.Config_Config(d_4_crypto_, d_9_mpl_, ((config).commitmentPolicy).UnwrapOr(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT()), (config).maxEncryptedDataKeys, ((config).netV4__0__0__RetryPolicy).UnwrapOr(AwsCryptographyEncryptionSdkTypes.NetV4__0__0__RetryPolicy_ALLOW__RETRY())) - d_11_client_: ESDKClient - nw0_ = ESDKClient() - nw0_.ctor__(d_10_internalConfig_) - d_11_client_ = nw0_ - res = Wrappers.Result_Success(d_11_client_) - return res - return res - - @staticmethod - def CreateSuccessOfClient(client): - return Wrappers.Result_Success(client) - - @staticmethod - def CreateFailureOfError(error): - return Wrappers.Result_Failure(error) - - -class ESDKClient(AwsCryptographyEncryptionSdkTypes.IAwsEncryptionSdkClient): - def __init__(self): - self._config: AwsEncryptionSdkOperations.Config = None - pass - - def __dafnystr__(self) -> str: - return "EncryptionSdk.ESDKClient" - def ctor__(self, config): - (self)._config = config - - def Encrypt(self, input): - output: Wrappers.Result = Wrappers.Result.default(AwsCryptographyEncryptionSdkTypes.EncryptOutput.default())() - out0_: Wrappers.Result - out0_ = AwsEncryptionSdkOperations.default__.Encrypt((self).config, input) - output = out0_ - return output - - def Decrypt(self, input): - output: Wrappers.Result = Wrappers.Result.default(AwsCryptographyEncryptionSdkTypes.DecryptOutput.default())() - out0_: Wrappers.Result - out0_ = AwsEncryptionSdkOperations.default__.Decrypt((self).config, input) - output = out0_ - return output - - @property - def config(self): - return self._config diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/dafny_src-py.dtr b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/dafny_src-py.dtr index 51afe8123..3f657d168 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/dafny_src-py.dtr +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/dafny_src-py.dtr @@ -54,6 +54,6 @@ python-module-name = "aws_encryption_sdk.internaldafny.generated" [options_by_module.AwsEncryptionSdkOperations] legacy-module-names = false python-module-name = "aws_encryption_sdk.internaldafny.generated" -[options_by_module.EncryptionSdk] +[options_by_module.ESDK] legacy-module-names = false python-module-name = "aws_encryption_sdk.internaldafny.generated" diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/module_.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/module_.py index c8dfb9819..edec2593f 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/module_.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/module_.py @@ -140,7 +140,7 @@ import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Core as JSON_Utils_Views_Core import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Writers as JSON_Utils_Views_Writers import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/Fixtures.py b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/Fixtures.py index e5b7a9b28..1441e8a95 100644 --- a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/Fixtures.py +++ b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/Fixtures.py @@ -105,7 +105,7 @@ import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestCreateEsdkClient.py b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestCreateEsdkClient.py index 45f86c8c0..279e76b68 100644 --- a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestCreateEsdkClient.py +++ b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestCreateEsdkClient.py @@ -105,7 +105,7 @@ import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn @@ -155,20 +155,20 @@ def __init__(self): @staticmethod def TestClientCreation(): d_0_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - d_0_defaultConfig_ = EncryptionSdk.default__.DefaultAwsEncryptionSdkConfig() + d_0_defaultConfig_ = ESDK.default__.DefaultAwsEncryptionSdkConfig() d_1_valueOrError0_: Wrappers.Result = None out0_: Wrappers.Result - out0_ = EncryptionSdk.default__.ESDK(d_0_defaultConfig_) + out0_ = ESDK.default__.ESDK(d_0_defaultConfig_) d_1_valueOrError0_ = out0_ if not(not((d_1_valueOrError0_).IsFailure())): raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(55,51): " + _dafny.string_of(d_1_valueOrError0_)) d_2_esdk_: AwsCryptographyEncryptionSdkTypes.IAwsEncryptionSdkClient d_2_esdk_ = (d_1_valueOrError0_).Extract() def iife0_(_is_0): - return isinstance(_is_0, EncryptionSdk.ESDKClient) + return isinstance(_is_0, ESDK.ESDKClient) if not(iife0_(d_2_esdk_)): raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(56,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_3_esdkClient_: EncryptionSdk.ESDKClient + d_3_esdkClient_: ESDK.ESDKClient d_3_esdkClient_ = d_2_esdk_ if not((((d_3_esdkClient_).config).commitmentPolicy) == (((d_0_defaultConfig_).commitmentPolicy).value)): raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(59,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) @@ -205,11 +205,11 @@ def TestNetRetryFlag(): d_8_esdkConfig_ = AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig_AwsEncryptionSdkConfig(Wrappers.Option_Some(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT()), Wrappers.Option_None(), Wrappers.Option_Some(AwsCryptographyEncryptionSdkTypes.NetV4__0__0__RetryPolicy_FORBID__RETRY())) d_9_valueOrError2_: Wrappers.Result = None out2_: Wrappers.Result - out2_ = EncryptionSdk.default__.ESDK(d_8_esdkConfig_) + out2_ = ESDK.default__.ESDK(d_8_esdkConfig_) d_9_valueOrError2_ = out2_ if not(not((d_9_valueOrError2_).IsFailure())): raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(85,27): " + _dafny.string_of(d_9_valueOrError2_)) - d_10_noRetryEsdk_: EncryptionSdk.ESDKClient + d_10_noRetryEsdk_: ESDK.ESDKClient d_10_noRetryEsdk_ = (d_9_valueOrError2_).Extract() d_11_expectFailureDecryptOutput_: Wrappers.Result out3_: Wrappers.Result @@ -218,14 +218,14 @@ def TestNetRetryFlag(): if not((d_11_expectFailureDecryptOutput_).is_Failure): raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(94,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_12_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - d_12_defaultConfig_ = EncryptionSdk.default__.DefaultAwsEncryptionSdkConfig() + d_12_defaultConfig_ = ESDK.default__.DefaultAwsEncryptionSdkConfig() d_13_valueOrError3_: Wrappers.Result = None out4_: Wrappers.Result - out4_ = EncryptionSdk.default__.ESDK(d_12_defaultConfig_) + out4_ = ESDK.default__.ESDK(d_12_defaultConfig_) d_13_valueOrError3_ = out4_ if not(not((d_13_valueOrError3_).IsFailure())): raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(99,20): " + _dafny.string_of(d_13_valueOrError3_)) - d_14_esdk_: EncryptionSdk.ESDKClient + d_14_esdk_: ESDK.ESDKClient d_14_esdk_ = (d_13_valueOrError3_).Extract() d_15_decryptOutput_: Wrappers.Result out5_: Wrappers.Result diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestEncryptDecrypt.py b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestEncryptDecrypt.py index a7b375de3..71f6509b3 100644 --- a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestEncryptDecrypt.py +++ b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestEncryptDecrypt.py @@ -105,7 +105,7 @@ import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn @@ -158,14 +158,14 @@ def TestEncryptDecrypt(): d_1_asdf_: _dafny.Seq d_1_asdf_ = _dafny.Seq([97, 115, 100, 102]) d_2_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - d_2_defaultConfig_ = EncryptionSdk.default__.DefaultAwsEncryptionSdkConfig() + d_2_defaultConfig_ = ESDK.default__.DefaultAwsEncryptionSdkConfig() d_3_valueOrError0_: Wrappers.Result = None out0_: Wrappers.Result - out0_ = EncryptionSdk.default__.ESDK(d_2_defaultConfig_) + out0_ = ESDK.default__.ESDK(d_2_defaultConfig_) d_3_valueOrError0_ = out0_ if not(not((d_3_valueOrError0_).IsFailure())): raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestEncryptDecrypt.dfy(24,20): " + _dafny.string_of(d_3_valueOrError0_)) - d_4_esdk_: EncryptionSdk.ESDKClient + d_4_esdk_: ESDK.ESDKClient d_4_esdk_ = (d_3_valueOrError0_).Extract() d_5_valueOrError1_: Wrappers.Result = None out1_: Wrappers.Result diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestReproducedEncryptionContext.py b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestReproducedEncryptionContext.py index 408f61150..8835b7d88 100644 --- a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestReproducedEncryptionContext.py +++ b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestReproducedEncryptionContext.py @@ -105,7 +105,7 @@ import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn @@ -157,14 +157,14 @@ def TestEncryptionContextOnDecrypt(): d_1_asdf_: _dafny.Seq d_1_asdf_ = _dafny.Seq([97, 115, 100, 102]) d_2_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - d_2_defaultConfig_ = EncryptionSdk.default__.DefaultAwsEncryptionSdkConfig() + d_2_defaultConfig_ = ESDK.default__.DefaultAwsEncryptionSdkConfig() d_3_valueOrError0_: Wrappers.Result = None out0_: Wrappers.Result - out0_ = EncryptionSdk.default__.ESDK(d_2_defaultConfig_) + out0_ = ESDK.default__.ESDK(d_2_defaultConfig_) d_3_valueOrError0_ = out0_ if not(not((d_3_valueOrError0_).IsFailure())): raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(24,20): " + _dafny.string_of(d_3_valueOrError0_)) - d_4_esdk_: EncryptionSdk.ESDKClient + d_4_esdk_: ESDK.ESDKClient d_4_esdk_ = (d_3_valueOrError0_).Extract() d_5_valueOrError1_: Wrappers.Result = None out1_: Wrappers.Result @@ -228,14 +228,14 @@ def TestEncryptionContextOnDecryptFailure(): d_1_asdf_: _dafny.Seq d_1_asdf_ = _dafny.Seq([97, 115, 100, 102]) d_2_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - d_2_defaultConfig_ = EncryptionSdk.default__.DefaultAwsEncryptionSdkConfig() + d_2_defaultConfig_ = ESDK.default__.DefaultAwsEncryptionSdkConfig() d_3_valueOrError0_: Wrappers.Result = None out0_: Wrappers.Result - out0_ = EncryptionSdk.default__.ESDK(d_2_defaultConfig_) + out0_ = ESDK.default__.ESDK(d_2_defaultConfig_) d_3_valueOrError0_ = out0_ if not(not((d_3_valueOrError0_).IsFailure())): raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(71,20): " + _dafny.string_of(d_3_valueOrError0_)) - d_4_esdk_: EncryptionSdk.ESDKClient + d_4_esdk_: ESDK.ESDKClient d_4_esdk_ = (d_3_valueOrError0_).Extract() d_5_valueOrError1_: Wrappers.Result = None out1_: Wrappers.Result @@ -304,14 +304,14 @@ def TestMismatchedEncryptionContextOnDecrypt(): d_1_namespace_ = out0_ d_2_name_ = out1_ d_3_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - d_3_defaultConfig_ = EncryptionSdk.default__.DefaultAwsEncryptionSdkConfig() + d_3_defaultConfig_ = ESDK.default__.DefaultAwsEncryptionSdkConfig() d_4_valueOrError0_: Wrappers.Result = None out2_: Wrappers.Result - out2_ = EncryptionSdk.default__.ESDK(d_3_defaultConfig_) + out2_ = ESDK.default__.ESDK(d_3_defaultConfig_) d_4_valueOrError0_ = out2_ if not(not((d_4_valueOrError0_).IsFailure())): raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(117,20): " + _dafny.string_of(d_4_valueOrError0_)) - d_5_esdk_: EncryptionSdk.ESDKClient + d_5_esdk_: ESDK.ESDKClient d_5_esdk_ = (d_4_valueOrError0_).Extract() d_6_valueOrError1_: Wrappers.Result = None out3_: Wrappers.Result diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestRequiredEncryptionContext.py b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestRequiredEncryptionContext.py index ae3083fb3..56142172e 100644 --- a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestRequiredEncryptionContext.py +++ b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestRequiredEncryptionContext.py @@ -105,7 +105,7 @@ import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn @@ -154,14 +154,14 @@ def TestReprEncryptionContextWithSameECHappyCase(): d_0_asdf_: _dafny.Seq d_0_asdf_ = _dafny.Seq([97, 115, 100, 102]) d_1_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - d_1_defaultConfig_ = EncryptionSdk.default__.DefaultAwsEncryptionSdkConfig() + d_1_defaultConfig_ = ESDK.default__.DefaultAwsEncryptionSdkConfig() d_2_valueOrError0_: Wrappers.Result = None out0_: Wrappers.Result - out0_ = EncryptionSdk.default__.ESDK(d_1_defaultConfig_) + out0_ = ESDK.default__.ESDK(d_1_defaultConfig_) d_2_valueOrError0_ = out0_ if not(not((d_2_valueOrError0_).IsFailure())): raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(39,20): " + _dafny.string_of(d_2_valueOrError0_)) - d_3_esdk_: EncryptionSdk.ESDKClient + d_3_esdk_: ESDK.ESDKClient d_3_esdk_ = (d_2_valueOrError0_).Extract() d_4_valueOrError1_: Wrappers.Result = None out1_: Wrappers.Result @@ -247,14 +247,14 @@ def TestRemoveOnEncryptAndSupplyOnDecryptHappyCase(): d_0_asdf_: _dafny.Seq d_0_asdf_ = _dafny.Seq([97, 115, 100, 102]) d_1_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - d_1_defaultConfig_ = EncryptionSdk.default__.DefaultAwsEncryptionSdkConfig() + d_1_defaultConfig_ = ESDK.default__.DefaultAwsEncryptionSdkConfig() d_2_valueOrError0_: Wrappers.Result = None out0_: Wrappers.Result - out0_ = EncryptionSdk.default__.ESDK(d_1_defaultConfig_) + out0_ = ESDK.default__.ESDK(d_1_defaultConfig_) d_2_valueOrError0_ = out0_ if not(not((d_2_valueOrError0_).IsFailure())): raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(124,20): " + _dafny.string_of(d_2_valueOrError0_)) - d_3_esdk_: EncryptionSdk.ESDKClient + d_3_esdk_: ESDK.ESDKClient d_3_esdk_ = (d_2_valueOrError0_).Extract() d_4_valueOrError1_: Wrappers.Result = None out1_: Wrappers.Result @@ -364,14 +364,14 @@ def TestRemoveOnEncryptRemoveAndSupplyOnDecryptHappyCase(): d_0_asdf_: _dafny.Seq d_0_asdf_ = _dafny.Seq([97, 115, 100, 102]) d_1_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - d_1_defaultConfig_ = EncryptionSdk.default__.DefaultAwsEncryptionSdkConfig() + d_1_defaultConfig_ = ESDK.default__.DefaultAwsEncryptionSdkConfig() d_2_valueOrError0_: Wrappers.Result = None out0_: Wrappers.Result - out0_ = EncryptionSdk.default__.ESDK(d_1_defaultConfig_) + out0_ = ESDK.default__.ESDK(d_1_defaultConfig_) d_2_valueOrError0_ = out0_ if not(not((d_2_valueOrError0_).IsFailure())): raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(233,20): " + _dafny.string_of(d_2_valueOrError0_)) - d_3_esdk_: EncryptionSdk.ESDKClient + d_3_esdk_: ESDK.ESDKClient d_3_esdk_ = (d_2_valueOrError0_).Extract() d_4_valueOrError1_: Wrappers.Result = None out1_: Wrappers.Result @@ -537,14 +537,14 @@ def TestRemoveOnDecryptIsBackwardsCompatibleHappyCase(): d_0_asdf_: _dafny.Seq d_0_asdf_ = _dafny.Seq([97, 115, 100, 102]) d_1_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - d_1_defaultConfig_ = EncryptionSdk.default__.DefaultAwsEncryptionSdkConfig() + d_1_defaultConfig_ = ESDK.default__.DefaultAwsEncryptionSdkConfig() d_2_valueOrError0_: Wrappers.Result = None out0_: Wrappers.Result - out0_ = EncryptionSdk.default__.ESDK(d_1_defaultConfig_) + out0_ = ESDK.default__.ESDK(d_1_defaultConfig_) d_2_valueOrError0_ = out0_ if not(not((d_2_valueOrError0_).IsFailure())): raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(415,20): " + _dafny.string_of(d_2_valueOrError0_)) - d_3_esdk_: EncryptionSdk.ESDKClient + d_3_esdk_: ESDK.ESDKClient d_3_esdk_ = (d_2_valueOrError0_).Extract() d_4_valueOrError1_: Wrappers.Result = None out1_: Wrappers.Result @@ -703,14 +703,14 @@ def TestDifferentECOnDecryptFailure(): d_0_asdf_: _dafny.Seq d_0_asdf_ = _dafny.Seq([97, 115, 100, 102]) d_1_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - d_1_defaultConfig_ = EncryptionSdk.default__.DefaultAwsEncryptionSdkConfig() + d_1_defaultConfig_ = ESDK.default__.DefaultAwsEncryptionSdkConfig() d_2_valueOrError0_: Wrappers.Result = None out0_: Wrappers.Result - out0_ = EncryptionSdk.default__.ESDK(d_1_defaultConfig_) + out0_ = ESDK.default__.ESDK(d_1_defaultConfig_) d_2_valueOrError0_ = out0_ if not(not((d_2_valueOrError0_).IsFailure())): raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(590,20): " + _dafny.string_of(d_2_valueOrError0_)) - d_3_esdk_: EncryptionSdk.ESDKClient + d_3_esdk_: ESDK.ESDKClient d_3_esdk_ = (d_2_valueOrError0_).Extract() d_4_valueOrError1_: Wrappers.Result = None out1_: Wrappers.Result @@ -811,14 +811,14 @@ def TestRemoveECAndNotSupplyOnDecryptFailure(): d_0_asdf_: _dafny.Seq d_0_asdf_ = _dafny.Seq([97, 115, 100, 102]) d_1_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - d_1_defaultConfig_ = EncryptionSdk.default__.DefaultAwsEncryptionSdkConfig() + d_1_defaultConfig_ = ESDK.default__.DefaultAwsEncryptionSdkConfig() d_2_valueOrError0_: Wrappers.Result = None out0_: Wrappers.Result - out0_ = EncryptionSdk.default__.ESDK(d_1_defaultConfig_) + out0_ = ESDK.default__.ESDK(d_1_defaultConfig_) d_2_valueOrError0_ = out0_ if not(not((d_2_valueOrError0_).IsFailure())): raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(715,20): " + _dafny.string_of(d_2_valueOrError0_)) - d_3_esdk_: EncryptionSdk.ESDKClient + d_3_esdk_: ESDK.ESDKClient d_3_esdk_ = (d_2_valueOrError0_).Extract() d_4_valueOrError1_: Wrappers.Result = None out1_: Wrappers.Result @@ -911,14 +911,14 @@ def TestRemoveECAndSupplyMismatchedReprECFailure(): d_0_asdf_: _dafny.Seq d_0_asdf_ = _dafny.Seq([97, 115, 100, 102]) d_1_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - d_1_defaultConfig_ = EncryptionSdk.default__.DefaultAwsEncryptionSdkConfig() + d_1_defaultConfig_ = ESDK.default__.DefaultAwsEncryptionSdkConfig() d_2_valueOrError0_: Wrappers.Result = None out0_: Wrappers.Result - out0_ = EncryptionSdk.default__.ESDK(d_1_defaultConfig_) + out0_ = ESDK.default__.ESDK(d_1_defaultConfig_) d_2_valueOrError0_ = out0_ if not(not((d_2_valueOrError0_).IsFailure())): raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(818,20): " + _dafny.string_of(d_2_valueOrError0_)) - d_3_esdk_: EncryptionSdk.ESDKClient + d_3_esdk_: ESDK.ESDKClient d_3_esdk_ = (d_2_valueOrError0_).Extract() d_4_valueOrError1_: Wrappers.Result = None out1_: Wrappers.Result @@ -1015,14 +1015,14 @@ def TestRemoveECAndSupplyWithMissingRequiredValueDecryptFailure(): d_0_asdf_: _dafny.Seq d_0_asdf_ = _dafny.Seq([97, 115, 100, 102]) d_1_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - d_1_defaultConfig_ = EncryptionSdk.default__.DefaultAwsEncryptionSdkConfig() + d_1_defaultConfig_ = ESDK.default__.DefaultAwsEncryptionSdkConfig() d_2_valueOrError0_: Wrappers.Result = None out0_: Wrappers.Result - out0_ = EncryptionSdk.default__.ESDK(d_1_defaultConfig_) + out0_ = ESDK.default__.ESDK(d_1_defaultConfig_) d_2_valueOrError0_ = out0_ if not(not((d_2_valueOrError0_).IsFailure())): raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(922,20): " + _dafny.string_of(d_2_valueOrError0_)) - d_3_esdk_: EncryptionSdk.ESDKClient + d_3_esdk_: ESDK.ESDKClient d_3_esdk_ = (d_2_valueOrError0_).Extract() d_4_valueOrError1_: Wrappers.Result = None out1_: Wrappers.Result @@ -1119,14 +1119,14 @@ def TestReservedEncryptionContextKeyFailure(): d_0_asdf_: _dafny.Seq d_0_asdf_ = _dafny.Seq([97, 115, 100, 102]) d_1_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - d_1_defaultConfig_ = EncryptionSdk.default__.DefaultAwsEncryptionSdkConfig() + d_1_defaultConfig_ = ESDK.default__.DefaultAwsEncryptionSdkConfig() d_2_valueOrError0_: Wrappers.Result = None out0_: Wrappers.Result - out0_ = EncryptionSdk.default__.ESDK(d_1_defaultConfig_) + out0_ = ESDK.default__.ESDK(d_1_defaultConfig_) d_2_valueOrError0_ = out0_ if not(not((d_2_valueOrError0_).IsFailure())): raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1022,20): " + _dafny.string_of(d_2_valueOrError0_)) - d_3_esdk_: EncryptionSdk.ESDKClient + d_3_esdk_: ESDK.ESDKClient d_3_esdk_ = (d_2_valueOrError0_).Extract() d_4_valueOrError1_: Wrappers.Result = None out1_: Wrappers.Result @@ -1285,14 +1285,14 @@ def GetKmsKeyring(): d_0_kmsKey_: _dafny.Seq d_0_kmsKey_ = Fixtures.default__.keyArn d_1_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - d_1_defaultConfig_ = EncryptionSdk.default__.DefaultAwsEncryptionSdkConfig() + d_1_defaultConfig_ = ESDK.default__.DefaultAwsEncryptionSdkConfig() d_2_valueOrError0_: Wrappers.Result = None out0_: Wrappers.Result - out0_ = EncryptionSdk.default__.ESDK(d_1_defaultConfig_) + out0_ = ESDK.default__.ESDK(d_1_defaultConfig_) d_2_valueOrError0_ = out0_ if not(not((d_2_valueOrError0_).IsFailure())): raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1137,20): " + _dafny.string_of(d_2_valueOrError0_)) - d_3_esdk_: EncryptionSdk.ESDKClient + d_3_esdk_: ESDK.ESDKClient d_3_esdk_ = (d_2_valueOrError0_).Extract() d_4_valueOrError1_: Wrappers.Result = None out1_: Wrappers.Result diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/Fixtures.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/Fixtures.cpython-311.pyc deleted file mode 100644 index 3cf9851b8e7034748406fba36649ebfee64c38dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53811 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 diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestCreateEsdkClient.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestCreateEsdkClient.cpython-311.pyc deleted file mode 100644 index 8f258dc3f16853694fde700d0cbdd81d0dc141fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32545 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 diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestEncryptDecrypt.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestEncryptDecrypt.cpython-311.pyc deleted file mode 100644 index 3a8965d37e8ebcd8e3cbcfa97429305afb3cb946..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27006 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 Qao;c;7UC~Ze86n}f4)>k2mk;8 diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestRequiredEncryptionContext.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/TestRequiredEncryptionContext.cpython-311.pyc deleted file mode 100644 index 8514023993978731a4778bd86b7d0f560c9065e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 114477 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 diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/__main__.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/__main__.cpython-311.pyc deleted file mode 100644 index 64fecea158610b079c70f2e6d06c71f695aef562..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1221 zcmah|&1>976rYhs`=QOctGcmigJEeyU`ZWip-p`Vfz3xraT{9f79tabx*D%{Gy2Gk zwrd3!w%|h#y#!LyqYuSxNelfK(!W4k7AgdRKu@_Dd*T>9qCo8Nmg^S(y< zsb1F+(9`xt?>CIl-%=?^`xhL(3pMBOte$A>?k*n<@iUy~OK-bYez{iD(tUA>PbA`J1T7h0(X?-8EdJJ<$ z5C^ZJcMz=&8inmF;+HH#k+#vi40H%9@#8#1R$O=l#Qso&*s81(~xS-5wX zb4O-pByJqr*RHRc98&LlRG48LZGn%7ipcEy5#_$aW_Nnjr`(CCYudKw^nKgD5XMLP zW!4u_H}JwMTs~e6rf7l~qomQE@m~A;g@=`ghgxl*Px7L`Qojkg+}Q5Yylok#nHF+r1~{cc zI6ayXy4{bs{QbBgh5XEqDwk(5ukg1)l{E+q@<7EHKSTOBA1Qi2`9Dt4LUNK*bS62; z&(NDm!6{ly3O*njZlrnVe^!63K)WZ6_O#I+f0UBil$`#HocoiU+lwcpJtgg=;1_AR zJ}sX)KniaBCsNWFf4KW`Vw~N(_hURUF8==B#Q0!BR;FYnAuB04HNLic^V`q9S>0V7 mpBOKI4m5BEt5}3q?4R$K}6&;C}#NW;_-E diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/module_.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__pycache__/module_.cpython-311.pyc deleted file mode 100644 index abe8a717e1d6fcf50e1546cef886a56a638021de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45581 zcmeHQ3w#_$d7sniagy~|E0!%gwj;mfM{LWo6Wej($LaL4UVccnC2 z?XLFp>(7=ek7sB8|G95wzWru)UbpxDnwlyEf6uiZ8F?{=&<{u?^H<6Oue>lDp?9DV z3b`T(lWR%D6)nLfQ8#u+OL1wm441hG?v9j4D{uu3mqt9%N?b|9u1FQGqMx6IXVGgl zuBO+TXl<~>g`#!T7qGz6&*t!YT+i?uID8JC!|()54;zowg=kNu10mE

aWlhLa`-B|is7p{d<|a1 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 Date: Thu, 12 Dec 2024 16:53:58 -0800 Subject: [PATCH 07/50] m --- .../dafny/TestVectors/src/LibraryIndex.dfy | 2 +- .../generated/AllEsdkV4NoReqEc.py | 2 +- .../generated/AllEsdkV4WithReqEc.py | 2 +- .../generated/EsdkManifestOptions.py | 10 +- .../generated/EsdkTestManifests.py | 135 ++++++++++-------- .../generated/EsdkTestVectors.py | 46 ++++-- .../generated/ParseEsdkJsonManifest.py | 93 ++++++++++-- .../internaldafny/generated/WrappedESDK.py | 6 +- .../generated/WrappedESDKMain.py | 36 +++-- .../generated/WriteEsdkJsonManifests.py | 2 +- .../internaldafny/generated/WriteVectors.py | 80 ++++++----- .../AllEsdkV4NoReqEc.cpython-311.pyc | Bin 41096 -> 0 bytes .../AllEsdkV4NoReqEc.cpython-312.pyc | Bin 34692 -> 0 bytes .../AllEsdkV4WithReqEc.cpython-311.pyc | Bin 37299 -> 0 bytes .../AllEsdkV4WithReqEc.cpython-312.pyc | Bin 30339 -> 0 bytes .../EsdkManifestOptions.cpython-311.pyc | Bin 42464 -> 0 bytes .../EsdkManifestOptions.cpython-312.pyc | Bin 35046 -> 0 bytes .../EsdkTestManifests.cpython-311.pyc | Bin 70239 -> 0 bytes .../EsdkTestManifests.cpython-312.pyc | Bin 61554 -> 0 bytes .../EsdkTestVectors.cpython-311.pyc | Bin 105553 -> 0 bytes .../EsdkTestVectors.cpython-312.pyc | Bin 100113 -> 0 bytes .../ParseEsdkJsonManifest.cpython-311.pyc | Bin 68617 -> 0 bytes .../ParseEsdkJsonManifest.cpython-312.pyc | Bin 59215 -> 0 bytes .../__pycache__/WrappedESDK.cpython-311.pyc | Bin 35584 -> 0 bytes .../__pycache__/WrappedESDK.cpython-312.pyc | Bin 28501 -> 0 bytes .../WrappedESDKMain.cpython-311.pyc | Bin 53505 -> 0 bytes .../WrappedESDKMain.cpython-312.pyc | Bin 46599 -> 0 bytes .../WriteEsdkJsonManifests.cpython-311.pyc | Bin 53261 -> 0 bytes .../WriteEsdkJsonManifests.cpython-312.pyc | Bin 45429 -> 0 bytes .../__pycache__/WriteVectors.cpython-311.pyc | Bin 48774 -> 0 bytes .../__pycache__/WriteVectors.cpython-312.pyc | Bin 41100 -> 0 bytes .../__pycache__/module_.cpython-311.pyc | Bin 35924 -> 0 bytes .../__pycache__/module_.cpython-312.pyc | Bin 28554 -> 0 bytes .../internaldafny/generated/module_.py | 2 +- .../generated/TestWrappedESDKMain.py | 71 ++++++++- .../TestWrappedESDKMain.cpython-311.pyc | Bin 39437 -> 0 bytes .../TestWrappedESDKMain.cpython-312.pyc | Bin 32003 -> 0 bytes .../__pycache__/__main__.cpython-311.pyc | Bin 1216 -> 0 bytes .../__pycache__/__main__.cpython-312.pyc | Bin 1042 -> 0 bytes .../__pycache__/module_.cpython-311.pyc | Bin 36936 -> 0 bytes .../__pycache__/module_.cpython-312.pyc | Bin 29570 -> 0 bytes .../test/internaldafny/generated/module_.py | 54 ++++++- 42 files changed, 385 insertions(+), 156 deletions(-) delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/AllEsdkV4NoReqEc.cpython-311.pyc delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/AllEsdkV4NoReqEc.cpython-312.pyc delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/AllEsdkV4WithReqEc.cpython-311.pyc delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/AllEsdkV4WithReqEc.cpython-312.pyc delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/EsdkManifestOptions.cpython-311.pyc delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/EsdkManifestOptions.cpython-312.pyc delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/EsdkTestManifests.cpython-311.pyc delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/EsdkTestManifests.cpython-312.pyc delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/EsdkTestVectors.cpython-311.pyc delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/EsdkTestVectors.cpython-312.pyc delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/ParseEsdkJsonManifest.cpython-311.pyc delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/ParseEsdkJsonManifest.cpython-312.pyc delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/WrappedESDK.cpython-311.pyc delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/WrappedESDK.cpython-312.pyc delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/WrappedESDKMain.cpython-311.pyc delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/WrappedESDKMain.cpython-312.pyc delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/WriteEsdkJsonManifests.cpython-311.pyc delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/WriteEsdkJsonManifests.cpython-312.pyc delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/WriteVectors.cpython-311.pyc delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/WriteVectors.cpython-312.pyc delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/module_.cpython-311.pyc delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/module_.cpython-312.pyc delete mode 100644 TestVectors/runtimes/python/test/internaldafny/generated/__pycache__/TestWrappedESDKMain.cpython-311.pyc delete mode 100644 TestVectors/runtimes/python/test/internaldafny/generated/__pycache__/TestWrappedESDKMain.cpython-312.pyc delete mode 100644 TestVectors/runtimes/python/test/internaldafny/generated/__pycache__/__main__.cpython-311.pyc delete mode 100644 TestVectors/runtimes/python/test/internaldafny/generated/__pycache__/__main__.cpython-312.pyc delete mode 100644 TestVectors/runtimes/python/test/internaldafny/generated/__pycache__/module_.cpython-311.pyc delete mode 100644 TestVectors/runtimes/python/test/internaldafny/generated/__pycache__/module_.cpython-312.pyc diff --git a/TestVectors/dafny/TestVectors/src/LibraryIndex.dfy b/TestVectors/dafny/TestVectors/src/LibraryIndex.dfy index 57d7f92f7..315761a89 100644 --- a/TestVectors/dafny/TestVectors/src/LibraryIndex.dfy +++ b/TestVectors/dafny/TestVectors/src/LibraryIndex.dfy @@ -3,7 +3,7 @@ include "../Model/AwsCryptographyEncryptionSdkTypesWrapped.dfy" -module {:extern "software.amazon.cryptography.encryptionsdk.internaldafny.wrapped" } WrappedESDK refines WrappedAbstractAwsCryptographyEncryptionSdkService +module WrappedESDK refines WrappedAbstractAwsCryptographyEncryptionSdkService { import WrappedService = ESDK diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/AllEsdkV4NoReqEc.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/AllEsdkV4NoReqEc.py index 2be6e72aa..2597ba8ff 100644 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/AllEsdkV4NoReqEc.py +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/AllEsdkV4NoReqEc.py @@ -180,7 +180,7 @@ import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/AllEsdkV4WithReqEc.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/AllEsdkV4WithReqEc.py index a92d1789a..477a517d3 100644 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/AllEsdkV4WithReqEc.py +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/AllEsdkV4WithReqEc.py @@ -180,7 +180,7 @@ import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkManifestOptions.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkManifestOptions.py index 93dcdb192..35e6000a5 100644 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkManifestOptions.py +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkManifestOptions.py @@ -180,7 +180,7 @@ import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites @@ -216,7 +216,7 @@ class ManifestOptions: @classmethod def default(cls, ): - return lambda: ManifestOptions_Decrypt(_dafny.Seq(""), _dafny.Seq(""), Wrappers.Option.default()()) + return lambda: ManifestOptions_Decrypt(_dafny.Seq(""), _dafny.Seq(""), AwsCryptographyEncryptionSdkTypes.NetV4__0__0__RetryPolicy.default()(), Wrappers.Option.default()()) def __ne__(self, __o: object) -> bool: return not self.__eq__(__o) @property @@ -232,11 +232,11 @@ def is_DecryptSingle(self) -> bool: def is_EncryptManifest(self) -> bool: return isinstance(self, ManifestOptions_EncryptManifest) -class ManifestOptions_Decrypt(ManifestOptions, NamedTuple('Decrypt', [('manifestPath', Any), ('manifestFileName', Any), ('testName', Any)])): +class ManifestOptions_Decrypt(ManifestOptions, NamedTuple('Decrypt', [('manifestPath', Any), ('manifestFileName', Any), ('retryPolicy', Any), ('testName', Any)])): def __dafnystr__(self) -> str: - return f'EsdkManifestOptions.ManifestOptions.Decrypt({_dafny.string_of(self.manifestPath)}, {_dafny.string_of(self.manifestFileName)}, {_dafny.string_of(self.testName)})' + return f'EsdkManifestOptions.ManifestOptions.Decrypt({_dafny.string_of(self.manifestPath)}, {_dafny.string_of(self.manifestFileName)}, {_dafny.string_of(self.retryPolicy)}, {_dafny.string_of(self.testName)})' def __eq__(self, __o: object) -> bool: - return isinstance(__o, ManifestOptions_Decrypt) and self.manifestPath == __o.manifestPath and self.manifestFileName == __o.manifestFileName and self.testName == __o.testName + return isinstance(__o, ManifestOptions_Decrypt) and self.manifestPath == __o.manifestPath and self.manifestFileName == __o.manifestFileName and self.retryPolicy == __o.retryPolicy and self.testName == __o.testName def __hash__(self) -> int: return super().__hash__() diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkTestManifests.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkTestManifests.py index dcc58de4a..0af043c79 100644 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkTestManifests.py +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkTestManifests.py @@ -180,7 +180,7 @@ import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites @@ -240,7 +240,7 @@ def StartDecryptVectors(op): output = (d_2_valueOrError1_).PropagateFailure() return output d_3_valueOrError2_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_3_valueOrError2_ = ParseEsdkJsonManifest.default__.BuildDecryptTestVector(op, (d_1_decryptManifest_).version, (d_1_decryptManifest_).keys, (d_1_decryptManifest_).jsonTests) + d_3_valueOrError2_ = ParseEsdkJsonManifest.default__.BuildDecryptTestVector(op, (d_1_decryptManifest_).clientName, (d_1_decryptManifest_).clientVersion, (d_1_decryptManifest_).version, (d_1_decryptManifest_).keys, (d_1_decryptManifest_).jsonTests) if (d_3_valueOrError2_).IsFailure(): output = (d_3_valueOrError2_).PropagateFailure() return output @@ -288,9 +288,10 @@ def TestDecrypts(keys, vectors): _dafny.print(_dafny.string_of(_dafny.Seq("Skipped: "))) _dafny.print(_dafny.string_of(d_1_skipped_)) _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - if not(not(d_0_hasFailure_)): - raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestManifests.dfy(92,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - manifest = Wrappers.Result_Success(_dafny.Seq([])) + if not(d_0_hasFailure_): + manifest = Wrappers.Result_Success(_dafny.Seq([])) + elif True: + manifest = Wrappers.Result_Failure(_dafny.Seq("Test Vectors failed, see errors above.\n")) return manifest @staticmethod @@ -520,81 +521,95 @@ def lambda0_(d_4_e_): d_12_typ_: _dafny.Seq d_12_typ_ = (d_11_valueOrError5_).Extract() d_13_valueOrError6_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_13_valueOrError6_ = JSONHelpers.default__.GetString(_dafny.Seq("keys"), (d_5_manifestJson_).obj) + d_13_valueOrError6_ = JSONHelpers.default__.GetObject(_dafny.Seq("client"), (d_5_manifestJson_).obj) if (d_13_valueOrError6_).IsFailure(): manifestData = (d_13_valueOrError6_).PropagateFailure() return manifestData - d_14_keyManifestUri_: _dafny.Seq - d_14_keyManifestUri_ = (d_13_valueOrError6_).Extract() - d_15_valueOrError7_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_15_valueOrError7_ = Wrappers.default__.Need((_dafny.Seq("file://")) < (d_14_keyManifestUri_), _dafny.Seq("Unexpected URI prefix")) + d_14_client_: _dafny.Seq + d_14_client_ = (d_13_valueOrError6_).Extract() + d_15_valueOrError7_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_15_valueOrError7_ = JSONHelpers.default__.GetString(_dafny.Seq("name"), d_14_client_) if (d_15_valueOrError7_).IsFailure(): manifestData = (d_15_valueOrError7_).PropagateFailure() return manifestData - d_16_keyManifestPath_: _dafny.Seq - d_16_keyManifestPath_ = (manifestPath) + (_dafny.Seq((d_14_keyManifestUri_)[7::])) - d_17_valueOrError8_: Wrappers.Result = None - out1_: Wrappers.Result - out1_ = KeyVectors.default__.KeyVectors(AwsCryptographyMaterialProvidersTestVectorKeysTypes.KeyVectorsConfig_KeyVectorsConfig(d_16_keyManifestPath_)) - d_17_valueOrError8_ = out1_ - if not(not((d_17_valueOrError8_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestManifests.dfy(263,16): " + _dafny.string_of(d_17_valueOrError8_)) - d_18_keys_: KeyVectors.KeyVectorsClient - d_18_keys_ = (d_17_valueOrError8_).Extract() + d_16_clientName_: _dafny.Seq + d_16_clientName_ = (d_15_valueOrError7_).Extract() + d_17_valueOrError8_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_17_valueOrError8_ = JSONHelpers.default__.GetString(_dafny.Seq("version"), d_14_client_) + if (d_17_valueOrError8_).IsFailure(): + manifestData = (d_17_valueOrError8_).PropagateFailure() + return manifestData + d_18_clientVersion_: _dafny.Seq + d_18_clientVersion_ = (d_17_valueOrError8_).Extract() d_19_valueOrError9_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_19_valueOrError9_ = JSONHelpers.default__.GetObject(_dafny.Seq("tests"), (d_5_manifestJson_).obj) + d_19_valueOrError9_ = JSONHelpers.default__.GetString(_dafny.Seq("keys"), (d_5_manifestJson_).obj) if (d_19_valueOrError9_).IsFailure(): manifestData = (d_19_valueOrError9_).PropagateFailure() return manifestData - d_20_jsonTests_: _dafny.Seq - d_20_jsonTests_ = (d_19_valueOrError9_).Extract() + d_20_keyManifestUri_: _dafny.Seq + d_20_keyManifestUri_ = (d_19_valueOrError9_).Extract() + d_21_valueOrError10_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_21_valueOrError10_ = Wrappers.default__.Need((_dafny.Seq("file://")) < (d_20_keyManifestUri_), _dafny.Seq("Unexpected URI prefix")) + if (d_21_valueOrError10_).IsFailure(): + manifestData = (d_21_valueOrError10_).PropagateFailure() + return manifestData + d_22_keyManifestPath_: _dafny.Seq + d_22_keyManifestPath_ = (manifestPath) + (_dafny.Seq((d_20_keyManifestUri_)[7::])) + d_23_valueOrError11_: Wrappers.Result = None + out1_: Wrappers.Result + out1_ = KeyVectors.default__.KeyVectors(AwsCryptographyMaterialProvidersTestVectorKeysTypes.KeyVectorsConfig_KeyVectorsConfig(d_22_keyManifestPath_)) + d_23_valueOrError11_ = out1_ + if not(not((d_23_valueOrError11_).IsFailure())): + raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestManifests.dfy(268,16): " + _dafny.string_of(d_23_valueOrError11_)) + d_24_keys_: KeyVectors.KeyVectorsClient + d_24_keys_ = (d_23_valueOrError11_).Extract() + d_25_valueOrError12_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_25_valueOrError12_ = JSONHelpers.default__.GetObject(_dafny.Seq("tests"), (d_5_manifestJson_).obj) + if (d_25_valueOrError12_).IsFailure(): + manifestData = (d_25_valueOrError12_).PropagateFailure() + return manifestData + d_26_jsonTests_: _dafny.Seq + d_26_jsonTests_ = (d_25_valueOrError12_).Extract() source0_ = d_12_typ_ with _dafny.label("match0"): if True: if (source0_) == (_dafny.Seq("awses-decrypt")): - d_21_valueOrError10_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_21_valueOrError10_ = Wrappers.default__.Need(EsdkTestVectors.default__.SupportedDecryptVersion_q(d_10_version_), _dafny.Seq("Unsupported manifest version")) - if (d_21_valueOrError10_).IsFailure(): - manifestData = (d_21_valueOrError10_).PropagateFailure() - return manifestData - d_22_valueOrError11_: Wrappers.Result = Wrappers.Result.default(JSON_Values.JSON.default())() - d_22_valueOrError11_ = JSONHelpers.default__.Get(_dafny.Seq("client"), (d_5_manifestJson_).obj) - if (d_22_valueOrError11_).IsFailure(): - manifestData = (d_22_valueOrError11_).PropagateFailure() + d_27_valueOrError13_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_27_valueOrError13_ = Wrappers.default__.Need(EsdkTestVectors.default__.SupportedDecryptVersion_q(d_10_version_), _dafny.Seq("Unsupported manifest version")) + if (d_27_valueOrError13_).IsFailure(): + manifestData = (d_27_valueOrError13_).PropagateFailure() return manifestData - d_23_client_: JSON_Values.JSON - d_23_client_ = (d_22_valueOrError11_).Extract() - manifestData = Wrappers.Result_Success(ManifestData_DecryptManifest(d_10_version_, d_18_keys_, d_23_client_, d_20_jsonTests_)) + manifestData = Wrappers.Result_Success(ManifestData_DecryptManifest(d_10_version_, d_24_keys_, d_16_clientName_, d_18_clientVersion_, d_26_jsonTests_)) raise _dafny.Break("match0") if True: if (source0_) == (_dafny.Seq("awses-encrypt")): - d_24_valueOrError12_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_24_valueOrError12_ = Wrappers.default__.Need(EsdkTestVectors.default__.SupportedEncryptVersion_q(d_10_version_), _dafny.Seq("Unsupported manifest version")) - if (d_24_valueOrError12_).IsFailure(): - manifestData = (d_24_valueOrError12_).PropagateFailure() + d_28_valueOrError14_: Wrappers.Outcome = Wrappers.Outcome.default()() + d_28_valueOrError14_ = Wrappers.default__.Need(EsdkTestVectors.default__.SupportedEncryptVersion_q(d_10_version_), _dafny.Seq("Unsupported manifest version")) + if (d_28_valueOrError14_).IsFailure(): + manifestData = (d_28_valueOrError14_).PropagateFailure() return manifestData - d_25_valueOrError13_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_25_valueOrError13_ = JSONHelpers.default__.GetObject(_dafny.Seq("plaintexts"), (d_5_manifestJson_).obj) - if (d_25_valueOrError13_).IsFailure(): - manifestData = (d_25_valueOrError13_).PropagateFailure() + d_29_valueOrError15_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_29_valueOrError15_ = JSONHelpers.default__.GetObject(_dafny.Seq("plaintexts"), (d_5_manifestJson_).obj) + if (d_29_valueOrError15_).IsFailure(): + manifestData = (d_29_valueOrError15_).PropagateFailure() return manifestData - d_26_plaintextsJson_: _dafny.Seq - d_26_plaintextsJson_ = (d_25_valueOrError13_).Extract() - d_27_valueOrError15_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - def lambda1_(d_28_obj_): + d_30_plaintextsJson_: _dafny.Seq + d_30_plaintextsJson_ = (d_29_valueOrError15_).Extract() + d_31_valueOrError17_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + def lambda1_(d_32_obj_): def iife0_(_pat_let7_0): - def iife1_(d_29_valueOrError14_): - return ((d_29_valueOrError14_).PropagateFailure() if (d_29_valueOrError14_).IsFailure() else Wrappers.Result_Success(((d_28_obj_)[0], (((d_28_obj_)[1]).num).n))) + def iife1_(d_33_valueOrError16_): + return ((d_33_valueOrError16_).PropagateFailure() if (d_33_valueOrError16_).IsFailure() else Wrappers.Result_Success(((d_32_obj_)[0], (((d_32_obj_)[1]).num).n))) return iife1_(_pat_let7_0) - return iife0_(Wrappers.default__.Need((((d_28_obj_)[1]).is_Number) and (((0) < ((((d_28_obj_)[1]).num).n)) and (((((d_28_obj_)[1]).num).n) <= (BoundedInts.default__.INT32__MAX))), _dafny.Seq("Size is not a natural number."))) + return iife0_(Wrappers.default__.Need((((d_32_obj_)[1]).is_Number) and (((0) < ((((d_32_obj_)[1]).num).n)) and (((((d_32_obj_)[1]).num).n) <= (BoundedInts.default__.INT32__MAX))), _dafny.Seq("Size is not a natural number."))) - d_27_valueOrError15_ = Seq.default__.MapWithResult(lambda1_, d_26_plaintextsJson_) - if (d_27_valueOrError15_).IsFailure(): - manifestData = (d_27_valueOrError15_).PropagateFailure() + d_31_valueOrError17_ = Seq.default__.MapWithResult(lambda1_, d_30_plaintextsJson_) + if (d_31_valueOrError17_).IsFailure(): + manifestData = (d_31_valueOrError17_).PropagateFailure() return manifestData - d_30_plaintextsLength_: _dafny.Seq - d_30_plaintextsLength_ = (d_27_valueOrError15_).Extract() - manifestData = Wrappers.Result_Success(ManifestData_EncryptManifest(d_10_version_, d_18_keys_, d_30_plaintextsLength_, d_20_jsonTests_)) + d_34_plaintextsLength_: _dafny.Seq + d_34_plaintextsLength_ = (d_31_valueOrError17_).Extract() + manifestData = Wrappers.Result_Success(ManifestData_EncryptManifest(d_10_version_, d_24_keys_, d_34_plaintextsLength_, d_26_jsonTests_)) raise _dafny.Break("match0") if True: manifestData = Wrappers.Result_Failure((_dafny.Seq("Unsupported manifest type:")) + (d_12_typ_)) @@ -605,7 +620,7 @@ def iife1_(d_29_valueOrError14_): class ManifestData: @classmethod def default(cls, ): - return lambda: ManifestData_DecryptManifest(int(0), None, JSON_Values.JSON.default()(), _dafny.Seq({})) + return lambda: ManifestData_DecryptManifest(int(0), None, _dafny.Seq(""), _dafny.Seq(""), _dafny.Seq({})) def __ne__(self, __o: object) -> bool: return not self.__eq__(__o) @property @@ -615,11 +630,11 @@ def is_DecryptManifest(self) -> bool: def is_EncryptManifest(self) -> bool: return isinstance(self, ManifestData_EncryptManifest) -class ManifestData_DecryptManifest(ManifestData, NamedTuple('DecryptManifest', [('version', Any), ('keys', Any), ('client', Any), ('jsonTests', Any)])): +class ManifestData_DecryptManifest(ManifestData, NamedTuple('DecryptManifest', [('version', Any), ('keys', Any), ('clientName', Any), ('clientVersion', Any), ('jsonTests', Any)])): def __dafnystr__(self) -> str: - return f'EsdkTestManifests.ManifestData.DecryptManifest({_dafny.string_of(self.version)}, {_dafny.string_of(self.keys)}, {_dafny.string_of(self.client)}, {_dafny.string_of(self.jsonTests)})' + return f'EsdkTestManifests.ManifestData.DecryptManifest({_dafny.string_of(self.version)}, {_dafny.string_of(self.keys)}, {_dafny.string_of(self.clientName)}, {_dafny.string_of(self.clientVersion)}, {_dafny.string_of(self.jsonTests)})' def __eq__(self, __o: object) -> bool: - return isinstance(__o, ManifestData_DecryptManifest) and self.version == __o.version and self.keys == __o.keys and self.client == __o.client and self.jsonTests == __o.jsonTests + return isinstance(__o, ManifestData_DecryptManifest) and self.version == __o.version and self.keys == __o.keys and self.clientName == __o.clientName and self.clientVersion == __o.clientVersion and self.jsonTests == __o.jsonTests def __hash__(self) -> int: return super().__hash__() diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkTestVectors.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkTestVectors.py index 6baf1da54..3915901a7 100644 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkTestVectors.py +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkTestVectors.py @@ -180,7 +180,7 @@ import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites @@ -227,7 +227,7 @@ def SupportedEncryptVersion_q(v): @staticmethod def SupportedDecryptVersion_q(v): - return (((v) == (1)) or ((v) == (2))) or ((v) == (3)) + return (((((v) == (1)) or ((v) == (2))) or ((v) == (3))) or ((v) == (4))) or ((v) == (5)) @staticmethod def TestDecrypt(keys, vector): @@ -265,17 +265,17 @@ def TestDecrypt(keys, vector): out1_ = default__.ReadVectorsFile((((d_2_test_).vector).manifestPath) + (((d_2_test_).vector).ciphertextPath)) d_3_valueOrError0_ = out1_ if not(not((d_3_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(202,22): " + _dafny.string_of(d_3_valueOrError0_)) + raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(221,22): " + _dafny.string_of(d_3_valueOrError0_)) d_4_ciphertext_: _dafny.Seq d_4_ciphertext_ = (d_3_valueOrError0_).Extract() d_5_plaintext_: _dafny.Seq = _dafny.Seq({}) - if (((d_2_test_).vector).is_PositiveDecryptTestVector) or (((d_2_test_).vector).is_PositiveV1OrV2DecryptTestVector): + if ((((d_2_test_).vector).is_PositiveDecryptTestVector) or (((d_2_test_).vector).is_PositiveV1OrV2DecryptTestVector)) or (((d_2_test_).vector).is_PositiveV4DecryptTestVector): d_6_valueOrError1_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() out2_: Wrappers.Result out2_ = default__.ReadVectorsFile((((d_2_test_).vector).manifestPath) + (((d_2_test_).vector).plaintextPath)) d_6_valueOrError1_ = out2_ if not(not((d_6_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(205,19): " + _dafny.string_of(d_6_valueOrError1_)) + raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(227,19): " + _dafny.string_of(d_6_valueOrError1_)) d_5_plaintext_ = (d_6_valueOrError1_).Extract() d_7_input_: AwsCryptographyEncryptionSdkTypes.DecryptInput d_7_input_ = AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_4_ciphertext_, Wrappers.Option_Some((d_2_test_).cmm), Wrappers.Option_None(), ((d_2_test_).vector).reproducedEncryptionContext) @@ -293,11 +293,15 @@ def TestDecrypt(keys, vector): if source0_.is_NegativeDecryptTestVector: output = (True) and ((d_8_result_).is_Failure) raise _dafny.Break("match0") + if True: + if source0_.is_PositiveV1OrV2DecryptTestVector: + output = ((d_8_result_).is_Success) and ((((d_8_result_).value).plaintext) == (d_5_plaintext_)) + raise _dafny.Break("match0") if True: output = ((d_8_result_).is_Success) and ((((d_8_result_).value).plaintext) == (d_5_plaintext_)) pass if not(output): - if ((((d_2_test_).vector).is_PositiveDecryptTestVector) or (((d_2_test_).vector).is_PositiveV1OrV2DecryptTestVector)) and ((d_8_result_).is_Failure): + if (((((d_2_test_).vector).is_PositiveDecryptTestVector) or (((d_2_test_).vector).is_PositiveV1OrV2DecryptTestVector)) or (((d_2_test_).vector).is_PositiveV4DecryptTestVector)) and ((d_8_result_).is_Failure): _dafny.print(_dafny.string_of((d_8_result_).error)) _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) if (((d_8_result_).error).is_AwsCryptographyMaterialProviders) and ((((d_8_result_).error).AwsCryptographyMaterialProviders).is_CollectionOfErrors): @@ -335,13 +339,16 @@ def DecryptVectorToDecryptTest(keys, vector): output = (d_4_valueOrError2_).PropagateFailure() return output d_5_config_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - d_5_config_ = WrappedESDK.default__.WrappedAwsEncryptionSdkConfigWithSuppliedCommitment((d_3_commitmentPolicy_).ESDK) + if (vector).is_PositiveV4DecryptTestVector: + d_5_config_ = WrappedESDK.default__.WrappedAwsEncryptionSdkConfigWithSuppliedCommitmentRetryPolicy((d_3_commitmentPolicy_).ESDK, (vector).retryPolicy) + elif True: + d_5_config_ = WrappedESDK.default__.WrappedAwsEncryptionSdkConfigWithSuppliedCommitment((d_3_commitmentPolicy_).ESDK) d_6_valueOrError3_: Wrappers.Result = None out1_: Wrappers.Result out1_ = WrappedESDK.default__.WrappedESDK(d_5_config_) d_6_valueOrError3_ = out1_ if not(not((d_6_valueOrError3_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(281,18): " + _dafny.string_of(d_6_valueOrError3_)) + raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(312,18): " + _dafny.string_of(d_6_valueOrError3_)) d_7_client_: AwsCryptographyEncryptionSdkTypes.IAwsEncryptionSdkClient d_7_client_ = (d_6_valueOrError3_).Extract() d_8_test_: DecryptTest @@ -364,7 +371,7 @@ def TestEncrypt(plaintexts, keys, test): d_1_vector_: EsdkEncryptTestVector d_1_vector_ = (test).vector if not((((test).vector).plaintextPath) in (plaintexts)): - raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(324,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(355,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_2_plaintext_: _dafny.Seq d_2_plaintext_ = (plaintexts)[((test).vector).plaintextPath] d_3_frameLength_: Wrappers.Option @@ -426,7 +433,7 @@ def EncryptVectorToEncryptTest(keys, vector): out1_ = WrappedESDK.default__.WrappedESDK(d_5_config_) d_6_valueOrError3_ = out1_ if not(not((d_6_valueOrError3_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(397,18): " + _dafny.string_of(d_6_valueOrError3_)) + raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(428,18): " + _dafny.string_of(d_6_valueOrError3_)) d_7_client_: AwsCryptographyEncryptionSdkTypes.IAwsEncryptionSdkClient d_7_client_ = (d_6_valueOrError3_).Extract() d_8_test_: EncryptTest @@ -453,9 +460,9 @@ def EncryptTestToDecryptVector(test, result): out0_ = default__.WriteVectorsFile(d_0_decryptManifestCiphertext_, (result).ciphertext) d_1_valueOrError0_ = out0_ if not(not((d_1_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(439,13): " + _dafny.string_of(d_1_valueOrError0_)) - d_2___v52_: tuple - d_2___v52_ = (d_1_valueOrError0_).Extract() + raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(470,13): " + _dafny.string_of(d_1_valueOrError0_)) + d_2___v67_: tuple + d_2___v67_ = (d_1_valueOrError0_).Extract() return output @staticmethod @@ -507,7 +514,7 @@ def KeyDescriptionToCmm(keys, keyDescriptions): out1_ = WrappedMaterialProviders.default__.WrappedMaterialProviders(WrappedMaterialProviders.default__.WrappedDefaultMaterialProvidersConfig()) d_6_valueOrError2_ = out1_ if not(not((d_6_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(482,15): " + _dafny.string_of(d_6_valueOrError2_)) + raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(513,15): " + _dafny.string_of(d_6_valueOrError2_)) d_7_mpl_: AwsCryptographyMaterialProvidersTypes.IAwsCryptographicMaterialProvidersClient d_7_mpl_ = (d_6_valueOrError2_).Extract() d_8_generatorKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring @@ -701,6 +708,9 @@ def is_NegativeDecryptTestVector(self) -> bool: @property def is_PositiveV1OrV2DecryptTestVector(self) -> bool: return isinstance(self, EsdkDecryptTestVector_PositiveV1OrV2DecryptTestVector) + @property + def is_PositiveV4DecryptTestVector(self) -> bool: + return isinstance(self, EsdkDecryptTestVector_PositiveV4DecryptTestVector) class EsdkDecryptTestVector_PositiveDecryptTestVector(EsdkDecryptTestVector, NamedTuple('PositiveDecryptTestVector', [('id', Any), ('version', Any), ('manifestPath', Any), ('ciphertextPath', Any), ('plaintextPath', Any), ('reproducedEncryptionContext', Any), ('decryptDescriptions', Any), ('commitmentPolicy', Any), ('frameLength', Any), ('algorithmSuiteId', Any), ('description', Any), ('decryptionMethod', Any)])): def __dafnystr__(self) -> str: @@ -726,6 +736,14 @@ def __eq__(self, __o: object) -> bool: def __hash__(self) -> int: return super().__hash__() +class EsdkDecryptTestVector_PositiveV4DecryptTestVector(EsdkDecryptTestVector, NamedTuple('PositiveV4DecryptTestVector', [('id', Any), ('version', Any), ('manifestPath', Any), ('ciphertextPath', Any), ('plaintextPath', Any), ('reproducedEncryptionContext', Any), ('requiredEncryptionContextKeys', Any), ('decryptDescriptions', Any), ('commitmentPolicy', Any), ('frameLength', Any), ('algorithmSuiteId', Any), ('description', Any), ('decryptionMethod', Any), ('cmm', Any), ('retryPolicy', Any)])): + def __dafnystr__(self) -> str: + return f'EsdkTestVectors.EsdkDecryptTestVector.PositiveV4DecryptTestVector({_dafny.string_of(self.id)}, {_dafny.string_of(self.version)}, {_dafny.string_of(self.manifestPath)}, {_dafny.string_of(self.ciphertextPath)}, {_dafny.string_of(self.plaintextPath)}, {_dafny.string_of(self.reproducedEncryptionContext)}, {_dafny.string_of(self.requiredEncryptionContextKeys)}, {_dafny.string_of(self.decryptDescriptions)}, {_dafny.string_of(self.commitmentPolicy)}, {_dafny.string_of(self.frameLength)}, {_dafny.string_of(self.algorithmSuiteId)}, {_dafny.string_of(self.description)}, {_dafny.string_of(self.decryptionMethod)}, {_dafny.string_of(self.cmm)}, {_dafny.string_of(self.retryPolicy)})' + def __eq__(self, __o: object) -> bool: + return isinstance(__o, EsdkDecryptTestVector_PositiveV4DecryptTestVector) and self.id == __o.id and self.version == __o.version and self.manifestPath == __o.manifestPath and self.ciphertextPath == __o.ciphertextPath and self.plaintextPath == __o.plaintextPath and self.reproducedEncryptionContext == __o.reproducedEncryptionContext and self.requiredEncryptionContextKeys == __o.requiredEncryptionContextKeys and self.decryptDescriptions == __o.decryptDescriptions and self.commitmentPolicy == __o.commitmentPolicy and self.frameLength == __o.frameLength and self.algorithmSuiteId == __o.algorithmSuiteId and self.description == __o.description and self.decryptionMethod == __o.decryptionMethod and self.cmm == __o.cmm and self.retryPolicy == __o.retryPolicy + def __hash__(self) -> int: + return super().__hash__() + class DecryptionMethod: @_dafny.classproperty diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/ParseEsdkJsonManifest.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/ParseEsdkJsonManifest.py index 593892eef..bef53cb8b 100644 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/ParseEsdkJsonManifest.py +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/ParseEsdkJsonManifest.py @@ -180,7 +180,7 @@ import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites @@ -223,7 +223,7 @@ def __init__(self): pass @staticmethod - def BuildDecryptTestVector(op, version, keys, obj): + def BuildDecryptTestVector(op, clientName, clientVersion, version, keys, obj): hresult_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() d_0_i_: int d_0_i_ = len(obj) @@ -232,7 +232,7 @@ def BuildDecryptTestVector(op, version, keys, obj): while (d_0_i_) != (0): d_0_i_ = (d_0_i_) - (1) d_2_test_: Wrappers.Result - d_2_test_ = default__.ToDecryptTestVectors(op, version, keys, ((obj)[d_0_i_])[0], ((obj)[d_0_i_])[1]) + d_2_test_ = default__.ToDecryptTestVectors(op, clientName, clientVersion, version, keys, ((obj)[d_0_i_])[0], ((obj)[d_0_i_])[1]) if ((d_2_test_).is_Failure) and (((d_2_test_).error) != (default__.negativeTestVectorFound)): hresult_ = Wrappers.Result_Failure(default__.buildTestVectorError) return hresult_ @@ -245,7 +245,7 @@ def BuildDecryptTestVector(op, version, keys, obj): return hresult_ @staticmethod - def ToDecryptTestVectors(op, version, keys, name, json): + def ToDecryptTestVectors(op, clientName, clientVersion, version, keys, name, json): d_0_valueOrError0_ = Wrappers.default__.Need((json).is_Object, _dafny.Seq("Vector is not an object")) if (d_0_valueOrError0_).IsFailure(): return (d_0_valueOrError0_).PropagateFailure() @@ -253,24 +253,35 @@ def ToDecryptTestVectors(op, version, keys, name, json): d_1_obj_ = (json).obj source0_ = version if True: - if (source0_) == (3): + if (source0_) == (5): d_2_valueOrError1_ = Wrappers.default__.Need((op).is_Decrypt, _dafny.Seq("Err parsing manifest expected Decrypt")) if (d_2_valueOrError1_).IsFailure(): return (d_2_valueOrError1_).PropagateFailure() elif True: - return default__.V3ToDecryptTestVector(op, keys, name, d_1_obj_, version) + return default__.V5ToDecryptTestVector(op, keys, name, d_1_obj_, version) if True: - if (source0_) == (2): - d_3_valueOrError2_ = Wrappers.default__.Need((op).is_Decrypt, _dafny.Seq("Err parsing manifest expected Decrypt")) + if (source0_) == (4): + d_3_valueOrError2_ = Wrappers.default__.Need((op).is_Decrypt, _dafny.Seq("Err parsing manifest; expected Decrypt")) if (d_3_valueOrError2_).IsFailure(): return (d_3_valueOrError2_).PropagateFailure() + elif True: + d_4_valueOrError3_ = Wrappers.default__.Need((clientName) == (_dafny.Seq("ESDK-NET")), _dafny.Seq("Err; Version 4 manifest only supported for NET")) + if (d_4_valueOrError3_).IsFailure(): + return (d_4_valueOrError3_).PropagateFailure() + elif True: + return default__.V4ToDecryptTestVector(op, keys, name, d_1_obj_, version) + if True: + if (source0_) == (2): + d_5_valueOrError4_ = Wrappers.default__.Need((op).is_Decrypt, _dafny.Seq("Err parsing manifest expected Decrypt")) + if (d_5_valueOrError4_).IsFailure(): + return (d_5_valueOrError4_).PropagateFailure() elif True: return default__.V2ToDecryptTestVector(op, keys, name, d_1_obj_, version) if True: if (source0_) == (1): - d_4_valueOrError3_ = Wrappers.default__.Need((op).is_Decrypt, _dafny.Seq("Err parsing manifest expected Decrypt")) - if (d_4_valueOrError3_).IsFailure(): - return (d_4_valueOrError3_).PropagateFailure() + d_6_valueOrError5_ = Wrappers.default__.Need((op).is_Decrypt, _dafny.Seq("Err parsing manifest expected Decrypt")) + if (d_6_valueOrError5_).IsFailure(): + return (d_6_valueOrError5_).PropagateFailure() elif True: return default__.V1ToDecryptTestVector(op, keys, name, d_1_obj_, version) if True: @@ -465,7 +476,7 @@ def V2ToDecryptTestVector(op, keys, name, obj, version): return Wrappers.Result_Success(EsdkTestVectors.EsdkDecryptTestVector_PositiveV1OrV2DecryptTestVector(name, version, (op).manifestPath, _dafny.Seq((d_8_ciphertextLoc_)[len(default__.FILE__PREPEND)::]), _dafny.Seq((d_6_plaintextLoc_)[len(default__.FILE__PREPEND)::]), Wrappers.Option_None(), Wrappers.Option_None(), d_15_keyDescription_, AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT(), Wrappers.Option_None(), Wrappers.Option_None(), name, EsdkTestVectors.DecryptionMethod_OneShot())) @staticmethod - def V3ToDecryptTestVector(op, keys, name, obj, version): + def V5ToDecryptTestVector(op, keys, name, obj, version): d_0_scenarioString_ = _dafny.Seq("decryption-scenario") d_1_valueOrError0_ = JSONHelpers.default__.GetObject(d_0_scenarioString_, obj) if (d_1_valueOrError0_).IsFailure(): @@ -533,6 +544,64 @@ def V3ToDecryptTestVector(op, keys, name, obj, version): if True: return Wrappers.Result_Failure((_dafny.Seq("Unsupported ESDK TestVector type: ")) + (d_5_typ_)) + @staticmethod + def V4ToDecryptTestVector(op, keys, name, obj, version): + d_0_valueOrError0_ = JSONHelpers.default__.GetObject(_dafny.Seq("result"), obj) + if (d_0_valueOrError0_).IsFailure(): + return (d_0_valueOrError0_).PropagateFailure() + elif True: + d_1_resultLoc_ = (d_0_valueOrError0_).Extract() + d_2_valueOrError1_ = JSONHelpers.default__.GetObject(_dafny.Seq("output"), d_1_resultLoc_) + if (d_2_valueOrError1_).IsFailure(): + return (d_2_valueOrError1_).PropagateFailure() + elif True: + d_3_outputLoc_ = (d_2_valueOrError1_).Extract() + d_4_valueOrError2_ = JSONHelpers.default__.GetString(_dafny.Seq("plaintext"), d_3_outputLoc_) + if (d_4_valueOrError2_).IsFailure(): + return (d_4_valueOrError2_).PropagateFailure() + elif True: + d_5_plaintextLoc_ = (d_4_valueOrError2_).Extract() + d_6_valueOrError3_ = JSONHelpers.default__.GetString(_dafny.Seq("ciphertext"), obj) + if (d_6_valueOrError3_).IsFailure(): + return (d_6_valueOrError3_).PropagateFailure() + elif True: + d_7_ciphertextLoc_ = (d_6_valueOrError3_).Extract() + d_8_valueOrError4_ = Wrappers.default__.Need(((_dafny.Seq("file://")) < (d_7_ciphertextLoc_)) and ((_dafny.Seq("file://")) < (d_5_plaintextLoc_)), _dafny.Seq("Invalid file prefix in test vector")) + if (d_8_valueOrError4_).IsFailure(): + return (d_8_valueOrError4_).PropagateFailure() + elif True: + d_9_valueOrError5_ = JSONHelpers.default__.GetArray(_dafny.Seq("master-keys"), obj) + if (d_9_valueOrError5_).IsFailure(): + return (d_9_valueOrError5_).PropagateFailure() + elif True: + d_10_masterKeys_ = (d_9_valueOrError5_).Extract() + d_11_valueOrError6_ = default__.GetKeyDescriptions(d_10_masterKeys_, keys) + if (d_11_valueOrError6_).IsFailure(): + return (d_11_valueOrError6_).PropagateFailure() + elif True: + d_12_keyDescriptions_ = (d_11_valueOrError6_).Extract() + d_13_valueOrError7_ = default__.ToMultiKeyDescription(d_12_keyDescriptions_) + if (d_13_valueOrError7_).IsFailure(): + return (d_13_valueOrError7_).PropagateFailure() + elif True: + d_14_keyDescription_ = (d_13_valueOrError7_).Extract() + d_15_valueOrError8_ = JSONHelpers.default__.GetString(_dafny.Seq("cmm"), obj) + if (d_15_valueOrError8_).IsFailure(): + return (d_15_valueOrError8_).PropagateFailure() + elif True: + d_16_cmm_ = (d_15_valueOrError8_).Extract() + d_17_valueOrError9_ = JSONHelpers.default__.SmallObjectToStringStringMap(_dafny.Seq("encryption-context"), obj) + if (d_17_valueOrError9_).IsFailure(): + return (d_17_valueOrError9_).PropagateFailure() + elif True: + d_18_encryptionContextStrings_ = (d_17_valueOrError9_).Extract() + d_19_valueOrError10_ = JSONHelpers.default__.utf8EncodeMap(d_18_encryptionContextStrings_) + if (d_19_valueOrError10_).IsFailure(): + return (d_19_valueOrError10_).PropagateFailure() + elif True: + d_20_encryptionContext_ = (d_19_valueOrError10_).Extract() + return Wrappers.Result_Success(EsdkTestVectors.EsdkDecryptTestVector_PositiveV4DecryptTestVector(name, version, (op).manifestPath, _dafny.Seq((d_7_ciphertextLoc_)[len(default__.FILE__PREPEND)::]), _dafny.Seq((d_5_plaintextLoc_)[len(default__.FILE__PREPEND)::]), Wrappers.Option_Some(d_20_encryptionContext_), Wrappers.Option_None(), d_14_keyDescription_, AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT(), Wrappers.Option_None(), Wrappers.Option_None(), name, EsdkTestVectors.DecryptionMethod_OneShot(), d_16_cmm_, (op).retryPolicy)) + @staticmethod def GetKeyDescriptions(keyArray, keys): if (len(keyArray)) == (0): diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WrappedESDK.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WrappedESDK.py index 996054c41..d17464a87 100644 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WrappedESDK.py +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WrappedESDK.py @@ -180,7 +180,7 @@ import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites @@ -223,6 +223,10 @@ def WrappedDefaultAwsEncryptionSdkConfig(): def WrappedAwsEncryptionSdkConfigWithSuppliedCommitment(commitmentPolicy): return AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig_AwsEncryptionSdkConfig(Wrappers.Option_Some(commitmentPolicy), Wrappers.Option_None(), Wrappers.Option_None()) + @staticmethod + def WrappedAwsEncryptionSdkConfigWithSuppliedCommitmentRetryPolicy(commitmentPolicy, netV4__0__0__RetryPolicy): + return AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig_AwsEncryptionSdkConfig(Wrappers.Option_Some(commitmentPolicy), Wrappers.Option_None(), Wrappers.Option_Some(netV4__0__0__RetryPolicy)) + @staticmethod def WrappedAwsEncryptionSdkConfig(commitmentPolicy, maxEncryptedDataKeys, netV4__0__0__RetryPolicy): return AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig_AwsEncryptionSdkConfig(Wrappers.Option_Some(commitmentPolicy), Wrappers.Option_Some(maxEncryptedDataKeys), Wrappers.Option_Some(netV4__0__0__RetryPolicy)) diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WrappedESDKMain.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WrappedESDKMain.py index 155d4caef..6de6386ab 100644 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WrappedESDKMain.py +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WrappedESDKMain.py @@ -180,7 +180,7 @@ import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites @@ -229,7 +229,7 @@ def Main2(args): d_0_vectorOptions_: GetOpt.Options d_0_vectorOptions_ = GetOpt.Options_Options(_dafny.Seq("test-vectors"), _dafny.Seq("?"), _dafny.Seq([GetOpt.Param_Command(GetOpt.Options_Options(_dafny.Seq("decrypt"), _dafny.Seq("decrypt command for test-vectors"), _dafny.Seq([GetOpt.Param_Opt(_dafny.Seq("manifest-path"), _dafny.Seq("relative path to the location of the manifest"), _dafny.Seq("arg"), GetOpt.default__.NullChar, GetOpt.Unused_Required(), False, GetOpt.Visibility_Normal(), _dafny.Seq([]), _dafny.Seq([]), GetOpt.Tri_No()), GetOpt.Param_Opt(_dafny.Seq("manifest-name"), _dafny.Seq("name of file that contains the decrypt vectors file"), _dafny.Seq("arg"), GetOpt.default__.NullChar, GetOpt.Unused_Required(), False, GetOpt.Visibility_Normal(), _dafny.Seq([]), _dafny.Seq([]), GetOpt.Tri_No()), GetOpt.Param_Opt(_dafny.Seq("test-name"), _dafny.Seq("id of the test to run"), _dafny.Seq("arg"), GetOpt.default__.NullChar, GetOpt.Unused_UnusedOk(), False, GetOpt.Visibility_Normal(), _dafny.Seq([]), _dafny.Seq([]), GetOpt.Tri_No())]))), GetOpt.Param_Command(GetOpt.Options_Options(_dafny.Seq("encrypt"), _dafny.Seq("encrypt command for test-vectors"), _dafny.Seq([GetOpt.Param_Opt(_dafny.Seq("manifest-path"), _dafny.Seq("relative path to the location of the manifest"), _dafny.Seq("arg"), GetOpt.default__.NullChar, GetOpt.Unused_Required(), False, GetOpt.Visibility_Normal(), _dafny.Seq([]), _dafny.Seq([]), GetOpt.Tri_No()), GetOpt.Param_Opt(_dafny.Seq("decrypt-manifest-path"), _dafny.Seq("relative path to the location where the decrypted manifest will be written to."), _dafny.Seq("arg"), GetOpt.default__.NullChar, GetOpt.Unused_Required(), False, GetOpt.Visibility_Normal(), _dafny.Seq([]), _dafny.Seq([]), GetOpt.Tri_No()), GetOpt.Param_Opt(_dafny.Seq("test-name"), _dafny.Seq("id of the test to run"), _dafny.Seq("arg"), GetOpt.default__.NullChar, GetOpt.Unused_UnusedOk(), False, GetOpt.Visibility_Normal(), _dafny.Seq([]), _dafny.Seq([]), GetOpt.Tri_No())]))), GetOpt.Param_Command(GetOpt.Options_Options(_dafny.Seq("encrypt-manifest"), _dafny.Seq("encryp manifest command for test-vectors"), _dafny.Seq([GetOpt.Param_Opt(_dafny.Seq("encrypt-manifest-output"), _dafny.Seq("relative path of where to store the encrypt-manifest produced"), _dafny.Seq("arg"), GetOpt.default__.NullChar, GetOpt.Unused_Required(), False, GetOpt.Visibility_Normal(), _dafny.Seq([]), _dafny.Seq([]), GetOpt.Tri_No())])))])) if not((0) < (len(args))): - raise _dafny.HaltException("dafny/TestVectors/src/Index.dfy(40,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/TestVectors/src/Index.dfy(41,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_1_parsedOptions_q_: Wrappers.Result d_1_parsedOptions_q_ = GetOpt.default__.GetOptions(d_0_vectorOptions_, args) if (d_1_parsedOptions_q_).is_Success: @@ -254,7 +254,7 @@ def Main2(args): if (d_5_result_).is_Failure: _dafny.print(_dafny.string_of((d_5_result_).error)) if not((d_5_result_).is_Success): - raise _dafny.HaltException("dafny/TestVectors/src/Index.dfy(59,10): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/TestVectors/src/Index.dfy(60,10): " + _dafny.string_of(_dafny.Seq("expectation violation"))) raise _dafny.Break("match0") if True: if source0_.is_Encrypt: @@ -265,7 +265,7 @@ def Main2(args): if (d_6_result_).is_Failure: _dafny.print(_dafny.string_of((d_6_result_).error)) if not((d_6_result_).is_Success): - raise _dafny.HaltException("dafny/TestVectors/src/Index.dfy(65,10): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/TestVectors/src/Index.dfy(66,10): " + _dafny.string_of(_dafny.Seq("expectation violation"))) raise _dafny.Break("match0") if True: d_7_result_: Wrappers.Result @@ -275,7 +275,7 @@ def Main2(args): if (d_7_result_).is_Failure: _dafny.print(_dafny.string_of((d_7_result_).error)) if not((d_7_result_).is_Success): - raise _dafny.HaltException("dafny/TestVectors/src/Index.dfy(71,10): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/TestVectors/src/Index.dfy(72,10): " + _dafny.string_of(_dafny.Seq("expectation violation"))) pass elif True: _dafny.print(_dafny.string_of(((d_3_op_q_).error) + (_dafny.Seq("\n")))) @@ -306,18 +306,24 @@ def ParseCommandLineOptions(parsedOptions): def ParseDecryptCmd(params): d_0_manifestPath_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("manifest-path")) d_1_testName_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("test-name")) - d_2_manifestFileName_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("manifest-name")) - d_3_manifestPath_ = ((d_0_manifestPath_q_).value if (d_0_manifestPath_q_).is_Some else _dafny.Seq(".")) - d_4_valueOrError0_ = Wrappers.default__.Need((0) < (len(d_3_manifestPath_)), _dafny.Seq("Invalid manifest path length\n")) - if (d_4_valueOrError0_).IsFailure(): - return (d_4_valueOrError0_).PropagateFailure() + d_2_retryPolicy_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("retry")) + d_3_manifestFileName_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("manifest-name")) + d_4_retryPolicy_ = ((d_2_retryPolicy_q_).value if (d_2_retryPolicy_q_).is_Some else _dafny.Seq("forbid")) + d_5_valueOrError0_ = Wrappers.default__.Need(((d_4_retryPolicy_) == (_dafny.Seq("allow"))) or ((d_4_retryPolicy_) == (_dafny.Seq("forbid"))), _dafny.Seq("Invalid retryPolicy. Valid options are allow/forbid. Default is forbid.")) + if (d_5_valueOrError0_).IsFailure(): + return (d_5_valueOrError0_).PropagateFailure() elif True: - d_5_valueOrError1_ = Wrappers.default__.Need((d_2_manifestFileName_q_).is_Some, _dafny.Seq("Must supply manifest file name")) - if (d_5_valueOrError1_).IsFailure(): - return (d_5_valueOrError1_).PropagateFailure() + d_6_manifestPath_ = ((d_0_manifestPath_q_).value if (d_0_manifestPath_q_).is_Some else _dafny.Seq(".")) + d_7_valueOrError1_ = Wrappers.default__.Need((0) < (len(d_6_manifestPath_)), _dafny.Seq("Invalid manifest path length\n")) + if (d_7_valueOrError1_).IsFailure(): + return (d_7_valueOrError1_).PropagateFailure() elif True: - d_6_manifestFileName_ = (d_2_manifestFileName_q_).value - return Wrappers.Result_Success(EsdkManifestOptions.ManifestOptions_Decrypt((d_3_manifestPath_ if (Seq.default__.Last(d_3_manifestPath_)) == ('/') else (d_3_manifestPath_) + (_dafny.Seq("/"))), d_6_manifestFileName_, (d_1_testName_q_ if (d_1_testName_q_).is_Some else Wrappers.Option_None()))) + d_8_valueOrError2_ = Wrappers.default__.Need((d_3_manifestFileName_q_).is_Some, _dafny.Seq("Must supply manifest file name")) + if (d_8_valueOrError2_).IsFailure(): + return (d_8_valueOrError2_).PropagateFailure() + elif True: + d_9_manifestFileName_ = (d_3_manifestFileName_q_).value + return Wrappers.Result_Success(EsdkManifestOptions.ManifestOptions_Decrypt((d_6_manifestPath_ if (Seq.default__.Last(d_6_manifestPath_)) == ('/') else (d_6_manifestPath_) + (_dafny.Seq("/"))), d_9_manifestFileName_, (AwsCryptographyEncryptionSdkTypes.NetV4__0__0__RetryPolicy_ALLOW__RETRY() if (d_4_retryPolicy_) == (_dafny.Seq("allow")) else AwsCryptographyEncryptionSdkTypes.NetV4__0__0__RetryPolicy_FORBID__RETRY()), (d_1_testName_q_ if (d_1_testName_q_).is_Some else Wrappers.Option_None()))) @staticmethod def ParseEncryptCmd(params): diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WriteEsdkJsonManifests.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WriteEsdkJsonManifests.py index 2588607e0..f11ec370c 100644 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WriteEsdkJsonManifests.py +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WriteEsdkJsonManifests.py @@ -180,7 +180,7 @@ import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WriteVectors.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WriteVectors.py index ec61a5ff9..1196f0f8e 100644 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WriteVectors.py +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WriteVectors.py @@ -180,7 +180,7 @@ import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites @@ -287,26 +287,28 @@ def WriteTestVectors(op): d_5_testsJSON_ = (d_5_testsJSON_) + (_dafny.Seq([(d_10_uuid_, d_12_test_)])) d_13_manifestJson_: JSON_Values.JSON d_13_manifestJson_ = JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("type"), JSON_Values.JSON_String(_dafny.Seq("awses-encrypt"))), (_dafny.Seq("version"), JSON_Values.JSON_Number(JSON_Values.default__.Int(5)))])) - d_14_plaintexts_: JSON_Values.JSON - d_14_plaintexts_ = JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("small"), JSON_Values.JSON_Number(JSON_Values.default__.Int(10240)))])) - d_15_esdkEncryptManifests_: JSON_Values.JSON - d_15_esdkEncryptManifests_ = JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("manifest"), d_13_manifestJson_), (_dafny.Seq("keys"), JSON_Values.JSON_String(_dafny.Seq("file://keys.json"))), (_dafny.Seq("plaintexts"), d_14_plaintexts_), (_dafny.Seq("tests"), JSON_Values.JSON_Object(d_5_testsJSON_))])) - d_16_valueOrError4_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_16_valueOrError4_ = JSON_API.default__.Serialize(d_15_esdkEncryptManifests_) - if not(not((d_16_valueOrError4_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/WriteVectors.dfy(102,36): " + _dafny.string_of(d_16_valueOrError4_)) - d_17_esdkEncryptManifestBytes_: _dafny.Seq - d_17_esdkEncryptManifestBytes_ = (d_16_valueOrError4_).Extract() - d_18_esdkEncryptManifestBv_: _dafny.Seq - d_18_esdkEncryptManifestBv_ = JSONHelpers.default__.BytesBv(d_17_esdkEncryptManifestBytes_) - d_19_valueOrError5_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() + d_14_clientJson_: JSON_Values.JSON + d_14_clientJson_ = JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("name"), JSON_Values.JSON_String(_dafny.Seq("aws-encryption-sdk-dafny"))), (_dafny.Seq("version"), JSON_Values.JSON_String(_dafny.Seq("4.1.0")))])) + d_15_plaintexts_: JSON_Values.JSON + d_15_plaintexts_ = JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("small"), JSON_Values.JSON_Number(JSON_Values.default__.Int(10240)))])) + d_16_esdkEncryptManifests_: JSON_Values.JSON + d_16_esdkEncryptManifests_ = JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("manifest"), d_13_manifestJson_), (_dafny.Seq("client"), d_14_clientJson_), (_dafny.Seq("keys"), JSON_Values.JSON_String(_dafny.Seq("file://keys.json"))), (_dafny.Seq("plaintexts"), d_15_plaintexts_), (_dafny.Seq("tests"), JSON_Values.JSON_Object(d_5_testsJSON_))])) + d_17_valueOrError4_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_17_valueOrError4_ = JSON_API.default__.Serialize(d_16_esdkEncryptManifests_) + if not(not((d_17_valueOrError4_).IsFailure())): + raise _dafny.HaltException("dafny/TestVectors/src/WriteVectors.dfy(107,36): " + _dafny.string_of(d_17_valueOrError4_)) + d_18_esdkEncryptManifestBytes_: _dafny.Seq + d_18_esdkEncryptManifestBytes_ = (d_17_valueOrError4_).Extract() + d_19_esdkEncryptManifestBv_: _dafny.Seq + d_19_esdkEncryptManifestBv_ = JSONHelpers.default__.BytesBv(d_18_esdkEncryptManifestBytes_) + d_20_valueOrError5_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() out2_: Wrappers.Result - out2_ = FileIO.default__.WriteBytesToFile(((op).encryptManifestOutput) + (_dafny.Seq("encrypt-manifest.json")), d_18_esdkEncryptManifestBv_) - d_19_valueOrError5_ = out2_ - if not(not((d_19_valueOrError5_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/WriteVectors.dfy(105,13): " + _dafny.string_of(d_19_valueOrError5_)) - d_20___v2_: tuple - d_20___v2_ = (d_19_valueOrError5_).Extract() + out2_ = FileIO.default__.WriteBytesToFile(((op).encryptManifestOutput) + (_dafny.Seq("encrypt-manifest.json")), d_19_esdkEncryptManifestBv_) + d_20_valueOrError5_ = out2_ + if not(not((d_20_valueOrError5_).IsFailure())): + raise _dafny.HaltException("dafny/TestVectors/src/WriteVectors.dfy(110,13): " + _dafny.string_of(d_20_valueOrError5_)) + d_21___v2_: tuple + d_21___v2_ = (d_20_valueOrError5_).Extract() output = Wrappers.Result_Success(()) return output @@ -328,25 +330,27 @@ def WriteDecryptManifest(op, keys, tests): d_4_test_ = (d_3_valueOrError0_).Extract() d_0_testsJSON_ = (d_0_testsJSON_) + (_dafny.Seq([(d_2_name_, d_4_test_)])) d_5_manifestJson_: JSON_Values.JSON - d_5_manifestJson_ = JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("type"), JSON_Values.JSON_String(_dafny.Seq("awses-decrypt"))), (_dafny.Seq("version"), JSON_Values.JSON_Number(JSON_Values.default__.Int(3)))])) - d_6_esdkDecryptManifest_: JSON_Values.JSON - d_6_esdkDecryptManifest_ = JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("manifest"), d_5_manifestJson_), (_dafny.Seq("client"), JSON_Values.JSON_String(_dafny.Seq("aws-encryption-sdk-dafny"))), (_dafny.Seq("keys"), JSON_Values.JSON_String(_dafny.Seq("file://keys.json"))), (_dafny.Seq("tests"), JSON_Values.JSON_Object(d_0_testsJSON_))])) - d_7_valueOrError1_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_7_valueOrError1_ = JSON_API.default__.Serialize(d_6_esdkDecryptManifest_) - if not(not((d_7_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/WriteVectors.dfy(146,36): " + _dafny.string_of(d_7_valueOrError1_)) - d_8_esdkDecryptManifestBytes_: _dafny.Seq - d_8_esdkDecryptManifestBytes_ = (d_7_valueOrError1_).Extract() - d_9_esdkDecryptManifestBv_: _dafny.Seq - d_9_esdkDecryptManifestBv_ = JSONHelpers.default__.BytesBv(d_8_esdkDecryptManifestBytes_) - d_10_valueOrError2_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() + d_5_manifestJson_ = JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("type"), JSON_Values.JSON_String(_dafny.Seq("awses-decrypt"))), (_dafny.Seq("version"), JSON_Values.JSON_Number(JSON_Values.default__.Int(5)))])) + d_6_clientJson_: JSON_Values.JSON + d_6_clientJson_ = JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("name"), JSON_Values.JSON_String(_dafny.Seq("aws-encryption-sdk-dafny"))), (_dafny.Seq("version"), JSON_Values.JSON_String(_dafny.Seq("4.1.0")))])) + d_7_esdkDecryptManifest_: JSON_Values.JSON + d_7_esdkDecryptManifest_ = JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("manifest"), d_5_manifestJson_), (_dafny.Seq("client"), d_6_clientJson_), (_dafny.Seq("keys"), JSON_Values.JSON_String(_dafny.Seq("file://keys.json"))), (_dafny.Seq("tests"), JSON_Values.JSON_Object(d_0_testsJSON_))])) + d_8_valueOrError1_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() + d_8_valueOrError1_ = JSON_API.default__.Serialize(d_7_esdkDecryptManifest_) + if not(not((d_8_valueOrError1_).IsFailure())): + raise _dafny.HaltException("dafny/TestVectors/src/WriteVectors.dfy(154,36): " + _dafny.string_of(d_8_valueOrError1_)) + d_9_esdkDecryptManifestBytes_: _dafny.Seq + d_9_esdkDecryptManifestBytes_ = (d_8_valueOrError1_).Extract() + d_10_esdkDecryptManifestBv_: _dafny.Seq + d_10_esdkDecryptManifestBv_ = JSONHelpers.default__.BytesBv(d_9_esdkDecryptManifestBytes_) + d_11_valueOrError2_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() out0_: Wrappers.Result - out0_ = FileIO.default__.WriteBytesToFile(((op).decryptManifestOutput) + (_dafny.Seq("decrypt-manifest.json")), d_9_esdkDecryptManifestBv_) - d_10_valueOrError2_ = out0_ - if not(not((d_10_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/WriteVectors.dfy(149,13): " + _dafny.string_of(d_10_valueOrError2_)) - d_11___v3_: tuple - d_11___v3_ = (d_10_valueOrError2_).Extract() + out0_ = FileIO.default__.WriteBytesToFile(((op).decryptManifestOutput) + (_dafny.Seq("decrypt-manifest.json")), d_10_esdkDecryptManifestBv_) + d_11_valueOrError2_ = out0_ + if not(not((d_11_valueOrError2_).IsFailure())): + raise _dafny.HaltException("dafny/TestVectors/src/WriteVectors.dfy(157,13): " + _dafny.string_of(d_11_valueOrError2_)) + d_12___v3_: tuple + d_12___v3_ = (d_11_valueOrError2_).Extract() output = Wrappers.Result_Success(()) return output diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/AllEsdkV4NoReqEc.cpython-311.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/AllEsdkV4NoReqEc.cpython-311.pyc deleted file mode 100644 index 5b4e335ddca6e1b955c13b4a668b446c82e97199..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41096 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 H?zQ+Qx_DfS diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/AllEsdkV4NoReqEc.cpython-312.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/AllEsdkV4NoReqEc.cpython-312.pyc deleted file mode 100644 index bafd1fb715b38c8bdac3ee685b52571dcf950dd8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34692 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 diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/AllEsdkV4WithReqEc.cpython-311.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/AllEsdkV4WithReqEc.cpython-311.pyc deleted file mode 100644 index df57a2c5649299425f6bb650c23f85869174db33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37299 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 U#vUw~i*`403vL%3p^FlDwdmD7ar*~0jz2?P1( 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 U5jL;f(uH{eTa7`~7CqGRU)?^}EC2ui diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/EsdkManifestOptions.cpython-312.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/EsdkManifestOptions.cpython-312.pyc deleted file mode 100644 index 737420939e243b79fbc70a622690ab13a0eb1633..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35046 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 diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/EsdkTestManifests.cpython-311.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/EsdkTestManifests.cpython-311.pyc deleted file mode 100644 index 119fa671fa38b3a8bdc3529bc541434ade1d0411..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 70239 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 Ws0;4D2j{HiBB9Cx_kbXoi2gsG9y6=} diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/EsdkTestVectors.cpython-311.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/EsdkTestVectors.cpython-311.pyc deleted file mode 100644 index c8fc306d60b1fe6d78561c19c34383aa85f8907e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 105553 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

YYvS>y?{T2 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 Y&o7(RtLD~Au-%`9=I(bG<}cBq{xX!4 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 diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/ParseEsdkJsonManifest.cpython-312.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/ParseEsdkJsonManifest.cpython-312.pyc deleted file mode 100644 index 624ebe96713c4aeaf4926b3a319f57b0113cfb8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59215 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 UCvJb=K9OdreV4$ic&6+B0k>7d@c;k- diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/WrappedESDK.cpython-311.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/WrappedESDK.cpython-311.pyc deleted file mode 100644 index aa32519bf2d576e697fda9261e1d2a38834fce55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35584 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 LOTiJpPx^lWD^Qu0 diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/WriteEsdkJsonManifests.cpython-311.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/WriteEsdkJsonManifests.cpython-311.pyc deleted file mode 100644 index 457b24e313983afcb4dffada2e8b046aea2b1241..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53261 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 diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/WriteEsdkJsonManifests.cpython-312.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/WriteEsdkJsonManifests.cpython-312.pyc deleted file mode 100644 index a48b7ba2d2e8dad8f98c18489c25b72225d5c12c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45429 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 diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/WriteVectors.cpython-311.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/WriteVectors.cpython-311.pyc deleted file mode 100644 index 59d2abe68a8e59b575e0e8edcca92b2489412ad9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48774 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�)NIP&@d8Kz+~D_MpdORo{c-xHCKU_PzGiPhZ;ZJtm#+oG=Nvul@WY&$4*E;&) zMGy~6GV~%on3-tf-Z1+35}SdqGvOrF6L6;(%DLIN(G42XOJN*mfljV0+s?Q&L7F)-)hqc_7;ZHItnQ{@ z+T!Y_A~`%}Db?zdGO7WdQcSp6Lp3W?Vn#{gBk{UNmRO2hDK|fu&a5kDMKTLnvJAdENRK!YD$(Ny&37e z&Evf+#fLuYE#bB3EV}$)W{|y?aj0P4N3^p@MrEcjMoAg-zHH-^nV}6fnoRj+$+v6 zFwO2>McmA~2XmUqKB}mfE{8H}CUE!S15Dy)JQc~|wv1E^gL*L4fHB`VXJ#jW@!6D@ zt}!rghN|etZZd+}NT}_K-lTA5Nwv4PCQB+goLT46CQHW5JOVvd+ zRW3^gW@em)?{cD=^jy<(A){Pd?pw2sCsg*f)KM~fAem|EdCYgyQl=TUFu~R(jD70# z!^n0QDVFsV@xA+~RAcR;*-~Iz7xkt$*&!djAP))mm|uctTN~VIdPQtJBrlyEqvJ6SH)q-tvSPN#Hb8D`J7FqVpP$kqoKnaQQGIKom7Ye)WLB|)THy<|#;jsx{={1AT;I5|ru9sog{%zt;a%fd$U$koeMNE$ zBFX1KbnBL+w2hu9mVOPGd{jiYE|8}!8H}U}FXHO!E#WkG{K3bU%?Cz7f`85Q0l747 zxca)pz`3?)Y_Ff7)+9KMO#w%;#!rNY_61iW*dsHJXWvBtXazfrA7?fL&B0wc~Ue@Q=9RX zaPrNeBro{|=|108uDd`6O^ZoEf}iYak=QR|;tyQfUAl>{eh>Su8Vfbnm8m3A(lm=e zcO>EPE!Xrsfo;iV#?7%lt^gVtEnNP#YHkc9ZVLaP$f#ED4^9au$f3?VI3@L~%*K(Qi-zj4(f^c>@IeKnVM!b}I|(mC|J znpQ)1mlG|*&pwc?<|IJgLA2Rwpg!BdS~E@FHPVat;A)y5Z4&e?5%c#HDw4xw&D&-U zTdqf_5O|Lfy03(;eB%SS)hL0J51aK_9}CIp)~(HHkN^571LjxX2FXuhz=CBGEX^ko z>}UX~dJa9WS+1A=3^fP4clCTDE%aJIP(y*UnKlrr-MBU?#dZcZUXp@G4~> zkPx))uFNErmA7$1x?8bmEA9e?2-clzndAg^NJRa59wce_)~p*Q+m863MB0!9v%ag6 zc3EIAGW>j1R5B+b#a3X=N=7#7SW1=zTeDV)j~Meg3~%P~LEl>Srz=fv`{6gu^oJhE zlGzQ{r`!2hj1-~Yw8(E^-ZXcjf&GJg0EvD=i0r9>-?FlPcE`liohHI31abRBF21vh zo-|ixI|E@)6k8`ufAm5wl;&zQE@@54GJKc0%@YXd>n-6l^J#n!p-+Mp= zAHHIUp9_rqV4EP^cR3u6m{9O6`4cQ2;)n^ON~$B4N(iK4PmZ1TnL>e}VS74EQEFoM9p-GdCvmE2)l{Fs`IJVuGloI%2|@lIn;F!%C_nCY)7L9rpT- z)NL##TvSpWG2xPu>WB#eCDjoV29;DtEL9_fRvHs7D5(y6^<}5;y{rf+4tsseoFb$+ zV#2hN>abUKJN0EJj-5JtJELFpRmJ>@= z>Ch@-@H=g(4tw|eX+=nJ#DqyD)nTtsNO4n;vilSv#Su$YSx}qy^lYaOPmvkOZA`eL zq&n>Nhj#9-0Yyl0#8Oo#)Obudr=&XU#j$e_4k<#4V=c!3OG_gDGod17OYe9Te%s!cG@$hHA}{RnYl6Hs*>thySZLO5mFp6K~hp3 z_TqRHA;n>@>~`jQcE*r)^lT@No&4B|V`t27XC9Y&td4D!{IpGmZcLb0QXTfj33kR3 zcG{sGTZ)}HcEPVYnrxZ|pn)56d^MS= z1V97Fw$V=dG4h-1%#SmA6JPF!U!4Hfa1GX&zpKeiNdOu+rqxH%>Lb^hew47XA5*c! z2RU6t4*C5s=0`auzTA&;`1tnf0_|*SGE*CX29D)2Z6KJ6>Bl^*>^EX2#y9%;2d5Pi zZYjbomAK$ZJODKCwaU+0$|1kv4!`A&|ALN+#2(qRhuU*-1#N^_G9P(>-;397NQO?SKBPJJrjq+pk^J=oL9zX++2~&zN zr4koBi3flNZtwm=d#0Mqat@$@8#X;PnMoW#1CI$|MF^|J1yAAupn)4U5H*>p7C-~H zmloQ()nw*w01e!Z4%h1bvYVFKCb_n^%C>6Q`BRl0$2Mv*lO})$9up=MVL~M?coGi) z4cxG^smZKu02;VquTztm>;N=yV?3`Wo23G1;KrOtO=dm?(7^4<=~IM0RY2Er0BGQb z?Ltjv(ge`J?WKhib2ZuY96$q)5jItv9!2O;1#~S3fCe5DS{0#HB`$ap4*(6^UK~66 zIiUzAQ~_Pf0ic1~(;?bP)MTa-01Z4wl1P=-bw#+Y3g}u601e!*;iqczcI4pNU#h+i z=P7EkX(NCJZf87Zr_aPb%A7l3zhV0E*|f6Xh?yAQm@}%$rj`I2xV=6B=LMfCi5G86sneA@b}t{ivUn{iqo}zP)Fqo%WM@yc#3TI8}SLS9WvUjwLev zSoW3uM$E+c#=3c`F+l44*n1Y>-2B0FB75^MJ96yAv2(wpAw^9#y9Cg{?X@2}Z9erl c>VDpc(}6#HxAN(y2KRI0L__=qWQWK92eiS>{r~^~ diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/WriteVectors.cpython-312.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/WriteVectors.cpython-312.pyc deleted file mode 100644 index b6bf50e62a35933a3f672a919af2eadb176e6b37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41100 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 BC~^P* diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/module_.cpython-311.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__pycache__/module_.cpython-311.pyc deleted file mode 100644 index 166cc9872cb720d885e00c3b219cb774d3046dd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35924 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 BE-wH8 diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/module_.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/module_.py index 0fbd0d7f7..6cefa1fef 100644 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/module_.py +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/module_.py @@ -180,7 +180,7 @@ import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites diff --git a/TestVectors/runtimes/python/test/internaldafny/generated/TestWrappedESDKMain.py b/TestVectors/runtimes/python/test/internaldafny/generated/TestWrappedESDKMain.py index 84544c27f..4e963f632 100644 --- a/TestVectors/runtimes/python/test/internaldafny/generated/TestWrappedESDKMain.py +++ b/TestVectors/runtimes/python/test/internaldafny/generated/TestWrappedESDKMain.py @@ -105,7 +105,7 @@ import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK import aws_encryption_sdk_test_vectors.internaldafny.generated.WrappedESDK as WrappedESDK import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites @@ -231,6 +231,67 @@ def RunManifestTests(): default__.TestEncryptManifest() default__.TestDecryptManifest() + @staticmethod + def TestNetRetryFlagVectorsExpectSuccess(): + d_0_directory_: _dafny.Seq + out0_: _dafny.Seq + out0_ = default__.GetTestVectorExecutionDirectory() + d_0_directory_ = out0_ + d_1_result_: Wrappers.Result + out1_: Wrappers.Result + out1_ = EsdkTestManifests.default__.StartDecryptVectors(EsdkManifestOptions.ManifestOptions_Decrypt((d_0_directory_) + (_dafny.Seq("dafny/TestVectors/test/valid-Net-4.0.0/")), _dafny.Seq("manifest.json"), AwsCryptographyEncryptionSdkTypes.NetV4__0__0__RetryPolicy_FORBID__RETRY(), Wrappers.Option_None())) + d_1_result_ = out1_ + if (d_1_result_).is_Failure: + _dafny.print(_dafny.string_of((d_1_result_).error)) + if not((d_1_result_).is_Success): + raise _dafny.HaltException("dafny/TestVectors/test/RunMain.dfy(44,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + + @staticmethod + def TestNetInvalidTestVectorsExpectFailure(): + d_0_directory_: _dafny.Seq + out0_: _dafny.Seq + out0_ = default__.GetTestVectorExecutionDirectory() + d_0_directory_ = out0_ + d_1_result_: Wrappers.Result + out1_: Wrappers.Result + out1_ = EsdkTestManifests.default__.StartDecryptVectors(EsdkManifestOptions.ManifestOptions_Decrypt((d_0_directory_) + (_dafny.Seq("dafny/TestVectors/test/invalid-Net-4.0.0/")), _dafny.Seq("manifest.json"), AwsCryptographyEncryptionSdkTypes.NetV4__0__0__RetryPolicy_FORBID__RETRY(), Wrappers.Option_None())) + d_1_result_ = out1_ + _dafny.print(_dafny.string_of(_dafny.Seq("ONLY WORRY IF THE ABOVE TESTS PASSED!!! THESE TESTS ARE SUPPOSED TO FAIL!\n"))) + _dafny.print(_dafny.string_of(_dafny.Seq("IF THE TESTS FAIL OTHER THAN A AES GCM TAG VALIDATION EXCEPTION, CUT AN ISSUE.\n"))) + _dafny.print(_dafny.string_of(_dafny.Seq("IF THE TESTS ALL FAIL IT MEANS THE TEST PASSED!"))) + if not((d_1_result_).is_Failure): + raise _dafny.HaltException("dafny/TestVectors/test/RunMain.dfy(65,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + + @staticmethod + def TestNetInvalidTestVectorsExpectSuccessOnRetry(): + d_0_directory_: _dafny.Seq + out0_: _dafny.Seq + out0_ = default__.GetTestVectorExecutionDirectory() + d_0_directory_ = out0_ + d_1_result_: Wrappers.Result + out1_: Wrappers.Result + out1_ = EsdkTestManifests.default__.StartDecryptVectors(EsdkManifestOptions.ManifestOptions_Decrypt((d_0_directory_) + (_dafny.Seq("dafny/TestVectors/test/invalid-Net-4.0.0/")), _dafny.Seq("manifest.json"), AwsCryptographyEncryptionSdkTypes.NetV4__0__0__RetryPolicy_ALLOW__RETRY(), Wrappers.Option_None())) + d_1_result_ = out1_ + if (d_1_result_).is_Failure: + _dafny.print(_dafny.string_of((d_1_result_).error)) + if not((d_1_result_).is_Success): + raise _dafny.HaltException("dafny/TestVectors/test/RunMain.dfy(80,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + + @staticmethod + def TestNet401ValidTestVectorsExpectSuccess(): + d_0_directory_: _dafny.Seq + out0_: _dafny.Seq + out0_ = default__.GetTestVectorExecutionDirectory() + d_0_directory_ = out0_ + d_1_result_: Wrappers.Result + out1_: Wrappers.Result + out1_ = EsdkTestManifests.default__.StartDecryptVectors(EsdkManifestOptions.ManifestOptions_Decrypt((d_0_directory_) + (_dafny.Seq("dafny/TestVectors/test/v4-Net-4.0.1/")), _dafny.Seq("manifest.json"), AwsCryptographyEncryptionSdkTypes.NetV4__0__0__RetryPolicy_FORBID__RETRY(), Wrappers.Option_None())) + d_1_result_ = out1_ + if (d_1_result_).is_Failure: + _dafny.print(_dafny.string_of((d_1_result_).error)) + if not((d_1_result_).is_Success): + raise _dafny.HaltException("dafny/TestVectors/test/RunMain.dfy(95,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + @staticmethod def TestGenerateEncryptManifest(): d_0_directory_: _dafny.Seq @@ -244,7 +305,7 @@ def TestGenerateEncryptManifest(): if (d_1_result_).is_Failure: _dafny.print(_dafny.string_of((d_1_result_).error)) if not((d_1_result_).is_Success): - raise _dafny.HaltException("dafny/TestVectors/test/RunMain.dfy(38,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/TestVectors/test/RunMain.dfy(108,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) @staticmethod def TestEncryptManifest(): @@ -259,7 +320,7 @@ def TestEncryptManifest(): if (d_1_result_).is_Failure: _dafny.print(_dafny.string_of((d_1_result_).error)) if not((d_1_result_).is_Success): - raise _dafny.HaltException("dafny/TestVectors/test/RunMain.dfy(53,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/TestVectors/test/RunMain.dfy(123,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) @staticmethod def TestDecryptManifest(): @@ -269,10 +330,10 @@ def TestDecryptManifest(): d_0_directory_ = out0_ d_1_result_: Wrappers.Result out1_: Wrappers.Result - out1_ = EsdkTestManifests.default__.StartDecryptVectors(EsdkManifestOptions.ManifestOptions_Decrypt((d_0_directory_) + (_dafny.Seq("dafny/TestVectors/test/")), _dafny.Seq("decrypt-manifest.json"), Wrappers.Option_None())) + out1_ = EsdkTestManifests.default__.StartDecryptVectors(EsdkManifestOptions.ManifestOptions_Decrypt((d_0_directory_) + (_dafny.Seq("dafny/TestVectors/test/")), _dafny.Seq("decrypt-manifest.json"), AwsCryptographyEncryptionSdkTypes.NetV4__0__0__RetryPolicy_FORBID__RETRY(), Wrappers.Option_None())) d_1_result_ = out1_ if (d_1_result_).is_Failure: _dafny.print(_dafny.string_of((d_1_result_).error)) if not((d_1_result_).is_Success): - raise _dafny.HaltException("dafny/TestVectors/test/RunMain.dfy(69,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/TestVectors/test/RunMain.dfy(140,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) diff --git a/TestVectors/runtimes/python/test/internaldafny/generated/__pycache__/TestWrappedESDKMain.cpython-311.pyc b/TestVectors/runtimes/python/test/internaldafny/generated/__pycache__/TestWrappedESDKMain.cpython-311.pyc deleted file mode 100644 index 1e9fd17e153fa99af7315f4e25e8dfd7178ba772..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39437 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 diff --git a/TestVectors/runtimes/python/test/internaldafny/generated/__pycache__/TestWrappedESDKMain.cpython-312.pyc b/TestVectors/runtimes/python/test/internaldafny/generated/__pycache__/TestWrappedESDKMain.cpython-312.pyc deleted file mode 100644 index 2956f35db8ddb8bc6c4a9582dc12bfaa483b3566..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32003 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 PT<(Ieog#9iA20oH5zLO& diff --git a/TestVectors/runtimes/python/test/internaldafny/generated/__pycache__/__main__.cpython-311.pyc b/TestVectors/runtimes/python/test/internaldafny/generated/__pycache__/__main__.cpython-311.pyc deleted file mode 100644 index 6d5985a46e466fb54816a48a85dabae8fe3ff5e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1216 zcmah|&1>976rYhs`=QOctGcmigJEeyU`d?KLYw*!0#4eJk`G$!1|k#0L>jMmGy2F# z+qFUpTkxTWUIHoU(TC!;B!&J9$zPx?3l%yAa>~u%OYkXgw2>3%k~eSO{N9^+AM-}~ zvtHK`khihc{RboTTq*@=ufg6a*m;N?>HM3Slj<$su>K`c*eT8-aJ}OjX)|uX)Db(!`3iS5M>N`-?BbZZy zJa`3thFGoNC~U`(IBOb;w0&6EoDwtovxRmSfK!(8-Du#2`X3eNoXWfVHz1#BtQj)v z6bFA-*$20RDDo9ln0seIJVae|58a&m2}f_8=^x;G_;8)~m0#yq(BG(~WF^a?>rjHa z!tQ{ooIaCb8Y&R9+1wwte+Zcf+k9ZVw&Q#4p)YO+oZ75Shv6dgY!L@h&-WHX=k{VA zsJ+U<=sL3_AN&MV-E&#k4&rD7+#}d)_q>P+kMim9F7ue65p&v><UwE)^VBCW<=&rH$o$$MYy3GyBA@v&3RsY3aY$Ah(YeE7~^M1ALS!OUnKA26wM`vIYq~k!~6_= zoD`g*`J~`oqTxoGcm6N+aRu5vZgeJ%&gk2e)F$NU|K!Af(VdZ|9pAt^61cb j3AC$0Fj&KRXvNOScI*5p|7 z9Ry%YT=pgSAN-o_<`z$2gslKhMx2Vf46l637sbRXRZZ#f$wOM!=#h-c3Mt(=6@ z^+oStoj!H=R>Y)yza9b)>H%2jkOODLywgYX8v*OlDgq+fbTn$nq$1sX)IZBzMo{R3 zX}kwWpFNsuCvl&WSpf68Q+hzjjcGhxdqhmLjon+W-n8eg2#(2XX3~!5Fwp96&<2ioN z^)e|d$t3P$NGMq-@eO=rVt0}$0)|p9VXkdchpFPOn6{CnB;f}W2A<%A5N64HzI2;R z`=Np-&XNv?WCCZYn@ISPVd8L`NZi0FOIW|GpL4o8qmzuAvMnDHU(T?Uw~JITvk9*gmjgjtvt)04y^4D(&Z5(%?F^<2i=Q!f@D+{5ZP5kbaz z#?_7lA>0DtAE0XubZvsFO;Ec9PJRa`c90As8_lin)i>%|q~o=^(($-zxn`;6Y5Ymu zD>WbKn7_V(O4d@m922 aTF>EXt1NW;vEED4>gCSfZs}9E%<(_%zXPcN diff --git a/TestVectors/runtimes/python/test/internaldafny/generated/__pycache__/module_.cpython-311.pyc b/TestVectors/runtimes/python/test/internaldafny/generated/__pycache__/module_.cpython-311.pyc deleted file mode 100644 index 2c8b6cd7ce40bb07628b158e606800191e7bf0f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36936 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 asUcRKA>r51x<8fFdEl$3h+NGNp8h|*Lc=it diff --git a/TestVectors/runtimes/python/test/internaldafny/generated/module_.py b/TestVectors/runtimes/python/test/internaldafny/generated/module_.py index 508814e7a..2e8b29492 100644 --- a/TestVectors/runtimes/python/test/internaldafny/generated/module_.py +++ b/TestVectors/runtimes/python/test/internaldafny/generated/module_.py @@ -105,7 +105,7 @@ import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK import aws_encryption_sdk_test_vectors.internaldafny.generated.WrappedESDK as WrappedESDK import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites @@ -243,6 +243,58 @@ def Test____Main____(noArgsParameter__): _dafny.print(_dafny.string_of(d_1_haltMessage_)) _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) d_0_success_ = False + _dafny.print(_dafny.string_of(_dafny.Seq("TestWrappedESDKMain.TestNetRetryFlagVectorsExpectSuccess: "))) + try: + if True: + TestWrappedESDKMain.default__.TestNetRetryFlagVectorsExpectSuccess() + if True: + _dafny.print(_dafny.string_of(_dafny.Seq("PASSED\n"))) + except _dafny.HaltException as e: + d_2_haltMessage_ = e.message + if True: + _dafny.print(_dafny.string_of(_dafny.Seq("FAILED\n "))) + _dafny.print(_dafny.string_of(d_2_haltMessage_)) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + d_0_success_ = False + _dafny.print(_dafny.string_of(_dafny.Seq("TestWrappedESDKMain.TestNetInvalidTestVectorsExpectFailure: "))) + try: + if True: + TestWrappedESDKMain.default__.TestNetInvalidTestVectorsExpectFailure() + if True: + _dafny.print(_dafny.string_of(_dafny.Seq("PASSED\n"))) + except _dafny.HaltException as e: + d_3_haltMessage_ = e.message + if True: + _dafny.print(_dafny.string_of(_dafny.Seq("FAILED\n "))) + _dafny.print(_dafny.string_of(d_3_haltMessage_)) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + d_0_success_ = False + _dafny.print(_dafny.string_of(_dafny.Seq("TestWrappedESDKMain.TestNetInvalidTestVectorsExpectSuccessOnRetry: "))) + try: + if True: + TestWrappedESDKMain.default__.TestNetInvalidTestVectorsExpectSuccessOnRetry() + if True: + _dafny.print(_dafny.string_of(_dafny.Seq("PASSED\n"))) + except _dafny.HaltException as e: + d_4_haltMessage_ = e.message + if True: + _dafny.print(_dafny.string_of(_dafny.Seq("FAILED\n "))) + _dafny.print(_dafny.string_of(d_4_haltMessage_)) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + d_0_success_ = False + _dafny.print(_dafny.string_of(_dafny.Seq("TestWrappedESDKMain.TestNet401ValidTestVectorsExpectSuccess: "))) + try: + if True: + TestWrappedESDKMain.default__.TestNet401ValidTestVectorsExpectSuccess() + if True: + _dafny.print(_dafny.string_of(_dafny.Seq("PASSED\n"))) + except _dafny.HaltException as e: + d_5_haltMessage_ = e.message + if True: + _dafny.print(_dafny.string_of(_dafny.Seq("FAILED\n "))) + _dafny.print(_dafny.string_of(d_5_haltMessage_)) + _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) + d_0_success_ = False if not(d_0_success_): raise _dafny.HaltException("(1,0): " + _dafny.string_of(_dafny.Seq("Test failures occurred: see above.\n"))) From 9db601a648629a7e073204b017bd5b605274bdf8 Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Thu, 12 Dec 2024 17:02:18 -0800 Subject: [PATCH 08/50] m --- .../dafnyImplInterface.py | 2 +- .../dafny_to_smithy.py | 8 ++++---- .../aws_cryptography_encryptionsdk/models.py | 13 ------------- .../aws_cryptography_encryptionsdk/plugin.py | 2 +- .../smithy_to_dafny.py | 8 ++++---- 5 files changed, 10 insertions(+), 23 deletions(-) diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafnyImplInterface.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafnyImplInterface.py index e424fdcd6..ea1fc6f7a 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafnyImplInterface.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafnyImplInterface.py @@ -2,7 +2,7 @@ # SPDX-License-Identifier: Apache-2.0 # Do not modify this file. This file is machine generated, and any changes to it will be overwritten. -from aws_encryption_sdk.internaldafny.generated.EncryptionSdk import ESDKClient +from aws_encryption_sdk.internaldafny.generated.ESDK import ESDKClient from .dafny_protocol import DafnyRequest diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafny_to_smithy.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafny_to_smithy.py index c9a0bde30..d5aa0c5cf 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafny_to_smithy.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafny_to_smithy.py @@ -4,8 +4,8 @@ import aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.dafny_to_smithy from aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes import ( - NetV4__0__0__RetryPolicy_ALLOW__RETRY, - NetV4__0__0__RetryPolicy_FORBID__RETRY, + NetV4_0_0_RetryPolicy_ALLOW__RETRY, + NetV4_0_0_RetryPolicy_FORBID__RETRY, ) import aws_encryption_sdk.internaldafny.generated.module_ import aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.dafny_to_smithy @@ -125,10 +125,10 @@ def aws_cryptography_encryptionsdk_DecryptOutput(dafny_input): def aws_cryptography_encryptionsdk_NetV4_0_0_RetryPolicy(dafny_input): - if isinstance(dafny_input, NetV4__0__0__RetryPolicy_FORBID__RETRY): + if isinstance(dafny_input, NetV4_0_0_RetryPolicy_FORBID__RETRY): return "FORBID_RETRY" - elif isinstance(dafny_input, NetV4__0__0__RetryPolicy_ALLOW__RETRY): + elif isinstance(dafny_input, NetV4_0_0_RetryPolicy_ALLOW__RETRY): return "ALLOW_RETRY" else: diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/models.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/models.py index 8f37ce666..30483582c 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/models.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/models.py @@ -354,18 +354,5 @@ def __eq__(self, other: Any) -> bool: return all(getattr(self, a) == getattr(other, a) for a in attributes) -class NetV4_0_0_RetryPolicy: - """During Decryption, Allow or Forbid ESDK-NET v4.0.0 Behavior if the ESDK - Message Header fails the Header Authentication check.""" - - FORBID_RETRY = "FORBID_RETRY" - - ALLOW_RETRY = "ALLOW_RETRY" - - # This set contains every possible value known at the time this was generated. New - # values may be added in the future. - values = frozenset({"FORBID_RETRY", "ALLOW_RETRY"}) - - class Unit: pass diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/plugin.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/plugin.py index aca4da85b..62f7c5091 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/plugin.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/plugin.py @@ -20,7 +20,7 @@ def set_config_impl(config: Config): """ config.dafnyImplInterface = DafnyImplInterface() if isinstance(config, AwsEncryptionSdkConfig): - from aws_encryption_sdk.internaldafny.generated.EncryptionSdk import default__ + from aws_encryption_sdk.internaldafny.generated.ESDK import default__ config.dafnyImplInterface.impl = default__.ESDK( smithy_config_to_dafny_config(config) diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/smithy_to_dafny.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/smithy_to_dafny.py index daa2f88ea..a22bccd6b 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/smithy_to_dafny.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/smithy_to_dafny.py @@ -10,8 +10,8 @@ DecryptOutput_DecryptOutput as DafnyDecryptOutput, EncryptInput_EncryptInput as DafnyEncryptInput, EncryptOutput_EncryptOutput as DafnyEncryptOutput, - NetV4__0__0__RetryPolicy_ALLOW__RETRY, - NetV4__0__0__RetryPolicy_FORBID__RETRY, + NetV4_0_0_RetryPolicy_ALLOW__RETRY, + NetV4_0_0_RetryPolicy_FORBID__RETRY, ) import aws_encryption_sdk.internaldafny.generated.module_ import aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.smithy_to_dafny @@ -217,10 +217,10 @@ def aws_cryptography_encryptionsdk_AwsEncryptionSdkConfig(native_input): def aws_cryptography_encryptionsdk_NetV4_0_0_RetryPolicy(native_input): if native_input == "FORBID_RETRY": - return NetV4__0__0__RetryPolicy_FORBID__RETRY() + return NetV4_0_0_RetryPolicy_FORBID__RETRY() elif native_input == "ALLOW_RETRY": - return NetV4__0__0__RetryPolicy_ALLOW__RETRY() + return NetV4_0_0_RetryPolicy_ALLOW__RETRY() else: raise ValueError(f"No recognized enum value in enum type: {native_input=}") From cbc9e7dbdbf1a1273f4e0769d7d0afc62c069db9 Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Thu, 12 Dec 2024 17:08:11 -0800 Subject: [PATCH 09/50] m --- .../aws_cryptography_encryptionsdk/dafny_to_smithy.py | 8 ++++---- .../aws_cryptography_encryptionsdk/smithy_to_dafny.py | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafny_to_smithy.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafny_to_smithy.py index d5aa0c5cf..c9a0bde30 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafny_to_smithy.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafny_to_smithy.py @@ -4,8 +4,8 @@ import aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.dafny_to_smithy from aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes import ( - NetV4_0_0_RetryPolicy_ALLOW__RETRY, - NetV4_0_0_RetryPolicy_FORBID__RETRY, + NetV4__0__0__RetryPolicy_ALLOW__RETRY, + NetV4__0__0__RetryPolicy_FORBID__RETRY, ) import aws_encryption_sdk.internaldafny.generated.module_ import aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.dafny_to_smithy @@ -125,10 +125,10 @@ def aws_cryptography_encryptionsdk_DecryptOutput(dafny_input): def aws_cryptography_encryptionsdk_NetV4_0_0_RetryPolicy(dafny_input): - if isinstance(dafny_input, NetV4_0_0_RetryPolicy_FORBID__RETRY): + if isinstance(dafny_input, NetV4__0__0__RetryPolicy_FORBID__RETRY): return "FORBID_RETRY" - elif isinstance(dafny_input, NetV4_0_0_RetryPolicy_ALLOW__RETRY): + elif isinstance(dafny_input, NetV4__0__0__RetryPolicy_ALLOW__RETRY): return "ALLOW_RETRY" else: diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/smithy_to_dafny.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/smithy_to_dafny.py index a22bccd6b..daa2f88ea 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/smithy_to_dafny.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/smithy_to_dafny.py @@ -10,8 +10,8 @@ DecryptOutput_DecryptOutput as DafnyDecryptOutput, EncryptInput_EncryptInput as DafnyEncryptInput, EncryptOutput_EncryptOutput as DafnyEncryptOutput, - NetV4_0_0_RetryPolicy_ALLOW__RETRY, - NetV4_0_0_RetryPolicy_FORBID__RETRY, + NetV4__0__0__RetryPolicy_ALLOW__RETRY, + NetV4__0__0__RetryPolicy_FORBID__RETRY, ) import aws_encryption_sdk.internaldafny.generated.module_ import aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.smithy_to_dafny @@ -217,10 +217,10 @@ def aws_cryptography_encryptionsdk_AwsEncryptionSdkConfig(native_input): def aws_cryptography_encryptionsdk_NetV4_0_0_RetryPolicy(native_input): if native_input == "FORBID_RETRY": - return NetV4_0_0_RetryPolicy_FORBID__RETRY() + return NetV4__0__0__RetryPolicy_FORBID__RETRY() elif native_input == "ALLOW_RETRY": - return NetV4_0_0_RetryPolicy_ALLOW__RETRY() + return NetV4__0__0__RetryPolicy_ALLOW__RETRY() else: raise ValueError(f"No recognized enum value in enum type: {native_input=}") From 470c8a7626ab75b5786fb0ae263f1d45b257ba83 Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Thu, 12 Dec 2024 17:12:47 -0800 Subject: [PATCH 10/50] m --- .../internaldafny/extern/wrapped_esdk.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/wrapped_esdk.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/wrapped_esdk.py index 04d938847..faf6f9d03 100644 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/wrapped_esdk.py +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/wrapped_esdk.py @@ -2,7 +2,7 @@ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers import aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.client import aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.config -import aws_encryption_sdk.internaldafny.generated.EncryptionSdk as EncryptionSdk +import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK import aws_encryption_sdk_test_vectors.smithygenerated.aws_cryptography_encryptionsdk.shim as shim class default__(WrappedESDK.default__): @@ -10,7 +10,7 @@ class default__(WrappedESDK.default__): @staticmethod def WrappedESDK(config): smithy_client = aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.client.AwsEncryptionSdk( - dafny_client=EncryptionSdk.default__.ESDK(config).value + dafny_client=ESDK.default__.ESDK(config).value ) wrapped_client = shim.ESDKShim(smithy_client) return Wrappers.Result_Success(wrapped_client) From bceac3ba5fe41b3699f55f4ff31925357f7084e1 Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Thu, 12 Dec 2024 17:19:31 -0800 Subject: [PATCH 11/50] m --- TestVectors/dafny/TestVectors/src/LibraryIndex.dfy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TestVectors/dafny/TestVectors/src/LibraryIndex.dfy b/TestVectors/dafny/TestVectors/src/LibraryIndex.dfy index 315761a89..57d7f92f7 100644 --- a/TestVectors/dafny/TestVectors/src/LibraryIndex.dfy +++ b/TestVectors/dafny/TestVectors/src/LibraryIndex.dfy @@ -3,7 +3,7 @@ include "../Model/AwsCryptographyEncryptionSdkTypesWrapped.dfy" -module WrappedESDK refines WrappedAbstractAwsCryptographyEncryptionSdkService +module {:extern "software.amazon.cryptography.encryptionsdk.internaldafny.wrapped" } WrappedESDK refines WrappedAbstractAwsCryptographyEncryptionSdkService { import WrappedService = ESDK From bdc7446e4ea839bb89282036762844f0d37c2a10 Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Fri, 13 Dec 2024 09:08:40 -0800 Subject: [PATCH 12/50] m --- .../library_interop_test_vectors.yml | 189 ++++++++++++++++++ 1 file changed, 189 insertions(+) diff --git a/.github/workflows/library_interop_test_vectors.yml b/.github/workflows/library_interop_test_vectors.yml index 338bce5dc..9e00908f3 100644 --- a/.github/workflows/library_interop_test_vectors.yml +++ b/.github/workflows/library_interop_test_vectors.yml @@ -33,6 +33,174 @@ jobs: id-token: write contents: read + # TestVectors will call KMS + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v2 + with: + aws-region: us-west-2 + role-to-assume: arn:aws:iam::370957321024:role/GitHub-CI-Public-ESDK-Dafny-Role-us-west-2 + role-session-name: InterOpTests + + - uses: actions/checkout@v3 + # Not all submodules are needed. + # We manually pull the submodule we DO need. + - run: git submodule update --init libraries + - run: git submodule update --init --recursive mpl + + # Set up runtimes + - name: Setup .NET Core SDK ${{ matrix.dotnet-version }} + if: matrix.language == 'net' + uses: actions/setup-dotnet@v3 + with: + dotnet-version: ${{ matrix.dotnet-version }} + + # Setup Java in Rust is needed for running polymorph + - name: Setup Java 17 + if: matrix.language == 'java' || matrix.language == 'rust' + uses: actions/setup-java@v3 + with: + distribution: "corretto" + java-version: 17 + + - name: Setup Python for running tests + if: matrix.language == 'python' + uses: actions/setup-python@v4 + with: + python-version: 3.11 + architecture: x64 + - run: | + python -m pip install --upgrade pip + pip install --upgrade tox + pip install poetry + + - name: Setup Rust Toolchain for GitHub CI + if: matrix.language == 'rust' + uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 + with: + components: rustfmt + # TODO - uncomment this after Rust formatter works + # - name: Rustfmt Check + # uses: actions-rust-lang/rustfmt@v1 + + # TODO: Remove this after the formatting in Rust starts working + - name: smithy-dafny Rust hacks + if: matrix.language == 'rust' + shell: bash + run: | + if [ "$RUNNER_OS" == "macOS" ]; then + sed -i '' 's|rustfmt --edition 2021 runtimes/rust/src/implementation_from_dafny.rs|#&|' mpl/smithy-dafny/SmithyDafnyMakefile.mk + else + sed -i 's|rustfmt --edition 2021 runtimes/rust/src/implementation_from_dafny.rs|#&|' mpl/smithy-dafny/SmithyDafnyMakefile.mk + fi + + - name: Setup NASM for Windows in Rust (aws-lc-sys) + if: matrix.language == 'rust' && matrix.os == 'windows-latest' + uses: ilammy/setup-nasm@v1 + + - name: Setup Dafny + uses: dafny-lang/setup-dafny-action@v1.7.0 + with: + dafny-version: ${{ inputs.dafny }} + + - name: Regenerate code using smithy-dafny if necessary + if: ${{ inputs.regenerate-code }} + uses: ./.github/actions/polymorph_codegen + with: + dafny: ${{ inputs.dafny }} + library: ${{ matrix.library }} + diff-generated-code: false + + # Build implementation for each runtime + - name: Build ${{ matrix.library }} implementation in Java + if: matrix.language == 'java' + shell: bash + working-directory: ./${{ matrix.library }} + run: | + # This works because `node` is installed by default on GHA runners + CORES=$(node -e 'console.log(os.cpus().length)') + make build_java CORES=$CORES + + - name: Build ${{ matrix.library }} implementation in .NET + if: matrix.language == 'net' + shell: bash + working-directory: ./${{ matrix.library }} + run: | + # This works because `node` is installed by default on GHA runners + CORES=$(node -e 'console.log(os.cpus().length)') + make transpile_net + + - name: Install Smithy-Dafny codegen dependencies + if: matrix.language == 'rust' + uses: ./.github/actions/install_smithy_dafny_codegen_dependencies + + # TODO: Remove this after checking in Rust polymorph code + - name: Run make polymorph_rust + if: matrix.language == 'rust' + shell: bash + working-directory: ./${{ matrix.library }} + run: | + make polymorph_rust + + - name: Build ${{ matrix.library }} implementation in Rust + if: matrix.language == 'rust' + shell: bash + working-directory: ./${{ matrix.library }} + run: | + CORES=$(node -e 'console.log(os.cpus().length)') + make transpile_rust CORES=$CORES + + - name: Build ${{ matrix.library }} implementation in Python + if: matrix.language == 'python' + shell: bash + working-directory: ./${{ matrix.library }} + run: | + # This works because `node` is installed by default on GHA runners + CORES=$(node -e 'console.log(os.cpus().length)') + make transpile_python CORES=$CORES + + - name: Setup gradle + if: matrix.language == 'java' + uses: gradle/gradle-build-action@v2 + with: + gradle-version: 7.2 + + - name: Create Manifests + working-directory: ./${{ matrix.library }} + run: make test_generate_vectors_${{ matrix.language }} + + - name: Create Encrypt Manifests + working-directory: ./${{ matrix.library }} + run: make test_encrypt_vectors_${{ matrix.language }} + + - name: Upload Encrypt Manifest and keys.json files + uses: actions/upload-artifact@v4 + with: + name: ${{matrix.os}}_vector_artifact_${{matrix.language}}_${{github.sha}} + path: | + ./${{matrix.library}}/runtimes/${{matrix.language}}/*.json + ./${{matrix.library}}/runtimes/${{matrix.language}}/plaintexts + ./${{matrix.library}}/runtimes/${{matrix.language}}/ciphertexts + + testInteroperablity: + needs: generateEncryptVectors + strategy: + matrix: + library: [TestVectors] + os: [ + # https://taskei.amazon.dev/tasks/CrypTool-5283 + # windows-latest, + ubuntu-latest, + macos-13, + ] + encrypting_language: [java, net, rust, python] + decrypting_language: [java, net, rust, python] + # https://taskei.amazon.dev/tasks/CrypTool-5284 + dotnet-version: ["6.0.x"] + runs-on: ${{ matrix.os }} + permissions: + id-token: write + contents: read + steps: - name: Support longpaths on Git checkout run: | @@ -238,6 +406,17 @@ jobs: distribution: "corretto" java-version: 17 + - name: Setup Python for running tests + if: matrix.decrypting_language == == 'python' + uses: actions/setup-python@v4 + with: + python-version: 3.11 + architecture: x64 + - run: | + python -m pip install --upgrade pip + pip install --upgrade tox + pip install poetry + - name: Setup Rust Toolchain for GitHub CI if: matrix.decrypting_language == 'rust' uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 @@ -315,6 +494,7 @@ jobs: CORES=$(node -e 'console.log(os.cpus().length)') make transpile_rust CORES=$CORES +<<<<<<< HEAD - name: Build ${{ matrix.library }} implementation in Go if: matrix.decrypting_language == 'go' shell: bash @@ -331,6 +511,15 @@ jobs: working-directory: ./${{ matrix.library }} run: | make purge_polymorph_code +======= + - name: Build ${{ matrix.library }} implementation in Python + if: matrix.decrypting_language == 'python' + shell: bash + working-directory: ./${{ matrix.library }} + run: | + CORES=$(node -e 'console.log(os.cpus().length)') + make transpile_python CORES=$CORES +>>>>>>> a812a13f (m) - name: Download Encrypt Manifest Artifact uses: actions/download-artifact@v4 From b86db44a5a78d2412f162646ab41f193f847aa34 Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Fri, 13 Dec 2024 09:12:07 -0800 Subject: [PATCH 13/50] m --- .github/workflows/library_interop_test_vectors.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/library_interop_test_vectors.yml b/.github/workflows/library_interop_test_vectors.yml index 9e00908f3..b4fc67223 100644 --- a/.github/workflows/library_interop_test_vectors.yml +++ b/.github/workflows/library_interop_test_vectors.yml @@ -407,7 +407,7 @@ jobs: java-version: 17 - name: Setup Python for running tests - if: matrix.decrypting_language == == 'python' + if: matrix.decrypting_language == 'python' uses: actions/setup-python@v4 with: python-version: 3.11 From 6978b07c171248e9524a69a646061982bb4faad0 Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Fri, 13 Dec 2024 10:16:27 -0800 Subject: [PATCH 14/50] m --- .../internaldafny/extern/__init__.py | 1 + .../__pycache__/__init__.cpython-311.pyc | Bin 323 -> 364 bytes .../__pycache__/wrapped_esdk.cpython-311.pyc | Bin 2007 -> 1982 bytes .../__pycache__/__init__.cpython-311.pyc | Bin 282 -> 282 bytes .../__pycache__/shim.cpython-311.pyc | Bin 3959 -> 3959 bytes .../generated/AllEsdkV4NoReqEc.py | 277 ------- .../generated/AllEsdkV4WithReqEc.py | 246 ------ .../generated/EsdkManifestOptions.py | 266 ------ .../generated/EsdkTestManifests.py | 633 -------------- .../generated/EsdkTestVectors.py | 780 ------------------ .../generated/ParseEsdkJsonManifest.py | 629 -------------- .../internaldafny/generated/WrappedESDK.py | 229 ----- .../generated/WrappedESDKMain.py | 346 -------- .../generated/WriteEsdkJsonManifests.py | 369 --------- .../internaldafny/generated/WriteVectors.py | 369 --------- .../src/internaldafny/generated/__main__.py | 15 - .../internaldafny/generated/dafny_src-py.dtr | 35 - .../src/internaldafny/generated/module_.py | 234 ------ 18 files changed, 1 insertion(+), 4428 deletions(-) delete mode 100644 TestVectors/runtimes/python/src/internaldafny/generated/AllEsdkV4NoReqEc.py delete mode 100644 TestVectors/runtimes/python/src/internaldafny/generated/AllEsdkV4WithReqEc.py delete mode 100644 TestVectors/runtimes/python/src/internaldafny/generated/EsdkManifestOptions.py delete mode 100644 TestVectors/runtimes/python/src/internaldafny/generated/EsdkTestManifests.py delete mode 100644 TestVectors/runtimes/python/src/internaldafny/generated/EsdkTestVectors.py delete mode 100644 TestVectors/runtimes/python/src/internaldafny/generated/ParseEsdkJsonManifest.py delete mode 100644 TestVectors/runtimes/python/src/internaldafny/generated/WrappedESDK.py delete mode 100644 TestVectors/runtimes/python/src/internaldafny/generated/WrappedESDKMain.py delete mode 100644 TestVectors/runtimes/python/src/internaldafny/generated/WriteEsdkJsonManifests.py delete mode 100644 TestVectors/runtimes/python/src/internaldafny/generated/WriteVectors.py delete mode 100644 TestVectors/runtimes/python/src/internaldafny/generated/__main__.py delete mode 100644 TestVectors/runtimes/python/src/internaldafny/generated/dafny_src-py.dtr delete mode 100644 TestVectors/runtimes/python/src/internaldafny/generated/module_.py diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__init__.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__init__.py index df1c5e11e..94e3df78f 100644 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__init__.py +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__init__.py @@ -1,3 +1,4 @@ from . import ( wrapped_esdk, + use_esdk_testvectors, ) \ No newline at end of file diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__pycache__/__init__.cpython-311.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__pycache__/__init__.cpython-311.pyc index 39f1879c8a91ff96883aa4da2f3e0df6d3ac0ebc..0153eb4a73ed76b379fc07462825da1fabf93c39 100644 GIT binary patch delta 182 zcmX@i^oEIdIWI340}#Yi#H8C!f-@RtFE}N;hy|$Z7K>}Ji}&VLOe&0w@srOpONuI7 z5!Sjctba*Ze*@b^Ve=~>WIOo}b3WMEl?+7^Ky5{0lPg$U7$qj}WyxX`pRB>^!YDX7 zmvt_q#pHvm!jt9LBzcgnnry|Es=^P_2ePwB7DPad0kVE^*yQG?l;)(`6{$@=%vP)% ZaDjmUx-mJPU3PK-JKN+Mb~_f3NdPYkO`iY& diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/smithygenerated/aws_cryptography_encryptionsdk/__pycache__/__init__.cpython-311.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/smithygenerated/aws_cryptography_encryptionsdk/__pycache__/__init__.cpython-311.pyc index ad9cf8ce43308aa3a72a7d552badb67297ba6bdf..6e3de545550874ff905bd6cf8a1a74178515cd64 100644 GIT binary patch delta 20 acmbQmG>eIQIWI340}xy;j@ih~&jeIQIWI340}yECM{nfjX9NH&69dlx diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/smithygenerated/aws_cryptography_encryptionsdk/__pycache__/shim.cpython-311.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/smithygenerated/aws_cryptography_encryptionsdk/__pycache__/shim.cpython-311.pyc index 7290c627e128f016c4a33663aed7beb093b84ec7..3c14e4f2b1a5ee4db559b21414488e91463a1f54 100644 GIT binary patch delta 20 acmew^_g#*AIWI340}xy;j@iha!w&#MRR!7r delta 20 acmew^_g#*AIWI340}yECM{nfL;RgUdnFTBW diff --git a/TestVectors/runtimes/python/src/internaldafny/generated/AllEsdkV4NoReqEc.py b/TestVectors/runtimes/python/src/internaldafny/generated/AllEsdkV4NoReqEc.py deleted file mode 100644 index 472eb97cf..000000000 --- a/TestVectors/runtimes/python/src/internaldafny/generated/AllEsdkV4NoReqEc.py +++ /dev/null @@ -1,277 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import .internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import Wrappers as Wrappers -import BoundedInts as BoundedInts -import StandardLibrary_UInt as StandardLibrary_UInt -import StandardLibrary_Sequence as StandardLibrary_Sequence -import StandardLibrary_String as StandardLibrary_String -import StandardLibrary as StandardLibrary -import UTF8 as UTF8 -import AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import ExternRandom as ExternRandom -import Random as Random -import AESEncryption as AESEncryption -import ExternDigest as ExternDigest -import Digest as Digest -import HMAC as HMAC -import WrappedHMAC as WrappedHMAC -import HKDF as HKDF -import WrappedHKDF as WrappedHKDF -import Signature as Signature -import KdfCtr as KdfCtr -import RSAEncryption as RSAEncryption -import ECDH as ECDH -import AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import AtomicPrimitives as AtomicPrimitives -import ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import Base64 as Base64 -import AlgorithmSuites as AlgorithmSuites -import Materials as Materials -import Keyring as Keyring -import Relations as Relations -import Seq_MergeSort as Seq_MergeSort -import Math as Math -import Seq as Seq -import MultiKeyring as MultiKeyring -import AwsArnParsing as AwsArnParsing -import AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import Actions as Actions -import AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import AwsKmsUtils as AwsKmsUtils -import Constants as Constants -import UUID as UUID -import MaterialWrapping as MaterialWrapping -import SortedSets as SortedSets -import CanonicalEncryptionContext as CanonicalEncryptionContext -import IntermediateKeyWrapping as IntermediateKeyWrapping -import EdkWrapping as EdkWrapping -import ErrorMessages as ErrorMessages -import AwsKmsKeyring as AwsKmsKeyring -import StrictMultiKeyring as StrictMultiKeyring -import AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import Com_Amazonaws_Kms as Com_Amazonaws_Kms -import Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import DiscoveryMultiKeyring as DiscoveryMultiKeyring -import AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import AwsKmsMrkKeyring as AwsKmsMrkKeyring -import MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import DafnyLibraries as DafnyLibraries -import Time as Time -import LocalCMC as LocalCMC -import SynchronizedLocalCMC as SynchronizedLocalCMC -import StormTracker as StormTracker -import StormTrackingCMC as StormTrackingCMC -import CacheConstants as CacheConstants -import AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import AwsKmsRsaKeyring as AwsKmsRsaKeyring -import EcdhEdkWrapping as EcdhEdkWrapping -import RawECDHKeyring as RawECDHKeyring -import AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import RawAESKeyring as RawAESKeyring -import RawRSAKeyring as RawRSAKeyring -import CMM as CMM -import Defaults as Defaults -import Commitment as Commitment -import DefaultCMM as DefaultCMM -import DefaultClientSupplier as DefaultClientSupplier -import Utils as Utils -import RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import MaterialProviders as MaterialProviders -import KeyStoreErrorMessages as KeyStoreErrorMessages -import KmsArn as KmsArn -import Structure as Structure -import KMSKeystoreOperations as KMSKeystoreOperations -import DDBKeystoreOperations as DDBKeystoreOperations -import CreateKeys as CreateKeys -import CreateKeyStoreTable as CreateKeyStoreTable -import GetKeys as GetKeys -import AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import KeyStore as KeyStore -import AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes -import JSON_Utils_Views_Core as JSON_Utils_Views_Core -import JSON_Utils_Views_Writers as JSON_Utils_Views_Writers -import JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core -import JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings -import JSON_Utils_Cursors as JSON_Utils_Cursors -import JSON_Utils_Parsers as JSON_Utils_Parsers -import GeneralInternals as GeneralInternals -import MulInternalsNonlinear as MulInternalsNonlinear -import MulInternals as MulInternals -import Mul as Mul -import ModInternalsNonlinear as ModInternalsNonlinear -import DivInternalsNonlinear as DivInternalsNonlinear -import ModInternals as ModInternals -import DivInternals as DivInternals -import DivMod as DivMod -import Power as Power -import Logarithm as Logarithm -import JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion -import JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping -import JSON_Utils_Str as JSON_Utils_Str -import JSON_Utils_Seq as JSON_Utils_Seq -import JSON_Utils_Vectors as JSON_Utils_Vectors -import JSON_Errors as JSON_Errors -import JSON_Values as JSON_Values -import Unicode as Unicode -import Functions as Functions -import Utf8EncodingForm as Utf8EncodingForm -import Utf16EncodingForm as Utf16EncodingForm -import UnicodeStrings as UnicodeStrings -import JSON_Spec as JSON_Spec -import JSON_Grammar as JSON_Grammar -import JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion -import JSON_Serializer as JSON_Serializer -import JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion -import JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion -import JSON_Deserializer as JSON_Deserializer -import JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec -import JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties -import JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer -import JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core -import JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings -import JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers -import JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams -import JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects -import JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams -import JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays -import JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants -import JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values -import JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API -import JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer -import JSON_ZeroCopy_API as JSON_ZeroCopy_API -import JSON_API as JSON_API -import JSONHelpers as JSONHelpers -import KeyDescription as KeyDescription -import HexStrings as HexStrings -import KeyMaterial as KeyMaterial -import CreateStaticKeyrings as CreateStaticKeyrings -import CreateStaticKeyStores as CreateStaticKeyStores -import KeyringFromKeyDescription as KeyringFromKeyDescription -import CmmFromKeyDescription as CmmFromKeyDescription -import WrappedMaterialProviders as WrappedMaterialProviders -import KeysVectorOperations as KeysVectorOperations -import FileIO as FileIO -import KeyVectors as KeyVectors -import AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import Streams as Streams -import SerializableTypes as SerializableTypes -import SerializeFunctions as SerializeFunctions -import EncryptionContext as EncryptionContext -import HeaderTypes as HeaderTypes -import SharedHeaderFunctions as SharedHeaderFunctions -import EncryptedDataKeys as EncryptedDataKeys -import V1HeaderBody as V1HeaderBody -import V2HeaderBody as V2HeaderBody -import HeaderAuth as HeaderAuth -import Header as Header -import Frames as Frames -import MessageBody as MessageBody -import KeyDerivation as KeyDerivation -import EncryptDecryptHelpers as EncryptDecryptHelpers -import AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import EncryptionSdk as EncryptionSdk -import MplManifestOptions as MplManifestOptions -import GetOpt as GetOpt -import AllAlgorithmSuites as AllAlgorithmSuites -import TestVectors as TestVectors -import AllHierarchy as AllHierarchy -import AllKms as AllKms -import AllKmsMrkAware as AllKmsMrkAware -import AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery -import AllKmsRsa as AllKmsRsa -import AllKmsEcdh as AllKmsEcdh -import AllRawAES as AllRawAES -import AllRawRSA as AllRawRSA -import AllRawECDH as AllRawECDH -import AllDefaultCmm as AllDefaultCmm -import AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm -import AllMulti as AllMulti -import WriteJsonManifests as WriteJsonManifests -import CompleteVectors as CompleteVectors -import ParseJsonManifests as ParseJsonManifests -import TestManifests as TestManifests -import WrappedMaterialProvidersMain as WrappedMaterialProvidersMain -import AesKdfCtr as AesKdfCtr -import StandardLibraryInterop as StandardLibraryInterop -import Sorting as Sorting -import FloatCompare as FloatCompare -import ConcurrentCall as ConcurrentCall -import Base64Lemmas as Base64Lemmas -import .internaldafny.generated.WrappedESDK as WrappedESDK -import .internaldafny.generated.EsdkManifestOptions as EsdkManifestOptions -import .internaldafny.generated.EsdkTestVectors as EsdkTestVectors - -# Module: AllEsdkV4NoReqEc - -class default__: - def __init__(self): - pass - - @_dafny.classproperty - def AllPositiveKeyringTestsNoReqCmmNoKmsRsa(instance): - return ((((((((((_dafny.Set({})) | (AllDefaultCmm.default__.SuccessTestingRequiredEncryptionContextKeysReproducedEncryptionContext)) | (AllHierarchy.default__.Tests)) | (AllKms.default__.Tests)) | (AllKmsMrkAware.default__.Tests)) | (AllKmsMrkAwareDiscovery.default__.Tests)) | (AllRawAES.default__.Tests)) | (AllRawRSA.default__.Tests)) | (AllMulti.default__.Tests)) | (AllRawECDH.default__.Tests)) | (AllKmsEcdh.default__.Tests) - @_dafny.classproperty - def frameSize(instance): - return 512 - @_dafny.classproperty - def AllPostiveKeyringTestsNoDBESuiteNoReqEC(instance): - def iife0_(): - coll0_ = _dafny.Set() - compr_0_: TestVectors.EncryptTestVector - for compr_0_ in (default__.AllPositiveKeyringTestsNoReqCmmNoKmsRsa).Elements: - d_0_keyringConfig_: TestVectors.EncryptTestVector = compr_0_ - if ((d_0_keyringConfig_) in (default__.AllPositiveKeyringTestsNoReqCmmNoKmsRsa)) and (not((d_0_keyringConfig_).is_NegativeEncryptKeyringVector)): - compr_1_: AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo - for compr_1_ in (AllAlgorithmSuites.default__.ESDKAlgorithmSuites).Elements: - d_1_algorithmSuite_: AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo = compr_1_ - if (d_1_algorithmSuite_) in (AllAlgorithmSuites.default__.ESDKAlgorithmSuites): - coll0_ = coll0_.union(_dafny.Set([EsdkTestVectors.EsdkEncryptTestVector_PositiveEncryptTestVector(Wrappers.Option_None(), 4, _dafny.Seq(""), _dafny.Seq(""), _dafny.Seq(""), (d_0_keyringConfig_).encryptDescription, (d_0_keyringConfig_).decryptDescription, Wrappers.Option_None(), Wrappers.Option_None(), AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT(), Wrappers.Option_Some(default__.frameSize), Wrappers.Option_Some(d_1_algorithmSuite_), (d_0_keyringConfig_).name, Wrappers.Option_Some(1))])) - return _dafny.Set(coll0_) - return iife0_() - - @_dafny.classproperty - def AwsKmsRsaTests(instance): - return AllKmsRsa.default__.Tests - @_dafny.classproperty - def esdkAlgorithmSuitesKmsRsa(instance): - def iife0_(): - coll0_ = _dafny.Set() - compr_0_: AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo - for compr_0_ in (AllAlgorithmSuites.default__.AllAlgorithmSuites).Elements: - d_0_suite_: AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo = compr_0_ - if AlgorithmSuites.AlgorithmSuite._Is(d_0_suite_): - if (((d_0_suite_) in (AllAlgorithmSuites.default__.AllAlgorithmSuites)) and (not(((d_0_suite_).signature).is_ECDSA))) and (((d_0_suite_).id).is_ESDK): - coll0_ = coll0_.union(_dafny.Set([d_0_suite_])) - return _dafny.Set(coll0_) - return iife0_() - - @_dafny.classproperty - def AllPositiveKeyringTestsNoDBEKmsRsa(instance): - def iife0_(): - coll0_ = _dafny.Set() - compr_0_: TestVectors.EncryptTestVector - for compr_0_ in (default__.AwsKmsRsaTests).Elements: - d_0_keyringConfig_: TestVectors.EncryptTestVector = compr_0_ - if ((d_0_keyringConfig_) in (default__.AwsKmsRsaTests)) and (not((d_0_keyringConfig_).is_NegativeEncryptKeyringVector)): - compr_1_: AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo - for compr_1_ in (default__.esdkAlgorithmSuitesKmsRsa).Elements: - d_1_algorithmSuite_: AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo = compr_1_ - if (d_1_algorithmSuite_) in (default__.esdkAlgorithmSuitesKmsRsa): - coll0_ = coll0_.union(_dafny.Set([EsdkTestVectors.EsdkEncryptTestVector_PositiveEncryptTestVector(Wrappers.Option_None(), 4, _dafny.Seq(""), _dafny.Seq(""), _dafny.Seq(""), (d_0_keyringConfig_).encryptDescription, (d_0_keyringConfig_).decryptDescription, Wrappers.Option_None(), Wrappers.Option_None(), AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT(), Wrappers.Option_Some(default__.frameSize), Wrappers.Option_Some(d_1_algorithmSuite_), (d_0_keyringConfig_).name, Wrappers.Option_Some(1))])) - return _dafny.Set(coll0_) - return iife0_() - - @_dafny.classproperty - def Tests(instance): - return (default__.AllPostiveKeyringTestsNoDBESuiteNoReqEC) | (default__.AllPositiveKeyringTestsNoDBEKmsRsa) diff --git a/TestVectors/runtimes/python/src/internaldafny/generated/AllEsdkV4WithReqEc.py b/TestVectors/runtimes/python/src/internaldafny/generated/AllEsdkV4WithReqEc.py deleted file mode 100644 index 808f917cb..000000000 --- a/TestVectors/runtimes/python/src/internaldafny/generated/AllEsdkV4WithReqEc.py +++ /dev/null @@ -1,246 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import .internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import Wrappers as Wrappers -import BoundedInts as BoundedInts -import StandardLibrary_UInt as StandardLibrary_UInt -import StandardLibrary_Sequence as StandardLibrary_Sequence -import StandardLibrary_String as StandardLibrary_String -import StandardLibrary as StandardLibrary -import UTF8 as UTF8 -import AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import ExternRandom as ExternRandom -import Random as Random -import AESEncryption as AESEncryption -import ExternDigest as ExternDigest -import Digest as Digest -import HMAC as HMAC -import WrappedHMAC as WrappedHMAC -import HKDF as HKDF -import WrappedHKDF as WrappedHKDF -import Signature as Signature -import KdfCtr as KdfCtr -import RSAEncryption as RSAEncryption -import ECDH as ECDH -import AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import AtomicPrimitives as AtomicPrimitives -import ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import Base64 as Base64 -import AlgorithmSuites as AlgorithmSuites -import Materials as Materials -import Keyring as Keyring -import Relations as Relations -import Seq_MergeSort as Seq_MergeSort -import Math as Math -import Seq as Seq -import MultiKeyring as MultiKeyring -import AwsArnParsing as AwsArnParsing -import AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import Actions as Actions -import AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import AwsKmsUtils as AwsKmsUtils -import Constants as Constants -import UUID as UUID -import MaterialWrapping as MaterialWrapping -import SortedSets as SortedSets -import CanonicalEncryptionContext as CanonicalEncryptionContext -import IntermediateKeyWrapping as IntermediateKeyWrapping -import EdkWrapping as EdkWrapping -import ErrorMessages as ErrorMessages -import AwsKmsKeyring as AwsKmsKeyring -import StrictMultiKeyring as StrictMultiKeyring -import AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import Com_Amazonaws_Kms as Com_Amazonaws_Kms -import Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import DiscoveryMultiKeyring as DiscoveryMultiKeyring -import AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import AwsKmsMrkKeyring as AwsKmsMrkKeyring -import MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import DafnyLibraries as DafnyLibraries -import Time as Time -import LocalCMC as LocalCMC -import SynchronizedLocalCMC as SynchronizedLocalCMC -import StormTracker as StormTracker -import StormTrackingCMC as StormTrackingCMC -import CacheConstants as CacheConstants -import AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import AwsKmsRsaKeyring as AwsKmsRsaKeyring -import EcdhEdkWrapping as EcdhEdkWrapping -import RawECDHKeyring as RawECDHKeyring -import AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import RawAESKeyring as RawAESKeyring -import RawRSAKeyring as RawRSAKeyring -import CMM as CMM -import Defaults as Defaults -import Commitment as Commitment -import DefaultCMM as DefaultCMM -import DefaultClientSupplier as DefaultClientSupplier -import Utils as Utils -import RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import MaterialProviders as MaterialProviders -import KeyStoreErrorMessages as KeyStoreErrorMessages -import KmsArn as KmsArn -import Structure as Structure -import KMSKeystoreOperations as KMSKeystoreOperations -import DDBKeystoreOperations as DDBKeystoreOperations -import CreateKeys as CreateKeys -import CreateKeyStoreTable as CreateKeyStoreTable -import GetKeys as GetKeys -import AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import KeyStore as KeyStore -import AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes -import JSON_Utils_Views_Core as JSON_Utils_Views_Core -import JSON_Utils_Views_Writers as JSON_Utils_Views_Writers -import JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core -import JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings -import JSON_Utils_Cursors as JSON_Utils_Cursors -import JSON_Utils_Parsers as JSON_Utils_Parsers -import GeneralInternals as GeneralInternals -import MulInternalsNonlinear as MulInternalsNonlinear -import MulInternals as MulInternals -import Mul as Mul -import ModInternalsNonlinear as ModInternalsNonlinear -import DivInternalsNonlinear as DivInternalsNonlinear -import ModInternals as ModInternals -import DivInternals as DivInternals -import DivMod as DivMod -import Power as Power -import Logarithm as Logarithm -import JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion -import JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping -import JSON_Utils_Str as JSON_Utils_Str -import JSON_Utils_Seq as JSON_Utils_Seq -import JSON_Utils_Vectors as JSON_Utils_Vectors -import JSON_Errors as JSON_Errors -import JSON_Values as JSON_Values -import Unicode as Unicode -import Functions as Functions -import Utf8EncodingForm as Utf8EncodingForm -import Utf16EncodingForm as Utf16EncodingForm -import UnicodeStrings as UnicodeStrings -import JSON_Spec as JSON_Spec -import JSON_Grammar as JSON_Grammar -import JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion -import JSON_Serializer as JSON_Serializer -import JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion -import JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion -import JSON_Deserializer as JSON_Deserializer -import JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec -import JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties -import JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer -import JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core -import JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings -import JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers -import JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams -import JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects -import JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams -import JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays -import JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants -import JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values -import JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API -import JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer -import JSON_ZeroCopy_API as JSON_ZeroCopy_API -import JSON_API as JSON_API -import JSONHelpers as JSONHelpers -import KeyDescription as KeyDescription -import HexStrings as HexStrings -import KeyMaterial as KeyMaterial -import CreateStaticKeyrings as CreateStaticKeyrings -import CreateStaticKeyStores as CreateStaticKeyStores -import KeyringFromKeyDescription as KeyringFromKeyDescription -import CmmFromKeyDescription as CmmFromKeyDescription -import WrappedMaterialProviders as WrappedMaterialProviders -import KeysVectorOperations as KeysVectorOperations -import FileIO as FileIO -import KeyVectors as KeyVectors -import AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import Streams as Streams -import SerializableTypes as SerializableTypes -import SerializeFunctions as SerializeFunctions -import EncryptionContext as EncryptionContext -import HeaderTypes as HeaderTypes -import SharedHeaderFunctions as SharedHeaderFunctions -import EncryptedDataKeys as EncryptedDataKeys -import V1HeaderBody as V1HeaderBody -import V2HeaderBody as V2HeaderBody -import HeaderAuth as HeaderAuth -import Header as Header -import Frames as Frames -import MessageBody as MessageBody -import KeyDerivation as KeyDerivation -import EncryptDecryptHelpers as EncryptDecryptHelpers -import AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import EncryptionSdk as EncryptionSdk -import MplManifestOptions as MplManifestOptions -import GetOpt as GetOpt -import AllAlgorithmSuites as AllAlgorithmSuites -import TestVectors as TestVectors -import AllHierarchy as AllHierarchy -import AllKms as AllKms -import AllKmsMrkAware as AllKmsMrkAware -import AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery -import AllKmsRsa as AllKmsRsa -import AllKmsEcdh as AllKmsEcdh -import AllRawAES as AllRawAES -import AllRawRSA as AllRawRSA -import AllRawECDH as AllRawECDH -import AllDefaultCmm as AllDefaultCmm -import AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm -import AllMulti as AllMulti -import WriteJsonManifests as WriteJsonManifests -import CompleteVectors as CompleteVectors -import ParseJsonManifests as ParseJsonManifests -import TestManifests as TestManifests -import WrappedMaterialProvidersMain as WrappedMaterialProvidersMain -import AesKdfCtr as AesKdfCtr -import StandardLibraryInterop as StandardLibraryInterop -import Sorting as Sorting -import FloatCompare as FloatCompare -import ConcurrentCall as ConcurrentCall -import Base64Lemmas as Base64Lemmas -import .internaldafny.generated.WrappedESDK as WrappedESDK -import .internaldafny.generated.EsdkManifestOptions as EsdkManifestOptions -import .internaldafny.generated.EsdkTestVectors as EsdkTestVectors -import .internaldafny.generated.AllEsdkV4NoReqEc as AllEsdkV4NoReqEc - -# Module: AllEsdkV4WithReqEc - -class default__: - def __init__(self): - pass - - @_dafny.classproperty - def AllPositiveReqEcTests(instance): - return AllRequiredEncryptionContextCmm.default__.SuccessTestingRequiredEncryptionContextKeysReproducedEncryptionContext - @_dafny.classproperty - def frameSize(instance): - return 512 - @_dafny.classproperty - def AllPositiveReqEcEsdkTests(instance): - def iife0_(): - coll0_ = _dafny.Set() - compr_0_: TestVectors.EncryptTestVector - for compr_0_ in (default__.AllPositiveReqEcTests).Elements: - d_0_config_: TestVectors.EncryptTestVector = compr_0_ - if (d_0_config_) in (default__.AllPositiveReqEcTests): - compr_1_: AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo - for compr_1_ in (AllAlgorithmSuites.default__.ESDKAlgorithmSuites).Elements: - d_1_algorithmSuite_: AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo = compr_1_ - if (d_1_algorithmSuite_) in (AllAlgorithmSuites.default__.ESDKAlgorithmSuites): - coll0_ = coll0_.union(_dafny.Set([EsdkTestVectors.EsdkEncryptTestVector_PositiveEncryptTestVector(Wrappers.Option_None(), 4, _dafny.Seq(""), _dafny.Seq(""), _dafny.Seq(""), (d_0_config_).encryptDescription, (d_0_config_).decryptDescription, Wrappers.Option_Some((d_0_config_).encryptionContext), (d_0_config_).reproducedEncryptionContext, AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT(), Wrappers.Option_Some(default__.frameSize), Wrappers.Option_Some(d_1_algorithmSuite_), (d_0_config_).name, Wrappers.Option_Some(1))])) - return _dafny.Set(coll0_) - return iife0_() - - @_dafny.classproperty - def Tests(instance): - return default__.AllPositiveReqEcEsdkTests diff --git a/TestVectors/runtimes/python/src/internaldafny/generated/EsdkManifestOptions.py b/TestVectors/runtimes/python/src/internaldafny/generated/EsdkManifestOptions.py deleted file mode 100644 index 54972bfb0..000000000 --- a/TestVectors/runtimes/python/src/internaldafny/generated/EsdkManifestOptions.py +++ /dev/null @@ -1,266 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import .internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import Wrappers as Wrappers -import BoundedInts as BoundedInts -import StandardLibrary_UInt as StandardLibrary_UInt -import StandardLibrary_Sequence as StandardLibrary_Sequence -import StandardLibrary_String as StandardLibrary_String -import StandardLibrary as StandardLibrary -import UTF8 as UTF8 -import AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import ExternRandom as ExternRandom -import Random as Random -import AESEncryption as AESEncryption -import ExternDigest as ExternDigest -import Digest as Digest -import HMAC as HMAC -import WrappedHMAC as WrappedHMAC -import HKDF as HKDF -import WrappedHKDF as WrappedHKDF -import Signature as Signature -import KdfCtr as KdfCtr -import RSAEncryption as RSAEncryption -import ECDH as ECDH -import AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import AtomicPrimitives as AtomicPrimitives -import ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import Base64 as Base64 -import AlgorithmSuites as AlgorithmSuites -import Materials as Materials -import Keyring as Keyring -import Relations as Relations -import Seq_MergeSort as Seq_MergeSort -import Math as Math -import Seq as Seq -import MultiKeyring as MultiKeyring -import AwsArnParsing as AwsArnParsing -import AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import Actions as Actions -import AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import AwsKmsUtils as AwsKmsUtils -import Constants as Constants -import UUID as UUID -import MaterialWrapping as MaterialWrapping -import SortedSets as SortedSets -import CanonicalEncryptionContext as CanonicalEncryptionContext -import IntermediateKeyWrapping as IntermediateKeyWrapping -import EdkWrapping as EdkWrapping -import ErrorMessages as ErrorMessages -import AwsKmsKeyring as AwsKmsKeyring -import StrictMultiKeyring as StrictMultiKeyring -import AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import Com_Amazonaws_Kms as Com_Amazonaws_Kms -import Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import DiscoveryMultiKeyring as DiscoveryMultiKeyring -import AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import AwsKmsMrkKeyring as AwsKmsMrkKeyring -import MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import DafnyLibraries as DafnyLibraries -import Time as Time -import LocalCMC as LocalCMC -import SynchronizedLocalCMC as SynchronizedLocalCMC -import StormTracker as StormTracker -import StormTrackingCMC as StormTrackingCMC -import CacheConstants as CacheConstants -import AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import AwsKmsRsaKeyring as AwsKmsRsaKeyring -import EcdhEdkWrapping as EcdhEdkWrapping -import RawECDHKeyring as RawECDHKeyring -import AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import RawAESKeyring as RawAESKeyring -import RawRSAKeyring as RawRSAKeyring -import CMM as CMM -import Defaults as Defaults -import Commitment as Commitment -import DefaultCMM as DefaultCMM -import DefaultClientSupplier as DefaultClientSupplier -import Utils as Utils -import RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import MaterialProviders as MaterialProviders -import KeyStoreErrorMessages as KeyStoreErrorMessages -import KmsArn as KmsArn -import Structure as Structure -import KMSKeystoreOperations as KMSKeystoreOperations -import DDBKeystoreOperations as DDBKeystoreOperations -import CreateKeys as CreateKeys -import CreateKeyStoreTable as CreateKeyStoreTable -import GetKeys as GetKeys -import AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import KeyStore as KeyStore -import AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes -import JSON_Utils_Views_Core as JSON_Utils_Views_Core -import JSON_Utils_Views_Writers as JSON_Utils_Views_Writers -import JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core -import JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings -import JSON_Utils_Cursors as JSON_Utils_Cursors -import JSON_Utils_Parsers as JSON_Utils_Parsers -import GeneralInternals as GeneralInternals -import MulInternalsNonlinear as MulInternalsNonlinear -import MulInternals as MulInternals -import Mul as Mul -import ModInternalsNonlinear as ModInternalsNonlinear -import DivInternalsNonlinear as DivInternalsNonlinear -import ModInternals as ModInternals -import DivInternals as DivInternals -import DivMod as DivMod -import Power as Power -import Logarithm as Logarithm -import JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion -import JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping -import JSON_Utils_Str as JSON_Utils_Str -import JSON_Utils_Seq as JSON_Utils_Seq -import JSON_Utils_Vectors as JSON_Utils_Vectors -import JSON_Errors as JSON_Errors -import JSON_Values as JSON_Values -import Unicode as Unicode -import Functions as Functions -import Utf8EncodingForm as Utf8EncodingForm -import Utf16EncodingForm as Utf16EncodingForm -import UnicodeStrings as UnicodeStrings -import JSON_Spec as JSON_Spec -import JSON_Grammar as JSON_Grammar -import JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion -import JSON_Serializer as JSON_Serializer -import JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion -import JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion -import JSON_Deserializer as JSON_Deserializer -import JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec -import JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties -import JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer -import JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core -import JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings -import JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers -import JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams -import JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects -import JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams -import JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays -import JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants -import JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values -import JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API -import JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer -import JSON_ZeroCopy_API as JSON_ZeroCopy_API -import JSON_API as JSON_API -import JSONHelpers as JSONHelpers -import KeyDescription as KeyDescription -import HexStrings as HexStrings -import KeyMaterial as KeyMaterial -import CreateStaticKeyrings as CreateStaticKeyrings -import CreateStaticKeyStores as CreateStaticKeyStores -import KeyringFromKeyDescription as KeyringFromKeyDescription -import CmmFromKeyDescription as CmmFromKeyDescription -import WrappedMaterialProviders as WrappedMaterialProviders -import KeysVectorOperations as KeysVectorOperations -import FileIO as FileIO -import KeyVectors as KeyVectors -import AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import Streams as Streams -import SerializableTypes as SerializableTypes -import SerializeFunctions as SerializeFunctions -import EncryptionContext as EncryptionContext -import HeaderTypes as HeaderTypes -import SharedHeaderFunctions as SharedHeaderFunctions -import EncryptedDataKeys as EncryptedDataKeys -import V1HeaderBody as V1HeaderBody -import V2HeaderBody as V2HeaderBody -import HeaderAuth as HeaderAuth -import Header as Header -import Frames as Frames -import MessageBody as MessageBody -import KeyDerivation as KeyDerivation -import EncryptDecryptHelpers as EncryptDecryptHelpers -import AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import EncryptionSdk as EncryptionSdk -import MplManifestOptions as MplManifestOptions -import GetOpt as GetOpt -import AllAlgorithmSuites as AllAlgorithmSuites -import TestVectors as TestVectors -import AllHierarchy as AllHierarchy -import AllKms as AllKms -import AllKmsMrkAware as AllKmsMrkAware -import AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery -import AllKmsRsa as AllKmsRsa -import AllKmsEcdh as AllKmsEcdh -import AllRawAES as AllRawAES -import AllRawRSA as AllRawRSA -import AllRawECDH as AllRawECDH -import AllDefaultCmm as AllDefaultCmm -import AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm -import AllMulti as AllMulti -import WriteJsonManifests as WriteJsonManifests -import CompleteVectors as CompleteVectors -import ParseJsonManifests as ParseJsonManifests -import TestManifests as TestManifests -import WrappedMaterialProvidersMain as WrappedMaterialProvidersMain -import AesKdfCtr as AesKdfCtr -import StandardLibraryInterop as StandardLibraryInterop -import Sorting as Sorting -import FloatCompare as FloatCompare -import ConcurrentCall as ConcurrentCall -import Base64Lemmas as Base64Lemmas -import .internaldafny.generated.WrappedESDK as WrappedESDK - -# Module: EsdkManifestOptions - - -class ManifestOptions: - @classmethod - def default(cls, ): - return lambda: ManifestOptions_Decrypt(_dafny.Seq(""), _dafny.Seq(""), Wrappers.Option.default()()) - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_Decrypt(self) -> bool: - return isinstance(self, ManifestOptions_Decrypt) - @property - def is_Encrypt(self) -> bool: - return isinstance(self, ManifestOptions_Encrypt) - @property - def is_DecryptSingle(self) -> bool: - return isinstance(self, ManifestOptions_DecryptSingle) - @property - def is_EncryptManifest(self) -> bool: - return isinstance(self, ManifestOptions_EncryptManifest) - -class ManifestOptions_Decrypt(ManifestOptions, NamedTuple('Decrypt', [('manifestPath', Any), ('manifestFileName', Any), ('testName', Any)])): - def __dafnystr__(self) -> str: - return f'EsdkManifestOptions.ManifestOptions.Decrypt({_dafny.string_of(self.manifestPath)}, {_dafny.string_of(self.manifestFileName)}, {_dafny.string_of(self.testName)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, ManifestOptions_Decrypt) and self.manifestPath == __o.manifestPath and self.manifestFileName == __o.manifestFileName and self.testName == __o.testName - def __hash__(self) -> int: - return super().__hash__() - -class ManifestOptions_Encrypt(ManifestOptions, NamedTuple('Encrypt', [('manifestPath', Any), ('manifest', Any), ('decryptManifestOutput', Any), ('testName', Any)])): - def __dafnystr__(self) -> str: - return f'EsdkManifestOptions.ManifestOptions.Encrypt({_dafny.string_of(self.manifestPath)}, {_dafny.string_of(self.manifest)}, {_dafny.string_of(self.decryptManifestOutput)}, {_dafny.string_of(self.testName)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, ManifestOptions_Encrypt) and self.manifestPath == __o.manifestPath and self.manifest == __o.manifest and self.decryptManifestOutput == __o.decryptManifestOutput and self.testName == __o.testName - def __hash__(self) -> int: - return super().__hash__() - -class ManifestOptions_DecryptSingle(ManifestOptions, NamedTuple('DecryptSingle', [('keysPath', Any), ('keyDescription', Any), ('base64Bytes', Any)])): - def __dafnystr__(self) -> str: - return f'EsdkManifestOptions.ManifestOptions.DecryptSingle({_dafny.string_of(self.keysPath)}, {_dafny.string_of(self.keyDescription)}, {_dafny.string_of(self.base64Bytes)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, ManifestOptions_DecryptSingle) and self.keysPath == __o.keysPath and self.keyDescription == __o.keyDescription and self.base64Bytes == __o.base64Bytes - def __hash__(self) -> int: - return super().__hash__() - -class ManifestOptions_EncryptManifest(ManifestOptions, NamedTuple('EncryptManifest', [('encryptManifestOutput', Any), ('version', Any)])): - def __dafnystr__(self) -> str: - return f'EsdkManifestOptions.ManifestOptions.EncryptManifest({_dafny.string_of(self.encryptManifestOutput)}, {_dafny.string_of(self.version)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, ManifestOptions_EncryptManifest) and self.encryptManifestOutput == __o.encryptManifestOutput and self.version == __o.version - def __hash__(self) -> int: - return super().__hash__() - diff --git a/TestVectors/runtimes/python/src/internaldafny/generated/EsdkTestManifests.py b/TestVectors/runtimes/python/src/internaldafny/generated/EsdkTestManifests.py deleted file mode 100644 index 46dbf686f..000000000 --- a/TestVectors/runtimes/python/src/internaldafny/generated/EsdkTestManifests.py +++ /dev/null @@ -1,633 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import .internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import Wrappers as Wrappers -import BoundedInts as BoundedInts -import StandardLibrary_UInt as StandardLibrary_UInt -import StandardLibrary_Sequence as StandardLibrary_Sequence -import StandardLibrary_String as StandardLibrary_String -import StandardLibrary as StandardLibrary -import UTF8 as UTF8 -import AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import ExternRandom as ExternRandom -import Random as Random -import AESEncryption as AESEncryption -import ExternDigest as ExternDigest -import Digest as Digest -import HMAC as HMAC -import WrappedHMAC as WrappedHMAC -import HKDF as HKDF -import WrappedHKDF as WrappedHKDF -import Signature as Signature -import KdfCtr as KdfCtr -import RSAEncryption as RSAEncryption -import ECDH as ECDH -import AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import AtomicPrimitives as AtomicPrimitives -import ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import Base64 as Base64 -import AlgorithmSuites as AlgorithmSuites -import Materials as Materials -import Keyring as Keyring -import Relations as Relations -import Seq_MergeSort as Seq_MergeSort -import Math as Math -import Seq as Seq -import MultiKeyring as MultiKeyring -import AwsArnParsing as AwsArnParsing -import AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import Actions as Actions -import AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import AwsKmsUtils as AwsKmsUtils -import Constants as Constants -import UUID as UUID -import MaterialWrapping as MaterialWrapping -import SortedSets as SortedSets -import CanonicalEncryptionContext as CanonicalEncryptionContext -import IntermediateKeyWrapping as IntermediateKeyWrapping -import EdkWrapping as EdkWrapping -import ErrorMessages as ErrorMessages -import AwsKmsKeyring as AwsKmsKeyring -import StrictMultiKeyring as StrictMultiKeyring -import AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import Com_Amazonaws_Kms as Com_Amazonaws_Kms -import Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import DiscoveryMultiKeyring as DiscoveryMultiKeyring -import AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import AwsKmsMrkKeyring as AwsKmsMrkKeyring -import MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import DafnyLibraries as DafnyLibraries -import Time as Time -import LocalCMC as LocalCMC -import SynchronizedLocalCMC as SynchronizedLocalCMC -import StormTracker as StormTracker -import StormTrackingCMC as StormTrackingCMC -import CacheConstants as CacheConstants -import AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import AwsKmsRsaKeyring as AwsKmsRsaKeyring -import EcdhEdkWrapping as EcdhEdkWrapping -import RawECDHKeyring as RawECDHKeyring -import AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import RawAESKeyring as RawAESKeyring -import RawRSAKeyring as RawRSAKeyring -import CMM as CMM -import Defaults as Defaults -import Commitment as Commitment -import DefaultCMM as DefaultCMM -import DefaultClientSupplier as DefaultClientSupplier -import Utils as Utils -import RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import MaterialProviders as MaterialProviders -import KeyStoreErrorMessages as KeyStoreErrorMessages -import KmsArn as KmsArn -import Structure as Structure -import KMSKeystoreOperations as KMSKeystoreOperations -import DDBKeystoreOperations as DDBKeystoreOperations -import CreateKeys as CreateKeys -import CreateKeyStoreTable as CreateKeyStoreTable -import GetKeys as GetKeys -import AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import KeyStore as KeyStore -import AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes -import JSON_Utils_Views_Core as JSON_Utils_Views_Core -import JSON_Utils_Views_Writers as JSON_Utils_Views_Writers -import JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core -import JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings -import JSON_Utils_Cursors as JSON_Utils_Cursors -import JSON_Utils_Parsers as JSON_Utils_Parsers -import GeneralInternals as GeneralInternals -import MulInternalsNonlinear as MulInternalsNonlinear -import MulInternals as MulInternals -import Mul as Mul -import ModInternalsNonlinear as ModInternalsNonlinear -import DivInternalsNonlinear as DivInternalsNonlinear -import ModInternals as ModInternals -import DivInternals as DivInternals -import DivMod as DivMod -import Power as Power -import Logarithm as Logarithm -import JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion -import JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping -import JSON_Utils_Str as JSON_Utils_Str -import JSON_Utils_Seq as JSON_Utils_Seq -import JSON_Utils_Vectors as JSON_Utils_Vectors -import JSON_Errors as JSON_Errors -import JSON_Values as JSON_Values -import Unicode as Unicode -import Functions as Functions -import Utf8EncodingForm as Utf8EncodingForm -import Utf16EncodingForm as Utf16EncodingForm -import UnicodeStrings as UnicodeStrings -import JSON_Spec as JSON_Spec -import JSON_Grammar as JSON_Grammar -import JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion -import JSON_Serializer as JSON_Serializer -import JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion -import JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion -import JSON_Deserializer as JSON_Deserializer -import JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec -import JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties -import JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer -import JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core -import JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings -import JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers -import JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams -import JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects -import JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams -import JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays -import JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants -import JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values -import JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API -import JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer -import JSON_ZeroCopy_API as JSON_ZeroCopy_API -import JSON_API as JSON_API -import JSONHelpers as JSONHelpers -import KeyDescription as KeyDescription -import HexStrings as HexStrings -import KeyMaterial as KeyMaterial -import CreateStaticKeyrings as CreateStaticKeyrings -import CreateStaticKeyStores as CreateStaticKeyStores -import KeyringFromKeyDescription as KeyringFromKeyDescription -import CmmFromKeyDescription as CmmFromKeyDescription -import WrappedMaterialProviders as WrappedMaterialProviders -import KeysVectorOperations as KeysVectorOperations -import FileIO as FileIO -import KeyVectors as KeyVectors -import AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import Streams as Streams -import SerializableTypes as SerializableTypes -import SerializeFunctions as SerializeFunctions -import EncryptionContext as EncryptionContext -import HeaderTypes as HeaderTypes -import SharedHeaderFunctions as SharedHeaderFunctions -import EncryptedDataKeys as EncryptedDataKeys -import V1HeaderBody as V1HeaderBody -import V2HeaderBody as V2HeaderBody -import HeaderAuth as HeaderAuth -import Header as Header -import Frames as Frames -import MessageBody as MessageBody -import KeyDerivation as KeyDerivation -import EncryptDecryptHelpers as EncryptDecryptHelpers -import AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import EncryptionSdk as EncryptionSdk -import MplManifestOptions as MplManifestOptions -import GetOpt as GetOpt -import AllAlgorithmSuites as AllAlgorithmSuites -import TestVectors as TestVectors -import AllHierarchy as AllHierarchy -import AllKms as AllKms -import AllKmsMrkAware as AllKmsMrkAware -import AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery -import AllKmsRsa as AllKmsRsa -import AllKmsEcdh as AllKmsEcdh -import AllRawAES as AllRawAES -import AllRawRSA as AllRawRSA -import AllRawECDH as AllRawECDH -import AllDefaultCmm as AllDefaultCmm -import AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm -import AllMulti as AllMulti -import WriteJsonManifests as WriteJsonManifests -import CompleteVectors as CompleteVectors -import ParseJsonManifests as ParseJsonManifests -import TestManifests as TestManifests -import WrappedMaterialProvidersMain as WrappedMaterialProvidersMain -import AesKdfCtr as AesKdfCtr -import StandardLibraryInterop as StandardLibraryInterop -import Sorting as Sorting -import FloatCompare as FloatCompare -import ConcurrentCall as ConcurrentCall -import Base64Lemmas as Base64Lemmas -import .internaldafny.generated.WrappedESDK as WrappedESDK -import .internaldafny.generated.EsdkManifestOptions as EsdkManifestOptions -import .internaldafny.generated.EsdkTestVectors as EsdkTestVectors -import .internaldafny.generated.AllEsdkV4NoReqEc as AllEsdkV4NoReqEc -import .internaldafny.generated.AllEsdkV4WithReqEc as AllEsdkV4WithReqEc -import .internaldafny.generated.WriteEsdkJsonManifests as WriteEsdkJsonManifests -import .internaldafny.generated.WriteVectors as WriteVectors -import .internaldafny.generated.ParseEsdkJsonManifest as ParseEsdkJsonManifest - -# Module: EsdkTestManifests - -class default__: - def __init__(self): - pass - - @staticmethod - def StartDecryptVectors(op): - output: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_0_valueOrError0_: Wrappers.Result = None - out0_: Wrappers.Result - out0_ = default__.GetManifest((op).manifestPath, (op).manifestFileName) - d_0_valueOrError0_ = out0_ - if not(not((d_0_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestManifests.dfy(40,27): " + _dafny.string_of(d_0_valueOrError0_)) - d_1_decryptManifest_: ManifestData - d_1_decryptManifest_ = (d_0_valueOrError0_).Extract() - d_2_valueOrError1_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_2_valueOrError1_ = Wrappers.default__.Need((d_1_decryptManifest_).is_DecryptManifest, _dafny.Seq("Not a decrypt manifest")) - if (d_2_valueOrError1_).IsFailure(): - output = (d_2_valueOrError1_).PropagateFailure() - return output - d_3_valueOrError2_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_3_valueOrError2_ = ParseEsdkJsonManifest.default__.BuildDecryptTestVector(op, (d_1_decryptManifest_).version, (d_1_decryptManifest_).keys, (d_1_decryptManifest_).jsonTests) - if (d_3_valueOrError2_).IsFailure(): - output = (d_3_valueOrError2_).PropagateFailure() - return output - d_4_decryptVectors_: _dafny.Seq - d_4_decryptVectors_ = (d_3_valueOrError2_).Extract() - out1_: Wrappers.Result - out1_ = default__.TestDecrypts((d_1_decryptManifest_).keys, d_4_decryptVectors_) - output = out1_ - return output - - @staticmethod - def TestDecryptVector_q(v): - return (True) and (((v).decryptionMethod).is_OneShot) - - @staticmethod - def TestDecrypts(keys, vectors): - manifest: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - _dafny.print(_dafny.string_of(_dafny.Seq("\n=================== Starting "))) - _dafny.print(_dafny.string_of(len(vectors))) - _dafny.print(_dafny.string_of(_dafny.Seq(" Decrypt Tests =================== \n\n"))) - d_0_hasFailure_: bool - d_0_hasFailure_ = False - d_1_skipped_: int - d_1_skipped_ = 0 - hi0_ = len(vectors) - for d_2_i_ in range(0, hi0_): - d_3_vector_: EsdkTestVectors.EsdkDecryptTestVector - d_3_vector_ = (vectors)[d_2_i_] - if default__.TestDecryptVector_q(d_3_vector_): - d_4_pass_: bool - out0_: bool - out0_ = EsdkTestVectors.default__.TestDecrypt(keys, d_3_vector_) - d_4_pass_ = out0_ - if not(d_4_pass_): - d_0_hasFailure_ = True - elif True: - d_1_skipped_ = (d_1_skipped_) + (1) - _dafny.print(_dafny.string_of(_dafny.Seq("\nSKIP===> "))) - _dafny.print(_dafny.string_of((d_3_vector_).id)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - _dafny.print(_dafny.string_of(_dafny.Seq("\n=================== Completed "))) - _dafny.print(_dafny.string_of(len(vectors))) - _dafny.print(_dafny.string_of(_dafny.Seq(" Decrypt Tests =================== \n\n"))) - if (0) < (d_1_skipped_): - _dafny.print(_dafny.string_of(_dafny.Seq("Skipped: "))) - _dafny.print(_dafny.string_of(d_1_skipped_)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - if not(not(d_0_hasFailure_)): - raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestManifests.dfy(92,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - manifest = Wrappers.Result_Success(_dafny.Seq([])) - return manifest - - @staticmethod - def StartEncryptVectors(op): - output: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() - d_0_valueOrError0_: Wrappers.Result = None - out0_: Wrappers.Result - out0_ = default__.GetManifest((op).manifestPath, (op).manifest) - d_0_valueOrError0_ = out0_ - if (d_0_valueOrError0_).IsFailure(): - output = (d_0_valueOrError0_).PropagateFailure() - return output - d_1_encryptManifest_: ManifestData - d_1_encryptManifest_ = (d_0_valueOrError0_).Extract() - d_2_valueOrError1_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_2_valueOrError1_ = Wrappers.default__.Need((d_1_encryptManifest_).is_EncryptManifest, _dafny.Seq("Not a encrypt manifest")) - if (d_2_valueOrError1_).IsFailure(): - output = (d_2_valueOrError1_).PropagateFailure() - return output - d_3_valueOrError2_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_3_valueOrError2_ = ParseEsdkJsonManifest.default__.BuildEncryptTestVector(op, (d_1_encryptManifest_).version, (d_1_encryptManifest_).keys, (d_1_encryptManifest_).jsonTests) - if (d_3_valueOrError2_).IsFailure(): - output = (d_3_valueOrError2_).PropagateFailure() - return output - d_4_encryptVectors_: _dafny.Seq - d_4_encryptVectors_ = (d_3_valueOrError2_).Extract() - d_5_valueOrError3_: Wrappers.Result = None - out1_: Wrappers.Result - out1_ = AtomicPrimitives.default__.AtomicPrimitives(AtomicPrimitives.default__.DefaultCryptoConfig()) - d_5_valueOrError3_ = out1_ - if not(not((d_5_valueOrError3_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestManifests.dfy(114,13): " + _dafny.string_of(d_5_valueOrError3_)) - d_6_p_: AtomicPrimitives.AtomicPrimitivesClient - d_6_p_ = (d_5_valueOrError3_).Extract() - d_7_plaintext_: _dafny.Map - d_7_plaintext_ = _dafny.Map({}) - hi0_ = len((d_1_encryptManifest_).plaintext) - for d_8_i_ in range(0, hi0_): - let_tmp_rhs0_ = ((d_1_encryptManifest_).plaintext)[d_8_i_] - d_9_name_ = let_tmp_rhs0_[0] - d_10_length_ = let_tmp_rhs0_[1] - d_11_valueOrError4_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - out2_: Wrappers.Result - out2_ = (d_6_p_).GenerateRandomBytes(AwsCryptographyPrimitivesTypes.GenerateRandomBytesInput_GenerateRandomBytesInput(d_10_length_)) - d_11_valueOrError4_ = out2_ - if not(not((d_11_valueOrError4_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestManifests.dfy(119,18): " + _dafny.string_of(d_11_valueOrError4_)) - d_12_data_: _dafny.Seq - d_12_data_ = (d_11_valueOrError4_).Extract() - _dafny.print(_dafny.string_of((((op).decryptManifestOutput) + (EsdkTestVectors.default__.plaintextPathRoot)) + (d_9_name_))) - _dafny.print(_dafny.string_of(_dafny.Seq("\n\n"))) - d_13_valueOrError5_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() - out3_: Wrappers.Result - out3_ = EsdkTestVectors.default__.WriteVectorsFile((((op).decryptManifestOutput) + (EsdkTestVectors.default__.plaintextPathRoot)) + (d_9_name_), d_12_data_) - d_13_valueOrError5_ = out3_ - if (d_13_valueOrError5_).IsFailure(): - output = (d_13_valueOrError5_).PropagateFailure() - return output - d_14___v0_: tuple - d_14___v0_ = (d_13_valueOrError5_).Extract() - d_7_plaintext_ = (d_7_plaintext_) | (_dafny.Map({d_9_name_: d_12_data_})) - d_15_encryptTests_q_: Wrappers.Result - out4_: Wrappers.Result - out4_ = default__.ToEncryptTests((d_1_encryptManifest_).keys, d_4_encryptVectors_) - d_15_encryptTests_q_ = out4_ - d_16_valueOrError6_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - def lambda0_(d_17_e_): - def iife0_(_pat_let6_0): - def iife1_(d_18___v1_): - return _dafny.Seq("Cmm failure") - return iife1_(_pat_let6_0) - return iife0_(EsdkTestVectors.default__.MplVectorPrintErr(d_17_e_)) - - d_16_valueOrError6_ = (d_15_encryptTests_q_).MapFailure(lambda0_) - if (d_16_valueOrError6_).IsFailure(): - output = (d_16_valueOrError6_).PropagateFailure() - return output - d_19_encryptTests_: _dafny.Seq - d_19_encryptTests_ = (d_16_valueOrError6_).Extract() - d_20_valueOrError7_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - out5_: Wrappers.Result - out5_ = default__.TestEncrypts(d_7_plaintext_, (d_1_encryptManifest_).keys, d_19_encryptTests_) - d_20_valueOrError7_ = out5_ - if (d_20_valueOrError7_).IsFailure(): - output = (d_20_valueOrError7_).PropagateFailure() - return output - d_21_decryptVectors_: _dafny.Seq - d_21_decryptVectors_ = (d_20_valueOrError7_).Extract() - d_22_valueOrError8_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() - out6_: Wrappers.Result - out6_ = WriteVectors.default__.WriteDecryptManifest(op, (d_1_encryptManifest_).keys, d_21_decryptVectors_) - d_22_valueOrError8_ = out6_ - if (d_22_valueOrError8_).IsFailure(): - output = (d_22_valueOrError8_).PropagateFailure() - return output - d_23___v2_: tuple - d_23___v2_ = (d_22_valueOrError8_).Extract() - output = Wrappers.Result_Success(()) - return output - - @staticmethod - def TestEncryptVector_q(vector): - return (True) and (not (((vector).frameLength).is_Some) or (AwsCryptographyEncryptionSdkTypes.default__.IsValid__FrameLength(((vector).frameLength).value))) - - @staticmethod - def ToEncryptTests(keys, vectors): - output: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_0_encryptTests_: _dafny.Seq - d_0_encryptTests_ = _dafny.Seq([]) - hi0_ = len(vectors) - for d_1_i_ in range(0, hi0_): - d_2_valueOrError0_: Wrappers.Result = None - out0_: Wrappers.Result - out0_ = EsdkTestVectors.default__.EncryptVectorToEncryptTest(keys, (vectors)[d_1_i_]) - d_2_valueOrError0_ = out0_ - if (d_2_valueOrError0_).IsFailure(): - output = (d_2_valueOrError0_).PropagateFailure() - return output - d_3_test_: EsdkTestVectors.EncryptTest - d_3_test_ = (d_2_valueOrError0_).Extract() - d_0_encryptTests_ = (d_0_encryptTests_) + (_dafny.Seq([d_3_test_])) - output = Wrappers.Result_Success(d_0_encryptTests_) - return output - return output - - @staticmethod - def TestEncrypts(plaintexts, keys, tests): - manifest: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - _dafny.print(_dafny.string_of(_dafny.Seq("\n=================== Starting "))) - _dafny.print(_dafny.string_of(len(tests))) - _dafny.print(_dafny.string_of(_dafny.Seq(" Encrypt Tests =================== \n\n"))) - d_0_hasFailure_: bool - d_0_hasFailure_ = False - d_1_decryptVectors_: _dafny.Seq - d_1_decryptVectors_ = _dafny.Seq([]) - d_2_skipped_: _dafny.Seq - d_2_skipped_ = _dafny.Seq([]) - hi0_ = len(tests) - for d_3_i_ in range(0, hi0_): - d_4_test_: EsdkTestVectors.EncryptTest - d_4_test_ = (tests)[d_3_i_] - d_5_valueOrError0_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_5_valueOrError0_ = Wrappers.default__.Need((((d_4_test_).vector).id).is_Some, _dafny.Seq("Vector is missing uuid")) - if (d_5_valueOrError0_).IsFailure(): - manifest = (d_5_valueOrError0_).PropagateFailure() - return manifest - if default__.TestEncryptVector_q((d_4_test_).vector): - d_6_valueOrError1_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_6_valueOrError1_ = Wrappers.default__.Need(((((d_4_test_).vector).algorithmSuiteId).is_Some) and ((((((d_4_test_).vector).algorithmSuiteId).value).id).is_ESDK), _dafny.Seq("Vector is using an algorithm suite other than ESDK")) - if (d_6_valueOrError1_).IsFailure(): - manifest = (d_6_valueOrError1_).PropagateFailure() - return manifest - d_7_valueOrError2_: Wrappers.Result = Wrappers.Result.default(EsdkTestVectors.EncryptTestOutput.default())() - out0_: Wrappers.Result - out0_ = EsdkTestVectors.default__.TestEncrypt(plaintexts, keys, d_4_test_) - d_7_valueOrError2_ = out0_ - if (d_7_valueOrError2_).IsFailure(): - manifest = (d_7_valueOrError2_).PropagateFailure() - return manifest - d_8_pass_: EsdkTestVectors.EncryptTestOutput - d_8_pass_ = (d_7_valueOrError2_).Extract() - if not((d_8_pass_).output): - d_0_hasFailure_ = True - elif ((d_8_pass_).vector).is_Some: - d_1_decryptVectors_ = (d_1_decryptVectors_) + (_dafny.Seq([((d_8_pass_).vector).value])) - elif True: - d_2_skipped_ = (d_2_skipped_) + (_dafny.Seq([((((d_4_test_).vector).id).value) + (_dafny.Seq("\n"))])) - _dafny.print(_dafny.string_of(_dafny.Seq("\nSKIP===> "))) - _dafny.print(_dafny.string_of((((d_4_test_).vector).id).value)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - _dafny.print(_dafny.string_of(_dafny.Seq("\n=================== Completed "))) - _dafny.print(_dafny.string_of(len(tests))) - _dafny.print(_dafny.string_of(_dafny.Seq(" Encrypt Tests =================== \n\n"))) - if not(not(d_0_hasFailure_)): - raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestManifests.dfy(215,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - manifest = Wrappers.Result_Success(d_1_decryptVectors_) - return manifest - - @staticmethod - def GetManifest(manifestPath, manifestFileName): - manifestData: Wrappers.Result = None - d_0_valueOrError0_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - out0_: Wrappers.Result - out0_ = FileIO.default__.ReadBytesFromFile((manifestPath) + (manifestFileName)) - d_0_valueOrError0_ = out0_ - if (d_0_valueOrError0_).IsFailure(): - manifestData = (d_0_valueOrError0_).PropagateFailure() - return manifestData - d_1_decryptManifestBv_: _dafny.Seq - d_1_decryptManifestBv_ = (d_0_valueOrError0_).Extract() - d_2_decryptManifestBytes_: _dafny.Seq - d_2_decryptManifestBytes_ = JSONHelpers.default__.BvToBytes(d_1_decryptManifestBv_) - d_3_valueOrError1_: Wrappers.Result = Wrappers.Result.default(JSON_Values.JSON.default())() - def lambda0_(d_4_e_): - return (d_4_e_).ToString() - - d_3_valueOrError1_ = (JSON_API.default__.Deserialize(d_2_decryptManifestBytes_)).MapFailure(lambda0_) - if (d_3_valueOrError1_).IsFailure(): - manifestData = (d_3_valueOrError1_).PropagateFailure() - return manifestData - d_5_manifestJson_: JSON_Values.JSON - d_5_manifestJson_ = (d_3_valueOrError1_).Extract() - d_6_valueOrError2_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_6_valueOrError2_ = Wrappers.default__.Need((d_5_manifestJson_).is_Object, _dafny.Seq("Not a JSON object")) - if (d_6_valueOrError2_).IsFailure(): - manifestData = (d_6_valueOrError2_).PropagateFailure() - return manifestData - d_7_valueOrError3_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_7_valueOrError3_ = JSONHelpers.default__.GetObject(_dafny.Seq("manifest"), (d_5_manifestJson_).obj) - if (d_7_valueOrError3_).IsFailure(): - manifestData = (d_7_valueOrError3_).PropagateFailure() - return manifestData - d_8_manifest_: _dafny.Seq - d_8_manifest_ = (d_7_valueOrError3_).Extract() - d_9_valueOrError4_: Wrappers.Result = Wrappers.Result.default(System_.nat.default)() - d_9_valueOrError4_ = JSONHelpers.default__.GetNat(_dafny.Seq("version"), d_8_manifest_) - if (d_9_valueOrError4_).IsFailure(): - manifestData = (d_9_valueOrError4_).PropagateFailure() - return manifestData - d_10_version_: int - d_10_version_ = (d_9_valueOrError4_).Extract() - d_11_valueOrError5_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_11_valueOrError5_ = JSONHelpers.default__.GetString(_dafny.Seq("type"), d_8_manifest_) - if (d_11_valueOrError5_).IsFailure(): - manifestData = (d_11_valueOrError5_).PropagateFailure() - return manifestData - d_12_typ_: _dafny.Seq - d_12_typ_ = (d_11_valueOrError5_).Extract() - d_13_valueOrError6_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_13_valueOrError6_ = JSONHelpers.default__.GetString(_dafny.Seq("keys"), (d_5_manifestJson_).obj) - if (d_13_valueOrError6_).IsFailure(): - manifestData = (d_13_valueOrError6_).PropagateFailure() - return manifestData - d_14_keyManifestUri_: _dafny.Seq - d_14_keyManifestUri_ = (d_13_valueOrError6_).Extract() - d_15_valueOrError7_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_15_valueOrError7_ = Wrappers.default__.Need((_dafny.Seq("file://")) < (d_14_keyManifestUri_), _dafny.Seq("Unexpected URI prefix")) - if (d_15_valueOrError7_).IsFailure(): - manifestData = (d_15_valueOrError7_).PropagateFailure() - return manifestData - d_16_keyManifestPath_: _dafny.Seq - d_16_keyManifestPath_ = (manifestPath) + (_dafny.Seq((d_14_keyManifestUri_)[7::])) - d_17_valueOrError8_: Wrappers.Result = None - out1_: Wrappers.Result - out1_ = KeyVectors.default__.KeyVectors(AwsCryptographyMaterialProvidersTestVectorKeysTypes.KeyVectorsConfig_KeyVectorsConfig(d_16_keyManifestPath_)) - d_17_valueOrError8_ = out1_ - if not(not((d_17_valueOrError8_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestManifests.dfy(263,16): " + _dafny.string_of(d_17_valueOrError8_)) - d_18_keys_: KeyVectors.KeyVectorsClient - d_18_keys_ = (d_17_valueOrError8_).Extract() - d_19_valueOrError9_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_19_valueOrError9_ = JSONHelpers.default__.GetObject(_dafny.Seq("tests"), (d_5_manifestJson_).obj) - if (d_19_valueOrError9_).IsFailure(): - manifestData = (d_19_valueOrError9_).PropagateFailure() - return manifestData - d_20_jsonTests_: _dafny.Seq - d_20_jsonTests_ = (d_19_valueOrError9_).Extract() - source0_ = d_12_typ_ - with _dafny.label("match0"): - if True: - if (source0_) == (_dafny.Seq("awses-decrypt")): - d_21_valueOrError10_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_21_valueOrError10_ = Wrappers.default__.Need(EsdkTestVectors.default__.SupportedDecryptVersion_q(d_10_version_), _dafny.Seq("Unsupported manifest version")) - if (d_21_valueOrError10_).IsFailure(): - manifestData = (d_21_valueOrError10_).PropagateFailure() - return manifestData - d_22_valueOrError11_: Wrappers.Result = Wrappers.Result.default(JSON_Values.JSON.default())() - d_22_valueOrError11_ = JSONHelpers.default__.Get(_dafny.Seq("client"), (d_5_manifestJson_).obj) - if (d_22_valueOrError11_).IsFailure(): - manifestData = (d_22_valueOrError11_).PropagateFailure() - return manifestData - d_23_client_: JSON_Values.JSON - d_23_client_ = (d_22_valueOrError11_).Extract() - manifestData = Wrappers.Result_Success(ManifestData_DecryptManifest(d_10_version_, d_18_keys_, d_23_client_, d_20_jsonTests_)) - raise _dafny.Break("match0") - if True: - if (source0_) == (_dafny.Seq("awses-encrypt")): - d_24_valueOrError12_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_24_valueOrError12_ = Wrappers.default__.Need(EsdkTestVectors.default__.SupportedEncryptVersion_q(d_10_version_), _dafny.Seq("Unsupported manifest version")) - if (d_24_valueOrError12_).IsFailure(): - manifestData = (d_24_valueOrError12_).PropagateFailure() - return manifestData - d_25_valueOrError13_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_25_valueOrError13_ = JSONHelpers.default__.GetObject(_dafny.Seq("plaintexts"), (d_5_manifestJson_).obj) - if (d_25_valueOrError13_).IsFailure(): - manifestData = (d_25_valueOrError13_).PropagateFailure() - return manifestData - d_26_plaintextsJson_: _dafny.Seq - d_26_plaintextsJson_ = (d_25_valueOrError13_).Extract() - d_27_valueOrError15_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - def lambda1_(d_28_obj_): - def iife0_(_pat_let7_0): - def iife1_(d_29_valueOrError14_): - return ((d_29_valueOrError14_).PropagateFailure() if (d_29_valueOrError14_).IsFailure() else Wrappers.Result_Success(((d_28_obj_)[0], (((d_28_obj_)[1]).num).n))) - return iife1_(_pat_let7_0) - return iife0_(Wrappers.default__.Need((((d_28_obj_)[1]).is_Number) and (((0) < ((((d_28_obj_)[1]).num).n)) and (((((d_28_obj_)[1]).num).n) <= (BoundedInts.default__.INT32__MAX))), _dafny.Seq("Size is not a natural number."))) - - d_27_valueOrError15_ = Seq.default__.MapWithResult(lambda1_, d_26_plaintextsJson_) - if (d_27_valueOrError15_).IsFailure(): - manifestData = (d_27_valueOrError15_).PropagateFailure() - return manifestData - d_30_plaintextsLength_: _dafny.Seq - d_30_plaintextsLength_ = (d_27_valueOrError15_).Extract() - manifestData = Wrappers.Result_Success(ManifestData_EncryptManifest(d_10_version_, d_18_keys_, d_30_plaintextsLength_, d_20_jsonTests_)) - raise _dafny.Break("match0") - if True: - manifestData = Wrappers.Result_Failure((_dafny.Seq("Unsupported manifest type:")) + (d_12_typ_)) - pass - return manifestData - - -class ManifestData: - @classmethod - def default(cls, ): - return lambda: ManifestData_DecryptManifest(int(0), None, JSON_Values.JSON.default()(), _dafny.Seq({})) - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_DecryptManifest(self) -> bool: - return isinstance(self, ManifestData_DecryptManifest) - @property - def is_EncryptManifest(self) -> bool: - return isinstance(self, ManifestData_EncryptManifest) - -class ManifestData_DecryptManifest(ManifestData, NamedTuple('DecryptManifest', [('version', Any), ('keys', Any), ('client', Any), ('jsonTests', Any)])): - def __dafnystr__(self) -> str: - return f'EsdkTestManifests.ManifestData.DecryptManifest({_dafny.string_of(self.version)}, {_dafny.string_of(self.keys)}, {_dafny.string_of(self.client)}, {_dafny.string_of(self.jsonTests)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, ManifestData_DecryptManifest) and self.version == __o.version and self.keys == __o.keys and self.client == __o.client and self.jsonTests == __o.jsonTests - def __hash__(self) -> int: - return super().__hash__() - -class ManifestData_EncryptManifest(ManifestData, NamedTuple('EncryptManifest', [('version', Any), ('keys', Any), ('plaintext', Any), ('jsonTests', Any)])): - def __dafnystr__(self) -> str: - return f'EsdkTestManifests.ManifestData.EncryptManifest({_dafny.string_of(self.version)}, {_dafny.string_of(self.keys)}, {_dafny.string_of(self.plaintext)}, {_dafny.string_of(self.jsonTests)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, ManifestData_EncryptManifest) and self.version == __o.version and self.keys == __o.keys and self.plaintext == __o.plaintext and self.jsonTests == __o.jsonTests - def __hash__(self) -> int: - return super().__hash__() - diff --git a/TestVectors/runtimes/python/src/internaldafny/generated/EsdkTestVectors.py b/TestVectors/runtimes/python/src/internaldafny/generated/EsdkTestVectors.py deleted file mode 100644 index 4c25e1195..000000000 --- a/TestVectors/runtimes/python/src/internaldafny/generated/EsdkTestVectors.py +++ /dev/null @@ -1,780 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import .internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import Wrappers as Wrappers -import BoundedInts as BoundedInts -import StandardLibrary_UInt as StandardLibrary_UInt -import StandardLibrary_Sequence as StandardLibrary_Sequence -import StandardLibrary_String as StandardLibrary_String -import StandardLibrary as StandardLibrary -import UTF8 as UTF8 -import AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import ExternRandom as ExternRandom -import Random as Random -import AESEncryption as AESEncryption -import ExternDigest as ExternDigest -import Digest as Digest -import HMAC as HMAC -import WrappedHMAC as WrappedHMAC -import HKDF as HKDF -import WrappedHKDF as WrappedHKDF -import Signature as Signature -import KdfCtr as KdfCtr -import RSAEncryption as RSAEncryption -import ECDH as ECDH -import AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import AtomicPrimitives as AtomicPrimitives -import ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import Base64 as Base64 -import AlgorithmSuites as AlgorithmSuites -import Materials as Materials -import Keyring as Keyring -import Relations as Relations -import Seq_MergeSort as Seq_MergeSort -import Math as Math -import Seq as Seq -import MultiKeyring as MultiKeyring -import AwsArnParsing as AwsArnParsing -import AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import Actions as Actions -import AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import AwsKmsUtils as AwsKmsUtils -import Constants as Constants -import UUID as UUID -import MaterialWrapping as MaterialWrapping -import SortedSets as SortedSets -import CanonicalEncryptionContext as CanonicalEncryptionContext -import IntermediateKeyWrapping as IntermediateKeyWrapping -import EdkWrapping as EdkWrapping -import ErrorMessages as ErrorMessages -import AwsKmsKeyring as AwsKmsKeyring -import StrictMultiKeyring as StrictMultiKeyring -import AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import Com_Amazonaws_Kms as Com_Amazonaws_Kms -import Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import DiscoveryMultiKeyring as DiscoveryMultiKeyring -import AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import AwsKmsMrkKeyring as AwsKmsMrkKeyring -import MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import DafnyLibraries as DafnyLibraries -import Time as Time -import LocalCMC as LocalCMC -import SynchronizedLocalCMC as SynchronizedLocalCMC -import StormTracker as StormTracker -import StormTrackingCMC as StormTrackingCMC -import CacheConstants as CacheConstants -import AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import AwsKmsRsaKeyring as AwsKmsRsaKeyring -import EcdhEdkWrapping as EcdhEdkWrapping -import RawECDHKeyring as RawECDHKeyring -import AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import RawAESKeyring as RawAESKeyring -import RawRSAKeyring as RawRSAKeyring -import CMM as CMM -import Defaults as Defaults -import Commitment as Commitment -import DefaultCMM as DefaultCMM -import DefaultClientSupplier as DefaultClientSupplier -import Utils as Utils -import RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import MaterialProviders as MaterialProviders -import KeyStoreErrorMessages as KeyStoreErrorMessages -import KmsArn as KmsArn -import Structure as Structure -import KMSKeystoreOperations as KMSKeystoreOperations -import DDBKeystoreOperations as DDBKeystoreOperations -import CreateKeys as CreateKeys -import CreateKeyStoreTable as CreateKeyStoreTable -import GetKeys as GetKeys -import AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import KeyStore as KeyStore -import AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes -import JSON_Utils_Views_Core as JSON_Utils_Views_Core -import JSON_Utils_Views_Writers as JSON_Utils_Views_Writers -import JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core -import JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings -import JSON_Utils_Cursors as JSON_Utils_Cursors -import JSON_Utils_Parsers as JSON_Utils_Parsers -import GeneralInternals as GeneralInternals -import MulInternalsNonlinear as MulInternalsNonlinear -import MulInternals as MulInternals -import Mul as Mul -import ModInternalsNonlinear as ModInternalsNonlinear -import DivInternalsNonlinear as DivInternalsNonlinear -import ModInternals as ModInternals -import DivInternals as DivInternals -import DivMod as DivMod -import Power as Power -import Logarithm as Logarithm -import JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion -import JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping -import JSON_Utils_Str as JSON_Utils_Str -import JSON_Utils_Seq as JSON_Utils_Seq -import JSON_Utils_Vectors as JSON_Utils_Vectors -import JSON_Errors as JSON_Errors -import JSON_Values as JSON_Values -import Unicode as Unicode -import Functions as Functions -import Utf8EncodingForm as Utf8EncodingForm -import Utf16EncodingForm as Utf16EncodingForm -import UnicodeStrings as UnicodeStrings -import JSON_Spec as JSON_Spec -import JSON_Grammar as JSON_Grammar -import JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion -import JSON_Serializer as JSON_Serializer -import JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion -import JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion -import JSON_Deserializer as JSON_Deserializer -import JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec -import JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties -import JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer -import JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core -import JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings -import JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers -import JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams -import JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects -import JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams -import JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays -import JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants -import JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values -import JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API -import JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer -import JSON_ZeroCopy_API as JSON_ZeroCopy_API -import JSON_API as JSON_API -import JSONHelpers as JSONHelpers -import KeyDescription as KeyDescription -import HexStrings as HexStrings -import KeyMaterial as KeyMaterial -import CreateStaticKeyrings as CreateStaticKeyrings -import CreateStaticKeyStores as CreateStaticKeyStores -import KeyringFromKeyDescription as KeyringFromKeyDescription -import CmmFromKeyDescription as CmmFromKeyDescription -import WrappedMaterialProviders as WrappedMaterialProviders -import KeysVectorOperations as KeysVectorOperations -import FileIO as FileIO -import KeyVectors as KeyVectors -import AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import Streams as Streams -import SerializableTypes as SerializableTypes -import SerializeFunctions as SerializeFunctions -import EncryptionContext as EncryptionContext -import HeaderTypes as HeaderTypes -import SharedHeaderFunctions as SharedHeaderFunctions -import EncryptedDataKeys as EncryptedDataKeys -import V1HeaderBody as V1HeaderBody -import V2HeaderBody as V2HeaderBody -import HeaderAuth as HeaderAuth -import Header as Header -import Frames as Frames -import MessageBody as MessageBody -import KeyDerivation as KeyDerivation -import EncryptDecryptHelpers as EncryptDecryptHelpers -import AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import EncryptionSdk as EncryptionSdk -import MplManifestOptions as MplManifestOptions -import GetOpt as GetOpt -import AllAlgorithmSuites as AllAlgorithmSuites -import TestVectors as TestVectors -import AllHierarchy as AllHierarchy -import AllKms as AllKms -import AllKmsMrkAware as AllKmsMrkAware -import AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery -import AllKmsRsa as AllKmsRsa -import AllKmsEcdh as AllKmsEcdh -import AllRawAES as AllRawAES -import AllRawRSA as AllRawRSA -import AllRawECDH as AllRawECDH -import AllDefaultCmm as AllDefaultCmm -import AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm -import AllMulti as AllMulti -import WriteJsonManifests as WriteJsonManifests -import CompleteVectors as CompleteVectors -import ParseJsonManifests as ParseJsonManifests -import TestManifests as TestManifests -import WrappedMaterialProvidersMain as WrappedMaterialProvidersMain -import AesKdfCtr as AesKdfCtr -import StandardLibraryInterop as StandardLibraryInterop -import Sorting as Sorting -import FloatCompare as FloatCompare -import ConcurrentCall as ConcurrentCall -import Base64Lemmas as Base64Lemmas -import .internaldafny.generated.WrappedESDK as WrappedESDK -import .internaldafny.generated.EsdkManifestOptions as EsdkManifestOptions - -# Module: EsdkTestVectors - -class default__: - def __init__(self): - pass - - @staticmethod - def SupportedGenerateManifestVersion_q(v): - return (False) or ((v) == (4)) - - @staticmethod - def SupportedEncryptVersion_q(v): - return (((v) == (1)) or ((v) == (4))) or ((v) == (5)) - - @staticmethod - def SupportedDecryptVersion_q(v): - return (((v) == (1)) or ((v) == (2))) or ((v) == (3)) - - @staticmethod - def TestDecrypt(keys, vector): - output: bool = False - if ((vector).algorithmSuiteId).is_Some: - d_0_id_: _dafny.Seq - d_0_id_ = AllAlgorithmSuites.default__.ToHex(((vector).algorithmSuiteId).value) - _dafny.print(_dafny.string_of(_dafny.Seq("\nTEST-DECRYPT===> "))) - _dafny.print(_dafny.string_of((vector).id)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - _dafny.print(_dafny.string_of(d_0_id_)) - _dafny.print(_dafny.string_of(_dafny.Seq(" "))) - _dafny.print(_dafny.string_of((vector).description)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - elif True: - _dafny.print(_dafny.string_of(_dafny.Seq("\nTEST-DECRYPT===> "))) - _dafny.print(_dafny.string_of((vector).id)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - _dafny.print(_dafny.string_of((vector).description)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - d_1_test_q_: Wrappers.Result - out0_: Wrappers.Result - out0_ = default__.DecryptVectorToDecryptTest(keys, vector) - d_1_test_q_ = out0_ - if (d_1_test_q_).is_Failure: - _dafny.print(_dafny.string_of((d_1_test_q_).error)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - _dafny.print(_dafny.string_of(_dafny.Seq("\nFAILED! <-----------\n"))) - output = False - return output - d_2_test_: DecryptTest - d_2_test_ = (d_1_test_q_).value - d_3_valueOrError0_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - out1_: Wrappers.Result - out1_ = default__.ReadVectorsFile((((d_2_test_).vector).manifestPath) + (((d_2_test_).vector).ciphertextPath)) - d_3_valueOrError0_ = out1_ - if not(not((d_3_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(202,22): " + _dafny.string_of(d_3_valueOrError0_)) - d_4_ciphertext_: _dafny.Seq - d_4_ciphertext_ = (d_3_valueOrError0_).Extract() - d_5_plaintext_: _dafny.Seq = _dafny.Seq({}) - if (((d_2_test_).vector).is_PositiveDecryptTestVector) or (((d_2_test_).vector).is_PositiveV1OrV2DecryptTestVector): - d_6_valueOrError1_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - out2_: Wrappers.Result - out2_ = default__.ReadVectorsFile((((d_2_test_).vector).manifestPath) + (((d_2_test_).vector).plaintextPath)) - d_6_valueOrError1_ = out2_ - if not(not((d_6_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(205,19): " + _dafny.string_of(d_6_valueOrError1_)) - d_5_plaintext_ = (d_6_valueOrError1_).Extract() - d_7_input_: AwsCryptographyEncryptionSdkTypes.DecryptInput - d_7_input_ = AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_4_ciphertext_, Wrappers.Option_Some((d_2_test_).cmm), Wrappers.Option_None(), ((d_2_test_).vector).reproducedEncryptionContext) - d_8_result_: Wrappers.Result - out3_: Wrappers.Result - out3_ = ((d_2_test_).client).Decrypt(d_7_input_) - d_8_result_ = out3_ - source0_ = (d_2_test_).vector - with _dafny.label("match0"): - if True: - if source0_.is_PositiveDecryptTestVector: - output = ((d_8_result_).is_Success) and ((((d_8_result_).value).plaintext) == (d_5_plaintext_)) - raise _dafny.Break("match0") - if True: - if source0_.is_NegativeDecryptTestVector: - output = (True) and ((d_8_result_).is_Failure) - raise _dafny.Break("match0") - if True: - output = ((d_8_result_).is_Success) and ((((d_8_result_).value).plaintext) == (d_5_plaintext_)) - pass - if not(output): - if ((((d_2_test_).vector).is_PositiveDecryptTestVector) or (((d_2_test_).vector).is_PositiveV1OrV2DecryptTestVector)) and ((d_8_result_).is_Failure): - _dafny.print(_dafny.string_of((d_8_result_).error)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - if (((d_8_result_).error).is_AwsCryptographyMaterialProviders) and ((((d_8_result_).error).AwsCryptographyMaterialProviders).is_CollectionOfErrors): - _dafny.print(_dafny.string_of(_dafny.Seq("list:"))) - _dafny.print(_dafny.string_of((((d_8_result_).error).AwsCryptographyMaterialProviders).list)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - _dafny.print(_dafny.string_of(_dafny.Seq("\nFAILED! <-----------\n"))) - return output - - @staticmethod - def DecryptVectorToDecryptTest(keys, vector): - output: Wrappers.Result = None - d_0_valueOrError0_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_0_valueOrError0_ = Wrappers.default__.Need(not((vector).is_NegativeDecryptTestVector), AwsCryptographyMaterialProvidersTestVectorKeysTypes.Error_KeyVectorException(_dafny.Seq("Negative Test Vectors not supported at this time"))) - if (d_0_valueOrError0_).IsFailure(): - output = (d_0_valueOrError0_).PropagateFailure() - return output - d_1_valueOrError1_: Wrappers.Result = None - out0_: Wrappers.Result - out0_ = (keys).CreateWrappedTestVectorCmm(AwsCryptographyMaterialProvidersTestVectorKeysTypes.TestVectorCmmInput_TestVectorCmmInput((vector).decryptDescriptions, AwsCryptographyMaterialProvidersTestVectorKeysTypes.CmmOperation_DECRYPT())) - d_1_valueOrError1_ = out0_ - if (d_1_valueOrError1_).IsFailure(): - output = (d_1_valueOrError1_).PropagateFailure() - return output - d_2_cmm_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager - d_2_cmm_ = (d_1_valueOrError1_).Extract() - d_3_commitmentPolicy_: AwsCryptographyMaterialProvidersTypes.CommitmentPolicy - if ((vector).algorithmSuiteId).is_Some: - d_3_commitmentPolicy_ = AllAlgorithmSuites.default__.GetCompatibleCommitmentPolicy(((vector).algorithmSuiteId).value) - elif True: - d_3_commitmentPolicy_ = AwsCryptographyMaterialProvidersTypes.CommitmentPolicy_ESDK(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT()) - d_4_valueOrError2_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_4_valueOrError2_ = Wrappers.default__.Need((d_3_commitmentPolicy_).is_ESDK, AwsCryptographyMaterialProvidersTestVectorKeysTypes.Error_KeyVectorException(_dafny.Seq("Compatible commitment policy is not for ESDK"))) - if (d_4_valueOrError2_).IsFailure(): - output = (d_4_valueOrError2_).PropagateFailure() - return output - d_5_config_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - d_5_config_ = WrappedESDK.default__.WrappedAwsEncryptionSdkConfigWithSuppliedCommitment((d_3_commitmentPolicy_).ESDK) - d_6_valueOrError3_: Wrappers.Result = None - out1_: Wrappers.Result - out1_ = WrappedESDK.default__.WrappedESDK(d_5_config_) - d_6_valueOrError3_ = out1_ - if not(not((d_6_valueOrError3_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(281,18): " + _dafny.string_of(d_6_valueOrError3_)) - d_7_client_: AwsCryptographyEncryptionSdkTypes.IAwsEncryptionSdkClient - d_7_client_ = (d_6_valueOrError3_).Extract() - d_8_test_: DecryptTest - d_8_test_ = DecryptTest_DecryptTest(d_2_cmm_, d_7_client_, vector) - output = Wrappers.Result_Success(d_8_test_) - return output - - @staticmethod - def TestEncrypt(plaintexts, keys, test): - output: Wrappers.Result = Wrappers.Result.default(EncryptTestOutput.default())() - d_0_id_: _dafny.Seq - d_0_id_ = AllAlgorithmSuites.default__.ToHex((((test).vector).algorithmSuiteId).value) - _dafny.print(_dafny.string_of(_dafny.Seq("\nTEST-ENCRYPT===> "))) - _dafny.print(_dafny.string_of((((test).vector).id).value)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - _dafny.print(_dafny.string_of(d_0_id_)) - _dafny.print(_dafny.string_of(_dafny.Seq(" "))) - _dafny.print(_dafny.string_of(((test).vector).description)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - d_1_vector_: EsdkEncryptTestVector - d_1_vector_ = (test).vector - if not((((test).vector).plaintextPath) in (plaintexts)): - raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(324,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_2_plaintext_: _dafny.Seq - d_2_plaintext_ = (plaintexts)[((test).vector).plaintextPath] - d_3_frameLength_: Wrappers.Option - d_3_frameLength_ = (d_1_vector_).frameLength - d_4_input_: AwsCryptographyEncryptionSdkTypes.EncryptInput - d_4_input_ = AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_2_plaintext_, ((test).vector).encryptionContext, Wrappers.Option_Some((test).cmm), Wrappers.Option_None(), Wrappers.Option_Some((((((test).vector).algorithmSuiteId).value).id).ESDK), d_3_frameLength_) - d_5_result_: Wrappers.Result - out0_: Wrappers.Result - out0_ = ((test).client).Encrypt(d_4_input_) - d_5_result_ = out0_ - if ((d_5_result_).is_Success) and ((((test).vector).is_PositiveEncryptTestVector) or (((test).vector).is_PositiveEncryptNegativeDecryptTestVector)): - d_6_valueOrError0_: Wrappers.Result = Wrappers.Result.default(EsdkDecryptTestVector.default())() - out1_: Wrappers.Result - out1_ = default__.EncryptTestToDecryptVector(test, (d_5_result_).value) - d_6_valueOrError0_ = out1_ - if (d_6_valueOrError0_).IsFailure(): - output = (d_6_valueOrError0_).PropagateFailure() - return output - d_7_decryptVector_: EsdkDecryptTestVector - d_7_decryptVector_ = (d_6_valueOrError0_).Extract() - output = Wrappers.Result_Success(EncryptTestOutput_EncryptTestOutput(True, Wrappers.Option_Some(d_7_decryptVector_))) - elif ((d_5_result_).is_Failure) and (((test).vector).is_NegativeEncryptTestVector): - output = Wrappers.Result_Success(EncryptTestOutput_EncryptTestOutput(True, Wrappers.Option_None())) - elif True: - output = Wrappers.Result_Success(EncryptTestOutput_EncryptTestOutput(False, Wrappers.Option_None())) - if (not(((test).vector).is_NegativeEncryptTestVector)) and ((d_5_result_).is_Failure): - _dafny.print(_dafny.string_of((d_5_result_).error)) - _dafny.print(_dafny.string_of(_dafny.Seq("\nFAILED! <-----------\n"))) - return output - - @staticmethod - def EncryptVectorToEncryptTest(keys, vector): - output: Wrappers.Result = None - d_0_valueOrError0_: Wrappers.Result = None - out0_: Wrappers.Result - out0_ = (keys).CreateWrappedTestVectorCmm(AwsCryptographyMaterialProvidersTestVectorKeysTypes.TestVectorCmmInput_TestVectorCmmInput(((vector).encryptDescriptions if (vector).is_PositiveEncryptTestVector else ((vector).encryptDescriptions if (vector).is_PositiveEncryptNegativeDecryptTestVector else (vector).encryptDescriptions)), AwsCryptographyMaterialProvidersTestVectorKeysTypes.CmmOperation_ENCRYPT())) - d_0_valueOrError0_ = out0_ - if (d_0_valueOrError0_).IsFailure(): - output = (d_0_valueOrError0_).PropagateFailure() - return output - d_1_cmm_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager - d_1_cmm_ = (d_0_valueOrError0_).Extract() - d_2_valueOrError1_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_2_valueOrError1_ = Wrappers.default__.Need(((vector).algorithmSuiteId).is_Some, AwsCryptographyMaterialProvidersTestVectorKeysTypes.Error_KeyVectorException(_dafny.Seq("Missing AlgorithmSuiteId in test vector"))) - if (d_2_valueOrError1_).IsFailure(): - output = (d_2_valueOrError1_).PropagateFailure() - return output - d_3_commitmentPolicy_: AwsCryptographyMaterialProvidersTypes.CommitmentPolicy - d_3_commitmentPolicy_ = AllAlgorithmSuites.default__.GetCompatibleCommitmentPolicy(((vector).algorithmSuiteId).value) - d_4_valueOrError2_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_4_valueOrError2_ = Wrappers.default__.Need((d_3_commitmentPolicy_).is_ESDK, AwsCryptographyMaterialProvidersTestVectorKeysTypes.Error_KeyVectorException(_dafny.Seq("Compatible commitment policy is not for ESDK"))) - if (d_4_valueOrError2_).IsFailure(): - output = (d_4_valueOrError2_).PropagateFailure() - return output - d_5_config_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - d_5_config_ = WrappedESDK.default__.WrappedAwsEncryptionSdkConfigWithSuppliedCommitment((d_3_commitmentPolicy_).ESDK) - d_6_valueOrError3_: Wrappers.Result = None - out1_: Wrappers.Result - out1_ = WrappedESDK.default__.WrappedESDK(d_5_config_) - d_6_valueOrError3_ = out1_ - if not(not((d_6_valueOrError3_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(397,18): " + _dafny.string_of(d_6_valueOrError3_)) - d_7_client_: AwsCryptographyEncryptionSdkTypes.IAwsEncryptionSdkClient - d_7_client_ = (d_6_valueOrError3_).Extract() - d_8_test_: EncryptTest - d_8_test_ = EncryptTest_EncryptTest(d_1_cmm_, d_7_client_, vector) - output = Wrappers.Result_Success(d_8_test_) - return output - - @staticmethod - def EncryptTestToDecryptVector(test, result): - output: Wrappers.Result = Wrappers.Result.default(EsdkDecryptTestVector.default())() - source0_ = (test).vector - with _dafny.label("match0"): - if True: - if source0_.is_PositiveEncryptTestVector: - output = Wrappers.Result_Success(EsdkDecryptTestVector_PositiveDecryptTestVector((((test).vector).id).value, 3, ((test).vector).decryptManifestPath, default__.ciphertextPathPathRoot, (default__.plaintextPathRoot) + (((test).vector).plaintextPath), ((test).vector).reproducedEncryptionContext, ((test).vector).decryptDescriptions, ((test).vector).commitmentPolicy, ((test).vector).frameLength, ((test).vector).algorithmSuiteId, ((test).vector).description, DecryptionMethod_OneShot())) - raise _dafny.Break("match0") - if True: - output = Wrappers.Result_Failure(_dafny.Seq("Only postive tests supported")) - pass - d_0_decryptManifestCiphertext_: _dafny.Seq - d_0_decryptManifestCiphertext_ = ((((test).vector).decryptManifestPath) + (default__.ciphertextPathPathRoot)) + ((((test).vector).id).value) - d_1_valueOrError0_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() - out0_: Wrappers.Result - out0_ = default__.WriteVectorsFile(d_0_decryptManifestCiphertext_, (result).ciphertext) - d_1_valueOrError0_ = out0_ - if not(not((d_1_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(439,13): " + _dafny.string_of(d_1_valueOrError0_)) - d_2___v52_: tuple - d_2___v52_ = (d_1_valueOrError0_).Extract() - return output - - @staticmethod - def MplPrintErr(e): - hresult_: tuple = () - _dafny.print(_dafny.string_of(e)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - hresult_ = () - return hresult_ - return hresult_ - - @staticmethod - def MplVectorPrintErr(e): - hresult_: tuple = () - _dafny.print(_dafny.string_of(e)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - hresult_ = () - return hresult_ - return hresult_ - - @staticmethod - def KeyDescriptionToCmm(keys, keyDescriptions): - output: Wrappers.Result = None - d_0_keyringList_: _dafny.Seq - d_0_keyringList_ = _dafny.Seq([]) - hi0_ = len(keyDescriptions) - for d_1_i_ in range(0, hi0_): - d_2_keyDescription_: AwsCryptographyMaterialProvidersTestVectorKeysTypes.KeyDescription - d_2_keyDescription_ = (keyDescriptions)[d_1_i_] - d_3_valueOrError0_: Wrappers.Result = None - out0_: Wrappers.Result - out0_ = (keys).CreateWrappedTestVectorKeyring(AwsCryptographyMaterialProvidersTestVectorKeysTypes.TestVectorKeyringInput_TestVectorKeyringInput(d_2_keyDescription_)) - d_3_valueOrError0_ = out0_ - if (d_3_valueOrError0_).IsFailure(): - output = (d_3_valueOrError0_).PropagateFailure() - return output - d_4_keyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - d_4_keyring_ = (d_3_valueOrError0_).Extract() - d_0_keyringList_ = (d_0_keyringList_) + (_dafny.Seq([d_4_keyring_])) - d_5_valueOrError1_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_5_valueOrError1_ = Wrappers.default__.Need((len(d_0_keyringList_)) == (1), AwsCryptographyMaterialProvidersTestVectorKeysTypes.Error_KeyVectorException(_dafny.Seq("Failed to create any keyrings"))) - if (d_5_valueOrError1_).IsFailure(): - output = (d_5_valueOrError1_).PropagateFailure() - return output - d_6_valueOrError2_: Wrappers.Result = None - out1_: Wrappers.Result - out1_ = WrappedMaterialProviders.default__.WrappedMaterialProviders(WrappedMaterialProviders.default__.WrappedDefaultMaterialProvidersConfig()) - d_6_valueOrError2_ = out1_ - if not(not((d_6_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(482,15): " + _dafny.string_of(d_6_valueOrError2_)) - d_7_mpl_: AwsCryptographyMaterialProvidersTypes.IAwsCryptographicMaterialProvidersClient - d_7_mpl_ = (d_6_valueOrError2_).Extract() - d_8_generatorKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - d_8_generatorKeyring_ = (d_0_keyringList_)[0] - d_9_maybeMultiKeyring_: Wrappers.Result - out2_: Wrappers.Result - out2_ = (d_7_mpl_).CreateMultiKeyring(AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput_CreateMultiKeyringInput(Wrappers.Option_Some(d_8_generatorKeyring_), _dafny.Seq((d_0_keyringList_)[1::]))) - d_9_maybeMultiKeyring_ = out2_ - d_10_valueOrError3_: Wrappers.Result = None - def lambda0_(d_11_e_): - return AwsCryptographyMaterialProvidersTestVectorKeysTypes.Error_AwsCryptographyMaterialProviders(d_11_e_) - - d_10_valueOrError3_ = (d_9_maybeMultiKeyring_).MapFailure(lambda0_) - if (d_10_valueOrError3_).IsFailure(): - output = (d_10_valueOrError3_).PropagateFailure() - return output - d_12_keyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - d_12_keyring_ = (d_10_valueOrError3_).Extract() - d_13_maybeCmm_: Wrappers.Result - out3_: Wrappers.Result - out3_ = (d_7_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput((d_9_maybeMultiKeyring_).value)) - d_13_maybeCmm_ = out3_ - def lambda1_(d_14_e_): - return AwsCryptographyMaterialProvidersTestVectorKeysTypes.Error_AwsCryptographyMaterialProviders(d_14_e_) - - output = (d_13_maybeCmm_).MapFailure(lambda1_) - return output - - @staticmethod - def ReadVectorsFile(location): - output: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_0_valueOrError0_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - out0_: Wrappers.Result - out0_ = FileIO.default__.ReadBytesFromFile(location) - d_0_valueOrError0_ = out0_ - if (d_0_valueOrError0_).IsFailure(): - output = (d_0_valueOrError0_).PropagateFailure() - return output - d_1_fileBv_: _dafny.Seq - d_1_fileBv_ = (d_0_valueOrError0_).Extract() - output = Wrappers.Result_Success(JSONHelpers.default__.BvToBytes(d_1_fileBv_)) - return output - - @staticmethod - def WriteVectorsFile(location, bytes): - output: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() - d_0_bv_: _dafny.Seq - d_0_bv_ = JSONHelpers.default__.BytesBv(bytes) - out0_: Wrappers.Result - out0_ = FileIO.default__.WriteBytesToFile(location, d_0_bv_) - output = out0_ - return output - - @_dafny.classproperty - def ciphertextPathPathRoot(instance): - return _dafny.Seq("ciphertexts/") - @_dafny.classproperty - def plaintextPathRoot(instance): - return _dafny.Seq("plaintexts/") - -class EncryptTest: - @classmethod - def default(cls, ): - return lambda: EncryptTest_EncryptTest(None, None, EsdkEncryptTestVector.default()()) - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_EncryptTest(self) -> bool: - return isinstance(self, EncryptTest_EncryptTest) - -class EncryptTest_EncryptTest(EncryptTest, NamedTuple('EncryptTest', [('cmm', Any), ('client', Any), ('vector', Any)])): - def __dafnystr__(self) -> str: - return f'EsdkTestVectors.EncryptTest.EncryptTest({_dafny.string_of(self.cmm)}, {_dafny.string_of(self.client)}, {_dafny.string_of(self.vector)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, EncryptTest_EncryptTest) and self.cmm == __o.cmm and self.client == __o.client and self.vector == __o.vector - def __hash__(self) -> int: - return super().__hash__() - - -class DecryptTest: - @classmethod - def default(cls, ): - return lambda: DecryptTest_DecryptTest(None, None, EsdkDecryptTestVector.default()()) - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_DecryptTest(self) -> bool: - return isinstance(self, DecryptTest_DecryptTest) - -class DecryptTest_DecryptTest(DecryptTest, NamedTuple('DecryptTest', [('cmm', Any), ('client', Any), ('vector', Any)])): - def __dafnystr__(self) -> str: - return f'EsdkTestVectors.DecryptTest.DecryptTest({_dafny.string_of(self.cmm)}, {_dafny.string_of(self.client)}, {_dafny.string_of(self.vector)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, DecryptTest_DecryptTest) and self.cmm == __o.cmm and self.client == __o.client and self.vector == __o.vector - def __hash__(self) -> int: - return super().__hash__() - - -class SupportedGenerateManifestVersion: - def __init__(self): - pass - - @staticmethod - def default(): - return 4 - def _Is(source__): - d_0_v_: int = source__ - if System_.nat._Is(d_0_v_): - return default__.SupportedGenerateManifestVersion_q(d_0_v_) - return False - -class SupportedEncryptVersion: - def __init__(self): - pass - - @staticmethod - def default(): - return 1 - def _Is(source__): - d_1_v_: int = source__ - if System_.nat._Is(d_1_v_): - return default__.SupportedEncryptVersion_q(d_1_v_) - return False - -class EsdkEncryptTestVector: - @classmethod - def default(cls, ): - return lambda: EsdkEncryptTestVector_PositiveEncryptTestVector(Wrappers.Option.default()(), SupportedEncryptVersion.default(), _dafny.Seq(""), _dafny.Seq(""), _dafny.Seq(""), AwsCryptographyMaterialProvidersTestVectorKeysTypes.KeyDescription.default()(), AwsCryptographyMaterialProvidersTestVectorKeysTypes.KeyDescription.default()(), Wrappers.Option.default()(), Wrappers.Option.default()(), AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy.default()(), Wrappers.Option.default()(), Wrappers.Option.default()(), _dafny.Seq(""), Wrappers.Option.default()()) - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_PositiveEncryptTestVector(self) -> bool: - return isinstance(self, EsdkEncryptTestVector_PositiveEncryptTestVector) - @property - def is_PositiveEncryptNegativeDecryptTestVector(self) -> bool: - return isinstance(self, EsdkEncryptTestVector_PositiveEncryptNegativeDecryptTestVector) - @property - def is_NegativeEncryptTestVector(self) -> bool: - return isinstance(self, EsdkEncryptTestVector_NegativeEncryptTestVector) - -class EsdkEncryptTestVector_PositiveEncryptTestVector(EsdkEncryptTestVector, NamedTuple('PositiveEncryptTestVector', [('id', Any), ('version', Any), ('manifestPath', Any), ('decryptManifestPath', Any), ('plaintextPath', Any), ('encryptDescriptions', Any), ('decryptDescriptions', Any), ('encryptionContext', Any), ('reproducedEncryptionContext', Any), ('commitmentPolicy', Any), ('frameLength', Any), ('algorithmSuiteId', Any), ('description', Any), ('maxEncryptedDataKeys', Any)])): - def __dafnystr__(self) -> str: - return f'EsdkTestVectors.EsdkEncryptTestVector.PositiveEncryptTestVector({_dafny.string_of(self.id)}, {_dafny.string_of(self.version)}, {_dafny.string_of(self.manifestPath)}, {_dafny.string_of(self.decryptManifestPath)}, {_dafny.string_of(self.plaintextPath)}, {_dafny.string_of(self.encryptDescriptions)}, {_dafny.string_of(self.decryptDescriptions)}, {_dafny.string_of(self.encryptionContext)}, {_dafny.string_of(self.reproducedEncryptionContext)}, {_dafny.string_of(self.commitmentPolicy)}, {_dafny.string_of(self.frameLength)}, {_dafny.string_of(self.algorithmSuiteId)}, {_dafny.string_of(self.description)}, {_dafny.string_of(self.maxEncryptedDataKeys)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, EsdkEncryptTestVector_PositiveEncryptTestVector) and self.id == __o.id and self.version == __o.version and self.manifestPath == __o.manifestPath and self.decryptManifestPath == __o.decryptManifestPath and self.plaintextPath == __o.plaintextPath and self.encryptDescriptions == __o.encryptDescriptions and self.decryptDescriptions == __o.decryptDescriptions and self.encryptionContext == __o.encryptionContext and self.reproducedEncryptionContext == __o.reproducedEncryptionContext and self.commitmentPolicy == __o.commitmentPolicy and self.frameLength == __o.frameLength and self.algorithmSuiteId == __o.algorithmSuiteId and self.description == __o.description and self.maxEncryptedDataKeys == __o.maxEncryptedDataKeys - def __hash__(self) -> int: - return super().__hash__() - -class EsdkEncryptTestVector_PositiveEncryptNegativeDecryptTestVector(EsdkEncryptTestVector, NamedTuple('PositiveEncryptNegativeDecryptTestVector', [('id', Any), ('version', Any), ('manifestPath', Any), ('decryptManifestPath', Any), ('plaintextPath', Any), ('encryptDescriptions', Any), ('decryptDescriptions', Any), ('encryptionContext', Any), ('reproducedEncryptionContext', Any), ('commitmentPolicy', Any), ('frameLength', Any), ('algorithmSuiteId', Any), ('decryptErrorDescription', Any), ('description', Any), ('maxEncryptedDataKeys', Any)])): - def __dafnystr__(self) -> str: - return f'EsdkTestVectors.EsdkEncryptTestVector.PositiveEncryptNegativeDecryptTestVector({_dafny.string_of(self.id)}, {_dafny.string_of(self.version)}, {_dafny.string_of(self.manifestPath)}, {_dafny.string_of(self.decryptManifestPath)}, {_dafny.string_of(self.plaintextPath)}, {_dafny.string_of(self.encryptDescriptions)}, {_dafny.string_of(self.decryptDescriptions)}, {_dafny.string_of(self.encryptionContext)}, {_dafny.string_of(self.reproducedEncryptionContext)}, {_dafny.string_of(self.commitmentPolicy)}, {_dafny.string_of(self.frameLength)}, {_dafny.string_of(self.algorithmSuiteId)}, {_dafny.string_of(self.decryptErrorDescription)}, {_dafny.string_of(self.description)}, {_dafny.string_of(self.maxEncryptedDataKeys)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, EsdkEncryptTestVector_PositiveEncryptNegativeDecryptTestVector) and self.id == __o.id and self.version == __o.version and self.manifestPath == __o.manifestPath and self.decryptManifestPath == __o.decryptManifestPath and self.plaintextPath == __o.plaintextPath and self.encryptDescriptions == __o.encryptDescriptions and self.decryptDescriptions == __o.decryptDescriptions and self.encryptionContext == __o.encryptionContext and self.reproducedEncryptionContext == __o.reproducedEncryptionContext and self.commitmentPolicy == __o.commitmentPolicy and self.frameLength == __o.frameLength and self.algorithmSuiteId == __o.algorithmSuiteId and self.decryptErrorDescription == __o.decryptErrorDescription and self.description == __o.description and self.maxEncryptedDataKeys == __o.maxEncryptedDataKeys - def __hash__(self) -> int: - return super().__hash__() - -class EsdkEncryptTestVector_NegativeEncryptTestVector(EsdkEncryptTestVector, NamedTuple('NegativeEncryptTestVector', [('id', Any), ('version', Any), ('manifestPath', Any), ('plaintextPath', Any), ('encryptDescriptions', Any), ('encryptionContext', Any), ('reproducedEncryptionContext', Any), ('commitmentPolicy', Any), ('frameLength', Any), ('algorithmSuiteId', Any), ('errorDescription', Any), ('description', Any), ('maxEncryptedDataKeys', Any)])): - def __dafnystr__(self) -> str: - return f'EsdkTestVectors.EsdkEncryptTestVector.NegativeEncryptTestVector({_dafny.string_of(self.id)}, {_dafny.string_of(self.version)}, {_dafny.string_of(self.manifestPath)}, {_dafny.string_of(self.plaintextPath)}, {_dafny.string_of(self.encryptDescriptions)}, {_dafny.string_of(self.encryptionContext)}, {_dafny.string_of(self.reproducedEncryptionContext)}, {_dafny.string_of(self.commitmentPolicy)}, {_dafny.string_of(self.frameLength)}, {_dafny.string_of(self.algorithmSuiteId)}, {_dafny.string_of(self.errorDescription)}, {_dafny.string_of(self.description)}, {_dafny.string_of(self.maxEncryptedDataKeys)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, EsdkEncryptTestVector_NegativeEncryptTestVector) and self.id == __o.id and self.version == __o.version and self.manifestPath == __o.manifestPath and self.plaintextPath == __o.plaintextPath and self.encryptDescriptions == __o.encryptDescriptions and self.encryptionContext == __o.encryptionContext and self.reproducedEncryptionContext == __o.reproducedEncryptionContext and self.commitmentPolicy == __o.commitmentPolicy and self.frameLength == __o.frameLength and self.algorithmSuiteId == __o.algorithmSuiteId and self.errorDescription == __o.errorDescription and self.description == __o.description and self.maxEncryptedDataKeys == __o.maxEncryptedDataKeys - def __hash__(self) -> int: - return super().__hash__() - - -class SupportedDecryptVersion: - def __init__(self): - pass - - @staticmethod - def default(): - return 1 - def _Is(source__): - d_2_v_: int = source__ - if System_.nat._Is(d_2_v_): - return default__.SupportedDecryptVersion_q(d_2_v_) - return False - -class EsdkDecryptTestVector: - @classmethod - def default(cls, ): - return lambda: EsdkDecryptTestVector_PositiveDecryptTestVector(_dafny.Seq(""), SupportedDecryptVersion.default(), _dafny.Seq(""), _dafny.Seq(""), _dafny.Seq(""), Wrappers.Option.default()(), AwsCryptographyMaterialProvidersTestVectorKeysTypes.KeyDescription.default()(), AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy.default()(), Wrappers.Option.default()(), Wrappers.Option.default()(), _dafny.Seq(""), DecryptionMethod.default()()) - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_PositiveDecryptTestVector(self) -> bool: - return isinstance(self, EsdkDecryptTestVector_PositiveDecryptTestVector) - @property - def is_NegativeDecryptTestVector(self) -> bool: - return isinstance(self, EsdkDecryptTestVector_NegativeDecryptTestVector) - @property - def is_PositiveV1OrV2DecryptTestVector(self) -> bool: - return isinstance(self, EsdkDecryptTestVector_PositiveV1OrV2DecryptTestVector) - -class EsdkDecryptTestVector_PositiveDecryptTestVector(EsdkDecryptTestVector, NamedTuple('PositiveDecryptTestVector', [('id', Any), ('version', Any), ('manifestPath', Any), ('ciphertextPath', Any), ('plaintextPath', Any), ('reproducedEncryptionContext', Any), ('decryptDescriptions', Any), ('commitmentPolicy', Any), ('frameLength', Any), ('algorithmSuiteId', Any), ('description', Any), ('decryptionMethod', Any)])): - def __dafnystr__(self) -> str: - return f'EsdkTestVectors.EsdkDecryptTestVector.PositiveDecryptTestVector({_dafny.string_of(self.id)}, {_dafny.string_of(self.version)}, {_dafny.string_of(self.manifestPath)}, {_dafny.string_of(self.ciphertextPath)}, {_dafny.string_of(self.plaintextPath)}, {_dafny.string_of(self.reproducedEncryptionContext)}, {_dafny.string_of(self.decryptDescriptions)}, {_dafny.string_of(self.commitmentPolicy)}, {_dafny.string_of(self.frameLength)}, {_dafny.string_of(self.algorithmSuiteId)}, {_dafny.string_of(self.description)}, {_dafny.string_of(self.decryptionMethod)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, EsdkDecryptTestVector_PositiveDecryptTestVector) and self.id == __o.id and self.version == __o.version and self.manifestPath == __o.manifestPath and self.ciphertextPath == __o.ciphertextPath and self.plaintextPath == __o.plaintextPath and self.reproducedEncryptionContext == __o.reproducedEncryptionContext and self.decryptDescriptions == __o.decryptDescriptions and self.commitmentPolicy == __o.commitmentPolicy and self.frameLength == __o.frameLength and self.algorithmSuiteId == __o.algorithmSuiteId and self.description == __o.description and self.decryptionMethod == __o.decryptionMethod - def __hash__(self) -> int: - return super().__hash__() - -class EsdkDecryptTestVector_NegativeDecryptTestVector(EsdkDecryptTestVector, NamedTuple('NegativeDecryptTestVector', [('id', Any), ('version', Any), ('manifestPath', Any), ('ciphertextPath', Any), ('errorDescription', Any), ('reproducedEncryptionContext', Any), ('decryptDescriptions', Any), ('commitmentPolicy', Any), ('frameLength', Any), ('algorithmSuiteId', Any), ('description', Any), ('decryptionMethod', Any)])): - def __dafnystr__(self) -> str: - return f'EsdkTestVectors.EsdkDecryptTestVector.NegativeDecryptTestVector({_dafny.string_of(self.id)}, {_dafny.string_of(self.version)}, {_dafny.string_of(self.manifestPath)}, {_dafny.string_of(self.ciphertextPath)}, {_dafny.string_of(self.errorDescription)}, {_dafny.string_of(self.reproducedEncryptionContext)}, {_dafny.string_of(self.decryptDescriptions)}, {_dafny.string_of(self.commitmentPolicy)}, {_dafny.string_of(self.frameLength)}, {_dafny.string_of(self.algorithmSuiteId)}, {_dafny.string_of(self.description)}, {_dafny.string_of(self.decryptionMethod)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, EsdkDecryptTestVector_NegativeDecryptTestVector) and self.id == __o.id and self.version == __o.version and self.manifestPath == __o.manifestPath and self.ciphertextPath == __o.ciphertextPath and self.errorDescription == __o.errorDescription and self.reproducedEncryptionContext == __o.reproducedEncryptionContext and self.decryptDescriptions == __o.decryptDescriptions and self.commitmentPolicy == __o.commitmentPolicy and self.frameLength == __o.frameLength and self.algorithmSuiteId == __o.algorithmSuiteId and self.description == __o.description and self.decryptionMethod == __o.decryptionMethod - def __hash__(self) -> int: - return super().__hash__() - -class EsdkDecryptTestVector_PositiveV1OrV2DecryptTestVector(EsdkDecryptTestVector, NamedTuple('PositiveV1OrV2DecryptTestVector', [('id', Any), ('version', Any), ('manifestPath', Any), ('ciphertextPath', Any), ('plaintextPath', Any), ('reproducedEncryptionContext', Any), ('requiredEncryptionContextKeys', Any), ('decryptDescriptions', Any), ('commitmentPolicy', Any), ('frameLength', Any), ('algorithmSuiteId', Any), ('description', Any), ('decryptionMethod', Any)])): - def __dafnystr__(self) -> str: - return f'EsdkTestVectors.EsdkDecryptTestVector.PositiveV1OrV2DecryptTestVector({_dafny.string_of(self.id)}, {_dafny.string_of(self.version)}, {_dafny.string_of(self.manifestPath)}, {_dafny.string_of(self.ciphertextPath)}, {_dafny.string_of(self.plaintextPath)}, {_dafny.string_of(self.reproducedEncryptionContext)}, {_dafny.string_of(self.requiredEncryptionContextKeys)}, {_dafny.string_of(self.decryptDescriptions)}, {_dafny.string_of(self.commitmentPolicy)}, {_dafny.string_of(self.frameLength)}, {_dafny.string_of(self.algorithmSuiteId)}, {_dafny.string_of(self.description)}, {_dafny.string_of(self.decryptionMethod)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, EsdkDecryptTestVector_PositiveV1OrV2DecryptTestVector) and self.id == __o.id and self.version == __o.version and self.manifestPath == __o.manifestPath and self.ciphertextPath == __o.ciphertextPath and self.plaintextPath == __o.plaintextPath and self.reproducedEncryptionContext == __o.reproducedEncryptionContext and self.requiredEncryptionContextKeys == __o.requiredEncryptionContextKeys and self.decryptDescriptions == __o.decryptDescriptions and self.commitmentPolicy == __o.commitmentPolicy and self.frameLength == __o.frameLength and self.algorithmSuiteId == __o.algorithmSuiteId and self.description == __o.description and self.decryptionMethod == __o.decryptionMethod - def __hash__(self) -> int: - return super().__hash__() - - -class DecryptionMethod: - @_dafny.classproperty - def AllSingletonConstructors(cls): - return [DecryptionMethod_StreamingUnsignedOnly(), DecryptionMethod_OneShot()] - @classmethod - def default(cls, ): - return lambda: DecryptionMethod_StreamingUnsignedOnly() - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_StreamingUnsignedOnly(self) -> bool: - return isinstance(self, DecryptionMethod_StreamingUnsignedOnly) - @property - def is_OneShot(self) -> bool: - return isinstance(self, DecryptionMethod_OneShot) - -class DecryptionMethod_StreamingUnsignedOnly(DecryptionMethod, NamedTuple('StreamingUnsignedOnly', [])): - def __dafnystr__(self) -> str: - return f'EsdkTestVectors.DecryptionMethod.StreamingUnsignedOnly' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, DecryptionMethod_StreamingUnsignedOnly) - def __hash__(self) -> int: - return super().__hash__() - -class DecryptionMethod_OneShot(DecryptionMethod, NamedTuple('OneShot', [])): - def __dafnystr__(self) -> str: - return f'EsdkTestVectors.DecryptionMethod.OneShot' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, DecryptionMethod_OneShot) - def __hash__(self) -> int: - return super().__hash__() - - -class EncryptTestOutput: - @classmethod - def default(cls, ): - return lambda: EncryptTestOutput_EncryptTestOutput(False, Wrappers.Option.default()()) - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_EncryptTestOutput(self) -> bool: - return isinstance(self, EncryptTestOutput_EncryptTestOutput) - -class EncryptTestOutput_EncryptTestOutput(EncryptTestOutput, NamedTuple('EncryptTestOutput', [('output', Any), ('vector', Any)])): - def __dafnystr__(self) -> str: - return f'EsdkTestVectors.EncryptTestOutput.EncryptTestOutput({_dafny.string_of(self.output)}, {_dafny.string_of(self.vector)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, EncryptTestOutput_EncryptTestOutput) and self.output == __o.output and self.vector == __o.vector - def __hash__(self) -> int: - return super().__hash__() - diff --git a/TestVectors/runtimes/python/src/internaldafny/generated/ParseEsdkJsonManifest.py b/TestVectors/runtimes/python/src/internaldafny/generated/ParseEsdkJsonManifest.py deleted file mode 100644 index 364875e05..000000000 --- a/TestVectors/runtimes/python/src/internaldafny/generated/ParseEsdkJsonManifest.py +++ /dev/null @@ -1,629 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import .internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import Wrappers as Wrappers -import BoundedInts as BoundedInts -import StandardLibrary_UInt as StandardLibrary_UInt -import StandardLibrary_Sequence as StandardLibrary_Sequence -import StandardLibrary_String as StandardLibrary_String -import StandardLibrary as StandardLibrary -import UTF8 as UTF8 -import AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import ExternRandom as ExternRandom -import Random as Random -import AESEncryption as AESEncryption -import ExternDigest as ExternDigest -import Digest as Digest -import HMAC as HMAC -import WrappedHMAC as WrappedHMAC -import HKDF as HKDF -import WrappedHKDF as WrappedHKDF -import Signature as Signature -import KdfCtr as KdfCtr -import RSAEncryption as RSAEncryption -import ECDH as ECDH -import AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import AtomicPrimitives as AtomicPrimitives -import ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import Base64 as Base64 -import AlgorithmSuites as AlgorithmSuites -import Materials as Materials -import Keyring as Keyring -import Relations as Relations -import Seq_MergeSort as Seq_MergeSort -import Math as Math -import Seq as Seq -import MultiKeyring as MultiKeyring -import AwsArnParsing as AwsArnParsing -import AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import Actions as Actions -import AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import AwsKmsUtils as AwsKmsUtils -import Constants as Constants -import UUID as UUID -import MaterialWrapping as MaterialWrapping -import SortedSets as SortedSets -import CanonicalEncryptionContext as CanonicalEncryptionContext -import IntermediateKeyWrapping as IntermediateKeyWrapping -import EdkWrapping as EdkWrapping -import ErrorMessages as ErrorMessages -import AwsKmsKeyring as AwsKmsKeyring -import StrictMultiKeyring as StrictMultiKeyring -import AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import Com_Amazonaws_Kms as Com_Amazonaws_Kms -import Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import DiscoveryMultiKeyring as DiscoveryMultiKeyring -import AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import AwsKmsMrkKeyring as AwsKmsMrkKeyring -import MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import DafnyLibraries as DafnyLibraries -import Time as Time -import LocalCMC as LocalCMC -import SynchronizedLocalCMC as SynchronizedLocalCMC -import StormTracker as StormTracker -import StormTrackingCMC as StormTrackingCMC -import CacheConstants as CacheConstants -import AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import AwsKmsRsaKeyring as AwsKmsRsaKeyring -import EcdhEdkWrapping as EcdhEdkWrapping -import RawECDHKeyring as RawECDHKeyring -import AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import RawAESKeyring as RawAESKeyring -import RawRSAKeyring as RawRSAKeyring -import CMM as CMM -import Defaults as Defaults -import Commitment as Commitment -import DefaultCMM as DefaultCMM -import DefaultClientSupplier as DefaultClientSupplier -import Utils as Utils -import RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import MaterialProviders as MaterialProviders -import KeyStoreErrorMessages as KeyStoreErrorMessages -import KmsArn as KmsArn -import Structure as Structure -import KMSKeystoreOperations as KMSKeystoreOperations -import DDBKeystoreOperations as DDBKeystoreOperations -import CreateKeys as CreateKeys -import CreateKeyStoreTable as CreateKeyStoreTable -import GetKeys as GetKeys -import AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import KeyStore as KeyStore -import AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes -import JSON_Utils_Views_Core as JSON_Utils_Views_Core -import JSON_Utils_Views_Writers as JSON_Utils_Views_Writers -import JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core -import JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings -import JSON_Utils_Cursors as JSON_Utils_Cursors -import JSON_Utils_Parsers as JSON_Utils_Parsers -import GeneralInternals as GeneralInternals -import MulInternalsNonlinear as MulInternalsNonlinear -import MulInternals as MulInternals -import Mul as Mul -import ModInternalsNonlinear as ModInternalsNonlinear -import DivInternalsNonlinear as DivInternalsNonlinear -import ModInternals as ModInternals -import DivInternals as DivInternals -import DivMod as DivMod -import Power as Power -import Logarithm as Logarithm -import JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion -import JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping -import JSON_Utils_Str as JSON_Utils_Str -import JSON_Utils_Seq as JSON_Utils_Seq -import JSON_Utils_Vectors as JSON_Utils_Vectors -import JSON_Errors as JSON_Errors -import JSON_Values as JSON_Values -import Unicode as Unicode -import Functions as Functions -import Utf8EncodingForm as Utf8EncodingForm -import Utf16EncodingForm as Utf16EncodingForm -import UnicodeStrings as UnicodeStrings -import JSON_Spec as JSON_Spec -import JSON_Grammar as JSON_Grammar -import JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion -import JSON_Serializer as JSON_Serializer -import JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion -import JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion -import JSON_Deserializer as JSON_Deserializer -import JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec -import JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties -import JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer -import JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core -import JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings -import JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers -import JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams -import JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects -import JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams -import JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays -import JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants -import JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values -import JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API -import JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer -import JSON_ZeroCopy_API as JSON_ZeroCopy_API -import JSON_API as JSON_API -import JSONHelpers as JSONHelpers -import KeyDescription as KeyDescription -import HexStrings as HexStrings -import KeyMaterial as KeyMaterial -import CreateStaticKeyrings as CreateStaticKeyrings -import CreateStaticKeyStores as CreateStaticKeyStores -import KeyringFromKeyDescription as KeyringFromKeyDescription -import CmmFromKeyDescription as CmmFromKeyDescription -import WrappedMaterialProviders as WrappedMaterialProviders -import KeysVectorOperations as KeysVectorOperations -import FileIO as FileIO -import KeyVectors as KeyVectors -import AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import Streams as Streams -import SerializableTypes as SerializableTypes -import SerializeFunctions as SerializeFunctions -import EncryptionContext as EncryptionContext -import HeaderTypes as HeaderTypes -import SharedHeaderFunctions as SharedHeaderFunctions -import EncryptedDataKeys as EncryptedDataKeys -import V1HeaderBody as V1HeaderBody -import V2HeaderBody as V2HeaderBody -import HeaderAuth as HeaderAuth -import Header as Header -import Frames as Frames -import MessageBody as MessageBody -import KeyDerivation as KeyDerivation -import EncryptDecryptHelpers as EncryptDecryptHelpers -import AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import EncryptionSdk as EncryptionSdk -import MplManifestOptions as MplManifestOptions -import GetOpt as GetOpt -import AllAlgorithmSuites as AllAlgorithmSuites -import TestVectors as TestVectors -import AllHierarchy as AllHierarchy -import AllKms as AllKms -import AllKmsMrkAware as AllKmsMrkAware -import AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery -import AllKmsRsa as AllKmsRsa -import AllKmsEcdh as AllKmsEcdh -import AllRawAES as AllRawAES -import AllRawRSA as AllRawRSA -import AllRawECDH as AllRawECDH -import AllDefaultCmm as AllDefaultCmm -import AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm -import AllMulti as AllMulti -import WriteJsonManifests as WriteJsonManifests -import CompleteVectors as CompleteVectors -import ParseJsonManifests as ParseJsonManifests -import TestManifests as TestManifests -import WrappedMaterialProvidersMain as WrappedMaterialProvidersMain -import AesKdfCtr as AesKdfCtr -import StandardLibraryInterop as StandardLibraryInterop -import Sorting as Sorting -import FloatCompare as FloatCompare -import ConcurrentCall as ConcurrentCall -import Base64Lemmas as Base64Lemmas -import .internaldafny.generated.WrappedESDK as WrappedESDK -import .internaldafny.generated.EsdkManifestOptions as EsdkManifestOptions -import .internaldafny.generated.EsdkTestVectors as EsdkTestVectors -import .internaldafny.generated.AllEsdkV4NoReqEc as AllEsdkV4NoReqEc -import .internaldafny.generated.AllEsdkV4WithReqEc as AllEsdkV4WithReqEc -import .internaldafny.generated.WriteEsdkJsonManifests as WriteEsdkJsonManifests -import .internaldafny.generated.WriteVectors as WriteVectors - -# Module: ParseEsdkJsonManifest - -class default__: - def __init__(self): - pass - - @staticmethod - def BuildDecryptTestVector(op, version, keys, obj): - hresult_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_0_i_: int - d_0_i_ = len(obj) - d_1_vectors_: _dafny.Seq - d_1_vectors_ = _dafny.Seq([]) - while (d_0_i_) != (0): - d_0_i_ = (d_0_i_) - (1) - d_2_test_: Wrappers.Result - d_2_test_ = default__.ToDecryptTestVectors(op, version, keys, ((obj)[d_0_i_])[0], ((obj)[d_0_i_])[1]) - if ((d_2_test_).is_Failure) and (((d_2_test_).error) != (default__.negativeTestVectorFound)): - hresult_ = Wrappers.Result_Failure(default__.buildTestVectorError) - return hresult_ - if (d_2_test_).is_Success: - d_1_vectors_ = (_dafny.Seq([(d_2_test_).value])) + (d_1_vectors_) - if ((d_2_test_).is_Failure) and (((d_2_test_).error) == (default__.negativeTestVectorFound)): - d_1_vectors_ = d_1_vectors_ - hresult_ = Wrappers.Result_Success(d_1_vectors_) - return hresult_ - return hresult_ - - @staticmethod - def ToDecryptTestVectors(op, version, keys, name, json): - d_0_valueOrError0_ = Wrappers.default__.Need((json).is_Object, _dafny.Seq("Vector is not an object")) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - d_1_obj_ = (json).obj - source0_ = version - if True: - if (source0_) == (3): - d_2_valueOrError1_ = Wrappers.default__.Need((op).is_Decrypt, _dafny.Seq("Err parsing manifest expected Decrypt")) - if (d_2_valueOrError1_).IsFailure(): - return (d_2_valueOrError1_).PropagateFailure() - elif True: - return default__.V3ToDecryptTestVector(op, keys, name, d_1_obj_, version) - if True: - if (source0_) == (2): - d_3_valueOrError2_ = Wrappers.default__.Need((op).is_Decrypt, _dafny.Seq("Err parsing manifest expected Decrypt")) - if (d_3_valueOrError2_).IsFailure(): - return (d_3_valueOrError2_).PropagateFailure() - elif True: - return default__.V2ToDecryptTestVector(op, keys, name, d_1_obj_, version) - if True: - if (source0_) == (1): - d_4_valueOrError3_ = Wrappers.default__.Need((op).is_Decrypt, _dafny.Seq("Err parsing manifest expected Decrypt")) - if (d_4_valueOrError3_).IsFailure(): - return (d_4_valueOrError3_).PropagateFailure() - elif True: - return default__.V1ToDecryptTestVector(op, keys, name, d_1_obj_, version) - if True: - return Wrappers.Result_Failure(_dafny.Seq("Version not supported\n")) - - @staticmethod - def BuildEncryptTestVector(op, version, keys, obj): - hresult_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_0_i_: int - d_0_i_ = len(obj) - d_1_vectors_: _dafny.Seq - d_1_vectors_ = _dafny.Seq([]) - while (d_0_i_) != (0): - d_0_i_ = (d_0_i_) - (1) - d_2_test_: Wrappers.Result - d_2_test_ = default__.ToEncryptTestVector(op, version, keys, ((obj)[d_0_i_])[0], ((obj)[d_0_i_])[1]) - if (d_2_test_).is_Failure: - hresult_ = Wrappers.Result_Failure((d_2_test_).error) - return hresult_ - d_1_vectors_ = (_dafny.Seq([(d_2_test_).value])) + (d_1_vectors_) - hresult_ = Wrappers.Result_Success(d_1_vectors_) - return hresult_ - return hresult_ - - @staticmethod - def ToEncryptTestVector(op, version, keys, name, json): - d_0_valueOrError0_ = Wrappers.default__.Need((json).is_Object, _dafny.Seq("EncryptTestVector not an object")) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - d_1_obj_ = (json).obj - source0_ = version - if True: - if (source0_) == (5): - return default__.V5ToEncryptTestVector(op, keys, name, d_1_obj_, version) - if True: - return Wrappers.Result_Failure(_dafny.Seq("Version not supported")) - - @staticmethod - def V5ToEncryptTestVector(op, keys, name, obj, version): - d_0_scenarioString_ = _dafny.Seq("encryption-scenario") - d_1_valueOrError0_ = JSONHelpers.default__.GetObject(d_0_scenarioString_, obj) - if (d_1_valueOrError0_).IsFailure(): - return (d_1_valueOrError0_).PropagateFailure() - elif True: - d_2_scenario_ = (d_1_valueOrError0_).Extract() - d_3_typeString_ = _dafny.Seq("type") - d_4_valueOrError1_ = JSONHelpers.default__.GetString(d_3_typeString_, d_2_scenario_) - if (d_4_valueOrError1_).IsFailure(): - return (d_4_valueOrError1_).PropagateFailure() - elif True: - d_5_typ_ = (d_4_valueOrError1_).Extract() - d_6_valueOrError2_ = JSONHelpers.default__.GetString(default__.plaintextJsonKey, d_2_scenario_) - if (d_6_valueOrError2_).IsFailure(): - return (d_6_valueOrError2_).PropagateFailure() - elif True: - d_7_plaintextLoc_ = (d_6_valueOrError2_).Extract() - d_8_valueOrError3_ = ParseJsonManifests.default__.GetAlgorithmSuiteInfo(d_2_scenario_) - if (d_8_valueOrError3_).IsFailure(): - return (d_8_valueOrError3_).PropagateFailure() - elif True: - d_9_algorithmSuite_ = (d_8_valueOrError3_).Extract() - d_10_valueOrError4_ = Wrappers.default__.Need(((d_9_algorithmSuite_).id).is_ESDK, _dafny.Seq("Unsupported algorithmSuiteId")) - if (d_10_valueOrError4_).IsFailure(): - return (d_10_valueOrError4_).PropagateFailure() - elif True: - d_11_valueOrError5_ = JSONHelpers.default__.GetOptionalPositiveLong(default__.frameSizeJsonKey, d_2_scenario_) - if (d_11_valueOrError5_).IsFailure(): - return (d_11_valueOrError5_).PropagateFailure() - elif True: - d_12_frameLength_ = (d_11_valueOrError5_).Extract() - d_13_valueOrError6_ = JSONHelpers.default__.SmallObjectToStringStringMap(default__.encryptionContextJsonKey, d_2_scenario_) - if (d_13_valueOrError6_).IsFailure(): - return (d_13_valueOrError6_).PropagateFailure() - elif True: - d_14_encryptionContextStrings_ = (d_13_valueOrError6_).Extract() - d_15_valueOrError7_ = JSONHelpers.default__.utf8EncodeMap(d_14_encryptionContextStrings_) - if (d_15_valueOrError7_).IsFailure(): - return (d_15_valueOrError7_).PropagateFailure() - elif True: - d_16_encryptionContext_ = (d_15_valueOrError7_).Extract() - d_17_valueOrError8_ = JSONHelpers.default__.SmallObjectToStringStringMap(default__.reproducedEncryptionContextJsonKey, d_2_scenario_) - if (d_17_valueOrError8_).IsFailure(): - return (d_17_valueOrError8_).PropagateFailure() - elif True: - d_18_reproducedEncryptionContextString_ = (d_17_valueOrError8_).Extract() - d_19_valueOrError9_ = JSONHelpers.default__.utf8EncodeMap(d_18_reproducedEncryptionContextString_) - if (d_19_valueOrError9_).IsFailure(): - return (d_19_valueOrError9_).PropagateFailure() - elif True: - d_20_reproducedEncryptionContext_ = (d_19_valueOrError9_).Extract() - d_21_valueOrError10_ = JSONHelpers.default__.GetString(_dafny.Seq("description"), d_2_scenario_) - if (d_21_valueOrError10_).IsFailure(): - return (d_21_valueOrError10_).PropagateFailure() - elif True: - d_22_description_ = (d_21_valueOrError10_).Extract() - source0_ = d_5_typ_ - if True: - if (source0_) == (_dafny.Seq("positive-esdk")): - d_23_valueOrError11_ = ParseJsonManifests.default__.GetKeyDescription(keys, default__.encryptKeyDescription, d_2_scenario_) - if (d_23_valueOrError11_).IsFailure(): - return (d_23_valueOrError11_).PropagateFailure() - elif True: - d_24_encryptKeyDescription_ = (d_23_valueOrError11_).Extract() - d_25_valueOrError12_ = ParseJsonManifests.default__.GetKeyDescription(keys, default__.decryptKeyDescription, d_2_scenario_) - if (d_25_valueOrError12_).IsFailure(): - return (d_25_valueOrError12_).PropagateFailure() - elif True: - d_26_decryptKeyDescription_ = (d_25_valueOrError12_).Extract() - return Wrappers.Result_Success(EsdkTestVectors.EsdkEncryptTestVector_PositiveEncryptTestVector(Wrappers.Option_Some(name), version, (op).manifestPath, (op).decryptManifestOutput, d_7_plaintextLoc_, d_24_encryptKeyDescription_, d_26_decryptKeyDescription_, Wrappers.Option_Some(d_16_encryptionContext_), Wrappers.Option_Some(d_20_reproducedEncryptionContext_), AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT(), d_12_frameLength_, Wrappers.Option_Some(d_9_algorithmSuite_), d_22_description_, Wrappers.Option_Some(1))) - if True: - return Wrappers.Result_Failure((_dafny.Seq("Unsupported ESDK TestVector type: ")) + (d_5_typ_)) - - @staticmethod - def V1ToDecryptTestVector(op, keys, name, obj, version): - d_0_valueOrError0_ = JSONHelpers.default__.GetString(_dafny.Seq("plaintext"), obj) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - d_1_plaintextLoc_ = (d_0_valueOrError0_).Extract() - d_2_valueOrError1_ = JSONHelpers.default__.GetString(_dafny.Seq("ciphertext"), obj) - if (d_2_valueOrError1_).IsFailure(): - return (d_2_valueOrError1_).PropagateFailure() - elif True: - d_3_ciphertextLoc_ = (d_2_valueOrError1_).Extract() - d_4_valueOrError2_ = Wrappers.default__.Need(((_dafny.Seq("file://")) < (d_3_ciphertextLoc_)) and ((_dafny.Seq("file://")) < (d_1_plaintextLoc_)), _dafny.Seq("Invalid file prefix in test vector")) - if (d_4_valueOrError2_).IsFailure(): - return (d_4_valueOrError2_).PropagateFailure() - elif True: - d_5_valueOrError3_ = JSONHelpers.default__.GetArray(_dafny.Seq("master-keys"), obj) - if (d_5_valueOrError3_).IsFailure(): - return (d_5_valueOrError3_).PropagateFailure() - elif True: - d_6_masterKeys_ = (d_5_valueOrError3_).Extract() - d_7_valueOrError4_ = default__.GetKeyDescriptions(d_6_masterKeys_, keys) - if (d_7_valueOrError4_).IsFailure(): - return (d_7_valueOrError4_).PropagateFailure() - elif True: - d_8_keyDescriptions_ = (d_7_valueOrError4_).Extract() - d_9_valueOrError5_ = default__.ToMultiKeyDescription(d_8_keyDescriptions_) - if (d_9_valueOrError5_).IsFailure(): - return (d_9_valueOrError5_).PropagateFailure() - elif True: - d_10_keyDescription_ = (d_9_valueOrError5_).Extract() - return Wrappers.Result_Success(EsdkTestVectors.EsdkDecryptTestVector_PositiveV1OrV2DecryptTestVector(name, version, (op).manifestPath, _dafny.Seq((d_3_ciphertextLoc_)[len(default__.FILE__PREPEND)::]), _dafny.Seq((d_1_plaintextLoc_)[len(default__.FILE__PREPEND)::]), Wrappers.Option_None(), Wrappers.Option_None(), d_10_keyDescription_, AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT(), Wrappers.Option_None(), Wrappers.Option_None(), name, EsdkTestVectors.DecryptionMethod_OneShot())) - - @staticmethod - def V2ToDecryptTestVector(op, keys, name, obj, version): - d_0_valueOrError0_ = JSONHelpers.default__.GetObject(_dafny.Seq("result"), obj) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - d_1_resultLoc_ = (d_0_valueOrError0_).Extract() - d_2_errorLoc_q_ = JSONHelpers.default__.GetObject(_dafny.Seq("error"), d_1_resultLoc_) - if (d_2_errorLoc_q_).is_Success: - return Wrappers.Result_Failure(default__.negativeTestVectorFound) - elif True: - d_3_valueOrError1_ = JSONHelpers.default__.GetObject(_dafny.Seq("output"), d_1_resultLoc_) - if (d_3_valueOrError1_).IsFailure(): - return (d_3_valueOrError1_).PropagateFailure() - elif True: - d_4_outputLoc_ = (d_3_valueOrError1_).Extract() - d_5_valueOrError2_ = JSONHelpers.default__.GetString(_dafny.Seq("plaintext"), d_4_outputLoc_) - if (d_5_valueOrError2_).IsFailure(): - return (d_5_valueOrError2_).PropagateFailure() - elif True: - d_6_plaintextLoc_ = (d_5_valueOrError2_).Extract() - d_7_valueOrError3_ = JSONHelpers.default__.GetString(_dafny.Seq("ciphertext"), obj) - if (d_7_valueOrError3_).IsFailure(): - return (d_7_valueOrError3_).PropagateFailure() - elif True: - d_8_ciphertextLoc_ = (d_7_valueOrError3_).Extract() - d_9_valueOrError4_ = Wrappers.default__.Need(((_dafny.Seq("file://")) < (d_8_ciphertextLoc_)) and ((_dafny.Seq("file://")) < (d_6_plaintextLoc_)), _dafny.Seq("Invalid file prefix in test vector")) - if (d_9_valueOrError4_).IsFailure(): - return (d_9_valueOrError4_).PropagateFailure() - elif True: - d_10_valueOrError5_ = JSONHelpers.default__.GetArray(_dafny.Seq("master-keys"), obj) - if (d_10_valueOrError5_).IsFailure(): - return (d_10_valueOrError5_).PropagateFailure() - elif True: - d_11_masterKeys_ = (d_10_valueOrError5_).Extract() - d_12_valueOrError6_ = default__.GetKeyDescriptions(d_11_masterKeys_, keys) - if (d_12_valueOrError6_).IsFailure(): - return (d_12_valueOrError6_).PropagateFailure() - elif True: - d_13_keyDescriptions_ = (d_12_valueOrError6_).Extract() - d_14_valueOrError7_ = default__.ToMultiKeyDescription(d_13_keyDescriptions_) - if (d_14_valueOrError7_).IsFailure(): - return (d_14_valueOrError7_).PropagateFailure() - elif True: - d_15_keyDescription_ = (d_14_valueOrError7_).Extract() - return Wrappers.Result_Success(EsdkTestVectors.EsdkDecryptTestVector_PositiveV1OrV2DecryptTestVector(name, version, (op).manifestPath, _dafny.Seq((d_8_ciphertextLoc_)[len(default__.FILE__PREPEND)::]), _dafny.Seq((d_6_plaintextLoc_)[len(default__.FILE__PREPEND)::]), Wrappers.Option_None(), Wrappers.Option_None(), d_15_keyDescription_, AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT(), Wrappers.Option_None(), Wrappers.Option_None(), name, EsdkTestVectors.DecryptionMethod_OneShot())) - - @staticmethod - def V3ToDecryptTestVector(op, keys, name, obj, version): - d_0_scenarioString_ = _dafny.Seq("decryption-scenario") - d_1_valueOrError0_ = JSONHelpers.default__.GetObject(d_0_scenarioString_, obj) - if (d_1_valueOrError0_).IsFailure(): - return (d_1_valueOrError0_).PropagateFailure() - elif True: - d_2_scenario_ = (d_1_valueOrError0_).Extract() - d_3_typeString_ = _dafny.Seq("type") - d_4_valueOrError1_ = JSONHelpers.default__.GetString(d_3_typeString_, d_2_scenario_) - if (d_4_valueOrError1_).IsFailure(): - return (d_4_valueOrError1_).PropagateFailure() - elif True: - d_5_typ_ = (d_4_valueOrError1_).Extract() - d_6_valueOrError2_ = JSONHelpers.default__.GetString(default__.ciphertextJsonKey, d_2_scenario_) - if (d_6_valueOrError2_).IsFailure(): - return (d_6_valueOrError2_).PropagateFailure() - elif True: - d_7_ciphertextLoc_ = (d_6_valueOrError2_).Extract() - d_8_valueOrError3_ = ParseJsonManifests.default__.GetAlgorithmSuiteInfo(d_2_scenario_) - if (d_8_valueOrError3_).IsFailure(): - return (d_8_valueOrError3_).PropagateFailure() - elif True: - d_9_algorithmSuite_ = (d_8_valueOrError3_).Extract() - d_10_valueOrError4_ = Wrappers.default__.Need(((d_9_algorithmSuite_).id).is_ESDK, _dafny.Seq("Unsupported algorithmSuiteId")) - if (d_10_valueOrError4_).IsFailure(): - return (d_10_valueOrError4_).PropagateFailure() - elif True: - d_11_valueOrError5_ = JSONHelpers.default__.GetOptionalPositiveLong(default__.frameSizeJsonKey, d_2_scenario_) - if (d_11_valueOrError5_).IsFailure(): - return (d_11_valueOrError5_).PropagateFailure() - elif True: - d_12_frameLength_ = (d_11_valueOrError5_).Extract() - d_13_valueOrError6_ = JSONHelpers.default__.SmallObjectToStringStringMap(default__.reproducedEncryptionContextJsonKey, d_2_scenario_) - if (d_13_valueOrError6_).IsFailure(): - return (d_13_valueOrError6_).PropagateFailure() - elif True: - d_14_reproducedEncryptionContextStrings_ = (d_13_valueOrError6_).Extract() - d_15_valueOrError7_ = JSONHelpers.default__.utf8EncodeMap(d_14_reproducedEncryptionContextStrings_) - if (d_15_valueOrError7_).IsFailure(): - return (d_15_valueOrError7_).PropagateFailure() - elif True: - d_16_reproducedEncryptionContext_ = (d_15_valueOrError7_).Extract() - d_17_valueOrError8_ = JSONHelpers.default__.GetString(_dafny.Seq("description"), d_2_scenario_) - if (d_17_valueOrError8_).IsFailure(): - return (d_17_valueOrError8_).PropagateFailure() - elif True: - d_18_description_ = (d_17_valueOrError8_).Extract() - d_19_valueOrError9_ = JSONHelpers.default__.GetString(_dafny.Seq("result"), d_2_scenario_) - if (d_19_valueOrError9_).IsFailure(): - return (d_19_valueOrError9_).PropagateFailure() - elif True: - d_20_result_ = (d_19_valueOrError9_).Extract() - d_21_valueOrError10_ = Wrappers.default__.Need(((_dafny.Seq("file://")) < (d_7_ciphertextLoc_)) and ((_dafny.Seq("file://")) < (d_20_result_)), _dafny.Seq("Invalid file prefix in test vector")) - if (d_21_valueOrError10_).IsFailure(): - return (d_21_valueOrError10_).PropagateFailure() - elif True: - source0_ = d_5_typ_ - if True: - if (source0_) == (_dafny.Seq("positive-esdk")): - d_22_valueOrError11_ = ParseJsonManifests.default__.GetKeyDescription(keys, default__.decryptKeyDescription, d_2_scenario_) - if (d_22_valueOrError11_).IsFailure(): - return (d_22_valueOrError11_).PropagateFailure() - elif True: - d_23_decryptKeyDescription_ = (d_22_valueOrError11_).Extract() - return Wrappers.Result_Success(EsdkTestVectors.EsdkDecryptTestVector_PositiveDecryptTestVector(name, version, (op).manifestPath, _dafny.Seq((d_7_ciphertextLoc_)[len(default__.FILE__PREPEND)::]), _dafny.Seq((d_20_result_)[len(default__.FILE__PREPEND)::]), Wrappers.Option_Some(d_16_reproducedEncryptionContext_), d_23_decryptKeyDescription_, AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT(), d_12_frameLength_, Wrappers.Option_Some(d_9_algorithmSuite_), d_18_description_, EsdkTestVectors.DecryptionMethod_OneShot())) - if True: - return Wrappers.Result_Failure((_dafny.Seq("Unsupported ESDK TestVector type: ")) + (d_5_typ_)) - - @staticmethod - def GetKeyDescriptions(keyArray, keys): - if (len(keyArray)) == (0): - return Wrappers.Result_Success(_dafny.Seq([])) - elif True: - d_0_currKey_ = (keyArray)[0] - d_1_valueOrError0_ = Wrappers.default__.Need((d_0_currKey_).is_Object, _dafny.Seq("Not an object")) - if (d_1_valueOrError0_).IsFailure(): - return (d_1_valueOrError0_).PropagateFailure() - elif True: - def lambda0_(d_3_e_): - return (d_3_e_).ToString() - - d_2_valueOrError1_ = (JSON_API.default__.Serialize(d_0_currKey_)).MapFailure(lambda0_) - if (d_2_valueOrError1_).IsFailure(): - return (d_2_valueOrError1_).PropagateFailure() - elif True: - d_4_encryptStr_ = (d_2_valueOrError1_).Extract() - d_5_valueOrError2_ = ((keys).GetKeyDescription(AwsCryptographyMaterialProvidersTestVectorKeysTypes.GetKeyDescriptionInput_GetKeyDescriptionInput(d_4_encryptStr_))).MapFailure(ParseJsonManifests.default__.ErrorToString) - if (d_5_valueOrError2_).IsFailure(): - return (d_5_valueOrError2_).PropagateFailure() - elif True: - d_6_encryptDecryptKeyDescription_ = (d_5_valueOrError2_).Extract() - d_7_valueOrError3_ = default__.GetKeyDescriptions(_dafny.Seq((keyArray)[1::]), keys) - if (d_7_valueOrError3_).IsFailure(): - return (d_7_valueOrError3_).PropagateFailure() - elif True: - d_8_tail_ = (d_7_valueOrError3_).Extract() - return Wrappers.Result_Success((_dafny.Seq([(d_6_encryptDecryptKeyDescription_).keyDescription])) + (d_8_tail_)) - - @staticmethod - def ToMultiKeyDescription(keyDescriptions): - if (len(keyDescriptions)) == (1): - return Wrappers.Result_Success((keyDescriptions)[0]) - elif True: - d_0_valueOrError0_ = Wrappers.default__.Need((len(keyDescriptions)) > (1), _dafny.Seq("Received invalid key description length")) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - return Wrappers.Result_Success(AwsCryptographyMaterialProvidersTestVectorKeysTypes.KeyDescription_Multi(AwsCryptographyMaterialProvidersTestVectorKeysTypes.MultiKeyring_MultiKeyring(Wrappers.Option_Some((keyDescriptions)[0]), _dafny.Seq((keyDescriptions)[1::])))) - - @staticmethod - def GetPath(key, obj): - d_0_valueOrError0_ = JSONHelpers.default__.GetString(key, obj) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - d_1_path_ = (d_0_valueOrError0_).Extract() - d_2_valueOrError1_ = Wrappers.default__.Need((default__.FILE__PREPEND) < (d_1_path_), _dafny.Seq("Received Invalid location for plaintext or ciphertext.")) - if (d_2_valueOrError1_).IsFailure(): - return (d_2_valueOrError1_).PropagateFailure() - elif True: - return Wrappers.Result_Success(_dafny.Seq((d_1_path_)[len(default__.FILE__PREPEND)::])) - - @staticmethod - def Result_q(key): - return ((key) == (_dafny.Seq("output"))) or ((key) == (_dafny.Seq("error"))) - - @_dafny.classproperty - def ciphertextJsonKey(instance): - return _dafny.Seq("ciphertext") - @_dafny.classproperty - def frameSizeJsonKey(instance): - return _dafny.Seq("frame-size") - @_dafny.classproperty - def reproducedEncryptionContextJsonKey(instance): - return _dafny.Seq("reproduced-encryption-context") - @_dafny.classproperty - def decryptKeyDescription(instance): - return _dafny.Seq("decryptKeyDescription") - @_dafny.classproperty - def FILE__PREPEND(instance): - return _dafny.Seq("file://") - @_dafny.classproperty - def negativeTestVectorFound(instance): - return _dafny.Seq("Negative test vector found; not supported yet.") - @_dafny.classproperty - def buildTestVectorError(instance): - return _dafny.Seq("Error other than negative test vector found thrown") - @_dafny.classproperty - def plaintextJsonKey(instance): - return _dafny.Seq("plaintext") - @_dafny.classproperty - def encryptionContextJsonKey(instance): - return _dafny.Seq("encryption-context") - @_dafny.classproperty - def encryptKeyDescription(instance): - return _dafny.Seq("encryptKeyDescription") - @_dafny.classproperty - def masterKeysJsonKey(instance): - return _dafny.Seq("master-keys") - @_dafny.classproperty - def decryptionMethodJsonKey(instance): - return _dafny.Seq("decryption-method") diff --git a/TestVectors/runtimes/python/src/internaldafny/generated/WrappedESDK.py b/TestVectors/runtimes/python/src/internaldafny/generated/WrappedESDK.py deleted file mode 100644 index cb1a2e45b..000000000 --- a/TestVectors/runtimes/python/src/internaldafny/generated/WrappedESDK.py +++ /dev/null @@ -1,229 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import .internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import Wrappers as Wrappers -import BoundedInts as BoundedInts -import StandardLibrary_UInt as StandardLibrary_UInt -import StandardLibrary_Sequence as StandardLibrary_Sequence -import StandardLibrary_String as StandardLibrary_String -import StandardLibrary as StandardLibrary -import UTF8 as UTF8 -import AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import ExternRandom as ExternRandom -import Random as Random -import AESEncryption as AESEncryption -import ExternDigest as ExternDigest -import Digest as Digest -import HMAC as HMAC -import WrappedHMAC as WrappedHMAC -import HKDF as HKDF -import WrappedHKDF as WrappedHKDF -import Signature as Signature -import KdfCtr as KdfCtr -import RSAEncryption as RSAEncryption -import ECDH as ECDH -import AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import AtomicPrimitives as AtomicPrimitives -import ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import Base64 as Base64 -import AlgorithmSuites as AlgorithmSuites -import Materials as Materials -import Keyring as Keyring -import Relations as Relations -import Seq_MergeSort as Seq_MergeSort -import Math as Math -import Seq as Seq -import MultiKeyring as MultiKeyring -import AwsArnParsing as AwsArnParsing -import AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import Actions as Actions -import AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import AwsKmsUtils as AwsKmsUtils -import Constants as Constants -import UUID as UUID -import MaterialWrapping as MaterialWrapping -import SortedSets as SortedSets -import CanonicalEncryptionContext as CanonicalEncryptionContext -import IntermediateKeyWrapping as IntermediateKeyWrapping -import EdkWrapping as EdkWrapping -import ErrorMessages as ErrorMessages -import AwsKmsKeyring as AwsKmsKeyring -import StrictMultiKeyring as StrictMultiKeyring -import AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import Com_Amazonaws_Kms as Com_Amazonaws_Kms -import Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import DiscoveryMultiKeyring as DiscoveryMultiKeyring -import AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import AwsKmsMrkKeyring as AwsKmsMrkKeyring -import MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import DafnyLibraries as DafnyLibraries -import Time as Time -import LocalCMC as LocalCMC -import SynchronizedLocalCMC as SynchronizedLocalCMC -import StormTracker as StormTracker -import StormTrackingCMC as StormTrackingCMC -import CacheConstants as CacheConstants -import AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import AwsKmsRsaKeyring as AwsKmsRsaKeyring -import EcdhEdkWrapping as EcdhEdkWrapping -import RawECDHKeyring as RawECDHKeyring -import AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import RawAESKeyring as RawAESKeyring -import RawRSAKeyring as RawRSAKeyring -import CMM as CMM -import Defaults as Defaults -import Commitment as Commitment -import DefaultCMM as DefaultCMM -import DefaultClientSupplier as DefaultClientSupplier -import Utils as Utils -import RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import MaterialProviders as MaterialProviders -import KeyStoreErrorMessages as KeyStoreErrorMessages -import KmsArn as KmsArn -import Structure as Structure -import KMSKeystoreOperations as KMSKeystoreOperations -import DDBKeystoreOperations as DDBKeystoreOperations -import CreateKeys as CreateKeys -import CreateKeyStoreTable as CreateKeyStoreTable -import GetKeys as GetKeys -import AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import KeyStore as KeyStore -import AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes -import JSON_Utils_Views_Core as JSON_Utils_Views_Core -import JSON_Utils_Views_Writers as JSON_Utils_Views_Writers -import JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core -import JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings -import JSON_Utils_Cursors as JSON_Utils_Cursors -import JSON_Utils_Parsers as JSON_Utils_Parsers -import GeneralInternals as GeneralInternals -import MulInternalsNonlinear as MulInternalsNonlinear -import MulInternals as MulInternals -import Mul as Mul -import ModInternalsNonlinear as ModInternalsNonlinear -import DivInternalsNonlinear as DivInternalsNonlinear -import ModInternals as ModInternals -import DivInternals as DivInternals -import DivMod as DivMod -import Power as Power -import Logarithm as Logarithm -import JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion -import JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping -import JSON_Utils_Str as JSON_Utils_Str -import JSON_Utils_Seq as JSON_Utils_Seq -import JSON_Utils_Vectors as JSON_Utils_Vectors -import JSON_Errors as JSON_Errors -import JSON_Values as JSON_Values -import Unicode as Unicode -import Functions as Functions -import Utf8EncodingForm as Utf8EncodingForm -import Utf16EncodingForm as Utf16EncodingForm -import UnicodeStrings as UnicodeStrings -import JSON_Spec as JSON_Spec -import JSON_Grammar as JSON_Grammar -import JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion -import JSON_Serializer as JSON_Serializer -import JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion -import JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion -import JSON_Deserializer as JSON_Deserializer -import JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec -import JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties -import JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer -import JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core -import JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings -import JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers -import JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams -import JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects -import JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams -import JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays -import JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants -import JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values -import JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API -import JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer -import JSON_ZeroCopy_API as JSON_ZeroCopy_API -import JSON_API as JSON_API -import JSONHelpers as JSONHelpers -import KeyDescription as KeyDescription -import HexStrings as HexStrings -import KeyMaterial as KeyMaterial -import CreateStaticKeyrings as CreateStaticKeyrings -import CreateStaticKeyStores as CreateStaticKeyStores -import KeyringFromKeyDescription as KeyringFromKeyDescription -import CmmFromKeyDescription as CmmFromKeyDescription -import WrappedMaterialProviders as WrappedMaterialProviders -import KeysVectorOperations as KeysVectorOperations -import FileIO as FileIO -import KeyVectors as KeyVectors -import AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import Streams as Streams -import SerializableTypes as SerializableTypes -import SerializeFunctions as SerializeFunctions -import EncryptionContext as EncryptionContext -import HeaderTypes as HeaderTypes -import SharedHeaderFunctions as SharedHeaderFunctions -import EncryptedDataKeys as EncryptedDataKeys -import V1HeaderBody as V1HeaderBody -import V2HeaderBody as V2HeaderBody -import HeaderAuth as HeaderAuth -import Header as Header -import Frames as Frames -import MessageBody as MessageBody -import KeyDerivation as KeyDerivation -import EncryptDecryptHelpers as EncryptDecryptHelpers -import AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import EncryptionSdk as EncryptionSdk -import MplManifestOptions as MplManifestOptions -import GetOpt as GetOpt -import AllAlgorithmSuites as AllAlgorithmSuites -import TestVectors as TestVectors -import AllHierarchy as AllHierarchy -import AllKms as AllKms -import AllKmsMrkAware as AllKmsMrkAware -import AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery -import AllKmsRsa as AllKmsRsa -import AllKmsEcdh as AllKmsEcdh -import AllRawAES as AllRawAES -import AllRawRSA as AllRawRSA -import AllRawECDH as AllRawECDH -import AllDefaultCmm as AllDefaultCmm -import AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm -import AllMulti as AllMulti -import WriteJsonManifests as WriteJsonManifests -import CompleteVectors as CompleteVectors -import ParseJsonManifests as ParseJsonManifests -import TestManifests as TestManifests -import WrappedMaterialProvidersMain as WrappedMaterialProvidersMain -import AesKdfCtr as AesKdfCtr -import StandardLibraryInterop as StandardLibraryInterop -import Sorting as Sorting -import FloatCompare as FloatCompare -import ConcurrentCall as ConcurrentCall -import Base64Lemmas as Base64Lemmas - -# Module: WrappedESDK - -class default__: - def __init__(self): - pass - - @staticmethod - def WrappedDefaultAwsEncryptionSdkConfig(): - return AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig_AwsEncryptionSdkConfig(Wrappers.Option_Some(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT()), Wrappers.Option_None(), Wrappers.Option_None()) - - @staticmethod - def WrappedAwsEncryptionSdkConfigWithSuppliedCommitment(commitmentPolicy): - return AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig_AwsEncryptionSdkConfig(Wrappers.Option_Some(commitmentPolicy), Wrappers.Option_None(), Wrappers.Option_None()) - - @staticmethod - def WrappedAwsEncryptionSdkConfig(commitmentPolicy, maxEncryptedDataKeys, netV4__0__0__RetryPolicy): - return AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig_AwsEncryptionSdkConfig(Wrappers.Option_Some(commitmentPolicy), Wrappers.Option_Some(maxEncryptedDataKeys), Wrappers.Option_Some(netV4__0__0__RetryPolicy)) - diff --git a/TestVectors/runtimes/python/src/internaldafny/generated/WrappedESDKMain.py b/TestVectors/runtimes/python/src/internaldafny/generated/WrappedESDKMain.py deleted file mode 100644 index 98095ea8b..000000000 --- a/TestVectors/runtimes/python/src/internaldafny/generated/WrappedESDKMain.py +++ /dev/null @@ -1,346 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import .internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import Wrappers as Wrappers -import BoundedInts as BoundedInts -import StandardLibrary_UInt as StandardLibrary_UInt -import StandardLibrary_Sequence as StandardLibrary_Sequence -import StandardLibrary_String as StandardLibrary_String -import StandardLibrary as StandardLibrary -import UTF8 as UTF8 -import AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import ExternRandom as ExternRandom -import Random as Random -import AESEncryption as AESEncryption -import ExternDigest as ExternDigest -import Digest as Digest -import HMAC as HMAC -import WrappedHMAC as WrappedHMAC -import HKDF as HKDF -import WrappedHKDF as WrappedHKDF -import Signature as Signature -import KdfCtr as KdfCtr -import RSAEncryption as RSAEncryption -import ECDH as ECDH -import AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import AtomicPrimitives as AtomicPrimitives -import ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import Base64 as Base64 -import AlgorithmSuites as AlgorithmSuites -import Materials as Materials -import Keyring as Keyring -import Relations as Relations -import Seq_MergeSort as Seq_MergeSort -import Math as Math -import Seq as Seq -import MultiKeyring as MultiKeyring -import AwsArnParsing as AwsArnParsing -import AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import Actions as Actions -import AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import AwsKmsUtils as AwsKmsUtils -import Constants as Constants -import UUID as UUID -import MaterialWrapping as MaterialWrapping -import SortedSets as SortedSets -import CanonicalEncryptionContext as CanonicalEncryptionContext -import IntermediateKeyWrapping as IntermediateKeyWrapping -import EdkWrapping as EdkWrapping -import ErrorMessages as ErrorMessages -import AwsKmsKeyring as AwsKmsKeyring -import StrictMultiKeyring as StrictMultiKeyring -import AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import Com_Amazonaws_Kms as Com_Amazonaws_Kms -import Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import DiscoveryMultiKeyring as DiscoveryMultiKeyring -import AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import AwsKmsMrkKeyring as AwsKmsMrkKeyring -import MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import DafnyLibraries as DafnyLibraries -import Time as Time -import LocalCMC as LocalCMC -import SynchronizedLocalCMC as SynchronizedLocalCMC -import StormTracker as StormTracker -import StormTrackingCMC as StormTrackingCMC -import CacheConstants as CacheConstants -import AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import AwsKmsRsaKeyring as AwsKmsRsaKeyring -import EcdhEdkWrapping as EcdhEdkWrapping -import RawECDHKeyring as RawECDHKeyring -import AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import RawAESKeyring as RawAESKeyring -import RawRSAKeyring as RawRSAKeyring -import CMM as CMM -import Defaults as Defaults -import Commitment as Commitment -import DefaultCMM as DefaultCMM -import DefaultClientSupplier as DefaultClientSupplier -import Utils as Utils -import RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import MaterialProviders as MaterialProviders -import KeyStoreErrorMessages as KeyStoreErrorMessages -import KmsArn as KmsArn -import Structure as Structure -import KMSKeystoreOperations as KMSKeystoreOperations -import DDBKeystoreOperations as DDBKeystoreOperations -import CreateKeys as CreateKeys -import CreateKeyStoreTable as CreateKeyStoreTable -import GetKeys as GetKeys -import AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import KeyStore as KeyStore -import AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes -import JSON_Utils_Views_Core as JSON_Utils_Views_Core -import JSON_Utils_Views_Writers as JSON_Utils_Views_Writers -import JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core -import JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings -import JSON_Utils_Cursors as JSON_Utils_Cursors -import JSON_Utils_Parsers as JSON_Utils_Parsers -import GeneralInternals as GeneralInternals -import MulInternalsNonlinear as MulInternalsNonlinear -import MulInternals as MulInternals -import Mul as Mul -import ModInternalsNonlinear as ModInternalsNonlinear -import DivInternalsNonlinear as DivInternalsNonlinear -import ModInternals as ModInternals -import DivInternals as DivInternals -import DivMod as DivMod -import Power as Power -import Logarithm as Logarithm -import JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion -import JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping -import JSON_Utils_Str as JSON_Utils_Str -import JSON_Utils_Seq as JSON_Utils_Seq -import JSON_Utils_Vectors as JSON_Utils_Vectors -import JSON_Errors as JSON_Errors -import JSON_Values as JSON_Values -import Unicode as Unicode -import Functions as Functions -import Utf8EncodingForm as Utf8EncodingForm -import Utf16EncodingForm as Utf16EncodingForm -import UnicodeStrings as UnicodeStrings -import JSON_Spec as JSON_Spec -import JSON_Grammar as JSON_Grammar -import JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion -import JSON_Serializer as JSON_Serializer -import JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion -import JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion -import JSON_Deserializer as JSON_Deserializer -import JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec -import JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties -import JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer -import JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core -import JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings -import JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers -import JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams -import JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects -import JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams -import JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays -import JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants -import JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values -import JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API -import JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer -import JSON_ZeroCopy_API as JSON_ZeroCopy_API -import JSON_API as JSON_API -import JSONHelpers as JSONHelpers -import KeyDescription as KeyDescription -import HexStrings as HexStrings -import KeyMaterial as KeyMaterial -import CreateStaticKeyrings as CreateStaticKeyrings -import CreateStaticKeyStores as CreateStaticKeyStores -import KeyringFromKeyDescription as KeyringFromKeyDescription -import CmmFromKeyDescription as CmmFromKeyDescription -import WrappedMaterialProviders as WrappedMaterialProviders -import KeysVectorOperations as KeysVectorOperations -import FileIO as FileIO -import KeyVectors as KeyVectors -import AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import Streams as Streams -import SerializableTypes as SerializableTypes -import SerializeFunctions as SerializeFunctions -import EncryptionContext as EncryptionContext -import HeaderTypes as HeaderTypes -import SharedHeaderFunctions as SharedHeaderFunctions -import EncryptedDataKeys as EncryptedDataKeys -import V1HeaderBody as V1HeaderBody -import V2HeaderBody as V2HeaderBody -import HeaderAuth as HeaderAuth -import Header as Header -import Frames as Frames -import MessageBody as MessageBody -import KeyDerivation as KeyDerivation -import EncryptDecryptHelpers as EncryptDecryptHelpers -import AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import EncryptionSdk as EncryptionSdk -import MplManifestOptions as MplManifestOptions -import GetOpt as GetOpt -import AllAlgorithmSuites as AllAlgorithmSuites -import TestVectors as TestVectors -import AllHierarchy as AllHierarchy -import AllKms as AllKms -import AllKmsMrkAware as AllKmsMrkAware -import AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery -import AllKmsRsa as AllKmsRsa -import AllKmsEcdh as AllKmsEcdh -import AllRawAES as AllRawAES -import AllRawRSA as AllRawRSA -import AllRawECDH as AllRawECDH -import AllDefaultCmm as AllDefaultCmm -import AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm -import AllMulti as AllMulti -import WriteJsonManifests as WriteJsonManifests -import CompleteVectors as CompleteVectors -import ParseJsonManifests as ParseJsonManifests -import TestManifests as TestManifests -import WrappedMaterialProvidersMain as WrappedMaterialProvidersMain -import AesKdfCtr as AesKdfCtr -import StandardLibraryInterop as StandardLibraryInterop -import Sorting as Sorting -import FloatCompare as FloatCompare -import ConcurrentCall as ConcurrentCall -import Base64Lemmas as Base64Lemmas -import .internaldafny.generated.WrappedESDK as WrappedESDK -import .internaldafny.generated.EsdkManifestOptions as EsdkManifestOptions -import .internaldafny.generated.EsdkTestVectors as EsdkTestVectors -import .internaldafny.generated.AllEsdkV4NoReqEc as AllEsdkV4NoReqEc -import .internaldafny.generated.AllEsdkV4WithReqEc as AllEsdkV4WithReqEc -import .internaldafny.generated.WriteEsdkJsonManifests as WriteEsdkJsonManifests -import .internaldafny.generated.WriteVectors as WriteVectors -import .internaldafny.generated.ParseEsdkJsonManifest as ParseEsdkJsonManifest -import .internaldafny.generated.EsdkTestManifests as EsdkTestManifests - -# Module: WrappedESDKMain - -class default__: - def __init__(self): - pass - - @staticmethod - def Main2(args): - d_0_vectorOptions_: GetOpt.Options - d_0_vectorOptions_ = GetOpt.Options_Options(_dafny.Seq("test-vectors"), _dafny.Seq("?"), _dafny.Seq([GetOpt.Param_Command(GetOpt.Options_Options(_dafny.Seq("decrypt"), _dafny.Seq("decrypt command for test-vectors"), _dafny.Seq([GetOpt.Param_Opt(_dafny.Seq("manifest-path"), _dafny.Seq("relative path to the location of the manifest"), _dafny.Seq("arg"), GetOpt.default__.NullChar, GetOpt.Unused_Required(), False, GetOpt.Visibility_Normal(), _dafny.Seq([]), _dafny.Seq([]), GetOpt.Tri_No()), GetOpt.Param_Opt(_dafny.Seq("manifest-name"), _dafny.Seq("name of file that contains the decrypt vectors file"), _dafny.Seq("arg"), GetOpt.default__.NullChar, GetOpt.Unused_Required(), False, GetOpt.Visibility_Normal(), _dafny.Seq([]), _dafny.Seq([]), GetOpt.Tri_No()), GetOpt.Param_Opt(_dafny.Seq("test-name"), _dafny.Seq("id of the test to run"), _dafny.Seq("arg"), GetOpt.default__.NullChar, GetOpt.Unused_UnusedOk(), False, GetOpt.Visibility_Normal(), _dafny.Seq([]), _dafny.Seq([]), GetOpt.Tri_No())]))), GetOpt.Param_Command(GetOpt.Options_Options(_dafny.Seq("encrypt"), _dafny.Seq("encrypt command for test-vectors"), _dafny.Seq([GetOpt.Param_Opt(_dafny.Seq("manifest-path"), _dafny.Seq("relative path to the location of the manifest"), _dafny.Seq("arg"), GetOpt.default__.NullChar, GetOpt.Unused_Required(), False, GetOpt.Visibility_Normal(), _dafny.Seq([]), _dafny.Seq([]), GetOpt.Tri_No()), GetOpt.Param_Opt(_dafny.Seq("decrypt-manifest-path"), _dafny.Seq("relative path to the location where the decrypted manifest will be written to."), _dafny.Seq("arg"), GetOpt.default__.NullChar, GetOpt.Unused_Required(), False, GetOpt.Visibility_Normal(), _dafny.Seq([]), _dafny.Seq([]), GetOpt.Tri_No()), GetOpt.Param_Opt(_dafny.Seq("test-name"), _dafny.Seq("id of the test to run"), _dafny.Seq("arg"), GetOpt.default__.NullChar, GetOpt.Unused_UnusedOk(), False, GetOpt.Visibility_Normal(), _dafny.Seq([]), _dafny.Seq([]), GetOpt.Tri_No())]))), GetOpt.Param_Command(GetOpt.Options_Options(_dafny.Seq("encrypt-manifest"), _dafny.Seq("encryp manifest command for test-vectors"), _dafny.Seq([GetOpt.Param_Opt(_dafny.Seq("encrypt-manifest-output"), _dafny.Seq("relative path of where to store the encrypt-manifest produced"), _dafny.Seq("arg"), GetOpt.default__.NullChar, GetOpt.Unused_Required(), False, GetOpt.Visibility_Normal(), _dafny.Seq([]), _dafny.Seq([]), GetOpt.Tri_No())])))])) - if not((0) < (len(args))): - raise _dafny.HaltException("dafny/TestVectors/src/Index.dfy(40,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_1_parsedOptions_q_: Wrappers.Result - d_1_parsedOptions_q_ = GetOpt.default__.GetOptions(d_0_vectorOptions_, args) - if (d_1_parsedOptions_q_).is_Success: - d_2_h_: Wrappers.Option - d_2_h_ = GetOpt.default__.NeedsHelp(d_0_vectorOptions_, (d_1_parsedOptions_q_).value, _dafny.Seq("")) - if (d_2_h_).is_Some: - _dafny.print(_dafny.string_of((d_2_h_).value)) - return - d_3_op_q_: Wrappers.Result - d_3_op_q_ = default__.ParseCommandLineOptions((d_1_parsedOptions_q_).value) - if (d_3_op_q_).is_Success: - d_4_op_: EsdkManifestOptions.ManifestOptions - d_4_op_ = (d_3_op_q_).value - source0_ = d_4_op_ - with _dafny.label("match0"): - if True: - if source0_.is_Decrypt: - d_5_result_: Wrappers.Result - out0_: Wrappers.Result - out0_ = EsdkTestManifests.default__.StartDecryptVectors(d_4_op_) - d_5_result_ = out0_ - if (d_5_result_).is_Failure: - _dafny.print(_dafny.string_of((d_5_result_).error)) - if not((d_5_result_).is_Success): - raise _dafny.HaltException("dafny/TestVectors/src/Index.dfy(59,10): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - raise _dafny.Break("match0") - if True: - if source0_.is_Encrypt: - d_6_result_: Wrappers.Result - out1_: Wrappers.Result - out1_ = EsdkTestManifests.default__.StartEncryptVectors(d_4_op_) - d_6_result_ = out1_ - if (d_6_result_).is_Failure: - _dafny.print(_dafny.string_of((d_6_result_).error)) - if not((d_6_result_).is_Success): - raise _dafny.HaltException("dafny/TestVectors/src/Index.dfy(65,10): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - raise _dafny.Break("match0") - if True: - d_7_result_: Wrappers.Result - out2_: Wrappers.Result - out2_ = WriteVectors.default__.WriteTestVectors(d_4_op_) - d_7_result_ = out2_ - if (d_7_result_).is_Failure: - _dafny.print(_dafny.string_of((d_7_result_).error)) - if not((d_7_result_).is_Success): - raise _dafny.HaltException("dafny/TestVectors/src/Index.dfy(71,10): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - pass - elif True: - _dafny.print(_dafny.string_of(((d_3_op_q_).error) + (_dafny.Seq("\n")))) - _dafny.print(_dafny.string_of(_dafny.Seq("help\n"))) - elif True: - _dafny.print(_dafny.string_of(((d_1_parsedOptions_q_).error) + (_dafny.Seq("\n")))) - - @staticmethod - def ParseCommandLineOptions(parsedOptions): - d_0_valueOrError0_ = Wrappers.default__.Need(((parsedOptions).subcommand).is_Some, _dafny.Seq("Must supply subcommand\n")) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - source0_ = (((parsedOptions).subcommand).value).command - if True: - if (source0_) == (_dafny.Seq("decrypt")): - return default__.ParseDecryptCmd((((parsedOptions).subcommand).value).params) - if True: - if (source0_) == (_dafny.Seq("encrypt")): - return default__.ParseEncryptCmd((((parsedOptions).subcommand).value).params) - if True: - if (source0_) == (_dafny.Seq("encrypt-manifest")): - return default__.ParseEncryptManifestCmd((((parsedOptions).subcommand).value).params) - if True: - return Wrappers.Result_Failure(_dafny.Seq("Received unknown subcommand")) - - @staticmethod - def ParseDecryptCmd(params): - d_0_manifestPath_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("manifest-path")) - d_1_testName_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("test-name")) - d_2_manifestFileName_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("manifest-name")) - d_3_manifestPath_ = ((d_0_manifestPath_q_).value if (d_0_manifestPath_q_).is_Some else _dafny.Seq(".")) - d_4_valueOrError0_ = Wrappers.default__.Need((0) < (len(d_3_manifestPath_)), _dafny.Seq("Invalid manifest path length\n")) - if (d_4_valueOrError0_).IsFailure(): - return (d_4_valueOrError0_).PropagateFailure() - elif True: - d_5_valueOrError1_ = Wrappers.default__.Need((d_2_manifestFileName_q_).is_Some, _dafny.Seq("Must supply manifest file name")) - if (d_5_valueOrError1_).IsFailure(): - return (d_5_valueOrError1_).PropagateFailure() - elif True: - d_6_manifestFileName_ = (d_2_manifestFileName_q_).value - return Wrappers.Result_Success(EsdkManifestOptions.ManifestOptions_Decrypt((d_3_manifestPath_ if (Seq.default__.Last(d_3_manifestPath_)) == ('/') else (d_3_manifestPath_) + (_dafny.Seq("/"))), d_6_manifestFileName_, (d_1_testName_q_ if (d_1_testName_q_).is_Some else Wrappers.Option_None()))) - - @staticmethod - def ParseEncryptCmd(params): - d_0_manifestPath_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("manifest-path")) - d_1_manifestName_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("manifest")) - d_2_decryptManifestPath_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("decrypt-manifest-path")) - d_3_testName_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("test-name")) - d_4_manifestPath_ = ((d_0_manifestPath_q_).value if (d_0_manifestPath_q_).is_Some else _dafny.Seq(".")) - d_5_manifestName_ = ((d_1_manifestName_q_).value if (d_1_manifestName_q_).is_Some else _dafny.Seq("encrypt-manifest.json")) - d_6_decryptManifestPath_ = ((d_2_decryptManifestPath_q_).value if (d_2_decryptManifestPath_q_).is_Some else _dafny.Seq(".")) - d_7_valueOrError0_ = Wrappers.default__.Need(((0) < (len(d_4_manifestPath_))) and ((0) < (len(d_6_decryptManifestPath_))), _dafny.Seq("Invalid manifest or decrypt manifest path length\n")) - if (d_7_valueOrError0_).IsFailure(): - return (d_7_valueOrError0_).PropagateFailure() - elif True: - return Wrappers.Result_Success(EsdkManifestOptions.ManifestOptions_Encrypt((d_4_manifestPath_ if (Seq.default__.Last(d_4_manifestPath_)) == ('/') else (d_4_manifestPath_) + (_dafny.Seq("/"))), d_5_manifestName_, (d_6_decryptManifestPath_ if (Seq.default__.Last(d_6_decryptManifestPath_)) == ('/') else (d_6_decryptManifestPath_) + (_dafny.Seq("/"))), (d_3_testName_q_ if (d_3_testName_q_).is_Some else Wrappers.Option_None()))) - - @staticmethod - def ParseEncryptManifestCmd(params): - d_0_encryptManifestOutput_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("encrypt-manifest-output")) - d_1_encryptManifestOutput_ = ((d_0_encryptManifestOutput_q_).value if (d_0_encryptManifestOutput_q_).is_Some else _dafny.Seq(".")) - d_2_valueOrError0_ = Wrappers.default__.Need((0) < (len(d_1_encryptManifestOutput_)), _dafny.Seq("Invalid encrypt manifest output length")) - if (d_2_valueOrError0_).IsFailure(): - return (d_2_valueOrError0_).PropagateFailure() - elif True: - return Wrappers.Result_Success(EsdkManifestOptions.ManifestOptions_EncryptManifest((d_1_encryptManifestOutput_ if (Seq.default__.Last(d_1_encryptManifestOutput_)) == ('/') else (d_1_encryptManifestOutput_) + (_dafny.Seq("/"))), 5)) - diff --git a/TestVectors/runtimes/python/src/internaldafny/generated/WriteEsdkJsonManifests.py b/TestVectors/runtimes/python/src/internaldafny/generated/WriteEsdkJsonManifests.py deleted file mode 100644 index 6a65a3f66..000000000 --- a/TestVectors/runtimes/python/src/internaldafny/generated/WriteEsdkJsonManifests.py +++ /dev/null @@ -1,369 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import .internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import Wrappers as Wrappers -import BoundedInts as BoundedInts -import StandardLibrary_UInt as StandardLibrary_UInt -import StandardLibrary_Sequence as StandardLibrary_Sequence -import StandardLibrary_String as StandardLibrary_String -import StandardLibrary as StandardLibrary -import UTF8 as UTF8 -import AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import ExternRandom as ExternRandom -import Random as Random -import AESEncryption as AESEncryption -import ExternDigest as ExternDigest -import Digest as Digest -import HMAC as HMAC -import WrappedHMAC as WrappedHMAC -import HKDF as HKDF -import WrappedHKDF as WrappedHKDF -import Signature as Signature -import KdfCtr as KdfCtr -import RSAEncryption as RSAEncryption -import ECDH as ECDH -import AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import AtomicPrimitives as AtomicPrimitives -import ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import Base64 as Base64 -import AlgorithmSuites as AlgorithmSuites -import Materials as Materials -import Keyring as Keyring -import Relations as Relations -import Seq_MergeSort as Seq_MergeSort -import Math as Math -import Seq as Seq -import MultiKeyring as MultiKeyring -import AwsArnParsing as AwsArnParsing -import AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import Actions as Actions -import AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import AwsKmsUtils as AwsKmsUtils -import Constants as Constants -import UUID as UUID -import MaterialWrapping as MaterialWrapping -import SortedSets as SortedSets -import CanonicalEncryptionContext as CanonicalEncryptionContext -import IntermediateKeyWrapping as IntermediateKeyWrapping -import EdkWrapping as EdkWrapping -import ErrorMessages as ErrorMessages -import AwsKmsKeyring as AwsKmsKeyring -import StrictMultiKeyring as StrictMultiKeyring -import AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import Com_Amazonaws_Kms as Com_Amazonaws_Kms -import Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import DiscoveryMultiKeyring as DiscoveryMultiKeyring -import AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import AwsKmsMrkKeyring as AwsKmsMrkKeyring -import MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import DafnyLibraries as DafnyLibraries -import Time as Time -import LocalCMC as LocalCMC -import SynchronizedLocalCMC as SynchronizedLocalCMC -import StormTracker as StormTracker -import StormTrackingCMC as StormTrackingCMC -import CacheConstants as CacheConstants -import AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import AwsKmsRsaKeyring as AwsKmsRsaKeyring -import EcdhEdkWrapping as EcdhEdkWrapping -import RawECDHKeyring as RawECDHKeyring -import AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import RawAESKeyring as RawAESKeyring -import RawRSAKeyring as RawRSAKeyring -import CMM as CMM -import Defaults as Defaults -import Commitment as Commitment -import DefaultCMM as DefaultCMM -import DefaultClientSupplier as DefaultClientSupplier -import Utils as Utils -import RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import MaterialProviders as MaterialProviders -import KeyStoreErrorMessages as KeyStoreErrorMessages -import KmsArn as KmsArn -import Structure as Structure -import KMSKeystoreOperations as KMSKeystoreOperations -import DDBKeystoreOperations as DDBKeystoreOperations -import CreateKeys as CreateKeys -import CreateKeyStoreTable as CreateKeyStoreTable -import GetKeys as GetKeys -import AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import KeyStore as KeyStore -import AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes -import JSON_Utils_Views_Core as JSON_Utils_Views_Core -import JSON_Utils_Views_Writers as JSON_Utils_Views_Writers -import JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core -import JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings -import JSON_Utils_Cursors as JSON_Utils_Cursors -import JSON_Utils_Parsers as JSON_Utils_Parsers -import GeneralInternals as GeneralInternals -import MulInternalsNonlinear as MulInternalsNonlinear -import MulInternals as MulInternals -import Mul as Mul -import ModInternalsNonlinear as ModInternalsNonlinear -import DivInternalsNonlinear as DivInternalsNonlinear -import ModInternals as ModInternals -import DivInternals as DivInternals -import DivMod as DivMod -import Power as Power -import Logarithm as Logarithm -import JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion -import JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping -import JSON_Utils_Str as JSON_Utils_Str -import JSON_Utils_Seq as JSON_Utils_Seq -import JSON_Utils_Vectors as JSON_Utils_Vectors -import JSON_Errors as JSON_Errors -import JSON_Values as JSON_Values -import Unicode as Unicode -import Functions as Functions -import Utf8EncodingForm as Utf8EncodingForm -import Utf16EncodingForm as Utf16EncodingForm -import UnicodeStrings as UnicodeStrings -import JSON_Spec as JSON_Spec -import JSON_Grammar as JSON_Grammar -import JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion -import JSON_Serializer as JSON_Serializer -import JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion -import JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion -import JSON_Deserializer as JSON_Deserializer -import JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec -import JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties -import JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer -import JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core -import JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings -import JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers -import JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams -import JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects -import JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams -import JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays -import JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants -import JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values -import JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API -import JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer -import JSON_ZeroCopy_API as JSON_ZeroCopy_API -import JSON_API as JSON_API -import JSONHelpers as JSONHelpers -import KeyDescription as KeyDescription -import HexStrings as HexStrings -import KeyMaterial as KeyMaterial -import CreateStaticKeyrings as CreateStaticKeyrings -import CreateStaticKeyStores as CreateStaticKeyStores -import KeyringFromKeyDescription as KeyringFromKeyDescription -import CmmFromKeyDescription as CmmFromKeyDescription -import WrappedMaterialProviders as WrappedMaterialProviders -import KeysVectorOperations as KeysVectorOperations -import FileIO as FileIO -import KeyVectors as KeyVectors -import AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import Streams as Streams -import SerializableTypes as SerializableTypes -import SerializeFunctions as SerializeFunctions -import EncryptionContext as EncryptionContext -import HeaderTypes as HeaderTypes -import SharedHeaderFunctions as SharedHeaderFunctions -import EncryptedDataKeys as EncryptedDataKeys -import V1HeaderBody as V1HeaderBody -import V2HeaderBody as V2HeaderBody -import HeaderAuth as HeaderAuth -import Header as Header -import Frames as Frames -import MessageBody as MessageBody -import KeyDerivation as KeyDerivation -import EncryptDecryptHelpers as EncryptDecryptHelpers -import AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import EncryptionSdk as EncryptionSdk -import MplManifestOptions as MplManifestOptions -import GetOpt as GetOpt -import AllAlgorithmSuites as AllAlgorithmSuites -import TestVectors as TestVectors -import AllHierarchy as AllHierarchy -import AllKms as AllKms -import AllKmsMrkAware as AllKmsMrkAware -import AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery -import AllKmsRsa as AllKmsRsa -import AllKmsEcdh as AllKmsEcdh -import AllRawAES as AllRawAES -import AllRawRSA as AllRawRSA -import AllRawECDH as AllRawECDH -import AllDefaultCmm as AllDefaultCmm -import AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm -import AllMulti as AllMulti -import WriteJsonManifests as WriteJsonManifests -import CompleteVectors as CompleteVectors -import ParseJsonManifests as ParseJsonManifests -import TestManifests as TestManifests -import WrappedMaterialProvidersMain as WrappedMaterialProvidersMain -import AesKdfCtr as AesKdfCtr -import StandardLibraryInterop as StandardLibraryInterop -import Sorting as Sorting -import FloatCompare as FloatCompare -import ConcurrentCall as ConcurrentCall -import Base64Lemmas as Base64Lemmas -import .internaldafny.generated.WrappedESDK as WrappedESDK -import .internaldafny.generated.EsdkManifestOptions as EsdkManifestOptions -import .internaldafny.generated.EsdkTestVectors as EsdkTestVectors -import .internaldafny.generated.AllEsdkV4NoReqEc as AllEsdkV4NoReqEc -import .internaldafny.generated.AllEsdkV4WithReqEc as AllEsdkV4WithReqEc - -# Module: WriteEsdkJsonManifests - -class default__: - def __init__(self): - pass - - @staticmethod - def EncryptionContextKeysToJson(keys): - if (keys).is_Some: - def lambda0_(d_1_bytes_): - def iife0_(_pat_let0_0): - def iife1_(d_2_valueOrError1_): - def iife2_(_pat_let1_0): - def iife3_(d_3_key_): - return Wrappers.Result_Success(JSON_Values.JSON_String(d_3_key_)) - return iife3_(_pat_let1_0) - return ((d_2_valueOrError1_).PropagateFailure() if (d_2_valueOrError1_).IsFailure() else iife2_((d_2_valueOrError1_).Extract())) - return iife1_(_pat_let0_0) - return iife0_(UTF8.default__.Decode(d_1_bytes_)) - - d_0_valueOrError0_ = Seq.default__.MapWithResult(lambda0_, (keys).value) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - d_4_tmp_ = (d_0_valueOrError0_).Extract() - return Wrappers.Result_Success(_dafny.Seq([(_dafny.Seq("requiredEncryptionContextKeys"), JSON_Values.JSON_Array(d_4_tmp_))])) - elif True: - return Wrappers.Result_Success(_dafny.Seq([])) - - @staticmethod - def EncryptionContextToJson(key, m): - def lambda0_(d_1_a_, d_2_b_): - return (d_1_a_) < (d_2_b_) - - d_0_keys_ = SortedSets.default__.SetToOrderedSequence2((m).keys, lambda0_) - def lambda1_(d_4_m_): - def lambda2_(d_5_k_): - def iife0_(_pat_let2_0): - def iife1_(d_6_valueOrError1_): - def iife2_(_pat_let3_0): - def iife3_(d_7_key_): - def iife4_(_pat_let4_0): - def iife5_(d_8_valueOrError2_): - def iife6_(_pat_let5_0): - def iife7_(d_9_value_): - return Wrappers.Result_Success((d_7_key_, JSON_Values.JSON_String(d_9_value_))) - return iife7_(_pat_let5_0) - return ((d_8_valueOrError2_).PropagateFailure() if (d_8_valueOrError2_).IsFailure() else iife6_((d_8_valueOrError2_).Extract())) - return iife5_(_pat_let4_0) - return iife4_(UTF8.default__.Decode((d_4_m_)[d_5_k_])) - return iife3_(_pat_let3_0) - return ((d_6_valueOrError1_).PropagateFailure() if (d_6_valueOrError1_).IsFailure() else iife2_((d_6_valueOrError1_).Extract())) - return iife1_(_pat_let2_0) - return iife0_(UTF8.default__.Decode(d_5_k_)) - - return lambda2_ - - d_3_valueOrError0_ = Seq.default__.MapWithResult(lambda1_(m), d_0_keys_) - if (d_3_valueOrError0_).IsFailure(): - return (d_3_valueOrError0_).PropagateFailure() - elif True: - d_10_pairsBytes_ = (d_3_valueOrError0_).Extract() - return Wrappers.Result_Success(_dafny.Seq([(key, JSON_Values.JSON_Object(d_10_pairsBytes_))])) - - @staticmethod - def printJson(j): - hresult_: tuple = () - _dafny.print(_dafny.string_of(j)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - hresult_ = () - return hresult_ - return hresult_ - - @staticmethod - def EncryptTestVectorToJson(test): - d_0_valueOrError0_ = Wrappers.default__.Need((((test).algorithmSuiteId).is_Some) and (((test).frameLength).is_Some), _dafny.Seq("test is missing algorithmSuite ID, or frameLength")) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - d_1_id_ = AllAlgorithmSuites.default__.ToHex(((test).algorithmSuiteId).value) - d_2_valueOrError1_ = (default__.EncryptionContextToJson(_dafny.Seq("encryption-context"), ((test).encryptionContext).value) if ((test).encryptionContext).is_Some else default__.EncryptionContextToJson(_dafny.Seq("encryption-context"), _dafny.Map({}))) - if (d_2_valueOrError1_).IsFailure(): - return (d_2_valueOrError1_).PropagateFailure() - elif True: - d_3_encryptionContext_ = (d_2_valueOrError1_).Extract() - d_4_valueOrError2_ = Wrappers.default__.Need((len(d_3_encryptionContext_)) == (1), _dafny.Seq("Error parsing encryption context")) - if (d_4_valueOrError2_).IsFailure(): - return (d_4_valueOrError2_).PropagateFailure() - elif True: - d_5_valueOrError3_ = (default__.EncryptionContextToJson(_dafny.Seq("reproduced-encryption-context"), ((test).reproducedEncryptionContext).value) if ((test).reproducedEncryptionContext).is_Some else default__.EncryptionContextToJson(_dafny.Seq("reproduced-encryption-context"), _dafny.Map({}))) - if (d_5_valueOrError3_).IsFailure(): - return (d_5_valueOrError3_).PropagateFailure() - elif True: - d_6_reproducedEncryptionContext_ = (d_5_valueOrError3_).Extract() - d_7_optionalValues_ = (d_3_encryptionContext_) + (d_6_reproducedEncryptionContext_) - source0_ = test - if True: - if source0_.is_PositiveEncryptTestVector: - d_8_valueOrError4_ = KeyDescription.default__.ToJson((test).encryptDescriptions, 3) - if (d_8_valueOrError4_).IsFailure(): - return (d_8_valueOrError4_).PropagateFailure() - elif True: - d_9_encrypt_ = (d_8_valueOrError4_).Extract() - d_10_valueOrError5_ = KeyDescription.default__.ToJson((test).decryptDescriptions, 3) - if (d_10_valueOrError5_).IsFailure(): - return (d_10_valueOrError5_).PropagateFailure() - elif True: - d_11_decrypt_ = (d_10_valueOrError5_).Extract() - d_12_scenario_ = JSON_Values.JSON_Object((_dafny.Seq([(_dafny.Seq("type"), JSON_Values.JSON_String(_dafny.Seq("positive-esdk"))), (_dafny.Seq("plaintext"), JSON_Values.JSON_String(_dafny.Seq("small"))), (_dafny.Seq("description"), JSON_Values.JSON_String((test).description)), (_dafny.Seq("algorithmSuiteId"), JSON_Values.JSON_String(d_1_id_)), (_dafny.Seq("frame-size"), JSON_Values.JSON_Number(JSON_Values.default__.Int(((test).frameLength).value))), (_dafny.Seq("encryptKeyDescription"), d_9_encrypt_), (_dafny.Seq("decryptKeyDescription"), d_11_decrypt_)])) + (d_7_optionalValues_)) - return Wrappers.Result_Success(JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("encryption-scenario"), d_12_scenario_)]))) - if True: - return Wrappers.Result_Failure(_dafny.Seq("Only Positive Tests supported :(")) - - @staticmethod - def OptionalBytes(key, secret): - if (secret).is_Some: - d_0_base64_ = Base64.default__.Encode((secret).value) - return _dafny.Seq([(key, JSON_Values.JSON_String(d_0_base64_))]) - elif True: - return _dafny.Seq([]) - - @staticmethod - def DecryptTestVectorToJson(test): - d_0_valueOrError0_ = Wrappers.default__.Need((((test).algorithmSuiteId).is_Some) and (((test).frameLength).is_Some), _dafny.Seq("test is missing algorithmSuite ID, or frameLength")) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - d_1_id_ = AllAlgorithmSuites.default__.ToHex(((test).algorithmSuiteId).value) - d_2_description_ = (((test).description) + (_dafny.Seq(" "))) + (d_1_id_) - d_3_valueOrError1_ = (default__.EncryptionContextToJson(_dafny.Seq("reproduced-encryption-context"), ((test).reproducedEncryptionContext).value) if ((test).reproducedEncryptionContext).is_Some else default__.EncryptionContextToJson(_dafny.Seq("reproduced-encryption-context"), _dafny.Map({}))) - if (d_3_valueOrError1_).IsFailure(): - return (d_3_valueOrError1_).PropagateFailure() - elif True: - d_4_reproducedEncryptionContext_ = (d_3_valueOrError1_).Extract() - d_5_valueOrError2_ = Wrappers.default__.Need((len(d_4_reproducedEncryptionContext_)) == (1), _dafny.Seq("Error parsing encryption context")) - if (d_5_valueOrError2_).IsFailure(): - return (d_5_valueOrError2_).PropagateFailure() - elif True: - d_6_optionalValues_ = d_4_reproducedEncryptionContext_ - source0_ = test - if True: - if source0_.is_PositiveDecryptTestVector: - d_7_valueOrError3_ = KeyDescription.default__.ToJson((test).decryptDescriptions, 3) - if (d_7_valueOrError3_).IsFailure(): - return (d_7_valueOrError3_).PropagateFailure() - elif True: - d_8_decrypt_ = (d_7_valueOrError3_).Extract() - d_9_scenario_ = JSON_Values.JSON_Object((_dafny.Seq([(_dafny.Seq("type"), JSON_Values.JSON_String(_dafny.Seq("positive-esdk"))), (_dafny.Seq("ciphertext"), JSON_Values.JSON_String((_dafny.Seq("file://ciphertexts/")) + ((test).id))), (_dafny.Seq("result"), JSON_Values.JSON_String((_dafny.Seq("file://")) + ((test).plaintextPath))), (_dafny.Seq("algorithmSuiteId"), JSON_Values.JSON_String(d_1_id_)), (_dafny.Seq("frame-size"), JSON_Values.JSON_Number(JSON_Values.default__.Int(((test).frameLength).value))), (_dafny.Seq("description"), JSON_Values.JSON_String((test).description)), (_dafny.Seq("decryptKeyDescription"), d_8_decrypt_)])) + (d_6_optionalValues_)) - return Wrappers.Result_Success(JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("decryption-scenario"), d_9_scenario_)]))) - if True: - return Wrappers.Result_Failure(_dafny.Seq("Only Positive Tests supported :(")) - diff --git a/TestVectors/runtimes/python/src/internaldafny/generated/WriteVectors.py b/TestVectors/runtimes/python/src/internaldafny/generated/WriteVectors.py deleted file mode 100644 index 28b22dbb9..000000000 --- a/TestVectors/runtimes/python/src/internaldafny/generated/WriteVectors.py +++ /dev/null @@ -1,369 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import .internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import Wrappers as Wrappers -import BoundedInts as BoundedInts -import StandardLibrary_UInt as StandardLibrary_UInt -import StandardLibrary_Sequence as StandardLibrary_Sequence -import StandardLibrary_String as StandardLibrary_String -import StandardLibrary as StandardLibrary -import UTF8 as UTF8 -import AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import ExternRandom as ExternRandom -import Random as Random -import AESEncryption as AESEncryption -import ExternDigest as ExternDigest -import Digest as Digest -import HMAC as HMAC -import WrappedHMAC as WrappedHMAC -import HKDF as HKDF -import WrappedHKDF as WrappedHKDF -import Signature as Signature -import KdfCtr as KdfCtr -import RSAEncryption as RSAEncryption -import ECDH as ECDH -import AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import AtomicPrimitives as AtomicPrimitives -import ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import Base64 as Base64 -import AlgorithmSuites as AlgorithmSuites -import Materials as Materials -import Keyring as Keyring -import Relations as Relations -import Seq_MergeSort as Seq_MergeSort -import Math as Math -import Seq as Seq -import MultiKeyring as MultiKeyring -import AwsArnParsing as AwsArnParsing -import AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import Actions as Actions -import AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import AwsKmsUtils as AwsKmsUtils -import Constants as Constants -import UUID as UUID -import MaterialWrapping as MaterialWrapping -import SortedSets as SortedSets -import CanonicalEncryptionContext as CanonicalEncryptionContext -import IntermediateKeyWrapping as IntermediateKeyWrapping -import EdkWrapping as EdkWrapping -import ErrorMessages as ErrorMessages -import AwsKmsKeyring as AwsKmsKeyring -import StrictMultiKeyring as StrictMultiKeyring -import AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import Com_Amazonaws_Kms as Com_Amazonaws_Kms -import Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import DiscoveryMultiKeyring as DiscoveryMultiKeyring -import AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import AwsKmsMrkKeyring as AwsKmsMrkKeyring -import MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import DafnyLibraries as DafnyLibraries -import Time as Time -import LocalCMC as LocalCMC -import SynchronizedLocalCMC as SynchronizedLocalCMC -import StormTracker as StormTracker -import StormTrackingCMC as StormTrackingCMC -import CacheConstants as CacheConstants -import AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import AwsKmsRsaKeyring as AwsKmsRsaKeyring -import EcdhEdkWrapping as EcdhEdkWrapping -import RawECDHKeyring as RawECDHKeyring -import AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import RawAESKeyring as RawAESKeyring -import RawRSAKeyring as RawRSAKeyring -import CMM as CMM -import Defaults as Defaults -import Commitment as Commitment -import DefaultCMM as DefaultCMM -import DefaultClientSupplier as DefaultClientSupplier -import Utils as Utils -import RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import MaterialProviders as MaterialProviders -import KeyStoreErrorMessages as KeyStoreErrorMessages -import KmsArn as KmsArn -import Structure as Structure -import KMSKeystoreOperations as KMSKeystoreOperations -import DDBKeystoreOperations as DDBKeystoreOperations -import CreateKeys as CreateKeys -import CreateKeyStoreTable as CreateKeyStoreTable -import GetKeys as GetKeys -import AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import KeyStore as KeyStore -import AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes -import JSON_Utils_Views_Core as JSON_Utils_Views_Core -import JSON_Utils_Views_Writers as JSON_Utils_Views_Writers -import JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core -import JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings -import JSON_Utils_Cursors as JSON_Utils_Cursors -import JSON_Utils_Parsers as JSON_Utils_Parsers -import GeneralInternals as GeneralInternals -import MulInternalsNonlinear as MulInternalsNonlinear -import MulInternals as MulInternals -import Mul as Mul -import ModInternalsNonlinear as ModInternalsNonlinear -import DivInternalsNonlinear as DivInternalsNonlinear -import ModInternals as ModInternals -import DivInternals as DivInternals -import DivMod as DivMod -import Power as Power -import Logarithm as Logarithm -import JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion -import JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping -import JSON_Utils_Str as JSON_Utils_Str -import JSON_Utils_Seq as JSON_Utils_Seq -import JSON_Utils_Vectors as JSON_Utils_Vectors -import JSON_Errors as JSON_Errors -import JSON_Values as JSON_Values -import Unicode as Unicode -import Functions as Functions -import Utf8EncodingForm as Utf8EncodingForm -import Utf16EncodingForm as Utf16EncodingForm -import UnicodeStrings as UnicodeStrings -import JSON_Spec as JSON_Spec -import JSON_Grammar as JSON_Grammar -import JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion -import JSON_Serializer as JSON_Serializer -import JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion -import JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion -import JSON_Deserializer as JSON_Deserializer -import JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec -import JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties -import JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer -import JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core -import JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings -import JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers -import JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams -import JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects -import JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams -import JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays -import JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants -import JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values -import JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API -import JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer -import JSON_ZeroCopy_API as JSON_ZeroCopy_API -import JSON_API as JSON_API -import JSONHelpers as JSONHelpers -import KeyDescription as KeyDescription -import HexStrings as HexStrings -import KeyMaterial as KeyMaterial -import CreateStaticKeyrings as CreateStaticKeyrings -import CreateStaticKeyStores as CreateStaticKeyStores -import KeyringFromKeyDescription as KeyringFromKeyDescription -import CmmFromKeyDescription as CmmFromKeyDescription -import WrappedMaterialProviders as WrappedMaterialProviders -import KeysVectorOperations as KeysVectorOperations -import FileIO as FileIO -import KeyVectors as KeyVectors -import AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import Streams as Streams -import SerializableTypes as SerializableTypes -import SerializeFunctions as SerializeFunctions -import EncryptionContext as EncryptionContext -import HeaderTypes as HeaderTypes -import SharedHeaderFunctions as SharedHeaderFunctions -import EncryptedDataKeys as EncryptedDataKeys -import V1HeaderBody as V1HeaderBody -import V2HeaderBody as V2HeaderBody -import HeaderAuth as HeaderAuth -import Header as Header -import Frames as Frames -import MessageBody as MessageBody -import KeyDerivation as KeyDerivation -import EncryptDecryptHelpers as EncryptDecryptHelpers -import AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import EncryptionSdk as EncryptionSdk -import MplManifestOptions as MplManifestOptions -import GetOpt as GetOpt -import AllAlgorithmSuites as AllAlgorithmSuites -import TestVectors as TestVectors -import AllHierarchy as AllHierarchy -import AllKms as AllKms -import AllKmsMrkAware as AllKmsMrkAware -import AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery -import AllKmsRsa as AllKmsRsa -import AllKmsEcdh as AllKmsEcdh -import AllRawAES as AllRawAES -import AllRawRSA as AllRawRSA -import AllRawECDH as AllRawECDH -import AllDefaultCmm as AllDefaultCmm -import AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm -import AllMulti as AllMulti -import WriteJsonManifests as WriteJsonManifests -import CompleteVectors as CompleteVectors -import ParseJsonManifests as ParseJsonManifests -import TestManifests as TestManifests -import WrappedMaterialProvidersMain as WrappedMaterialProvidersMain -import AesKdfCtr as AesKdfCtr -import StandardLibraryInterop as StandardLibraryInterop -import Sorting as Sorting -import FloatCompare as FloatCompare -import ConcurrentCall as ConcurrentCall -import Base64Lemmas as Base64Lemmas -import .internaldafny.generated.WrappedESDK as WrappedESDK -import .internaldafny.generated.EsdkManifestOptions as EsdkManifestOptions -import .internaldafny.generated.EsdkTestVectors as EsdkTestVectors -import .internaldafny.generated.AllEsdkV4NoReqEc as AllEsdkV4NoReqEc -import .internaldafny.generated.AllEsdkV4WithReqEc as AllEsdkV4WithReqEc -import .internaldafny.generated.WriteEsdkJsonManifests as WriteEsdkJsonManifests - -# Module: WriteVectors - -class default__: - def __init__(self): - pass - - @staticmethod - def GetCommitmentPolicyString(algorithmSuite): - source0_ = (algorithmSuite).id - if True: - if source0_.is_ESDK: - if ((algorithmSuite).commitment).is_None: - return _dafny.Seq("FORBID_ENCRYPT_ALLOW_DECRYPT") - elif True: - return _dafny.Seq("REQUIRE_ENCRYPT_REQUIRE_DECRYPT") - if True: - return _dafny.Seq("NOT SUPPORTED FOR UNSTRUCTURED ENCRYPTION") - - @staticmethod - def GetCommitmentPolicyType(commitmentPolicy): - if (commitmentPolicy) == (_dafny.Seq("FORBID_ENCRYPT_ALLOW_DECRYPT")): - return AwsCryptographyMaterialProvidersTypes.CommitmentPolicy_ESDK(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT()) - elif True: - return AwsCryptographyMaterialProvidersTypes.CommitmentPolicy_ESDK(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT()) - - @staticmethod - def WriteTestVectors(op): - output: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() - d_0_version_: int - d_0_version_ = (op).version - d_1_valueOrError0_: Wrappers.Result = Wrappers.Result.default(_dafny.Set)() - d_1_valueOrError0_ = default__.getVersionTests(d_0_version_) - if (d_1_valueOrError0_).IsFailure(): - output = (d_1_valueOrError0_).PropagateFailure() - return output - d_2_allTests_: _dafny.Set - d_2_allTests_ = (d_1_valueOrError0_).Extract() - d_3_tests_: _dafny.Seq - out0_: _dafny.Seq - out0_ = SortedSets.default__.SetToSequence(d_2_allTests_) - d_3_tests_ = out0_ - d_4_sortedTests_: _dafny.Seq - d_4_sortedTests_ = Seq_MergeSort.default__.MergeSortBy(d_3_tests_, default__.DescriptionLessThan) - d_5_testsJSON_: _dafny.Seq - d_5_testsJSON_ = _dafny.Seq([]) - hi0_ = len(d_4_sortedTests_) - for d_6_i_ in range(0, hi0_): - d_7_valueOrError1_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_7_valueOrError1_ = Wrappers.default__.Need((True) and ((((d_4_sortedTests_)[d_6_i_]).algorithmSuiteId).is_Some), _dafny.Seq("No algorithm suite defined in test")) - if (d_7_valueOrError1_).IsFailure(): - output = (d_7_valueOrError1_).PropagateFailure() - return output - d_8_id_: _dafny.Seq - d_8_id_ = AllAlgorithmSuites.default__.ToHex((((d_4_sortedTests_)[d_6_i_]).algorithmSuiteId).value) - d_9_valueOrError2_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - out1_: Wrappers.Result - out1_ = UUID.default__.GenerateUUID() - d_9_valueOrError2_ = out1_ - if not(not((d_9_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/WriteVectors.dfy(82,18): " + _dafny.string_of(d_9_valueOrError2_)) - d_10_uuid_: _dafny.Seq - d_10_uuid_ = (d_9_valueOrError2_).Extract() - d_11_valueOrError3_: Wrappers.Result = Wrappers.Result.default(JSON_Values.JSON.default())() - d_11_valueOrError3_ = WriteEsdkJsonManifests.default__.EncryptTestVectorToJson((d_4_sortedTests_)[d_6_i_]) - if (d_11_valueOrError3_).IsFailure(): - output = (d_11_valueOrError3_).PropagateFailure() - return output - d_12_test_: JSON_Values.JSON - d_12_test_ = (d_11_valueOrError3_).Extract() - d_5_testsJSON_ = (d_5_testsJSON_) + (_dafny.Seq([(d_10_uuid_, d_12_test_)])) - d_13_manifestJson_: JSON_Values.JSON - d_13_manifestJson_ = JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("type"), JSON_Values.JSON_String(_dafny.Seq("awses-encrypt"))), (_dafny.Seq("version"), JSON_Values.JSON_Number(JSON_Values.default__.Int(5)))])) - d_14_plaintexts_: JSON_Values.JSON - d_14_plaintexts_ = JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("small"), JSON_Values.JSON_Number(JSON_Values.default__.Int(10240)))])) - d_15_esdkEncryptManifests_: JSON_Values.JSON - d_15_esdkEncryptManifests_ = JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("manifest"), d_13_manifestJson_), (_dafny.Seq("keys"), JSON_Values.JSON_String(_dafny.Seq("file://keys.json"))), (_dafny.Seq("plaintexts"), d_14_plaintexts_), (_dafny.Seq("tests"), JSON_Values.JSON_Object(d_5_testsJSON_))])) - d_16_valueOrError4_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_16_valueOrError4_ = JSON_API.default__.Serialize(d_15_esdkEncryptManifests_) - if not(not((d_16_valueOrError4_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/WriteVectors.dfy(102,36): " + _dafny.string_of(d_16_valueOrError4_)) - d_17_esdkEncryptManifestBytes_: _dafny.Seq - d_17_esdkEncryptManifestBytes_ = (d_16_valueOrError4_).Extract() - d_18_esdkEncryptManifestBv_: _dafny.Seq - d_18_esdkEncryptManifestBv_ = JSONHelpers.default__.BytesBv(d_17_esdkEncryptManifestBytes_) - d_19_valueOrError5_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() - out2_: Wrappers.Result - out2_ = FileIO.default__.WriteBytesToFile(((op).encryptManifestOutput) + (_dafny.Seq("encrypt-manifest.json")), d_18_esdkEncryptManifestBv_) - d_19_valueOrError5_ = out2_ - if not(not((d_19_valueOrError5_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/WriteVectors.dfy(105,13): " + _dafny.string_of(d_19_valueOrError5_)) - d_20___v2_: tuple - d_20___v2_ = (d_19_valueOrError5_).Extract() - output = Wrappers.Result_Success(()) - return output - - @staticmethod - def WriteDecryptManifest(op, keys, tests): - output: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() - d_0_testsJSON_: _dafny.Seq - d_0_testsJSON_ = _dafny.Seq([]) - hi0_ = len(tests) - for d_1_i_ in range(0, hi0_): - d_2_name_: _dafny.Seq - d_2_name_ = ((tests)[d_1_i_]).id - d_3_valueOrError0_: Wrappers.Result = Wrappers.Result.default(JSON_Values.JSON.default())() - d_3_valueOrError0_ = WriteEsdkJsonManifests.default__.DecryptTestVectorToJson((tests)[d_1_i_]) - if (d_3_valueOrError0_).IsFailure(): - output = (d_3_valueOrError0_).PropagateFailure() - return output - d_4_test_: JSON_Values.JSON - d_4_test_ = (d_3_valueOrError0_).Extract() - d_0_testsJSON_ = (d_0_testsJSON_) + (_dafny.Seq([(d_2_name_, d_4_test_)])) - d_5_manifestJson_: JSON_Values.JSON - d_5_manifestJson_ = JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("type"), JSON_Values.JSON_String(_dafny.Seq("awses-decrypt"))), (_dafny.Seq("version"), JSON_Values.JSON_Number(JSON_Values.default__.Int(3)))])) - d_6_esdkDecryptManifest_: JSON_Values.JSON - d_6_esdkDecryptManifest_ = JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("manifest"), d_5_manifestJson_), (_dafny.Seq("client"), JSON_Values.JSON_String(_dafny.Seq("aws-encryption-sdk-dafny"))), (_dafny.Seq("keys"), JSON_Values.JSON_String(_dafny.Seq("file://keys.json"))), (_dafny.Seq("tests"), JSON_Values.JSON_Object(d_0_testsJSON_))])) - d_7_valueOrError1_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_7_valueOrError1_ = JSON_API.default__.Serialize(d_6_esdkDecryptManifest_) - if not(not((d_7_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/WriteVectors.dfy(146,36): " + _dafny.string_of(d_7_valueOrError1_)) - d_8_esdkDecryptManifestBytes_: _dafny.Seq - d_8_esdkDecryptManifestBytes_ = (d_7_valueOrError1_).Extract() - d_9_esdkDecryptManifestBv_: _dafny.Seq - d_9_esdkDecryptManifestBv_ = JSONHelpers.default__.BytesBv(d_8_esdkDecryptManifestBytes_) - d_10_valueOrError2_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() - out0_: Wrappers.Result - out0_ = FileIO.default__.WriteBytesToFile(((op).decryptManifestOutput) + (_dafny.Seq("decrypt-manifest.json")), d_9_esdkDecryptManifestBv_) - d_10_valueOrError2_ = out0_ - if not(not((d_10_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/WriteVectors.dfy(149,13): " + _dafny.string_of(d_10_valueOrError2_)) - d_11___v3_: tuple - d_11___v3_ = (d_10_valueOrError2_).Extract() - output = Wrappers.Result_Success(()) - return output - - @staticmethod - def getVersionTests(version): - source0_ = version - if True: - if (source0_) == (5): - return Wrappers.Result_Success((AllEsdkV4NoReqEc.default__.Tests) | (AllEsdkV4WithReqEc.default__.Tests)) - if True: - return Wrappers.Result_Failure(_dafny.Seq("Only version 4 of generate manifest is supported\n")) - - @staticmethod - def DescriptionLessThan(x, y): - return default__.Below((x).description, (y).description) - - @staticmethod - def Below(x, y): - return not ((len(x)) != (0)) or ((((len(y)) != (0)) and (((x)[0]) <= ((y)[0]))) and (not (((x)[0]) == ((y)[0])) or (default__.Below(_dafny.Seq((x)[1::]), _dafny.Seq((y)[1::]))))) - diff --git a/TestVectors/runtimes/python/src/internaldafny/generated/__main__.py b/TestVectors/runtimes/python/src/internaldafny/generated/__main__.py deleted file mode 100644 index ac52f84fa..000000000 --- a/TestVectors/runtimes/python/src/internaldafny/generated/__main__.py +++ /dev/null @@ -1,15 +0,0 @@ -# Dafny program the_program compiled into Python -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import .internaldafny.generated.module_ as module_ -import _dafny as _dafny - -try: - dafnyArgs = [_dafny.Seq(a) for a in sys.argv] - module_.default__.Test____Main____(dafnyArgs) -except _dafny.HaltException as e: - _dafny.print("[Program halted] " + e.message + "\n") - sys.exit(1) diff --git a/TestVectors/runtimes/python/src/internaldafny/generated/dafny_src-py.dtr b/TestVectors/runtimes/python/src/internaldafny/generated/dafny_src-py.dtr deleted file mode 100644 index 55675106c..000000000 --- a/TestVectors/runtimes/python/src/internaldafny/generated/dafny_src-py.dtr +++ /dev/null @@ -1,35 +0,0 @@ -file_format_version = "1.0" -dafny_version = "4.9.0.0" -[options_by_module.WrappedAbstractAwsCryptographyEncryptionSdkService] -legacy-module-names = false -python-module-name = ".internaldafny.generated" -[options_by_module.WrappedESDK] -legacy-module-names = false -python-module-name = ".internaldafny.generated" -[options_by_module.EsdkManifestOptions] -legacy-module-names = false -python-module-name = ".internaldafny.generated" -[options_by_module.EsdkTestVectors] -legacy-module-names = false -python-module-name = ".internaldafny.generated" -[options_by_module.AllEsdkV4NoReqEc] -legacy-module-names = false -python-module-name = ".internaldafny.generated" -[options_by_module.AllEsdkV4WithReqEc] -legacy-module-names = false -python-module-name = ".internaldafny.generated" -[options_by_module.WriteEsdkJsonManifests] -legacy-module-names = false -python-module-name = ".internaldafny.generated" -[options_by_module.WriteVectors] -legacy-module-names = false -python-module-name = ".internaldafny.generated" -[options_by_module.ParseEsdkJsonManifest] -legacy-module-names = false -python-module-name = ".internaldafny.generated" -[options_by_module.EsdkTestManifests] -legacy-module-names = false -python-module-name = ".internaldafny.generated" -[options_by_module.WrappedESDKMain] -legacy-module-names = false -python-module-name = ".internaldafny.generated" diff --git a/TestVectors/runtimes/python/src/internaldafny/generated/module_.py b/TestVectors/runtimes/python/src/internaldafny/generated/module_.py deleted file mode 100644 index 05f8d1a12..000000000 --- a/TestVectors/runtimes/python/src/internaldafny/generated/module_.py +++ /dev/null @@ -1,234 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import .internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import Wrappers as Wrappers -import BoundedInts as BoundedInts -import StandardLibrary_UInt as StandardLibrary_UInt -import StandardLibrary_Sequence as StandardLibrary_Sequence -import StandardLibrary_String as StandardLibrary_String -import StandardLibrary as StandardLibrary -import UTF8 as UTF8 -import AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import ExternRandom as ExternRandom -import Random as Random -import AESEncryption as AESEncryption -import ExternDigest as ExternDigest -import Digest as Digest -import HMAC as HMAC -import WrappedHMAC as WrappedHMAC -import HKDF as HKDF -import WrappedHKDF as WrappedHKDF -import Signature as Signature -import KdfCtr as KdfCtr -import RSAEncryption as RSAEncryption -import ECDH as ECDH -import AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import AtomicPrimitives as AtomicPrimitives -import ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import Base64 as Base64 -import AlgorithmSuites as AlgorithmSuites -import Materials as Materials -import Keyring as Keyring -import Relations as Relations -import Seq_MergeSort as Seq_MergeSort -import Math as Math -import Seq as Seq -import MultiKeyring as MultiKeyring -import AwsArnParsing as AwsArnParsing -import AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import Actions as Actions -import AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import AwsKmsUtils as AwsKmsUtils -import Constants as Constants -import UUID as UUID -import MaterialWrapping as MaterialWrapping -import SortedSets as SortedSets -import CanonicalEncryptionContext as CanonicalEncryptionContext -import IntermediateKeyWrapping as IntermediateKeyWrapping -import EdkWrapping as EdkWrapping -import ErrorMessages as ErrorMessages -import AwsKmsKeyring as AwsKmsKeyring -import StrictMultiKeyring as StrictMultiKeyring -import AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import Com_Amazonaws_Kms as Com_Amazonaws_Kms -import Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import DiscoveryMultiKeyring as DiscoveryMultiKeyring -import AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import AwsKmsMrkKeyring as AwsKmsMrkKeyring -import MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import DafnyLibraries as DafnyLibraries -import Time as Time -import LocalCMC as LocalCMC -import SynchronizedLocalCMC as SynchronizedLocalCMC -import StormTracker as StormTracker -import StormTrackingCMC as StormTrackingCMC -import CacheConstants as CacheConstants -import AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import AwsKmsRsaKeyring as AwsKmsRsaKeyring -import EcdhEdkWrapping as EcdhEdkWrapping -import RawECDHKeyring as RawECDHKeyring -import AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import RawAESKeyring as RawAESKeyring -import RawRSAKeyring as RawRSAKeyring -import CMM as CMM -import Defaults as Defaults -import Commitment as Commitment -import DefaultCMM as DefaultCMM -import DefaultClientSupplier as DefaultClientSupplier -import Utils as Utils -import RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import MaterialProviders as MaterialProviders -import KeyStoreErrorMessages as KeyStoreErrorMessages -import KmsArn as KmsArn -import Structure as Structure -import KMSKeystoreOperations as KMSKeystoreOperations -import DDBKeystoreOperations as DDBKeystoreOperations -import CreateKeys as CreateKeys -import CreateKeyStoreTable as CreateKeyStoreTable -import GetKeys as GetKeys -import AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import KeyStore as KeyStore -import AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes -import JSON_Utils_Views_Core as JSON_Utils_Views_Core -import JSON_Utils_Views_Writers as JSON_Utils_Views_Writers -import JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core -import JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings -import JSON_Utils_Cursors as JSON_Utils_Cursors -import JSON_Utils_Parsers as JSON_Utils_Parsers -import GeneralInternals as GeneralInternals -import MulInternalsNonlinear as MulInternalsNonlinear -import MulInternals as MulInternals -import Mul as Mul -import ModInternalsNonlinear as ModInternalsNonlinear -import DivInternalsNonlinear as DivInternalsNonlinear -import ModInternals as ModInternals -import DivInternals as DivInternals -import DivMod as DivMod -import Power as Power -import Logarithm as Logarithm -import JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion -import JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping -import JSON_Utils_Str as JSON_Utils_Str -import JSON_Utils_Seq as JSON_Utils_Seq -import JSON_Utils_Vectors as JSON_Utils_Vectors -import JSON_Errors as JSON_Errors -import JSON_Values as JSON_Values -import Unicode as Unicode -import Functions as Functions -import Utf8EncodingForm as Utf8EncodingForm -import Utf16EncodingForm as Utf16EncodingForm -import UnicodeStrings as UnicodeStrings -import JSON_Spec as JSON_Spec -import JSON_Grammar as JSON_Grammar -import JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion -import JSON_Serializer as JSON_Serializer -import JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion -import JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion -import JSON_Deserializer as JSON_Deserializer -import JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec -import JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties -import JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer -import JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core -import JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings -import JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers -import JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams -import JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects -import JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams -import JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays -import JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants -import JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values -import JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API -import JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer -import JSON_ZeroCopy_API as JSON_ZeroCopy_API -import JSON_API as JSON_API -import JSONHelpers as JSONHelpers -import KeyDescription as KeyDescription -import HexStrings as HexStrings -import KeyMaterial as KeyMaterial -import CreateStaticKeyrings as CreateStaticKeyrings -import CreateStaticKeyStores as CreateStaticKeyStores -import KeyringFromKeyDescription as KeyringFromKeyDescription -import CmmFromKeyDescription as CmmFromKeyDescription -import WrappedMaterialProviders as WrappedMaterialProviders -import KeysVectorOperations as KeysVectorOperations -import FileIO as FileIO -import KeyVectors as KeyVectors -import AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import Streams as Streams -import SerializableTypes as SerializableTypes -import SerializeFunctions as SerializeFunctions -import EncryptionContext as EncryptionContext -import HeaderTypes as HeaderTypes -import SharedHeaderFunctions as SharedHeaderFunctions -import EncryptedDataKeys as EncryptedDataKeys -import V1HeaderBody as V1HeaderBody -import V2HeaderBody as V2HeaderBody -import HeaderAuth as HeaderAuth -import Header as Header -import Frames as Frames -import MessageBody as MessageBody -import KeyDerivation as KeyDerivation -import EncryptDecryptHelpers as EncryptDecryptHelpers -import AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import EncryptionSdk as EncryptionSdk -import MplManifestOptions as MplManifestOptions -import GetOpt as GetOpt -import AllAlgorithmSuites as AllAlgorithmSuites -import TestVectors as TestVectors -import AllHierarchy as AllHierarchy -import AllKms as AllKms -import AllKmsMrkAware as AllKmsMrkAware -import AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery -import AllKmsRsa as AllKmsRsa -import AllKmsEcdh as AllKmsEcdh -import AllRawAES as AllRawAES -import AllRawRSA as AllRawRSA -import AllRawECDH as AllRawECDH -import AllDefaultCmm as AllDefaultCmm -import AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm -import AllMulti as AllMulti -import WriteJsonManifests as WriteJsonManifests -import CompleteVectors as CompleteVectors -import ParseJsonManifests as ParseJsonManifests -import TestManifests as TestManifests -import WrappedMaterialProvidersMain as WrappedMaterialProvidersMain -import AesKdfCtr as AesKdfCtr -import StandardLibraryInterop as StandardLibraryInterop -import Sorting as Sorting -import FloatCompare as FloatCompare -import ConcurrentCall as ConcurrentCall -import Base64Lemmas as Base64Lemmas -import .internaldafny.generated.WrappedESDK as WrappedESDK -import .internaldafny.generated.EsdkManifestOptions as EsdkManifestOptions -import .internaldafny.generated.EsdkTestVectors as EsdkTestVectors -import .internaldafny.generated.AllEsdkV4NoReqEc as AllEsdkV4NoReqEc -import .internaldafny.generated.AllEsdkV4WithReqEc as AllEsdkV4WithReqEc -import .internaldafny.generated.WriteEsdkJsonManifests as WriteEsdkJsonManifests -import .internaldafny.generated.WriteVectors as WriteVectors -import .internaldafny.generated.ParseEsdkJsonManifest as ParseEsdkJsonManifest -import .internaldafny.generated.EsdkTestManifests as EsdkTestManifests -import .internaldafny.generated.WrappedESDKMain as WrappedESDKMain - -# Module: module_ - -class default__: - def __init__(self): - pass - - @staticmethod - def Test____Main____(noArgsParameter__): - d_0_success_: bool - d_0_success_ = True - if not(d_0_success_): - raise _dafny.HaltException("(1,0): " + _dafny.string_of(_dafny.Seq("Test failures occurred: see above.\n"))) - From 30ae621f3c3f57ab180eaa586137ff7a2474cf27 Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Fri, 13 Dec 2024 10:25:17 -0800 Subject: [PATCH 15/50] m --- .../internaldafny/extern/use_esdk_testvectors.py | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/use_esdk_testvectors.py diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/use_esdk_testvectors.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/use_esdk_testvectors.py new file mode 100644 index 000000000..73a6dba66 --- /dev/null +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/use_esdk_testvectors.py @@ -0,0 +1,7 @@ +import aws_encryption_sdk_test_vectors.internaldafny.generated.module_ as module_ +import aws_encryption_sdk_test_vectors.internaldafny.generated.WrappedESDKMain as WrappedESDKMain + +def new_test_main(args): + WrappedESDKMain.default__.Main2(args) + +module_.default__.Test____Main____ = new_test_main From c691298f478dcd8963e4901739eb541a4fb5a693 Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Fri, 13 Dec 2024 11:20:01 -0800 Subject: [PATCH 16/50] expected to pass with failfast --- .github/workflows/library_interop_test_vectors.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/library_interop_test_vectors.yml b/.github/workflows/library_interop_test_vectors.yml index b4fc67223..3353490ac 100644 --- a/.github/workflows/library_interop_test_vectors.yml +++ b/.github/workflows/library_interop_test_vectors.yml @@ -184,6 +184,7 @@ jobs: testInteroperablity: needs: generateEncryptVectors strategy: + fail-fast: false matrix: library: [TestVectors] os: [ From 110c6d9f2fc21a85a23b9aba3fad277a57d70128 Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Fri, 13 Dec 2024 11:20:31 -0800 Subject: [PATCH 17/50] expected to fail with failfast --- mpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mpl b/mpl index 8e0715ca2..370be9c25 160000 --- a/mpl +++ b/mpl @@ -1 +1 @@ -Subproject commit 8e0715ca2f8131047b3a8ac8d7fea76587c5e15b +Subproject commit 370be9c25900681687b36f022f0e3ba740c933b9 From 31a842a4a31eb9979ff4a33170ede453d2e6d864 Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Fri, 13 Dec 2024 11:20:57 -0800 Subject: [PATCH 18/50] normal --- mpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mpl b/mpl index 370be9c25..8e0715ca2 160000 --- a/mpl +++ b/mpl @@ -1 +1 @@ -Subproject commit 370be9c25900681687b36f022f0e3ba740c933b9 +Subproject commit 8e0715ca2f8131047b3a8ac8d7fea76587c5e15b From 3b2e22cf56aa1f161255dfb7101012525addb7dd Mon Sep 17 00:00:00 2001 From: Jose Corella Date: Thu, 13 Feb 2025 19:59:35 -0800 Subject: [PATCH 19/50] m --- .../library_interop_test_vectors.yml | 252 ++++-------------- 1 file changed, 54 insertions(+), 198 deletions(-) diff --git a/.github/workflows/library_interop_test_vectors.yml b/.github/workflows/library_interop_test_vectors.yml index 3353490ac..ffbcec3f0 100644 --- a/.github/workflows/library_interop_test_vectors.yml +++ b/.github/workflows/library_interop_test_vectors.yml @@ -25,13 +25,17 @@ jobs: ubuntu-22.04, macos-13, ] - language: [java, net, rust, go] + language: [java, net, rust, go, python] # https://taskei.amazon.dev/tasks/CrypTool-5284 dotnet-version: ["6.0.x"] runs-on: ${{ matrix.os }} permissions: id-token: write - contents: read + contents: read + steps: + - name: Support longpaths on Git checkout + run: | + git config --global core.longpaths true # TestVectors will call KMS - name: Configure AWS Credentials @@ -83,6 +87,15 @@ jobs: # uses: actions-rust-lang/rustfmt@v1 # TODO: Remove this after the formatting in Rust starts working + - name: Setup Go + uses: actions/setup-go@v5 + with: + go-version: "1.23" + + - name: Install Go imports + run: | + go install golang.org/x/tools/cmd/goimports@latest + - name: smithy-dafny Rust hacks if: matrix.language == 'rust' shell: bash @@ -157,6 +170,23 @@ jobs: # This works because `node` is installed by default on GHA runners CORES=$(node -e 'console.log(os.cpus().length)') make transpile_python CORES=$CORES + + - name: Build ${{ matrix.library }} implementation in Go + if: matrix.language == 'go' + shell: bash + working-directory: ./${{ matrix.library }} + run: | + # This works because `node` is installed by default on GHA runners + CORES=$(node -e 'console.log(os.cpus().length)') + make transpile_go + + # TODO: Remove this after Go polymorph does not generate unwanted duplicate code. + - name: Purge polymorph code in Go + if: matrix.language == 'go' + shell: bash + working-directory: ./${{ matrix.library }} + run: | + make purge_polymorph_code - name: Setup gradle if: matrix.language == 'java' @@ -193,8 +223,8 @@ jobs: ubuntu-latest, macos-13, ] - encrypting_language: [java, net, rust, python] - decrypting_language: [java, net, rust, python] + encrypting_language: [java, net, rust, go, python] + decrypting_language: [java, net, rust, go, python] # https://taskei.amazon.dev/tasks/CrypTool-5284 dotnet-version: ["6.0.x"] runs-on: ${{ matrix.os }} @@ -212,180 +242,9 @@ jobs: uses: aws-actions/configure-aws-credentials@v2 with: aws-region: us-west-2 - role-to-assume: arn:aws:iam::370957321024:role/GitHub-CI-Public-ESDK-Dafny-Role-us-west-2 + role-to-assume: arn:aws:iam::370957321024:role/GitHub-CI-Public-ESDK-Dafny-Role-us-west-2 role-session-name: InterOpTests - - - uses: actions/checkout@v3 - # Not all submodules are needed. - # We manually pull the submodule we DO need. - - run: git submodule update --init libraries - - run: git submodule update --init --recursive mpl - - # Set up runtimes - - name: Setup .NET Core SDK ${{ matrix.dotnet-version }} - if: matrix.language == 'net' - uses: actions/setup-dotnet@v3 - with: - dotnet-version: ${{ matrix.dotnet-version }} - - # Setup Java in Rust is needed for running polymorph - - name: Setup Java 17 - if: matrix.language == 'java' || matrix.language == 'rust' - uses: actions/setup-java@v3 - with: - distribution: "corretto" - java-version: 17 - - - name: Setup Rust Toolchain for GitHub CI - if: matrix.language == 'rust' - uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 - with: - components: rustfmt - - - name: Setup Go - uses: actions/setup-go@v5 - with: - go-version: "1.23" - - - name: Install Go imports - run: | - go install golang.org/x/tools/cmd/goimports@latest - - - name: Setup NASM for Windows in Rust (aws-lc-sys) - if: matrix.language == 'rust' && matrix.os == 'windows-latest' - uses: ilammy/setup-nasm@v1 - - - name: Setup Dafny Rust - if: matrix.language == 'rust' - uses: dafny-lang/setup-dafny-action@v1.8.0 - with: - dafny-version: nightly-2025-01-30-7db1e5f - - - name: Setup Dafny Not Rust - if: matrix.language != 'rust' - uses: dafny-lang/setup-dafny-action@v1.8.0 - with: - dafny-version: ${{ inputs.dafny }} - - - name: Regenerate code using smithy-dafny if necessary - if: ${{ inputs.regenerate-code }} - uses: ./.github/actions/polymorph_codegen - with: - dafny: ${{ inputs.dafny }} - library: ${{ matrix.library }} - diff-generated-code: false - - # Build implementation for each runtime - - name: Build ${{ matrix.library }} implementation in Java - if: matrix.language == 'java' - shell: bash - working-directory: ./${{ matrix.library }} - run: | - # This works because `node` is installed by default on GHA runners - CORES=$(node -e 'console.log(os.cpus().length)') - make build_java CORES=$CORES - - - name: Build ${{ matrix.library }} implementation in .NET - if: matrix.language == 'net' - shell: bash - working-directory: ./${{ matrix.library }} - run: | - # This works because `node` is installed by default on GHA runners - CORES=$(node -e 'console.log(os.cpus().length)') - make transpile_net - - - name: Install Smithy-Dafny codegen dependencies - if: matrix.language == 'rust' - uses: ./.github/actions/install_smithy_dafny_codegen_dependencies - - - name: Run make polymorph_rust - if: matrix.language == 'rust' - shell: bash - working-directory: ./${{ matrix.library }} - run: | - make polymorph_rust - - - name: Build ${{ matrix.library }} implementation in Rust - if: matrix.language == 'rust' - shell: bash - working-directory: ./${{ matrix.library }} - run: | - CORES=$(node -e 'console.log(os.cpus().length)') - make transpile_rust CORES=$CORES - - - name: Build ${{ matrix.library }} implementation in Go - if: matrix.language == 'go' - shell: bash - working-directory: ./${{ matrix.library }} - run: | - # This works because `node` is installed by default on GHA runners - CORES=$(node -e 'console.log(os.cpus().length)') - make transpile_go - - # TODO: Remove this after Go polymorph does not generate unwanted duplicate code. - - name: Purge polymorph code in Go - if: matrix.language == 'go' - shell: bash - working-directory: ./${{ matrix.library }} - run: | - make purge_polymorph_code - - - name: Setup gradle - if: matrix.language == 'java' - uses: gradle/gradle-build-action@v2 - with: - gradle-version: 7.2 - - - name: Create Manifests - working-directory: ./${{ matrix.library }} - run: make test_generate_vectors_${{ matrix.language }} - - - name: Create Encrypt Manifests - working-directory: ./${{ matrix.library }} - run: make test_encrypt_vectors_${{ matrix.language }} - - - name: Upload Encrypt Manifest and keys.json files - uses: actions/upload-artifact@v4 - with: - name: ${{matrix.os}}_vector_artifact_${{matrix.language}}_${{github.sha}} - path: | - ./${{matrix.library}}/runtimes/${{matrix.language}}/*.json - ./${{matrix.library}}/runtimes/${{matrix.language}}/plaintexts - ./${{matrix.library}}/runtimes/${{matrix.language}}/ciphertexts - - testInteroperablity: - needs: generateEncryptVectors - strategy: - matrix: - library: [TestVectors] - os: [ - # https://taskei.amazon.dev/tasks/CrypTool-5283 - # windows-latest, - ubuntu-22.04, - macos-13, - ] - encrypting_language: [java, net, rust, go] - decrypting_language: [java, net, rust, go] - # https://taskei.amazon.dev/tasks/CrypTool-5284 - dotnet-version: ["6.0.x"] - runs-on: ${{ matrix.os }} - permissions: - id-token: write - contents: read - - steps: - - name: Support longpaths on Git checkout - run: | - git config --global core.longpaths true - - # TestVectors will call KMS - - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v2 - with: - aws-region: us-west-2 - role-to-assume: arn:aws:iam::370957321024:role/GitHub-CI-Public-ESDK-Dafny-Role-us-west-2 - role-session-name: InterOpTests - + - uses: actions/checkout@v3 # Not all submodules are needed. # We manually pull the submodule we DO need. @@ -423,29 +282,27 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 with: components: rustfmt + # TODO - uncomment this after Rust formatter works + # - name: Rustfmt Check + # uses: actions-rust-lang/rustfmt@v1 - - name: Setup Go - uses: actions/setup-go@v5 - with: - go-version: "1.23" - - - name: Install Go imports + # TODO: Remove this after the formatting in Rust starts working + - name: smithy-dafny Rust hacks + if: matrix.decrypting_language == 'rust' + shell: bash run: | - go install golang.org/x/tools/cmd/goimports@latest + if [ "$RUNNER_OS" == "macOS" ]; then + sed -i '' 's|rustfmt --edition 2021 runtimes/rust/src/implementation_from_dafny.rs|#&|' mpl/smithy-dafny/SmithyDafnyMakefile.mk + else + sed -i 's|rustfmt --edition 2021 runtimes/rust/src/implementation_from_dafny.rs|#&|' mpl/smithy-dafny/SmithyDafnyMakefile.mk + fi - name: Setup NASM for Windows in Rust (aws-lc-sys) if: matrix.decrypting_language == 'rust' && matrix.os == 'windows-latest' uses: ilammy/setup-nasm@v1 - - name: Setup Dafny Rust - if: matrix.decrypting_language == 'rust' - uses: dafny-lang/setup-dafny-action@v1.8.0 - with: - dafny-version: nightly-2025-01-30-7db1e5f - - - name: Setup Dafny Not Rust - if: matrix.decrypting_language != 'rust' - uses: dafny-lang/setup-dafny-action@v1.8.0 + - name: Setup Dafny + uses: dafny-lang/setup-dafny-action@v1.6.1 with: dafny-version: ${{ inputs.dafny }} @@ -479,7 +336,8 @@ jobs: - name: Install Smithy-Dafny codegen dependencies if: matrix.decrypting_language == 'rust' uses: ./.github/actions/install_smithy_dafny_codegen_dependencies - + + # TODO: Remove this after checking in Rust polymorph code - name: Run make polymorph_rust if: matrix.decrypting_language == 'rust' shell: bash @@ -494,8 +352,7 @@ jobs: run: | CORES=$(node -e 'console.log(os.cpus().length)') make transpile_rust CORES=$CORES - -<<<<<<< HEAD + - name: Build ${{ matrix.library }} implementation in Go if: matrix.decrypting_language == 'go' shell: bash @@ -512,7 +369,7 @@ jobs: working-directory: ./${{ matrix.library }} run: | make purge_polymorph_code -======= + - name: Build ${{ matrix.library }} implementation in Python if: matrix.decrypting_language == 'python' shell: bash @@ -520,7 +377,6 @@ jobs: run: | CORES=$(node -e 'console.log(os.cpus().length)') make transpile_python CORES=$CORES ->>>>>>> a812a13f (m) - name: Download Encrypt Manifest Artifact uses: actions/download-artifact@v4 From 7c5e28ebf9269487d58ed24d960e0bcecb49122e Mon Sep 17 00:00:00 2001 From: Jose Corella Date: Thu, 13 Feb 2025 20:06:42 -0800 Subject: [PATCH 20/50] m --- mpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mpl b/mpl index 8e0715ca2..1a4358492 160000 --- a/mpl +++ b/mpl @@ -1 +1 @@ -Subproject commit 8e0715ca2f8131047b3a8ac8d7fea76587c5e15b +Subproject commit 1a4358492ae17a9249b2c52fffe56ef72b02fc1d From 233f9932cf31631c28bb9ceb2255a29019b2a693 Mon Sep 17 00:00:00 2001 From: Jose Corella Date: Thu, 13 Feb 2025 20:15:28 -0800 Subject: [PATCH 21/50] godbless reflog --- TestVectors/Makefile | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/TestVectors/Makefile b/TestVectors/Makefile index 21c6dcf9e..78ac7acb2 100644 --- a/TestVectors/Makefile +++ b/TestVectors/Makefile @@ -211,6 +211,10 @@ test_encrypt_vectors_rust: test_encrypt_vectors_go: go -C runtimes/go/ImplementationFromDafny-go run ImplementationFromDafny.go encrypt --manifest-path=.. --decrypt-manifest-path=.. +test_encrypt_vectors_python: + rm -rf runtimes/python/.tox + python3 -m tox -c runtimes/python --verbose -e cli -- encrypt --manifest-path runtimes/python --decrypt-manifest-path runtimes/python + test_decrypt_encrypt_vectors_java: gradle -p runtimes/java run --args="decrypt --manifest-path . --manifest-name decrypt-manifest.json" @@ -234,6 +238,10 @@ test_decrypt_encrypt_vectors_rust: test_decrypt_encrypt_vectors_go: go -C runtimes/go/ImplementationFromDafny-go run ImplementationFromDafny.go decrypt --manifest-path=.. --manifest-name=decrypt-manifest.json +test_decrypt_encrypt_vectors_python: + rm -rf runtimes/python/.tox + python3 -m tox -c runtimes/python --verbose -e cli -- decrypt --manifest-path runtimes/python --manifest-name decrypt-manifest.json + _polymorph_dependencies: @echo "No polymorphing of dependency" @@ -248,3 +256,24 @@ _sed_types_file_add_extern: _sed_index_file_add_extern: @echo "No extern to process for ESDK TestVectors" + +PYTHON_MODULE_NAME=aws_encryption_sdk_test_vectors + +TRANSLATION_RECORD_PYTHON := \ + --translation-record ../mpl/StandardLibrary/runtimes/python/src/smithy_dafny_standard_library/internaldafny/generated/dafny_src-py.dtr \ + --translation-record ../mpl/ComAmazonawsKms/runtimes/python/src/aws_cryptography_internal_kms/internaldafny/generated/dafny_src-py.dtr \ + --translation-record ../mpl/ComAmazonawsDynamodb/runtimes/python/src/aws_cryptography_internal_dynamodb/internaldafny/generated/dafny_src-py.dtr \ + --translation-record ../mpl/AwsCryptographyPrimitives/runtimes/python/src/aws_cryptography_primitives/internaldafny/generated/dafny_src-py.dtr \ + --translation-record ../mpl/AwsCryptographicMaterialProviders/runtimes/python/src/aws_cryptographic_material_providers/internaldafny/generated/dafny_src-py.dtr \ + --translation-record ../mpl/TestVectorsAwsCryptographicMaterialProviders/runtimes/python/src/aws_cryptography_materialproviders_test_vectors/internaldafny/generated/dafny_src-py.dtr \ + --translation-record ../AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/dafny_src-py.dtr + +PYTHON_DEPENDENCY_MODULE_NAMES := \ + --dependency-library-name=aws.cryptography.primitives=aws_cryptography_primitives \ + --dependency-library-name=com.amazonaws.kms=aws_cryptography_internal_kms \ + --dependency-library-name=com.amazonaws.dynamodb=aws_cryptography_internal_dynamodb \ + --dependency-library-name=aws.cryptography.materialProviders=aws_cryptographic_material_providers \ + --dependency-library-name=aws.cryptography.keyStore=aws_cryptographic_material_providers \ + --dependency-library-name=smithy.api=aws_cryptographic_material_providers \ + --dependency-library-name=aws.cryptography.materialProvidersTestVectorKeys=aws_cryptographic_material_providers_test_vectors \ + --dependency-library-name=aws.cryptography.encryptionSdk=aws_encryption_sdk From 40844b2bf5440143961bd6b4af7898e0c2795f7f Mon Sep 17 00:00:00 2001 From: Jose Corella Date: Thu, 13 Feb 2025 20:25:11 -0800 Subject: [PATCH 22/50] m --- TestVectors/Makefile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/TestVectors/Makefile b/TestVectors/Makefile index 78ac7acb2..e06d04cb9 100644 --- a/TestVectors/Makefile +++ b/TestVectors/Makefile @@ -212,8 +212,8 @@ test_encrypt_vectors_go: go -C runtimes/go/ImplementationFromDafny-go run ImplementationFromDafny.go encrypt --manifest-path=.. --decrypt-manifest-path=.. test_encrypt_vectors_python: - rm -rf runtimes/python/.tox - python3 -m tox -c runtimes/python --verbose -e cli -- encrypt --manifest-path runtimes/python --decrypt-manifest-path runtimes/python + rm -rf runtimes/python/.tox + python3 -m tox -c runtimes/python --verbose -e cli -- encrypt --manifest-path runtimes/python --decrypt-manifest-path runtimes/python test_decrypt_encrypt_vectors_java: gradle -p runtimes/java run --args="decrypt --manifest-path . --manifest-name decrypt-manifest.json" @@ -239,8 +239,8 @@ test_decrypt_encrypt_vectors_go: go -C runtimes/go/ImplementationFromDafny-go run ImplementationFromDafny.go decrypt --manifest-path=.. --manifest-name=decrypt-manifest.json test_decrypt_encrypt_vectors_python: - rm -rf runtimes/python/.tox - python3 -m tox -c runtimes/python --verbose -e cli -- decrypt --manifest-path runtimes/python --manifest-name decrypt-manifest.json + rm -rf runtimes/python/.tox + python3 -m tox -c runtimes/python --verbose -e cli -- decrypt --manifest-path runtimes/python --manifest-name decrypt-manifest.json _polymorph_dependencies: @echo "No polymorphing of dependency" @@ -260,7 +260,7 @@ _sed_index_file_add_extern: PYTHON_MODULE_NAME=aws_encryption_sdk_test_vectors TRANSLATION_RECORD_PYTHON := \ - --translation-record ../mpl/StandardLibrary/runtimes/python/src/smithy_dafny_standard_library/internaldafny/generated/dafny_src-py.dtr \ + --translation-record ../mpl/StandardLibrary/runtimes/python/src/smithy_dafny_standard_library/internaldafny/generated/dafny_src-py.dtr \ --translation-record ../mpl/ComAmazonawsKms/runtimes/python/src/aws_cryptography_internal_kms/internaldafny/generated/dafny_src-py.dtr \ --translation-record ../mpl/ComAmazonawsDynamodb/runtimes/python/src/aws_cryptography_internal_dynamodb/internaldafny/generated/dafny_src-py.dtr \ --translation-record ../mpl/AwsCryptographyPrimitives/runtimes/python/src/aws_cryptography_primitives/internaldafny/generated/dafny_src-py.dtr \ From c80fe8ef40624343d93d36a377e6a5655684c319 Mon Sep 17 00:00:00 2001 From: Jose Corella Date: Thu, 13 Feb 2025 20:27:48 -0800 Subject: [PATCH 23/50] m --- TestVectors/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TestVectors/Makefile b/TestVectors/Makefile index e06d04cb9..4f4f36086 100644 --- a/TestVectors/Makefile +++ b/TestVectors/Makefile @@ -212,7 +212,7 @@ test_encrypt_vectors_go: go -C runtimes/go/ImplementationFromDafny-go run ImplementationFromDafny.go encrypt --manifest-path=.. --decrypt-manifest-path=.. test_encrypt_vectors_python: - rm -rf runtimes/python/.tox + rm -rf runtimes/python/.tox \ python3 -m tox -c runtimes/python --verbose -e cli -- encrypt --manifest-path runtimes/python --decrypt-manifest-path runtimes/python test_decrypt_encrypt_vectors_java: @@ -239,7 +239,7 @@ test_decrypt_encrypt_vectors_go: go -C runtimes/go/ImplementationFromDafny-go run ImplementationFromDafny.go decrypt --manifest-path=.. --manifest-name=decrypt-manifest.json test_decrypt_encrypt_vectors_python: - rm -rf runtimes/python/.tox + rm -rf runtimes/python/.tox \ python3 -m tox -c runtimes/python --verbose -e cli -- decrypt --manifest-path runtimes/python --manifest-name decrypt-manifest.json _polymorph_dependencies: From 72909f87ae09e79f6382b154b74f03297ee896ad Mon Sep 17 00:00:00 2001 From: Jose Corella Date: Thu, 13 Feb 2025 20:32:53 -0800 Subject: [PATCH 24/50] m --- TestVectors/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TestVectors/Makefile b/TestVectors/Makefile index 4f4f36086..bcea49ccb 100644 --- a/TestVectors/Makefile +++ b/TestVectors/Makefile @@ -212,7 +212,7 @@ test_encrypt_vectors_go: go -C runtimes/go/ImplementationFromDafny-go run ImplementationFromDafny.go encrypt --manifest-path=.. --decrypt-manifest-path=.. test_encrypt_vectors_python: - rm -rf runtimes/python/.tox \ + rm -rf runtimes/python/.tox \ python3 -m tox -c runtimes/python --verbose -e cli -- encrypt --manifest-path runtimes/python --decrypt-manifest-path runtimes/python test_decrypt_encrypt_vectors_java: From 4a2c2741ada367ba5b44b96c12defb0fbb790db5 Mon Sep 17 00:00:00 2001 From: Jose Corella Date: Thu, 13 Feb 2025 20:38:28 -0800 Subject: [PATCH 25/50] m --- TestVectors/Makefile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/TestVectors/Makefile b/TestVectors/Makefile index bcea49ccb..01400b85b 100644 --- a/TestVectors/Makefile +++ b/TestVectors/Makefile @@ -194,6 +194,11 @@ test_generate_vectors_go: go -C runtimes/go/ImplementationFromDafny-go run ImplementationFromDafny.go encrypt-manifest --encrypt-manifest-output ../ cp dafny/TestVectors/test/keys.json runtimes/go +test_generate_vectors_python: + rm -rf runtimes/python/.tox \ + python3 -m tox -c runtimes/python --verbose -e cli -- encrypt-manifest --encrypt-manifest-output runtimes/python \ + cp dafny/TestVectors/test/keys.json runtimes/python + test_encrypt_vectors_java: gradle -p runtimes/java run --args="encrypt --manifest-path . --decrypt-manifest-path ." From 523905a36a0d3e0d2f9f97e3b91d46c76a5b71c2 Mon Sep 17 00:00:00 2001 From: Jose Corella Date: Thu, 13 Feb 2025 20:44:05 -0800 Subject: [PATCH 26/50] sigh --- .github/workflows/library_interop_test_vectors.yml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/library_interop_test_vectors.yml b/.github/workflows/library_interop_test_vectors.yml index ffbcec3f0..0cde0a1b7 100644 --- a/.github/workflows/library_interop_test_vectors.yml +++ b/.github/workflows/library_interop_test_vectors.yml @@ -110,8 +110,15 @@ jobs: if: matrix.language == 'rust' && matrix.os == 'windows-latest' uses: ilammy/setup-nasm@v1 - - name: Setup Dafny - uses: dafny-lang/setup-dafny-action@v1.7.0 + - name: Setup Dafny Rust + if: matrix.language == 'rust' + uses: dafny-lang/setup-dafny-action@v1.8.0 + with: + dafny-version: nightly-2025-01-30-7db1e5f + + - name: Setup Dafny Not Rust + if: matrix.language != 'rust' + uses: dafny-lang/setup-dafny-action@v1.8.0 with: dafny-version: ${{ inputs.dafny }} From da30e6fc2bbbff89396d19b5b36e87376ff1af4d Mon Sep 17 00:00:00 2001 From: Jose Corella Date: Thu, 13 Feb 2025 20:53:03 -0800 Subject: [PATCH 27/50] m --- TestVectors/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TestVectors/Makefile b/TestVectors/Makefile index 01400b85b..1c4b865ab 100644 --- a/TestVectors/Makefile +++ b/TestVectors/Makefile @@ -195,8 +195,8 @@ test_generate_vectors_go: cp dafny/TestVectors/test/keys.json runtimes/go test_generate_vectors_python: - rm -rf runtimes/python/.tox \ - python3 -m tox -c runtimes/python --verbose -e cli -- encrypt-manifest --encrypt-manifest-output runtimes/python \ + rm -rf runtimes/python/.tox + python3 -m tox -c runtimes/python --verbose -e cli -- encrypt-manifest --encrypt-manifest-output runtimes/python cp dafny/TestVectors/test/keys.json runtimes/python test_encrypt_vectors_java: From 3207987c03116854a09e2a7514c8ee7b78a80c34 Mon Sep 17 00:00:00 2001 From: Jose Corella Date: Thu, 13 Feb 2025 21:00:58 -0800 Subject: [PATCH 28/50] m --- AwsEncryptionSDK/Makefile | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/AwsEncryptionSDK/Makefile b/AwsEncryptionSDK/Makefile index 0fea756cc..90154641e 100644 --- a/AwsEncryptionSDK/Makefile +++ b/AwsEncryptionSDK/Makefile @@ -107,3 +107,20 @@ restore_directories: echo "Directory $$dir not found"; \ fi \ done + +PYTHON_MODULE_NAME=aws_encryption_sdk + +TRANSLATION_RECORD_PYTHON := \ + --translation-record ../mpl/StandardLibrary/runtimes/python/src/smithy_dafny_standard_library/internaldafny/generated/dafny_src-py.dtr \ + --translation-record ../mpl/ComAmazonawsKms/runtimes/python/src/aws_cryptography_internal_kms/internaldafny/generated/dafny_src-py.dtr \ + --translation-record ../mpl/ComAmazonawsDynamodb/runtimes/python/src/aws_cryptography_internal_dynamodb/internaldafny/generated/dafny_src-py.dtr \ + --translation-record ../mpl/AwsCryptographyPrimitives/runtimes/python/src/aws_cryptography_primitives/internaldafny/generated/dafny_src-py.dtr \ + --translation-record ../mpl/AwsCryptographicMaterialProviders/runtimes/python/src/aws_cryptographic_material_providers/internaldafny/generated/dafny_src-py.dtr + +PYTHON_DEPENDENCY_MODULE_NAMES := \ + --dependency-library-name=aws.cryptography.primitives=aws_cryptography_primitives \ + --dependency-library-name=com.amazonaws.kms=aws_cryptography_internal_kms \ + --dependency-library-name=com.amazonaws.dynamodb=aws_cryptography_internal_dynamodb \ + --dependency-library-name=aws.cryptography.materialProviders=aws_cryptographic_material_providers \ + --dependency-library-name=aws.cryptography.keyStore=aws_cryptographic_material_providers \ + --dependency-library-name=smithy.api=aws_cryptographic_material_providers From be3bc209f6737b6811bf059142315501fa08dfaa Mon Sep 17 00:00:00 2001 From: Jose Corella Date: Thu, 13 Feb 2025 21:12:42 -0800 Subject: [PATCH 29/50] m --- TestVectors/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TestVectors/Makefile b/TestVectors/Makefile index 1c4b865ab..9a50cb0db 100644 --- a/TestVectors/Makefile +++ b/TestVectors/Makefile @@ -217,7 +217,7 @@ test_encrypt_vectors_go: go -C runtimes/go/ImplementationFromDafny-go run ImplementationFromDafny.go encrypt --manifest-path=.. --decrypt-manifest-path=.. test_encrypt_vectors_python: - rm -rf runtimes/python/.tox \ + rm -rf runtimes/python/.tox python3 -m tox -c runtimes/python --verbose -e cli -- encrypt --manifest-path runtimes/python --decrypt-manifest-path runtimes/python test_decrypt_encrypt_vectors_java: @@ -244,7 +244,7 @@ test_decrypt_encrypt_vectors_go: go -C runtimes/go/ImplementationFromDafny-go run ImplementationFromDafny.go decrypt --manifest-path=.. --manifest-name=decrypt-manifest.json test_decrypt_encrypt_vectors_python: - rm -rf runtimes/python/.tox \ + rm -rf runtimes/python/.tox python3 -m tox -c runtimes/python --verbose -e cli -- decrypt --manifest-path runtimes/python --manifest-name decrypt-manifest.json _polymorph_dependencies: From 8af4ddd516fe39d8a72b60e68242b5bdaa2c00a2 Mon Sep 17 00:00:00 2001 From: Jose Corella Date: Fri, 14 Feb 2025 10:05:21 -0800 Subject: [PATCH 30/50] m --- TestVectors/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TestVectors/Makefile b/TestVectors/Makefile index 9a50cb0db..8f95cf085 100644 --- a/TestVectors/Makefile +++ b/TestVectors/Makefile @@ -218,7 +218,7 @@ test_encrypt_vectors_go: test_encrypt_vectors_python: rm -rf runtimes/python/.tox - python3 -m tox -c runtimes/python --verbose -e cli -- encrypt --manifest-path runtimes/python --decrypt-manifest-path runtimes/python + python3 -m tox -c runtimes/python --verbose -e cli -- encrypt --manifest-path runtimes/python --decrypt-manifest-path runtimes/python test_decrypt_encrypt_vectors_java: gradle -p runtimes/java run --args="decrypt --manifest-path . --manifest-name decrypt-manifest.json" From cfa2aa767cddee34af5c8b4c145fe22177b39fcc Mon Sep 17 00:00:00 2001 From: Jose Corella Date: Fri, 14 Feb 2025 10:09:19 -0800 Subject: [PATCH 31/50] m --- .../library_interop_test_vectors.yml | 382 +++++++++--------- TestVectors/Makefile | 2 +- 2 files changed, 192 insertions(+), 192 deletions(-) diff --git a/.github/workflows/library_interop_test_vectors.yml b/.github/workflows/library_interop_test_vectors.yml index 0cde0a1b7..117c18e5b 100644 --- a/.github/workflows/library_interop_test_vectors.yml +++ b/.github/workflows/library_interop_test_vectors.yml @@ -31,193 +31,193 @@ jobs: runs-on: ${{ matrix.os }} permissions: id-token: write - contents: read + contents: read steps: - - name: Support longpaths on Git checkout - run: | - git config --global core.longpaths true - - # TestVectors will call KMS - - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v2 - with: - aws-region: us-west-2 - role-to-assume: arn:aws:iam::370957321024:role/GitHub-CI-Public-ESDK-Dafny-Role-us-west-2 - role-session-name: InterOpTests - - - uses: actions/checkout@v3 - # Not all submodules are needed. - # We manually pull the submodule we DO need. - - run: git submodule update --init libraries - - run: git submodule update --init --recursive mpl - - # Set up runtimes - - name: Setup .NET Core SDK ${{ matrix.dotnet-version }} - if: matrix.language == 'net' - uses: actions/setup-dotnet@v3 - with: - dotnet-version: ${{ matrix.dotnet-version }} - - # Setup Java in Rust is needed for running polymorph - - name: Setup Java 17 - if: matrix.language == 'java' || matrix.language == 'rust' - uses: actions/setup-java@v3 - with: - distribution: "corretto" - java-version: 17 - - - name: Setup Python for running tests - if: matrix.language == 'python' - uses: actions/setup-python@v4 - with: - python-version: 3.11 - architecture: x64 - - run: | - python -m pip install --upgrade pip - pip install --upgrade tox - pip install poetry - - - name: Setup Rust Toolchain for GitHub CI - if: matrix.language == 'rust' - uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 - with: - components: rustfmt - # TODO - uncomment this after Rust formatter works - # - name: Rustfmt Check - # uses: actions-rust-lang/rustfmt@v1 - - # TODO: Remove this after the formatting in Rust starts working - - name: Setup Go - uses: actions/setup-go@v5 - with: - go-version: "1.23" - - - name: Install Go imports - run: | - go install golang.org/x/tools/cmd/goimports@latest - - - name: smithy-dafny Rust hacks - if: matrix.language == 'rust' - shell: bash - run: | - if [ "$RUNNER_OS" == "macOS" ]; then - sed -i '' 's|rustfmt --edition 2021 runtimes/rust/src/implementation_from_dafny.rs|#&|' mpl/smithy-dafny/SmithyDafnyMakefile.mk - else - sed -i 's|rustfmt --edition 2021 runtimes/rust/src/implementation_from_dafny.rs|#&|' mpl/smithy-dafny/SmithyDafnyMakefile.mk - fi - - - name: Setup NASM for Windows in Rust (aws-lc-sys) - if: matrix.language == 'rust' && matrix.os == 'windows-latest' - uses: ilammy/setup-nasm@v1 - - - name: Setup Dafny Rust - if: matrix.language == 'rust' - uses: dafny-lang/setup-dafny-action@v1.8.0 - with: - dafny-version: nightly-2025-01-30-7db1e5f - - - name: Setup Dafny Not Rust - if: matrix.language != 'rust' - uses: dafny-lang/setup-dafny-action@v1.8.0 - with: - dafny-version: ${{ inputs.dafny }} - - - name: Regenerate code using smithy-dafny if necessary - if: ${{ inputs.regenerate-code }} - uses: ./.github/actions/polymorph_codegen - with: - dafny: ${{ inputs.dafny }} - library: ${{ matrix.library }} - diff-generated-code: false - - # Build implementation for each runtime - - name: Build ${{ matrix.library }} implementation in Java - if: matrix.language == 'java' - shell: bash - working-directory: ./${{ matrix.library }} - run: | - # This works because `node` is installed by default on GHA runners - CORES=$(node -e 'console.log(os.cpus().length)') - make build_java CORES=$CORES - - - name: Build ${{ matrix.library }} implementation in .NET - if: matrix.language == 'net' - shell: bash - working-directory: ./${{ matrix.library }} - run: | - # This works because `node` is installed by default on GHA runners - CORES=$(node -e 'console.log(os.cpus().length)') - make transpile_net - - - name: Install Smithy-Dafny codegen dependencies - if: matrix.language == 'rust' - uses: ./.github/actions/install_smithy_dafny_codegen_dependencies - - # TODO: Remove this after checking in Rust polymorph code - - name: Run make polymorph_rust - if: matrix.language == 'rust' - shell: bash - working-directory: ./${{ matrix.library }} - run: | - make polymorph_rust - - - name: Build ${{ matrix.library }} implementation in Rust - if: matrix.language == 'rust' - shell: bash - working-directory: ./${{ matrix.library }} - run: | - CORES=$(node -e 'console.log(os.cpus().length)') - make transpile_rust CORES=$CORES - - - name: Build ${{ matrix.library }} implementation in Python - if: matrix.language == 'python' - shell: bash - working-directory: ./${{ matrix.library }} - run: | - # This works because `node` is installed by default on GHA runners - CORES=$(node -e 'console.log(os.cpus().length)') - make transpile_python CORES=$CORES - - - name: Build ${{ matrix.library }} implementation in Go - if: matrix.language == 'go' - shell: bash - working-directory: ./${{ matrix.library }} - run: | - # This works because `node` is installed by default on GHA runners - CORES=$(node -e 'console.log(os.cpus().length)') - make transpile_go - - # TODO: Remove this after Go polymorph does not generate unwanted duplicate code. - - name: Purge polymorph code in Go - if: matrix.language == 'go' - shell: bash - working-directory: ./${{ matrix.library }} - run: | - make purge_polymorph_code - - - name: Setup gradle - if: matrix.language == 'java' - uses: gradle/gradle-build-action@v2 - with: - gradle-version: 7.2 - - - name: Create Manifests - working-directory: ./${{ matrix.library }} - run: make test_generate_vectors_${{ matrix.language }} - - - name: Create Encrypt Manifests - working-directory: ./${{ matrix.library }} - run: make test_encrypt_vectors_${{ matrix.language }} - - - name: Upload Encrypt Manifest and keys.json files - uses: actions/upload-artifact@v4 - with: - name: ${{matrix.os}}_vector_artifact_${{matrix.language}}_${{github.sha}} - path: | - ./${{matrix.library}}/runtimes/${{matrix.language}}/*.json - ./${{matrix.library}}/runtimes/${{matrix.language}}/plaintexts - ./${{matrix.library}}/runtimes/${{matrix.language}}/ciphertexts - + - name: Support longpaths on Git checkout + run: | + git config --global core.longpaths true + + # TestVectors will call KMS + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v2 + with: + aws-region: us-west-2 + role-to-assume: arn:aws:iam::370957321024:role/GitHub-CI-Public-ESDK-Dafny-Role-us-west-2 + role-session-name: InterOpTests + + - uses: actions/checkout@v3 + # Not all submodules are needed. + # We manually pull the submodule we DO need. + - run: git submodule update --init libraries + - run: git submodule update --init --recursive mpl + + # Set up runtimes + - name: Setup .NET Core SDK ${{ matrix.dotnet-version }} + if: matrix.language == 'net' + uses: actions/setup-dotnet@v3 + with: + dotnet-version: ${{ matrix.dotnet-version }} + + # Setup Java in Rust is needed for running polymorph + - name: Setup Java 17 + if: matrix.language == 'java' || matrix.language == 'rust' + uses: actions/setup-java@v3 + with: + distribution: "corretto" + java-version: 17 + + - name: Setup Python for running tests + if: matrix.language == 'python' + uses: actions/setup-python@v4 + with: + python-version: 3.11 + architecture: x64 + - run: | + python -m pip install --upgrade pip + pip install --upgrade tox + pip install poetry + + - name: Setup Rust Toolchain for GitHub CI + if: matrix.language == 'rust' + uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 + with: + components: rustfmt + # TODO - uncomment this after Rust formatter works + # - name: Rustfmt Check + # uses: actions-rust-lang/rustfmt@v1 + + # TODO: Remove this after the formatting in Rust starts working + - name: Setup Go + uses: actions/setup-go@v5 + with: + go-version: "1.23" + + - name: Install Go imports + run: | + go install golang.org/x/tools/cmd/goimports@latest + + - name: smithy-dafny Rust hacks + if: matrix.language == 'rust' + shell: bash + run: | + if [ "$RUNNER_OS" == "macOS" ]; then + sed -i '' 's|rustfmt --edition 2021 runtimes/rust/src/implementation_from_dafny.rs|#&|' mpl/smithy-dafny/SmithyDafnyMakefile.mk + else + sed -i 's|rustfmt --edition 2021 runtimes/rust/src/implementation_from_dafny.rs|#&|' mpl/smithy-dafny/SmithyDafnyMakefile.mk + fi + + - name: Setup NASM for Windows in Rust (aws-lc-sys) + if: matrix.language == 'rust' && matrix.os == 'windows-latest' + uses: ilammy/setup-nasm@v1 + + - name: Setup Dafny Rust + if: matrix.language == 'rust' + uses: dafny-lang/setup-dafny-action@v1.8.0 + with: + dafny-version: nightly-2025-01-30-7db1e5f + + - name: Setup Dafny Not Rust + if: matrix.language != 'rust' + uses: dafny-lang/setup-dafny-action@v1.8.0 + with: + dafny-version: ${{ inputs.dafny }} + + - name: Regenerate code using smithy-dafny if necessary + if: ${{ inputs.regenerate-code }} + uses: ./.github/actions/polymorph_codegen + with: + dafny: ${{ inputs.dafny }} + library: ${{ matrix.library }} + diff-generated-code: false + + # Build implementation for each runtime + - name: Build ${{ matrix.library }} implementation in Java + if: matrix.language == 'java' + shell: bash + working-directory: ./${{ matrix.library }} + run: | + # This works because `node` is installed by default on GHA runners + CORES=$(node -e 'console.log(os.cpus().length)') + make build_java CORES=$CORES + + - name: Build ${{ matrix.library }} implementation in .NET + if: matrix.language == 'net' + shell: bash + working-directory: ./${{ matrix.library }} + run: | + # This works because `node` is installed by default on GHA runners + CORES=$(node -e 'console.log(os.cpus().length)') + make transpile_net + + - name: Install Smithy-Dafny codegen dependencies + if: matrix.language == 'rust' + uses: ./.github/actions/install_smithy_dafny_codegen_dependencies + + # TODO: Remove this after checking in Rust polymorph code + - name: Run make polymorph_rust + if: matrix.language == 'rust' + shell: bash + working-directory: ./${{ matrix.library }} + run: | + make polymorph_rust + + - name: Build ${{ matrix.library }} implementation in Rust + if: matrix.language == 'rust' + shell: bash + working-directory: ./${{ matrix.library }} + run: | + CORES=$(node -e 'console.log(os.cpus().length)') + make transpile_rust CORES=$CORES + + - name: Build ${{ matrix.library }} implementation in Python + if: matrix.language == 'python' + shell: bash + working-directory: ./${{ matrix.library }} + run: | + # This works because `node` is installed by default on GHA runners + CORES=$(node -e 'console.log(os.cpus().length)') + make transpile_python CORES=$CORES + + - name: Build ${{ matrix.library }} implementation in Go + if: matrix.language == 'go' + shell: bash + working-directory: ./${{ matrix.library }} + run: | + # This works because `node` is installed by default on GHA runners + CORES=$(node -e 'console.log(os.cpus().length)') + make transpile_go + + # TODO: Remove this after Go polymorph does not generate unwanted duplicate code. + - name: Purge polymorph code in Go + if: matrix.language == 'go' + shell: bash + working-directory: ./${{ matrix.library }} + run: | + make purge_polymorph_code + + - name: Setup gradle + if: matrix.language == 'java' + uses: gradle/gradle-build-action@v2 + with: + gradle-version: 7.2 + + - name: Create Manifests + working-directory: ./${{ matrix.library }} + run: make test_generate_vectors_${{ matrix.language }} + + - name: Create Encrypt Manifests + working-directory: ./${{ matrix.library }} + run: make test_encrypt_vectors_${{ matrix.language }} + + - name: Upload Encrypt Manifest and keys.json files + uses: actions/upload-artifact@v4 + with: + name: ${{matrix.os}}_vector_artifact_${{matrix.language}}_${{github.sha}} + path: | + ./${{matrix.library}}/runtimes/${{matrix.language}}/*.json + ./${{matrix.library}}/runtimes/${{matrix.language}}/plaintexts + ./${{matrix.library}}/runtimes/${{matrix.language}}/ciphertexts + testInteroperablity: needs: generateEncryptVectors strategy: @@ -238,7 +238,7 @@ jobs: permissions: id-token: write contents: read - + steps: - name: Support longpaths on Git checkout run: | @@ -249,9 +249,9 @@ jobs: uses: aws-actions/configure-aws-credentials@v2 with: aws-region: us-west-2 - role-to-assume: arn:aws:iam::370957321024:role/GitHub-CI-Public-ESDK-Dafny-Role-us-west-2 + role-to-assume: arn:aws:iam::370957321024:role/GitHub-CI-Public-ESDK-Dafny-Role-us-west-2 role-session-name: InterOpTests - + - uses: actions/checkout@v3 # Not all submodules are needed. # We manually pull the submodule we DO need. @@ -343,7 +343,7 @@ jobs: - name: Install Smithy-Dafny codegen dependencies if: matrix.decrypting_language == 'rust' uses: ./.github/actions/install_smithy_dafny_codegen_dependencies - + # TODO: Remove this after checking in Rust polymorph code - name: Run make polymorph_rust if: matrix.decrypting_language == 'rust' @@ -359,7 +359,7 @@ jobs: run: | CORES=$(node -e 'console.log(os.cpus().length)') make transpile_rust CORES=$CORES - + - name: Build ${{ matrix.library }} implementation in Go if: matrix.decrypting_language == 'go' shell: bash diff --git a/TestVectors/Makefile b/TestVectors/Makefile index 8f95cf085..eeb6faf6a 100644 --- a/TestVectors/Makefile +++ b/TestVectors/Makefile @@ -245,7 +245,7 @@ test_decrypt_encrypt_vectors_go: test_decrypt_encrypt_vectors_python: rm -rf runtimes/python/.tox - python3 -m tox -c runtimes/python --verbose -e cli -- decrypt --manifest-path runtimes/python --manifest-name decrypt-manifest.json + python3 -m tox -c runtimes/python --verbose -e cli -- decrypt --manifest-path runtimes/python --manifest-name decrypt-manifest.json _polymorph_dependencies: @echo "No polymorphing of dependency" From 25c95ee3f417c87b2c6cd13035fdec34560d0e39 Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Fri, 14 Feb 2025 13:04:37 -0800 Subject: [PATCH 32/50] chore(TestVectors): Replace Dafny ESDK-Python with native ESDK-Python (#758) --- AwsEncryptionSDK/Makefile | 2 +- AwsEncryptionSDK/project.properties | 5 - .../runtimes/python/pyproject.toml | 4 +- .../__pycache__/__init__.cpython-311.pyc | Bin 298 -> 0 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 275 -> 0 bytes .../internaldafny/generated/dafny_src-py.dtr | 59 ---- .../aws_cryptography_encryptionsdk/config.py | 89 ------ .../__init__.py | 0 .../AwsCryptographyEncryptionSdkTypes.py | 3 +- .../generated/AwsEncryptionSdkOperations.py | 33 +- .../internaldafny/generated/ESDK.py | 235 ++++++++++++++ .../generated/EncryptDecryptHelpers.py | 31 +- .../generated/EncryptedDataKeys.py | 15 +- .../generated/EncryptionContext.py | 9 +- .../internaldafny/generated/Frames.py | 25 +- .../internaldafny/generated/Header.py | 23 +- .../internaldafny/generated/HeaderAuth.py | 21 +- .../internaldafny/generated/HeaderTypes.py | 11 +- .../internaldafny/generated/KeyDerivation.py | 29 +- .../internaldafny/generated/MessageBody.py | 27 +- .../generated/SerializableTypes.py | 5 +- .../generated/SerializeFunctions.py | 7 +- .../generated/SharedHeaderFunctions.py | 13 +- .../internaldafny/generated/V1HeaderBody.py | 17 +- .../internaldafny/generated/V2HeaderBody.py | 19 +- .../internaldafny/generated/__main__.py | 2 +- .../internaldafny/generated/dafny_src-py.dtr | 59 ++++ .../internaldafny/generated/module_.py | 37 +-- .../__init__.py | 0 .../aws_cryptography_encryptionsdk/client.py | 4 +- .../aws_cryptography_encryptionsdk/config.py | 150 +++++++++ .../dafnyImplInterface.py | 2 +- .../dafny_protocol.py | 4 +- .../dafny_to_smithy.py | 42 ++- .../deserialize.py | 12 +- .../aws_cryptography_encryptionsdk/errors.py | 109 +++++-- .../aws_cryptography_encryptionsdk/models.py | 13 + .../aws_cryptography_encryptionsdk/plugin.py | 16 +- .../serialize.py | 6 +- .../smithy_to_dafny.py | 36 ++- .../test/internaldafny/generated/Fixtures.py | 39 +-- .../generated/TestCreateEsdkClient.py | 59 ++-- .../generated/TestEncryptDecrypt.py | 51 +-- .../TestReproducedEncryptionContext.py | 79 ++--- .../TestRequiredEncryptionContext.py | 295 +++++++++--------- .../test/internaldafny/generated/module_.py | 35 ++- TestVectors/Makefile | 10 +- TestVectors/runtimes/python/pyproject.toml | 4 +- .../internaldafny/extern/__init__.py | 2 +- .../extern/use_esdk_testvectors.py | 2 + .../internaldafny/extern/wrapped_esdk.py | 186 ++++++++++- .../generated/AllEsdkV4NoReqEc.py | 35 ++- .../generated/AllEsdkV4WithReqEc.py | 35 ++- .../generated/EsdkManifestOptions.py | 35 ++- .../generated/EsdkTestManifests.py | 35 ++- .../generated/EsdkTestVectors.py | 35 ++- .../generated/ParseEsdkJsonManifest.py | 35 ++- .../internaldafny/generated/WrappedESDK.py | 35 ++- .../generated/WrappedESDKMain.py | 35 ++- .../generated/WriteEsdkJsonManifests.py | 35 ++- .../internaldafny/generated/WriteVectors.py | 35 ++- .../internaldafny/generated/module_.py | 35 ++- .../aws_cryptography_encryptionsdk/shim.py | 32 +- .../generated/TestWrappedESDKMain.py | 37 +-- .../test/internaldafny/generated/module_.py | 35 ++- 65 files changed, 1510 insertions(+), 915 deletions(-) delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/__pycache__/__init__.cpython-311.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/__pycache__/__init__.cpython-312.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/dafny_src-py.dtr delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/config.py rename AwsEncryptionSDK/runtimes/python/src/{aws_encryption_sdk => aws_encryption_sdk_dafny}/__init__.py (100%) rename AwsEncryptionSDK/runtimes/python/src/{aws_encryption_sdk => aws_encryption_sdk_dafny}/internaldafny/generated/AwsCryptographyEncryptionSdkTypes.py (99%) rename AwsEncryptionSDK/runtimes/python/src/{aws_encryption_sdk => aws_encryption_sdk_dafny}/internaldafny/generated/AwsEncryptionSdkOperations.py (96%) create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/ESDK.py rename AwsEncryptionSDK/runtimes/python/src/{aws_encryption_sdk => aws_encryption_sdk_dafny}/internaldafny/generated/EncryptDecryptHelpers.py (96%) rename AwsEncryptionSDK/runtimes/python/src/{aws_encryption_sdk => aws_encryption_sdk_dafny}/internaldafny/generated/EncryptedDataKeys.py (95%) rename AwsEncryptionSDK/runtimes/python/src/{aws_encryption_sdk => aws_encryption_sdk_dafny}/internaldafny/generated/EncryptionContext.py (98%) rename AwsEncryptionSDK/runtimes/python/src/{aws_encryption_sdk => aws_encryption_sdk_dafny}/internaldafny/generated/Frames.py (95%) rename AwsEncryptionSDK/runtimes/python/src/{aws_encryption_sdk => aws_encryption_sdk_dafny}/internaldafny/generated/Header.py (93%) rename AwsEncryptionSDK/runtimes/python/src/{aws_encryption_sdk => aws_encryption_sdk_dafny}/internaldafny/generated/HeaderAuth.py (93%) rename AwsEncryptionSDK/runtimes/python/src/{aws_encryption_sdk => aws_encryption_sdk_dafny}/internaldafny/generated/HeaderTypes.py (97%) rename AwsEncryptionSDK/runtimes/python/src/{aws_encryption_sdk => aws_encryption_sdk_dafny}/internaldafny/generated/KeyDerivation.py (94%) rename AwsEncryptionSDK/runtimes/python/src/{aws_encryption_sdk => aws_encryption_sdk_dafny}/internaldafny/generated/MessageBody.py (96%) rename AwsEncryptionSDK/runtimes/python/src/{aws_encryption_sdk => aws_encryption_sdk_dafny}/internaldafny/generated/SerializableTypes.py (98%) rename AwsEncryptionSDK/runtimes/python/src/{aws_encryption_sdk => aws_encryption_sdk_dafny}/internaldafny/generated/SerializeFunctions.py (98%) rename AwsEncryptionSDK/runtimes/python/src/{aws_encryption_sdk => aws_encryption_sdk_dafny}/internaldafny/generated/SharedHeaderFunctions.py (96%) rename AwsEncryptionSDK/runtimes/python/src/{aws_encryption_sdk => aws_encryption_sdk_dafny}/internaldafny/generated/V1HeaderBody.py (96%) rename AwsEncryptionSDK/runtimes/python/src/{aws_encryption_sdk => aws_encryption_sdk_dafny}/internaldafny/generated/V2HeaderBody.py (94%) rename AwsEncryptionSDK/runtimes/python/src/{aws_encryption_sdk => aws_encryption_sdk_dafny}/internaldafny/generated/__main__.py (84%) create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/dafny_src-py.dtr rename AwsEncryptionSDK/runtimes/python/src/{aws_encryption_sdk => aws_encryption_sdk_dafny}/internaldafny/generated/module_.py (90%) rename AwsEncryptionSDK/runtimes/python/src/{aws_encryption_sdk => aws_encryption_sdk_dafny}/smithygenerated/aws_cryptography_encryptionsdk/__init__.py (100%) rename AwsEncryptionSDK/runtimes/python/src/{aws_encryption_sdk => aws_encryption_sdk_dafny}/smithygenerated/aws_cryptography_encryptionsdk/client.py (99%) create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/smithygenerated/aws_cryptography_encryptionsdk/config.py rename AwsEncryptionSDK/runtimes/python/src/{aws_encryption_sdk => aws_encryption_sdk_dafny}/smithygenerated/aws_cryptography_encryptionsdk/dafnyImplInterface.py (94%) rename AwsEncryptionSDK/runtimes/python/src/{aws_encryption_sdk => aws_encryption_sdk_dafny}/smithygenerated/aws_cryptography_encryptionsdk/dafny_protocol.py (85%) rename AwsEncryptionSDK/runtimes/python/src/{aws_encryption_sdk => aws_encryption_sdk_dafny}/smithygenerated/aws_cryptography_encryptionsdk/dafny_to_smithy.py (76%) rename AwsEncryptionSDK/runtimes/python/src/{aws_encryption_sdk => aws_encryption_sdk_dafny}/smithygenerated/aws_cryptography_encryptionsdk/deserialize.py (77%) rename AwsEncryptionSDK/runtimes/python/src/{aws_encryption_sdk => aws_encryption_sdk_dafny}/smithygenerated/aws_cryptography_encryptionsdk/errors.py (64%) rename AwsEncryptionSDK/runtimes/python/src/{aws_encryption_sdk => aws_encryption_sdk_dafny}/smithygenerated/aws_cryptography_encryptionsdk/models.py (96%) rename AwsEncryptionSDK/runtimes/python/src/{aws_encryption_sdk => aws_encryption_sdk_dafny}/smithygenerated/aws_cryptography_encryptionsdk/plugin.py (76%) rename AwsEncryptionSDK/runtimes/python/src/{aws_encryption_sdk => aws_encryption_sdk_dafny}/smithygenerated/aws_cryptography_encryptionsdk/serialize.py (58%) rename AwsEncryptionSDK/runtimes/python/src/{aws_encryption_sdk => aws_encryption_sdk_dafny}/smithygenerated/aws_cryptography_encryptionsdk/smithy_to_dafny.py (92%) diff --git a/AwsEncryptionSDK/Makefile b/AwsEncryptionSDK/Makefile index 90154641e..57d6e495c 100644 --- a/AwsEncryptionSDK/Makefile +++ b/AwsEncryptionSDK/Makefile @@ -108,7 +108,7 @@ restore_directories: fi \ done -PYTHON_MODULE_NAME=aws_encryption_sdk +PYTHON_MODULE_NAME=aws_encryption_sdk_dafny TRANSLATION_RECORD_PYTHON := \ --translation-record ../mpl/StandardLibrary/runtimes/python/src/smithy_dafny_standard_library/internaldafny/generated/dafny_src-py.dtr \ diff --git a/AwsEncryptionSDK/project.properties b/AwsEncryptionSDK/project.properties index 44810c894..55d988fe1 100644 --- a/AwsEncryptionSDK/project.properties +++ b/AwsEncryptionSDK/project.properties @@ -1,9 +1,4 @@ # This file stores the top level dafny version information. # All elements of the project need to agree on this version. dafnyVersion=4.9.0 -dafnyVerifyVersion=4.9.0 -dafnyFormatVersion=4.9.0 -projectJavaVersion=4.1.0 -mplDependencyJavaVersion=1.9.0-SNAPSHOT dafnyRuntimeJavaVersion=4.9.0 -smithyDafnyJavaConversionVersion=0.1.1 diff --git a/AwsEncryptionSDK/runtimes/python/pyproject.toml b/AwsEncryptionSDK/runtimes/python/pyproject.toml index 1af50967c..7eaf7a806 100644 --- a/AwsEncryptionSDK/runtimes/python/pyproject.toml +++ b/AwsEncryptionSDK/runtimes/python/pyproject.toml @@ -1,10 +1,10 @@ [tool.poetry] -name = "aws-encryption-sdk" +name = "aws-encryption-sdk-dafny" version = "0.1.0" description = "" authors = ["AWS Crypto Tools "] packages = [ - { include = "aws_encryption_sdk", from = "src" } + { include = "aws_encryption_sdk_dafny", from = "src" } ] # Include generated internaldafny files in package distributions, # even though they are not included in version control diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/__pycache__/__init__.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index de556259d29497079776cf6366fb25c162d8e7d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 298 zcmZ3^%ge<81kY#sr*8w&k3k$5V1hC}3jrC^8B!Qh7;_kM8KW2(8B&;n88n$+G6E$u z8E>)Y=BJeAq{jPcGTjo-%qvMP%1g{iNleSD)JspzOD#$)NlhtY2C7}j@EK(0uQL76 z;?$yI{hZR|+~kz}JpJ9%wqSCyQ%-qys{esGp44@gsMadxD@d(}VK;8QB@tJv9vX^8BLgf}F(URQ<&AV%^ldl@-SI%(`tk9Zd6^~g@p=W7zc_3lF10J-06GKY W`eKmhKQJ>gGJfM?VAL&Q19AcSyHS(? diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/dafny_src-py.dtr b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/dafny_src-py.dtr deleted file mode 100644 index 3f657d168..000000000 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/dafny_src-py.dtr +++ /dev/null @@ -1,59 +0,0 @@ -file_format_version = "1.0" -dafny_version = "4.9.0.0" -[options_by_module.AwsCryptographyEncryptionSdkTypes] -legacy-module-names = false -python-module-name = "aws_encryption_sdk.internaldafny.generated" -[options_by_module.AbstractAwsCryptographyEncryptionSdkOperations] -legacy-module-names = false -python-module-name = "aws_encryption_sdk.internaldafny.generated" -[options_by_module.AbstractAwsCryptographyEncryptionSdkService] -legacy-module-names = false -python-module-name = "aws_encryption_sdk.internaldafny.generated" -[options_by_module.SerializableTypes] -legacy-module-names = false -python-module-name = "aws_encryption_sdk.internaldafny.generated" -[options_by_module.SerializeFunctions] -legacy-module-names = false -python-module-name = "aws_encryption_sdk.internaldafny.generated" -[options_by_module.EncryptionContext] -legacy-module-names = false -python-module-name = "aws_encryption_sdk.internaldafny.generated" -[options_by_module.HeaderTypes] -legacy-module-names = false -python-module-name = "aws_encryption_sdk.internaldafny.generated" -[options_by_module.SharedHeaderFunctions] -legacy-module-names = false -python-module-name = "aws_encryption_sdk.internaldafny.generated" -[options_by_module.EncryptedDataKeys] -legacy-module-names = false -python-module-name = "aws_encryption_sdk.internaldafny.generated" -[options_by_module.V1HeaderBody] -legacy-module-names = false -python-module-name = "aws_encryption_sdk.internaldafny.generated" -[options_by_module.V2HeaderBody] -legacy-module-names = false -python-module-name = "aws_encryption_sdk.internaldafny.generated" -[options_by_module.HeaderAuth] -legacy-module-names = false -python-module-name = "aws_encryption_sdk.internaldafny.generated" -[options_by_module.Header] -legacy-module-names = false -python-module-name = "aws_encryption_sdk.internaldafny.generated" -[options_by_module.Frames] -legacy-module-names = false -python-module-name = "aws_encryption_sdk.internaldafny.generated" -[options_by_module.MessageBody] -legacy-module-names = false -python-module-name = "aws_encryption_sdk.internaldafny.generated" -[options_by_module.KeyDerivation] -legacy-module-names = false -python-module-name = "aws_encryption_sdk.internaldafny.generated" -[options_by_module.EncryptDecryptHelpers] -legacy-module-names = false -python-module-name = "aws_encryption_sdk.internaldafny.generated" -[options_by_module.AwsEncryptionSdkOperations] -legacy-module-names = false -python-module-name = "aws_encryption_sdk.internaldafny.generated" -[options_by_module.ESDK] -legacy-module-names = false -python-module-name = "aws_encryption_sdk.internaldafny.generated" diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/config.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/config.py deleted file mode 100644 index bfa5f5be2..000000000 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/config.py +++ /dev/null @@ -1,89 +0,0 @@ -# Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. -# SPDX-License-Identifier: Apache-2.0 -# Do not modify this file. This file is machine generated, and any changes to it will be overwritten. - -from aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes import ( - AwsEncryptionSdkConfig_AwsEncryptionSdkConfig as DafnyAwsEncryptionSdkConfig, -) -import aws_encryption_sdk.internaldafny.generated.module_ -import aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.dafny_to_smithy -import aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.smithy_to_dafny -from dataclasses import dataclass -from typing import Any, Callable, Optional, TypeAlias - -from .dafnyImplInterface import DafnyImplInterface -from smithy_python._private.retries import SimpleRetryStrategy -from smithy_python.interfaces.retries import RetryStrategy - - -_ServiceInterceptor = Any -@dataclass(init=False) -class Config: - """Configuration for AwsEncryptionSdk.""" - - interceptors: list[_ServiceInterceptor] - retry_strategy: RetryStrategy - dafnyImplInterface: DafnyImplInterface | None - - def __init__( - self, - *, - interceptors: list[_ServiceInterceptor] | None = None, - retry_strategy: RetryStrategy | None = None, - dafnyImplInterface: DafnyImplInterface | None = None, - ): - """Constructor. - - :param interceptors: The list of interceptors, which are hooks that are called - during the execution of a request. - - :param retry_strategy: The retry strategy for issuing retry tokens and computing - retry delays. - - :param dafnyImplInterface: - """ - self.interceptors = interceptors or [] - self.retry_strategy = retry_strategy or SimpleRetryStrategy() - self.dafnyImplInterface = dafnyImplInterface - -# A callable that allows customizing the config object on each request. -Plugin: TypeAlias = Callable[[Config], None] - -class AwsEncryptionSdkConfig(Config): - """ - Smithy-modelled localService Config shape for this localService. - """ - commitment_policy: Optional[str] - max_encrypted_data_keys: int - net_v4_0_0_retry_policy: Optional[str] - - def __init__( - self, - max_encrypted_data_keys: int, - commitment_policy: Optional[str] = None, - net_v4_0_0_retry_policy: Optional[str] = None, - ): - """Constructor for AwsEncryptionSdkConfig. - - :param net_v4_0_0_retry_policy: During Decryption, Allow or Forbid ESDK-NET - v4.0.0 Behavior if the ESDK Message Header fails the Header Authentication - check. - """ - super().__init__() - self.commitment_policy = commitment_policy - self.max_encrypted_data_keys = max_encrypted_data_keys - self.net_v4_0_0_retry_policy = net_v4_0_0_retry_policy - -def dafny_config_to_smithy_config(dafny_config) -> AwsEncryptionSdkConfig: - """ - Converts the provided Dafny shape for this localService's config - into the corresponding Smithy-modelled shape. - """ - return aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.dafny_to_smithy.aws_cryptography_encryptionsdk_AwsEncryptionSdkConfig(dafny_config) - -def smithy_config_to_dafny_config(smithy_config) -> DafnyAwsEncryptionSdkConfig: - """ - Converts the provided Smithy-modelled shape for this localService's config - into the corresponding Dafny shape. - """ - return aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.smithy_to_dafny.aws_cryptography_encryptionsdk_AwsEncryptionSdkConfig(smithy_config) diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/__init__.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/__init__.py similarity index 100% rename from AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/__init__.py rename to AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/__init__.py diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/AwsCryptographyEncryptionSdkTypes.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/AwsCryptographyEncryptionSdkTypes.py similarity index 99% rename from AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/AwsCryptographyEncryptionSdkTypes.py rename to AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/AwsCryptographyEncryptionSdkTypes.py index 4a2cdb854..7088f8d69 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/AwsCryptographyEncryptionSdkTypes.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/AwsCryptographyEncryptionSdkTypes.py @@ -3,7 +3,7 @@ from math import floor from itertools import count -import aws_encryption_sdk.internaldafny.generated.module_ as module_ +import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ import _dafny as _dafny import System_ as System_ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers @@ -66,6 +66,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang import smithy_dafny_standard_library.internaldafny.generated.Time as Time import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/AwsEncryptionSdkOperations.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/AwsEncryptionSdkOperations.py similarity index 96% rename from AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/AwsEncryptionSdkOperations.py rename to AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/AwsEncryptionSdkOperations.py index b3928dec3..7fbc690b3 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/AwsEncryptionSdkOperations.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/AwsEncryptionSdkOperations.py @@ -3,7 +3,7 @@ from math import floor from itertools import count -import aws_encryption_sdk.internaldafny.generated.module_ as module_ +import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ import _dafny as _dafny import System_ as System_ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers @@ -66,6 +66,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang import smithy_dafny_standard_library.internaldafny.generated.Time as Time import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC @@ -124,21 +125,21 @@ import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk.internaldafny.generated.Header as Header -import aws_encryption_sdk.internaldafny.generated.Frames as Frames -import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header +import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames +import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers # Module: AwsEncryptionSdkOperations diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/ESDK.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/ESDK.py new file mode 100644 index 000000000..2dcb6bd84 --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/ESDK.py @@ -0,0 +1,235 @@ +import sys +from typing import Callable, Any, TypeVar, NamedTuple +from math import floor +from itertools import count + +import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ +import _dafny as _dafny +import System_ as System_ +import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers +import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String +import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary +import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes +import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom +import aws_cryptography_primitives.internaldafny.generated.Random as Random +import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption +import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest +import aws_cryptography_primitives.internaldafny.generated.Digest as Digest +import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC +import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC +import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF +import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF +import aws_cryptography_primitives.internaldafny.generated.Signature as Signature +import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr +import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption +import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH +import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations +import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives +import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes +import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes +import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 +import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites +import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials +import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring +import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations +import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort +import smithy_dafny_standard_library.internaldafny.generated.Math as Math +import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq +import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique +import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils +import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants +import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID +import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping +import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets +import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext +import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping +import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring +import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring +import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms +import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb +import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring +import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring +import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang +import smithy_dafny_standard_library.internaldafny.generated.Time as Time +import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC +import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker +import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC +import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring +import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping +import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring +import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring +import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring +import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM +import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults +import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment +import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM +import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier +import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils +import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations +import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders +import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages +import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn +import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure +import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys +import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable +import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys +import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations +import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore +import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr +import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode +import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions +import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm +import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings +import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO +import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals +import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals +import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul +import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear +import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals +import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals +import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod +import smithy_dafny_standard_library.internaldafny.generated.Power as Power +import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm +import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop +import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams +import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting +import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings +import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt +import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare +import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall +import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header +import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames +import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations + +# Module: ESDK + +class default__: + def __init__(self): + pass + + @staticmethod + def DefaultAwsEncryptionSdkConfig(): + return AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig_AwsEncryptionSdkConfig(Wrappers.Option_Some(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT()), Wrappers.Option_None(), Wrappers.Option_Some(AwsCryptographyEncryptionSdkTypes.NetV4__0__0__RetryPolicy_ALLOW__RETRY())) + + @staticmethod + def ESDK(config): + res: Wrappers.Result = None + d_0_maybeCrypto_: Wrappers.Result + out0_: Wrappers.Result + out0_ = AtomicPrimitives.default__.AtomicPrimitives(AtomicPrimitives.default__.DefaultCryptoConfig()) + d_0_maybeCrypto_ = out0_ + d_1_valueOrError0_: Wrappers.Result = None + def lambda0_(d_2_e_): + return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyPrimitives(d_2_e_) + + d_1_valueOrError0_ = (d_0_maybeCrypto_).MapFailure(lambda0_) + if (d_1_valueOrError0_).IsFailure(): + res = (d_1_valueOrError0_).PropagateFailure() + return res + d_3_cryptoX_: AwsCryptographyPrimitivesTypes.IAwsCryptographicPrimitivesClient + d_3_cryptoX_ = (d_1_valueOrError0_).Extract() + d_4_crypto_: AtomicPrimitives.AtomicPrimitivesClient + d_4_crypto_ = d_3_cryptoX_ + d_5_maybeMpl_: Wrappers.Result + out1_: Wrappers.Result + out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) + d_5_maybeMpl_ = out1_ + d_6_valueOrError1_: Wrappers.Result = None + def lambda1_(d_7_e_): + return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyMaterialProviders(d_7_e_) + + d_6_valueOrError1_ = (d_5_maybeMpl_).MapFailure(lambda1_) + if (d_6_valueOrError1_).IsFailure(): + res = (d_6_valueOrError1_).PropagateFailure() + return res + d_8_mplX_: AwsCryptographyMaterialProvidersTypes.IAwsCryptographicMaterialProvidersClient + d_8_mplX_ = (d_6_valueOrError1_).Extract() + d_9_mpl_: MaterialProviders.MaterialProvidersClient + d_9_mpl_ = d_8_mplX_ + d_10_internalConfig_: AwsEncryptionSdkOperations.Config + d_10_internalConfig_ = AwsEncryptionSdkOperations.Config_Config(d_4_crypto_, d_9_mpl_, ((config).commitmentPolicy).UnwrapOr(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT()), (config).maxEncryptedDataKeys, ((config).netV4__0__0__RetryPolicy).UnwrapOr(AwsCryptographyEncryptionSdkTypes.NetV4__0__0__RetryPolicy_ALLOW__RETRY())) + d_11_client_: ESDKClient + nw0_ = ESDKClient() + nw0_.ctor__(d_10_internalConfig_) + d_11_client_ = nw0_ + res = Wrappers.Result_Success(d_11_client_) + return res + return res + + @staticmethod + def CreateSuccessOfClient(client): + return Wrappers.Result_Success(client) + + @staticmethod + def CreateFailureOfError(error): + return Wrappers.Result_Failure(error) + + +class ESDKClient(AwsCryptographyEncryptionSdkTypes.IAwsEncryptionSdkClient): + def __init__(self): + self._config: AwsEncryptionSdkOperations.Config = None + pass + + def __dafnystr__(self) -> str: + return "ESDK.ESDKClient" + def ctor__(self, config): + (self)._config = config + + def Encrypt(self, input): + output: Wrappers.Result = Wrappers.Result.default(AwsCryptographyEncryptionSdkTypes.EncryptOutput.default())() + out0_: Wrappers.Result + out0_ = AwsEncryptionSdkOperations.default__.Encrypt((self).config, input) + output = out0_ + return output + + def Decrypt(self, input): + output: Wrappers.Result = Wrappers.Result.default(AwsCryptographyEncryptionSdkTypes.DecryptOutput.default())() + out0_: Wrappers.Result + out0_ = AwsEncryptionSdkOperations.default__.Decrypt((self).config, input) + output = out0_ + return output + + @property + def config(self): + return self._config diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptDecryptHelpers.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/EncryptDecryptHelpers.py similarity index 96% rename from AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptDecryptHelpers.py rename to AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/EncryptDecryptHelpers.py index 2ab41ad2a..e19b92da9 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptDecryptHelpers.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/EncryptDecryptHelpers.py @@ -3,7 +3,7 @@ from math import floor from itertools import count -import aws_encryption_sdk.internaldafny.generated.module_ as module_ +import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ import _dafny as _dafny import System_ as System_ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers @@ -66,6 +66,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang import smithy_dafny_standard_library.internaldafny.generated.Time as Time import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC @@ -124,20 +125,20 @@ import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk.internaldafny.generated.Header as Header -import aws_encryption_sdk.internaldafny.generated.Frames as Frames -import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header +import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames +import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation # Module: EncryptDecryptHelpers diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptedDataKeys.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/EncryptedDataKeys.py similarity index 95% rename from AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptedDataKeys.py rename to AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/EncryptedDataKeys.py index fc47f3d3d..a79666cd1 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptedDataKeys.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/EncryptedDataKeys.py @@ -3,7 +3,7 @@ from math import floor from itertools import count -import aws_encryption_sdk.internaldafny.generated.module_ as module_ +import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ import _dafny as _dafny import System_ as System_ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers @@ -66,6 +66,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang import smithy_dafny_standard_library.internaldafny.generated.Time as Time import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC @@ -124,12 +125,12 @@ import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions # Module: EncryptedDataKeys diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptionContext.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/EncryptionContext.py similarity index 98% rename from AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptionContext.py rename to AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/EncryptionContext.py index 5e5d685eb..dac61d49d 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/EncryptionContext.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/EncryptionContext.py @@ -3,7 +3,7 @@ from math import floor from itertools import count -import aws_encryption_sdk.internaldafny.generated.module_ as module_ +import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ import _dafny as _dafny import System_ as System_ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers @@ -66,6 +66,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang import smithy_dafny_standard_library.internaldafny.generated.Time as Time import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC @@ -124,9 +125,9 @@ import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions # Module: EncryptionContext diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/Frames.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/Frames.py similarity index 95% rename from AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/Frames.py rename to AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/Frames.py index d93453572..197571ca9 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/Frames.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/Frames.py @@ -3,7 +3,7 @@ from math import floor from itertools import count -import aws_encryption_sdk.internaldafny.generated.module_ as module_ +import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ import _dafny as _dafny import System_ as System_ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers @@ -66,6 +66,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang import smithy_dafny_standard_library.internaldafny.generated.Time as Time import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC @@ -124,17 +125,17 @@ import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk.internaldafny.generated.Header as Header +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header # Module: Frames diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/Header.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/Header.py similarity index 93% rename from AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/Header.py rename to AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/Header.py index 9d6b57acd..9eb0af038 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/Header.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/Header.py @@ -3,7 +3,7 @@ from math import floor from itertools import count -import aws_encryption_sdk.internaldafny.generated.module_ as module_ +import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ import _dafny as _dafny import System_ as System_ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers @@ -66,6 +66,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang import smithy_dafny_standard_library.internaldafny.generated.Time as Time import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC @@ -124,16 +125,16 @@ import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth # Module: Header diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/HeaderAuth.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/HeaderAuth.py similarity index 93% rename from AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/HeaderAuth.py rename to AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/HeaderAuth.py index 2f246f8b0..e599023fe 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/HeaderAuth.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/HeaderAuth.py @@ -3,7 +3,7 @@ from math import floor from itertools import count -import aws_encryption_sdk.internaldafny.generated.module_ as module_ +import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ import _dafny as _dafny import System_ as System_ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers @@ -66,6 +66,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang import smithy_dafny_standard_library.internaldafny.generated.Time as Time import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC @@ -124,15 +125,15 @@ import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody # Module: HeaderAuth diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/HeaderTypes.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/HeaderTypes.py similarity index 97% rename from AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/HeaderTypes.py rename to AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/HeaderTypes.py index 87df59650..c0a4c1cff 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/HeaderTypes.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/HeaderTypes.py @@ -3,7 +3,7 @@ from math import floor from itertools import count -import aws_encryption_sdk.internaldafny.generated.module_ as module_ +import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ import _dafny as _dafny import System_ as System_ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers @@ -66,6 +66,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang import smithy_dafny_standard_library.internaldafny.generated.Time as Time import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC @@ -124,10 +125,10 @@ import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext # Module: HeaderTypes diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/KeyDerivation.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/KeyDerivation.py similarity index 94% rename from AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/KeyDerivation.py rename to AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/KeyDerivation.py index 0db7cb196..e84ff84a3 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/KeyDerivation.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/KeyDerivation.py @@ -3,7 +3,7 @@ from math import floor from itertools import count -import aws_encryption_sdk.internaldafny.generated.module_ as module_ +import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ import _dafny as _dafny import System_ as System_ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers @@ -66,6 +66,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang import smithy_dafny_standard_library.internaldafny.generated.Time as Time import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC @@ -124,19 +125,19 @@ import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk.internaldafny.generated.Header as Header -import aws_encryption_sdk.internaldafny.generated.Frames as Frames -import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header +import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames +import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody # Module: KeyDerivation diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/MessageBody.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/MessageBody.py similarity index 96% rename from AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/MessageBody.py rename to AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/MessageBody.py index 23713a579..5f148aff0 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/MessageBody.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/MessageBody.py @@ -3,7 +3,7 @@ from math import floor from itertools import count -import aws_encryption_sdk.internaldafny.generated.module_ as module_ +import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ import _dafny as _dafny import System_ as System_ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers @@ -66,6 +66,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang import smithy_dafny_standard_library.internaldafny.generated.Time as Time import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC @@ -124,18 +125,18 @@ import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk.internaldafny.generated.Header as Header -import aws_encryption_sdk.internaldafny.generated.Frames as Frames +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header +import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames # Module: MessageBody diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/SerializableTypes.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/SerializableTypes.py similarity index 98% rename from AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/SerializableTypes.py rename to AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/SerializableTypes.py index ca4201035..3524fd335 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/SerializableTypes.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/SerializableTypes.py @@ -3,7 +3,7 @@ from math import floor from itertools import count -import aws_encryption_sdk.internaldafny.generated.module_ as module_ +import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ import _dafny as _dafny import System_ as System_ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers @@ -66,6 +66,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang import smithy_dafny_standard_library.internaldafny.generated.Time as Time import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC @@ -124,7 +125,7 @@ import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes # Module: SerializableTypes diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/SerializeFunctions.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/SerializeFunctions.py similarity index 98% rename from AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/SerializeFunctions.py rename to AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/SerializeFunctions.py index b46fdb455..086f39f16 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/SerializeFunctions.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/SerializeFunctions.py @@ -3,7 +3,7 @@ from math import floor from itertools import count -import aws_encryption_sdk.internaldafny.generated.module_ as module_ +import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ import _dafny as _dafny import System_ as System_ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers @@ -66,6 +66,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang import smithy_dafny_standard_library.internaldafny.generated.Time as Time import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC @@ -124,8 +125,8 @@ import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes # Module: SerializeFunctions diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/SharedHeaderFunctions.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/SharedHeaderFunctions.py similarity index 96% rename from AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/SharedHeaderFunctions.py rename to AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/SharedHeaderFunctions.py index fda0f769f..c0b097ec7 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/SharedHeaderFunctions.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/SharedHeaderFunctions.py @@ -3,7 +3,7 @@ from math import floor from itertools import count -import aws_encryption_sdk.internaldafny.generated.module_ as module_ +import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ import _dafny as _dafny import System_ as System_ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers @@ -66,6 +66,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang import smithy_dafny_standard_library.internaldafny.generated.Time as Time import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC @@ -124,11 +125,11 @@ import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes # Module: SharedHeaderFunctions diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/V1HeaderBody.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/V1HeaderBody.py similarity index 96% rename from AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/V1HeaderBody.py rename to AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/V1HeaderBody.py index 359867de7..c77b97d5e 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/V1HeaderBody.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/V1HeaderBody.py @@ -3,7 +3,7 @@ from math import floor from itertools import count -import aws_encryption_sdk.internaldafny.generated.module_ as module_ +import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ import _dafny as _dafny import System_ as System_ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers @@ -66,6 +66,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang import smithy_dafny_standard_library.internaldafny.generated.Time as Time import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC @@ -124,13 +125,13 @@ import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys # Module: V1HeaderBody diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/V2HeaderBody.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/V2HeaderBody.py similarity index 94% rename from AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/V2HeaderBody.py rename to AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/V2HeaderBody.py index 5eeb389ef..e7578329b 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/V2HeaderBody.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/V2HeaderBody.py @@ -3,7 +3,7 @@ from math import floor from itertools import count -import aws_encryption_sdk.internaldafny.generated.module_ as module_ +import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ import _dafny as _dafny import System_ as System_ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers @@ -66,6 +66,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang import smithy_dafny_standard_library.internaldafny.generated.Time as Time import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC @@ -124,14 +125,14 @@ import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody # Module: V2HeaderBody diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__main__.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/__main__.py similarity index 84% rename from AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__main__.py rename to AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/__main__.py index 8c5e63fc4..d577947e7 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/__main__.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/__main__.py @@ -4,7 +4,7 @@ from math import floor from itertools import count -import aws_encryption_sdk.internaldafny.generated.module_ as module_ +import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ import _dafny as _dafny try: diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/dafny_src-py.dtr b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/dafny_src-py.dtr new file mode 100644 index 000000000..db21452ce --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/dafny_src-py.dtr @@ -0,0 +1,59 @@ +file_format_version = "1.0" +dafny_version = "4.9.0.0" +[options_by_module.AwsCryptographyEncryptionSdkTypes] +legacy-module-names = false +python-module-name = "aws_encryption_sdk_dafny.internaldafny.generated" +[options_by_module.AbstractAwsCryptographyEncryptionSdkOperations] +legacy-module-names = false +python-module-name = "aws_encryption_sdk_dafny.internaldafny.generated" +[options_by_module.AbstractAwsCryptographyEncryptionSdkService] +legacy-module-names = false +python-module-name = "aws_encryption_sdk_dafny.internaldafny.generated" +[options_by_module.SerializableTypes] +legacy-module-names = false +python-module-name = "aws_encryption_sdk_dafny.internaldafny.generated" +[options_by_module.SerializeFunctions] +legacy-module-names = false +python-module-name = "aws_encryption_sdk_dafny.internaldafny.generated" +[options_by_module.EncryptionContext] +legacy-module-names = false +python-module-name = "aws_encryption_sdk_dafny.internaldafny.generated" +[options_by_module.HeaderTypes] +legacy-module-names = false +python-module-name = "aws_encryption_sdk_dafny.internaldafny.generated" +[options_by_module.SharedHeaderFunctions] +legacy-module-names = false +python-module-name = "aws_encryption_sdk_dafny.internaldafny.generated" +[options_by_module.EncryptedDataKeys] +legacy-module-names = false +python-module-name = "aws_encryption_sdk_dafny.internaldafny.generated" +[options_by_module.V1HeaderBody] +legacy-module-names = false +python-module-name = "aws_encryption_sdk_dafny.internaldafny.generated" +[options_by_module.V2HeaderBody] +legacy-module-names = false +python-module-name = "aws_encryption_sdk_dafny.internaldafny.generated" +[options_by_module.HeaderAuth] +legacy-module-names = false +python-module-name = "aws_encryption_sdk_dafny.internaldafny.generated" +[options_by_module.Header] +legacy-module-names = false +python-module-name = "aws_encryption_sdk_dafny.internaldafny.generated" +[options_by_module.Frames] +legacy-module-names = false +python-module-name = "aws_encryption_sdk_dafny.internaldafny.generated" +[options_by_module.MessageBody] +legacy-module-names = false +python-module-name = "aws_encryption_sdk_dafny.internaldafny.generated" +[options_by_module.KeyDerivation] +legacy-module-names = false +python-module-name = "aws_encryption_sdk_dafny.internaldafny.generated" +[options_by_module.EncryptDecryptHelpers] +legacy-module-names = false +python-module-name = "aws_encryption_sdk_dafny.internaldafny.generated" +[options_by_module.AwsEncryptionSdkOperations] +legacy-module-names = false +python-module-name = "aws_encryption_sdk_dafny.internaldafny.generated" +[options_by_module.ESDK] +legacy-module-names = false +python-module-name = "aws_encryption_sdk_dafny.internaldafny.generated" diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/module_.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/module_.py similarity index 90% rename from AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/module_.py rename to AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/module_.py index edec2593f..13a1dd5ef 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/module_.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/module_.py @@ -3,7 +3,7 @@ from math import floor from itertools import count -import aws_encryption_sdk.internaldafny.generated.module_ as module_ +import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ import _dafny as _dafny import System_ as System_ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers @@ -66,6 +66,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang import smithy_dafny_standard_library.internaldafny.generated.Time as Time import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC @@ -124,23 +125,23 @@ import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk.internaldafny.generated.Header as Header -import aws_encryption_sdk.internaldafny.generated.Frames as Frames -import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header +import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames +import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Core as JSON_Utils_Views_Core import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Writers as JSON_Utils_Views_Writers import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/__init__.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/smithygenerated/aws_cryptography_encryptionsdk/__init__.py similarity index 100% rename from AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/__init__.py rename to AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/smithygenerated/aws_cryptography_encryptionsdk/__init__.py diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/client.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/smithygenerated/aws_cryptography_encryptionsdk/client.py similarity index 99% rename from AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/client.py rename to AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/smithygenerated/aws_cryptography_encryptionsdk/client.py index 367b815a4..ef58389e8 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/client.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/smithygenerated/aws_cryptography_encryptionsdk/client.py @@ -2,7 +2,7 @@ # SPDX-License-Identifier: Apache-2.0 # Do not modify this file. This file is machine generated, and any changes to it will be overwritten. -from aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes import ( +from aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes import ( IAwsEncryptionSdkClient, ) from typing import Callable, TypeVar, cast @@ -26,7 +26,7 @@ class AwsEncryptionSdk: - """Client for AwsEncryptionSdk + """Client for AwsEncryptionSdk. :param config: Configuration for the client. """ diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/smithygenerated/aws_cryptography_encryptionsdk/config.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/smithygenerated/aws_cryptography_encryptionsdk/config.py new file mode 100644 index 000000000..efa756c2d --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/smithygenerated/aws_cryptography_encryptionsdk/config.py @@ -0,0 +1,150 @@ +# Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 +# Do not modify this file. This file is machine generated, and any changes to it will be overwritten. + +from aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes import ( + AwsEncryptionSdkConfig_AwsEncryptionSdkConfig as DafnyAwsEncryptionSdkConfig, +) +import aws_encryption_sdk_dafny.internaldafny.generated.module_ +import aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.dafny_to_smithy +import aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.smithy_to_dafny +from dataclasses import dataclass +from typing import Any, Callable, Dict, Optional, TypeAlias + +from .dafnyImplInterface import DafnyImplInterface +from smithy_python._private.retries import SimpleRetryStrategy +from smithy_python.interfaces.retries import RetryStrategy + + +_ServiceInterceptor = Any + + +@dataclass(init=False) +class Config: + """Configuration for AwsEncryptionSdk.""" + + interceptors: list[_ServiceInterceptor] + retry_strategy: RetryStrategy + dafnyImplInterface: DafnyImplInterface | None + + def __init__( + self, + *, + interceptors: list[_ServiceInterceptor] | None = None, + retry_strategy: RetryStrategy | None = None, + dafnyImplInterface: DafnyImplInterface | None = None, + ): + """Constructor. + + :param interceptors: The list of interceptors, which are hooks + that are called during the execution of a request. + :param retry_strategy: The retry strategy for issuing retry + tokens and computing retry delays. + :param dafnyImplInterface: + """ + self.interceptors = interceptors or [] + self.retry_strategy = retry_strategy or SimpleRetryStrategy() + self.dafnyImplInterface = dafnyImplInterface + + +# A callable that allows customizing the config object on each request. +Plugin: TypeAlias = Callable[[Config], None] + + +class AwsEncryptionSdkConfig(Config): + commitment_policy: Optional[str] + max_encrypted_data_keys: int + net_v4_0_0_retry_policy: Optional[str] + + def __init__( + self, + *, + commitment_policy: Optional[str] = None, + max_encrypted_data_keys: int = 0, + net_v4_0_0_retry_policy: Optional[str] = None, + ): + """Constructor for AwsEncryptionSdkConfig. + + :param net_v4_0_0_retry_policy: During Decryption, Allow or + Forbid ESDK-NET v4.0.0 Behavior if the ESDK Message Header + fails the Header Authentication check. + """ + super().__init__() + self.commitment_policy = commitment_policy + if (max_encrypted_data_keys is not None) and (max_encrypted_data_keys < 1): + raise ValueError( + "max_encrypted_data_keys must be greater than or equal to 1" + ) + + self.max_encrypted_data_keys = max_encrypted_data_keys + self.net_v4_0_0_retry_policy = net_v4_0_0_retry_policy + + def as_dict(self) -> Dict[str, Any]: + """Converts the AwsEncryptionSdkConfig to a dictionary.""" + d: Dict[str, Any] = {} + + if self.commitment_policy is not None: + d["commitment_policy"] = self.commitment_policy + + if self.max_encrypted_data_keys is not None: + d["max_encrypted_data_keys"] = self.max_encrypted_data_keys + + if self.net_v4_0_0_retry_policy is not None: + d["net_v4_0_0_retry_policy"] = self.net_v4_0_0_retry_policy + + return d + + @staticmethod + def from_dict(d: Dict[str, Any]) -> "AwsEncryptionSdkConfig": + """Creates a AwsEncryptionSdkConfig from a dictionary.""" + kwargs: Dict[str, Any] = {} + + if "commitment_policy" in d: + kwargs["commitment_policy"] = d["commitment_policy"] + + if "max_encrypted_data_keys" in d: + kwargs["max_encrypted_data_keys"] = d["max_encrypted_data_keys"] + + if "net_v4_0_0_retry_policy" in d: + kwargs["net_v4_0_0_retry_policy"] = d["net_v4_0_0_retry_policy"] + + return AwsEncryptionSdkConfig(**kwargs) + + def __repr__(self) -> str: + result = "AwsEncryptionSdkConfig(" + if self.commitment_policy is not None: + result += f"commitment_policy={repr(self.commitment_policy)}, " + + if self.max_encrypted_data_keys is not None: + result += f"max_encrypted_data_keys={repr(self.max_encrypted_data_keys)}, " + + if self.net_v4_0_0_retry_policy is not None: + result += f"net_v4_0_0_retry_policy={repr(self.net_v4_0_0_retry_policy)}" + + return result + ")" + + def __eq__(self, other: Any) -> bool: + if not isinstance(other, AwsEncryptionSdkConfig): + return False + attributes: list[str] = [ + "commitment_policy", + "max_encrypted_data_keys", + "net_v4_0_0_retry_policy", + ] + return all(getattr(self, a) == getattr(other, a) for a in attributes) + + +def dafny_config_to_smithy_config(dafny_config) -> AwsEncryptionSdkConfig: + """Converts the provided Dafny shape for this localService's config into + the corresponding Smithy-modelled shape.""" + return aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.dafny_to_smithy.aws_cryptography_encryptionsdk_AwsEncryptionSdkConfig( + dafny_config + ) + + +def smithy_config_to_dafny_config(smithy_config) -> DafnyAwsEncryptionSdkConfig: + """Converts the provided Smithy-modelled shape for this localService's + config into the corresponding Dafny shape.""" + return aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.smithy_to_dafny.aws_cryptography_encryptionsdk_AwsEncryptionSdkConfig( + smithy_config + ) diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafnyImplInterface.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/smithygenerated/aws_cryptography_encryptionsdk/dafnyImplInterface.py similarity index 94% rename from AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafnyImplInterface.py rename to AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/smithygenerated/aws_cryptography_encryptionsdk/dafnyImplInterface.py index ea1fc6f7a..bce3e7bba 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafnyImplInterface.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/smithygenerated/aws_cryptography_encryptionsdk/dafnyImplInterface.py @@ -2,7 +2,7 @@ # SPDX-License-Identifier: Apache-2.0 # Do not modify this file. This file is machine generated, and any changes to it will be overwritten. -from aws_encryption_sdk.internaldafny.generated.ESDK import ESDKClient +from aws_encryption_sdk_dafny.internaldafny.generated.ESDK import ESDKClient from .dafny_protocol import DafnyRequest diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafny_protocol.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/smithygenerated/aws_cryptography_encryptionsdk/dafny_protocol.py similarity index 85% rename from AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafny_protocol.py rename to AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/smithygenerated/aws_cryptography_encryptionsdk/dafny_protocol.py index 0e18b4581..954ce7987 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafny_protocol.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/smithygenerated/aws_cryptography_encryptionsdk/dafny_protocol.py @@ -2,11 +2,11 @@ # SPDX-License-Identifier: Apache-2.0 # Do not modify this file. This file is machine generated, and any changes to it will be overwritten. -from aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes import ( +from aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes import ( DecryptInput_DecryptInput as DafnyDecryptInput, EncryptInput_EncryptInput as DafnyEncryptInput, ) -import aws_encryption_sdk.internaldafny.generated.module_ +import aws_encryption_sdk_dafny.internaldafny.generated.module_ import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafny_to_smithy.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/smithygenerated/aws_cryptography_encryptionsdk/dafny_to_smithy.py similarity index 76% rename from AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafny_to_smithy.py rename to AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/smithygenerated/aws_cryptography_encryptionsdk/dafny_to_smithy.py index c9a0bde30..f0e1608d7 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/dafny_to_smithy.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/smithygenerated/aws_cryptography_encryptionsdk/dafny_to_smithy.py @@ -3,17 +3,17 @@ # Do not modify this file. This file is machine generated, and any changes to it will be overwritten. import aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.dafny_to_smithy -from aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes import ( +from aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes import ( NetV4__0__0__RetryPolicy_ALLOW__RETRY, NetV4__0__0__RetryPolicy_FORBID__RETRY, ) -import aws_encryption_sdk.internaldafny.generated.module_ -import aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.dafny_to_smithy -import aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.models +import aws_encryption_sdk_dafny.internaldafny.generated.module_ +import aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.dafny_to_smithy +import aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.models def aws_cryptography_encryptionsdk_EncryptInput(dafny_input): - return aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.models.EncryptInput( + return aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.models.EncryptInput( plaintext=bytes(dafny_input.plaintext), encryption_context=( ( @@ -63,7 +63,7 @@ def aws_cryptography_encryptionsdk_EncryptInput(dafny_input): def aws_cryptography_encryptionsdk_DecryptInput(dafny_input): - return aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.models.DecryptInput( + return aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.models.DecryptInput( ciphertext=bytes(dafny_input.ciphertext), materials_manager=( ( @@ -99,7 +99,7 @@ def aws_cryptography_encryptionsdk_DecryptInput(dafny_input): def aws_cryptography_encryptionsdk_EncryptOutput(dafny_input): - return aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.models.EncryptOutput( + return aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.models.EncryptOutput( ciphertext=bytes(dafny_input.ciphertext), encryption_context={ bytes(key.Elements).decode("utf-8"): bytes(value.Elements).decode("utf-8") @@ -112,7 +112,7 @@ def aws_cryptography_encryptionsdk_EncryptOutput(dafny_input): def aws_cryptography_encryptionsdk_DecryptOutput(dafny_input): - return aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.models.DecryptOutput( + return aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.models.DecryptOutput( plaintext=bytes(dafny_input.plaintext), encryption_context={ bytes(key.Elements).decode("utf-8"): bytes(value.Elements).decode("utf-8") @@ -124,6 +124,14 @@ def aws_cryptography_encryptionsdk_DecryptOutput(dafny_input): ) +def aws_cryptography_encryptionsdk_AtomicPrimitivesReference(dafny_input): + from aws_cryptography_primitives.smithygenerated.aws_cryptography_primitives.client import ( + AwsCryptographicPrimitives, + ) + + return AwsCryptographicPrimitives(config=None, dafny_client=dafny_input) + + def aws_cryptography_encryptionsdk_NetV4_0_0_RetryPolicy(dafny_input): if isinstance(dafny_input, NetV4__0__0__RetryPolicy_FORBID__RETRY): return "FORBID_RETRY" @@ -137,9 +145,9 @@ def aws_cryptography_encryptionsdk_NetV4_0_0_RetryPolicy(dafny_input): def aws_cryptography_encryptionsdk_AwsEncryptionSdkConfig(dafny_input): # Deferred import of .config to avoid circular dependency - import aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.config + import aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.config - return aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.config.AwsEncryptionSdkConfig( + return aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.config.AwsEncryptionSdkConfig( commitment_policy=( ( aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.dafny_to_smithy.aws_cryptography_materialproviders_ESDKCommitmentPolicy( @@ -156,11 +164,19 @@ def aws_cryptography_encryptionsdk_AwsEncryptionSdkConfig(dafny_input): ), net_v4_0_0_retry_policy=( ( - aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.dafny_to_smithy.aws_cryptography_encryptionsdk_NetV4_0_0_RetryPolicy( - dafny_input.netV4_0_0_RetryPolicy.value + aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.dafny_to_smithy.aws_cryptography_encryptionsdk_NetV4_0_0_RetryPolicy( + dafny_input.netV4__0__0__RetryPolicy.value ) ) - if (dafny_input.netV4_0_0_RetryPolicy.is_Some) + if (dafny_input.netV4__0__0__RetryPolicy.is_Some) else None ), ) + + +def aws_cryptography_encryptionsdk_MaterialProvidersReference(dafny_input): + from aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.client import ( + AwsCryptographicMaterialProviders, + ) + + return AwsCryptographicMaterialProviders(config=None, dafny_client=dafny_input) diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/deserialize.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/smithygenerated/aws_cryptography_encryptionsdk/deserialize.py similarity index 77% rename from AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/deserialize.py rename to AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/smithygenerated/aws_cryptography_encryptionsdk/deserialize.py index 4b448213c..8788cea7c 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/deserialize.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/smithygenerated/aws_cryptography_encryptionsdk/deserialize.py @@ -3,14 +3,14 @@ # Do not modify this file. This file is machine generated, and any changes to it will be overwritten. import _dafny -from aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes import ( +from aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes import ( DecryptOutput_DecryptOutput as DafnyDecryptOutput, EncryptOutput_EncryptOutput as DafnyEncryptOutput, Error, Error_AwsEncryptionSdkException, ) -import aws_encryption_sdk.internaldafny.generated.module_ -import aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.dafny_to_smithy +import aws_encryption_sdk_dafny.internaldafny.generated.module_ +import aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.dafny_to_smithy from typing import Any from .dafny_protocol import DafnyResponse @@ -36,7 +36,7 @@ def _deserialize_encrypt(input: DafnyResponse, config: Config): if input.IsFailure(): return _deserialize_error(input.error) - return aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.dafny_to_smithy.aws_cryptography_encryptionsdk_EncryptOutput( + return aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.dafny_to_smithy.aws_cryptography_encryptionsdk_EncryptOutput( input.value ) @@ -45,7 +45,7 @@ def _deserialize_decrypt(input: DafnyResponse, config: Config): if input.IsFailure(): return _deserialize_error(input.error) - return aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.dafny_to_smithy.aws_cryptography_encryptionsdk_DecryptOutput( + return aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.dafny_to_smithy.aws_cryptography_encryptionsdk_DecryptOutput( input.value ) @@ -53,6 +53,8 @@ def _deserialize_decrypt(input: DafnyResponse, config: Config): def _deserialize_error(error: Error) -> ServiceError: if error.is_Opaque: return OpaqueError(obj=error.obj) + elif error.is_OpaqueWithText: + return OpaqueErrorWithText(obj=error.obj, obj_message=error.objMessage) elif error.is_CollectionOfErrors: return CollectionOfErrors( message=_dafny.string_of(error.message), diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/errors.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/smithygenerated/aws_cryptography_encryptionsdk/errors.py similarity index 64% rename from AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/errors.py rename to AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/smithygenerated/aws_cryptography_encryptionsdk/errors.py index ed190f1a3..2947fbc12 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/errors.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/smithygenerated/aws_cryptography_encryptionsdk/errors.py @@ -9,9 +9,9 @@ from aws_cryptography_primitives.smithygenerated.aws_cryptography_primitives.errors import ( _smithy_error_to_dafny_error as aws_cryptography_primitives_smithy_error_to_dafny_error, ) -import aws_encryption_sdk.internaldafny.generated -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes -import aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.errors +import aws_encryption_sdk_dafny.internaldafny.generated +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.errors from typing import Any, Dict, Generic, List, Literal, TypeVar @@ -35,7 +35,7 @@ def __init__(self, message: str): class UnknownApiError(ApiError[Literal["Unknown"]]): - """Error representing any unknown api errors""" + """Error representing any unknown api errors.""" code: Literal["Unknown"] = "Unknown" @@ -111,8 +111,8 @@ def __init__(self, *, message: str, list): def as_dict(self) -> Dict[str, Any]: """Converts the CollectionOfErrors to a dictionary. - The dictionary uses the modeled shape names rather than the parameter names as - keys to be mostly compatible with boto3. + The dictionary uses the modeled shape names rather than the + parameter names as keys to be mostly compatible with boto3. """ return { "message": self.message, @@ -124,8 +124,9 @@ def as_dict(self) -> Dict[str, Any]: def from_dict(d: Dict[str, Any]) -> "CollectionOfErrors": """Creates a CollectionOfErrors from a dictionary. - The dictionary is expected to use the modeled shape names rather than the - parameter names as keys to be mostly compatible with boto3. + The dictionary is expected to use the modeled shape names rather + than the parameter names as keys to be mostly compatible with + boto3. """ kwargs: Dict[str, Any] = {"message": d["message"], "list": d["list"]} @@ -160,8 +161,8 @@ def __init__(self, *, obj): def as_dict(self) -> Dict[str, Any]: """Converts the OpaqueError to a dictionary. - The dictionary uses the modeled shape names rather than the parameter names as - keys to be mostly compatible with boto3. + The dictionary uses the modeled shape names rather than the + parameter names as keys to be mostly compatible with boto3. """ return { "message": self.message, @@ -173,8 +174,9 @@ def as_dict(self) -> Dict[str, Any]: def from_dict(d: Dict[str, Any]) -> "OpaqueError": """Creates a OpaqueError from a dictionary. - The dictionary is expected to use the modeled shape names rather than the - parameter names as keys to be mostly compatible with boto3. + The dictionary is expected to use the modeled shape names rather + than the parameter names as keys to be mostly compatible with + boto3. """ kwargs: Dict[str, Any] = {"message": d["message"], "obj": d["obj"]} @@ -198,31 +200,87 @@ def __eq__(self, other: Any) -> bool: return all(getattr(self, a) == getattr(other, a) for a in attributes) +class OpaqueWithTextError(ApiError[Literal["OpaqueWithTextError"]]): + code: Literal["OpaqueWithTextError"] = "OpaqueWithTextError" + obj: Any # As an OpaqueWithTextError, type of obj is unknown + obj_message: str # obj_message is a message representing the details of obj + + def __init__(self, *, obj, obj_message): + super().__init__("") + self.obj = obj + self.obj_message = obj_message + + def as_dict(self) -> Dict[str, Any]: + """Converts the OpaqueWithTextError to a dictionary. + + The dictionary uses the modeled shape names rather than the + parameter names as keys to be mostly compatible with boto3. + """ + return { + "message": self.message, + "code": self.code, + "obj": self.obj, + "obj_message": self.obj_message, + } + + @staticmethod + def from_dict(d: Dict[str, Any]) -> "OpaqueWithTextError": + """Creates a OpaqueWithTextError from a dictionary. + + The dictionary is expected to use the modeled shape names rather + than the parameter names as keys to be mostly compatible with + boto3. + """ + kwargs: Dict[str, Any] = { + "message": d["message"], + "obj": d["obj"], + "obj_message": d["obj_message"], + } + + return OpaqueWithTextError(**kwargs) + + def __repr__(self) -> str: + result = "OpaqueWithTextError(" + result += f"message={self.message}," + if self.message is not None: + result += f"message={repr(self.message)}" + result += f"obj={self.obj}" + result += f"obj_message={self.obj_message}" + result += ")" + return result + + def __eq__(self, other: Any) -> bool: + if not isinstance(other, OpaqueWithTextError): + return False + if not (self.obj == other.obj): + return False + attributes: list[str] = ["message", "message"] + return all(getattr(self, a) == getattr(other, a) for a in attributes) + + def _smithy_error_to_dafny_error(e: ServiceError): - """ - Converts the provided native Smithy-modeled error - into the corresponding Dafny error. - """ + """Converts the provided native Smithy-modeled error into the corresponding + Dafny error.""" if isinstance( e, - aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.errors.AwsEncryptionSdkException, + aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.errors.AwsEncryptionSdkException, ): - return aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException( + return aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException( message=_dafny.Seq(e.message) ) if isinstance(e, AwsCryptographicPrimitives): - return aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyPrimitives( + return aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyPrimitives( aws_cryptography_primitives_smithy_error_to_dafny_error(e.message) ) if isinstance(e, AwsCryptographicMaterialProviders): - return aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyMaterialProviders( + return aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyMaterialProviders( aws_cryptography_materialproviders_smithy_error_to_dafny_error(e.message) ) if isinstance(e, CollectionOfErrors): - return aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes.Error_CollectionOfErrors( + return aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes.Error_CollectionOfErrors( message=_dafny.Seq(e.message), list=_dafny.Seq( _smithy_error_to_dafny_error(native_err) for native_err in e.list @@ -230,11 +288,16 @@ def _smithy_error_to_dafny_error(e: ServiceError): ) if isinstance(e, OpaqueError): - return aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes.Error_Opaque( + return aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes.Error_Opaque( obj=e.obj ) + if isinstance(e, OpaqueWithTextError): + return aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes.Error_OpaqueWithText( + obj=e.obj, objMessage=e.obj_message + ) + else: - return aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes.Error_Opaque( + return aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes.Error_Opaque( obj=e ) diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/models.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/smithygenerated/aws_cryptography_encryptionsdk/models.py similarity index 96% rename from AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/models.py rename to AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/smithygenerated/aws_cryptography_encryptionsdk/models.py index 30483582c..8f37ce666 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/models.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/smithygenerated/aws_cryptography_encryptionsdk/models.py @@ -354,5 +354,18 @@ def __eq__(self, other: Any) -> bool: return all(getattr(self, a) == getattr(other, a) for a in attributes) +class NetV4_0_0_RetryPolicy: + """During Decryption, Allow or Forbid ESDK-NET v4.0.0 Behavior if the ESDK + Message Header fails the Header Authentication check.""" + + FORBID_RETRY = "FORBID_RETRY" + + ALLOW_RETRY = "ALLOW_RETRY" + + # This set contains every possible value known at the time this was generated. New + # values may be added in the future. + values = frozenset({"FORBID_RETRY", "ALLOW_RETRY"}) + + class Unit: pass diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/plugin.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/smithygenerated/aws_cryptography_encryptionsdk/plugin.py similarity index 76% rename from AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/plugin.py rename to AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/smithygenerated/aws_cryptography_encryptionsdk/plugin.py index 62f7c5091..8c2f1f329 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/plugin.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/smithygenerated/aws_cryptography_encryptionsdk/plugin.py @@ -14,13 +14,11 @@ def set_config_impl(config: Config): - """ - Set the Dafny-compiled implementation in the Smithy-Python client Config - and load our custom NoRetriesStrategy. - """ + """Set the Dafny-compiled implementation in the Smithy-Python client Config + and load our custom NoRetriesStrategy.""" config.dafnyImplInterface = DafnyImplInterface() if isinstance(config, AwsEncryptionSdkConfig): - from aws_encryption_sdk.internaldafny.generated.ESDK import default__ + from aws_encryption_sdk_dafny.internaldafny.generated.ESDK import default__ config.dafnyImplInterface.impl = default__.ESDK( smithy_config_to_dafny_config(config) @@ -29,8 +27,8 @@ def set_config_impl(config: Config): class ZeroRetryDelayToken: - """ - Placeholder class required by Smithy-Python client implementation. + """Placeholder class required by Smithy-Python client implementation. + Do not wait to retry. """ @@ -38,8 +36,8 @@ class ZeroRetryDelayToken: class NoRetriesStrategy(RetryStrategy): - """ - Placeholder class required by Smithy-Python client implementation. + """Placeholder class required by Smithy-Python client implementation. + Do not retry calling Dafny code. """ diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/serialize.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/smithygenerated/aws_cryptography_encryptionsdk/serialize.py similarity index 58% rename from AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/serialize.py rename to AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/smithygenerated/aws_cryptography_encryptionsdk/serialize.py index 3ae48be14..bc7b6a45f 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/serialize.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/smithygenerated/aws_cryptography_encryptionsdk/serialize.py @@ -2,7 +2,7 @@ # SPDX-License-Identifier: Apache-2.0 # Do not modify this file. This file is machine generated, and any changes to it will be overwritten. -import aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.smithy_to_dafny +import aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.smithy_to_dafny from .dafny_protocol import DafnyRequest @@ -12,7 +12,7 @@ def _serialize_encrypt(input, config: Config) -> DafnyRequest: return DafnyRequest( operation_name="Encrypt", - dafny_operation_input=aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.smithy_to_dafny.aws_cryptography_encryptionsdk_EncryptInput( + dafny_operation_input=aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.smithy_to_dafny.aws_cryptography_encryptionsdk_EncryptInput( input ), ) @@ -21,7 +21,7 @@ def _serialize_encrypt(input, config: Config) -> DafnyRequest: def _serialize_decrypt(input, config: Config) -> DafnyRequest: return DafnyRequest( operation_name="Decrypt", - dafny_operation_input=aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.smithy_to_dafny.aws_cryptography_encryptionsdk_DecryptInput( + dafny_operation_input=aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.smithy_to_dafny.aws_cryptography_encryptionsdk_DecryptInput( input ), ) diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/smithy_to_dafny.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/smithygenerated/aws_cryptography_encryptionsdk/smithy_to_dafny.py similarity index 92% rename from AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/smithy_to_dafny.py rename to AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/smithygenerated/aws_cryptography_encryptionsdk/smithy_to_dafny.py index daa2f88ea..26cd700ae 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/smithygenerated/aws_cryptography_encryptionsdk/smithy_to_dafny.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/smithygenerated/aws_cryptography_encryptionsdk/smithy_to_dafny.py @@ -4,7 +4,7 @@ from _dafny import Map, Seq import aws_cryptographic_material_providers.smithygenerated.aws_cryptography_materialproviders.smithy_to_dafny -from aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes import ( +from aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes import ( AwsEncryptionSdkConfig_AwsEncryptionSdkConfig as DafnyAwsEncryptionSdkConfig, DecryptInput_DecryptInput as DafnyDecryptInput, DecryptOutput_DecryptOutput as DafnyDecryptOutput, @@ -13,8 +13,8 @@ NetV4__0__0__RetryPolicy_ALLOW__RETRY, NetV4__0__0__RetryPolicy_FORBID__RETRY, ) -import aws_encryption_sdk.internaldafny.generated.module_ -import aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.smithy_to_dafny +import aws_encryption_sdk_dafny.internaldafny.generated.module_ +import aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.smithy_to_dafny from smithy_dafny_standard_library.internaldafny.generated.Wrappers import ( Option_None, Option_Some, @@ -183,6 +183,21 @@ def aws_cryptography_encryptionsdk_DecryptOutput(native_input): ) +def aws_cryptography_encryptionsdk_AtomicPrimitivesReference(native_input): + return native_input._config.dafnyImplInterface.impl + + +def aws_cryptography_encryptionsdk_NetV4_0_0_RetryPolicy(native_input): + if native_input == "FORBID_RETRY": + return NetV4__0__0__RetryPolicy_FORBID__RETRY() + + elif native_input == "ALLOW_RETRY": + return NetV4__0__0__RetryPolicy_ALLOW__RETRY() + + else: + raise ValueError(f"No recognized enum value in enum type: {native_input=}") + + def aws_cryptography_encryptionsdk_AwsEncryptionSdkConfig(native_input): return DafnyAwsEncryptionSdkConfig( commitmentPolicy=( @@ -201,10 +216,10 @@ def aws_cryptography_encryptionsdk_AwsEncryptionSdkConfig(native_input): if (native_input.max_encrypted_data_keys is not None) else (Option_None()) ), - netV4_0_0_RetryPolicy=( + netV4__0__0__RetryPolicy=( ( Option_Some( - aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.smithy_to_dafny.aws_cryptography_encryptionsdk_NetV4_0_0_RetryPolicy( + aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.smithy_to_dafny.aws_cryptography_encryptionsdk_NetV4_0_0_RetryPolicy( native_input.net_v4_0_0_retry_policy ) ) @@ -215,12 +230,5 @@ def aws_cryptography_encryptionsdk_AwsEncryptionSdkConfig(native_input): ) -def aws_cryptography_encryptionsdk_NetV4_0_0_RetryPolicy(native_input): - if native_input == "FORBID_RETRY": - return NetV4__0__0__RetryPolicy_FORBID__RETRY() - - elif native_input == "ALLOW_RETRY": - return NetV4__0__0__RetryPolicy_ALLOW__RETRY() - - else: - raise ValueError(f"No recognized enum value in enum type: {native_input=}") +def aws_cryptography_encryptionsdk_MaterialProvidersReference(native_input): + return native_input._config.dafnyImplInterface.impl diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/Fixtures.py b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/Fixtures.py index 1441e8a95..27257b7ec 100644 --- a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/Fixtures.py +++ b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/Fixtures.py @@ -18,7 +18,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom import aws_cryptography_primitives.internaldafny.generated.Random as Random import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption @@ -67,6 +67,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang import smithy_dafny_standard_library.internaldafny.generated.Time as Time import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC @@ -90,22 +91,22 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk.internaldafny.generated.Header as Header -import aws_encryption_sdk.internaldafny.generated.Frames as Frames -import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK +import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header +import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames +import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn @@ -409,7 +410,7 @@ def GenerateKeyPair(keyModulusLength): out0_ = AtomicPrimitives.default__.AtomicPrimitives(AtomicPrimitives.default__.DefaultCryptoConfig()) d_0_valueOrError0_ = out0_ if not(not((d_0_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(143,72): " + _dafny.string_of(d_0_valueOrError0_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(143,70): " + _dafny.string_of(d_0_valueOrError0_)) d_1_cryptoX_: AwsCryptographyPrimitivesTypes.IAwsCryptographicPrimitivesClient d_1_cryptoX_ = (d_0_valueOrError0_).Extract() d_2_crypto_: AtomicPrimitives.AtomicPrimitivesClient @@ -419,7 +420,7 @@ def GenerateKeyPair(keyModulusLength): out1_ = (d_2_crypto_).GenerateRSAKeyPair(AwsCryptographyPrimitivesTypes.GenerateRSAKeyPairInput_GenerateRSAKeyPairInput(keyModulusLength)) d_3_valueOrError1_ = out1_ if not(not((d_3_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(147,14): " + _dafny.string_of(d_3_valueOrError1_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(147,12): " + _dafny.string_of(d_3_valueOrError1_)) keys = (d_3_valueOrError1_).Extract() return keys diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestCreateEsdkClient.py b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestCreateEsdkClient.py index 279e76b68..eff91ded9 100644 --- a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestCreateEsdkClient.py +++ b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestCreateEsdkClient.py @@ -18,7 +18,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom import aws_cryptography_primitives.internaldafny.generated.Random as Random import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption @@ -67,6 +67,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang import smithy_dafny_standard_library.internaldafny.generated.Time as Time import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC @@ -90,22 +91,22 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk.internaldafny.generated.Header as Header -import aws_encryption_sdk.internaldafny.generated.Frames as Frames -import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK +import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header +import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames +import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn @@ -161,21 +162,21 @@ def TestClientCreation(): out0_ = ESDK.default__.ESDK(d_0_defaultConfig_) d_1_valueOrError0_ = out0_ if not(not((d_1_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(55,51): " + _dafny.string_of(d_1_valueOrError0_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(55,47): " + _dafny.string_of(d_1_valueOrError0_)) d_2_esdk_: AwsCryptographyEncryptionSdkTypes.IAwsEncryptionSdkClient d_2_esdk_ = (d_1_valueOrError0_).Extract() def iife0_(_is_0): return isinstance(_is_0, ESDK.ESDKClient) if not(iife0_(d_2_esdk_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(56,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(56,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_3_esdkClient_: ESDK.ESDKClient d_3_esdkClient_ = d_2_esdk_ if not((((d_3_esdkClient_).config).commitmentPolicy) == (((d_0_defaultConfig_).commitmentPolicy).value)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(59,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(59,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) if not((((d_3_esdkClient_).config).maxEncryptedDataKeys) == ((d_0_defaultConfig_).maxEncryptedDataKeys)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(60,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(60,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) if not((((d_3_esdkClient_).config).netV4__0__0__RetryPolicy) == (AwsCryptographyEncryptionSdkTypes.NetV4__0__0__RetryPolicy_ALLOW__RETRY())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(61,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(61,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) @staticmethod def TestNetRetryFlag(): @@ -184,7 +185,7 @@ def TestNetRetryFlag(): out0_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) d_0_valueOrError0_ = out0_ if not(not((d_0_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(65,19): " + _dafny.string_of(d_0_valueOrError0_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(65,15): " + _dafny.string_of(d_0_valueOrError0_)) d_1_mpl_: MaterialProviders.MaterialProvidersClient d_1_mpl_ = (d_0_valueOrError0_).Extract() d_2_keyNamespace_: _dafny.Seq @@ -198,7 +199,7 @@ def TestNetRetryFlag(): out1_ = (d_1_mpl_).CreateRawAesKeyring(AwsCryptographyMaterialProvidersTypes.CreateRawAesKeyringInput_CreateRawAesKeyringInput(d_2_keyNamespace_, d_3_keyName_, _dafny.Seq([0 for d_6_i_ in range(32)]), AwsCryptographyMaterialProvidersTypes.AesWrappingAlg_ALG__AES256__GCM__IV12__TAG16())) d_5_valueOrError1_ = out1_ if not(not((d_5_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(70,29): " + _dafny.string_of(d_5_valueOrError1_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(70,25): " + _dafny.string_of(d_5_valueOrError1_)) d_7_rawAesKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring d_7_rawAesKeyring_ = (d_5_valueOrError1_).Extract() d_8_esdkConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig @@ -208,7 +209,7 @@ def TestNetRetryFlag(): out2_ = ESDK.default__.ESDK(d_8_esdkConfig_) d_9_valueOrError2_ = out2_ if not(not((d_9_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(85,27): " + _dafny.string_of(d_9_valueOrError2_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(85,23): " + _dafny.string_of(d_9_valueOrError2_)) d_10_noRetryEsdk_: ESDK.ESDKClient d_10_noRetryEsdk_ = (d_9_valueOrError2_).Extract() d_11_expectFailureDecryptOutput_: Wrappers.Result @@ -216,7 +217,7 @@ def TestNetRetryFlag(): out3_ = (d_10_noRetryEsdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(default__.ESDK__NET__V400__MESSAGE, Wrappers.Option_None(), Wrappers.Option_Some(d_7_rawAesKeyring_), Wrappers.Option_None())) d_11_expectFailureDecryptOutput_ = out3_ if not((d_11_expectFailureDecryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(94,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(94,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_12_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig d_12_defaultConfig_ = ESDK.default__.DefaultAwsEncryptionSdkConfig() d_13_valueOrError3_: Wrappers.Result = None @@ -224,7 +225,7 @@ def TestNetRetryFlag(): out4_ = ESDK.default__.ESDK(d_12_defaultConfig_) d_13_valueOrError3_ = out4_ if not(not((d_13_valueOrError3_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(99,20): " + _dafny.string_of(d_13_valueOrError3_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(99,16): " + _dafny.string_of(d_13_valueOrError3_)) d_14_esdk_: ESDK.ESDKClient d_14_esdk_ = (d_13_valueOrError3_).Extract() d_15_decryptOutput_: Wrappers.Result @@ -232,9 +233,9 @@ def TestNetRetryFlag(): out5_ = (d_14_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(default__.ESDK__NET__V400__MESSAGE, Wrappers.Option_None(), Wrappers.Option_Some(d_7_rawAesKeyring_), Wrappers.Option_None())) d_15_decryptOutput_ = out5_ if not((d_15_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(108,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(108,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) if not((((d_15_decryptOutput_).value).plaintext) == (d_4_expectedMessage_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(109,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(109,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) @_dafny.classproperty def ESDK__NET__V400__MESSAGE(instance): diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestEncryptDecrypt.py b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestEncryptDecrypt.py index 71f6509b3..854f28fb1 100644 --- a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestEncryptDecrypt.py +++ b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestEncryptDecrypt.py @@ -18,7 +18,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom import aws_cryptography_primitives.internaldafny.generated.Random as Random import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption @@ -67,6 +67,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang import smithy_dafny_standard_library.internaldafny.generated.Time as Time import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC @@ -90,22 +91,22 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk.internaldafny.generated.Header as Header -import aws_encryption_sdk.internaldafny.generated.Frames as Frames -import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK +import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header +import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames +import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn @@ -164,7 +165,7 @@ def TestEncryptDecrypt(): out0_ = ESDK.default__.ESDK(d_2_defaultConfig_) d_3_valueOrError0_ = out0_ if not(not((d_3_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestEncryptDecrypt.dfy(24,20): " + _dafny.string_of(d_3_valueOrError0_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestEncryptDecrypt.dfy(24,16): " + _dafny.string_of(d_3_valueOrError0_)) d_4_esdk_: ESDK.ESDKClient d_4_esdk_ = (d_3_valueOrError0_).Extract() d_5_valueOrError1_: Wrappers.Result = None @@ -172,7 +173,7 @@ def TestEncryptDecrypt(): out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) d_5_valueOrError1_ = out1_ if not(not((d_5_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestEncryptDecrypt.dfy(25,19): " + _dafny.string_of(d_5_valueOrError1_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestEncryptDecrypt.dfy(25,15): " + _dafny.string_of(d_5_valueOrError1_)) d_6_mpl_: MaterialProviders.MaterialProvidersClient d_6_mpl_ = (d_5_valueOrError1_).Extract() d_7_valueOrError2_: Wrappers.Result = None @@ -180,7 +181,7 @@ def TestEncryptDecrypt(): out2_ = (d_6_mpl_).CreateDefaultClientSupplier(AwsCryptographyMaterialProvidersTypes.CreateDefaultClientSupplierInput_CreateDefaultClientSupplierInput()) d_7_valueOrError2_ = out2_ if not(not((d_7_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestEncryptDecrypt.dfy(26,30): " + _dafny.string_of(d_7_valueOrError2_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestEncryptDecrypt.dfy(26,26): " + _dafny.string_of(d_7_valueOrError2_)) d_8_clientSupplier_: AwsCryptographyMaterialProvidersTypes.IClientSupplier d_8_clientSupplier_ = (d_7_valueOrError2_).Extract() d_9_valueOrError3_: Wrappers.Result = None @@ -188,7 +189,7 @@ def TestEncryptDecrypt(): out3_ = (d_8_clientSupplier_).GetClient(AwsCryptographyMaterialProvidersTypes.GetClientInput_GetClientInput(_dafny.Seq("us-west-2"))) d_9_valueOrError3_ = out3_ if not(not((d_9_valueOrError3_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestEncryptDecrypt.dfy(27,25): " + _dafny.string_of(d_9_valueOrError3_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestEncryptDecrypt.dfy(27,21): " + _dafny.string_of(d_9_valueOrError3_)) d_10_kmsClient_: ComAmazonawsKmsTypes.IKMSClient d_10_kmsClient_ = (d_9_valueOrError3_).Extract() d_11_valueOrError4_: Wrappers.Result = None @@ -196,7 +197,7 @@ def TestEncryptDecrypt(): out4_ = (d_6_mpl_).CreateAwsKmsKeyring(AwsCryptographyMaterialProvidersTypes.CreateAwsKmsKeyringInput_CreateAwsKmsKeyringInput(d_0_kmsKey_, d_10_kmsClient_, Wrappers.Option_None())) d_11_valueOrError4_ = out4_ if not(not((d_11_valueOrError4_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestEncryptDecrypt.dfy(29,26): " + _dafny.string_of(d_11_valueOrError4_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestEncryptDecrypt.dfy(29,22): " + _dafny.string_of(d_11_valueOrError4_)) d_12_kmsKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring d_12_kmsKeyring_ = (d_11_valueOrError4_).Extract() d_13_encryptOutput_: Wrappers.Result @@ -204,7 +205,7 @@ def TestEncryptDecrypt(): out5_ = (d_4_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_1_asdf_, Wrappers.Option_None(), Wrappers.Option_None(), Wrappers.Option_Some(d_12_kmsKeyring_), Wrappers.Option_None(), Wrappers.Option_None())) d_13_encryptOutput_ = out5_ if not((d_13_encryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestEncryptDecrypt.dfy(46,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestEncryptDecrypt.dfy(46,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_14_esdkCiphertext_: _dafny.Seq d_14_esdkCiphertext_ = ((d_13_encryptOutput_).value).ciphertext d_15_decryptOutput_: Wrappers.Result @@ -212,9 +213,9 @@ def TestEncryptDecrypt(): out6_ = (d_4_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_14_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_12_kmsKeyring_), Wrappers.Option_None())) d_15_decryptOutput_ = out6_ if not((d_15_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestEncryptDecrypt.dfy(56,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestEncryptDecrypt.dfy(56,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_16_cycledPlaintext_: _dafny.Seq d_16_cycledPlaintext_ = ((d_15_decryptOutput_).value).plaintext if not((d_16_cycledPlaintext_) == (d_1_asdf_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestEncryptDecrypt.dfy(59,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestEncryptDecrypt.dfy(59,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestReproducedEncryptionContext.py b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestReproducedEncryptionContext.py index 8835b7d88..13f828848 100644 --- a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestReproducedEncryptionContext.py +++ b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestReproducedEncryptionContext.py @@ -18,7 +18,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom import aws_cryptography_primitives.internaldafny.generated.Random as Random import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption @@ -67,6 +67,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang import smithy_dafny_standard_library.internaldafny.generated.Time as Time import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC @@ -90,22 +91,22 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk.internaldafny.generated.Header as Header -import aws_encryption_sdk.internaldafny.generated.Frames as Frames -import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK +import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header +import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames +import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn @@ -163,7 +164,7 @@ def TestEncryptionContextOnDecrypt(): out0_ = ESDK.default__.ESDK(d_2_defaultConfig_) d_3_valueOrError0_ = out0_ if not(not((d_3_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(24,20): " + _dafny.string_of(d_3_valueOrError0_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(24,16): " + _dafny.string_of(d_3_valueOrError0_)) d_4_esdk_: ESDK.ESDKClient d_4_esdk_ = (d_3_valueOrError0_).Extract() d_5_valueOrError1_: Wrappers.Result = None @@ -171,7 +172,7 @@ def TestEncryptionContextOnDecrypt(): out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) d_5_valueOrError1_ = out1_ if not(not((d_5_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(25,19): " + _dafny.string_of(d_5_valueOrError1_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(25,15): " + _dafny.string_of(d_5_valueOrError1_)) d_6_mpl_: MaterialProviders.MaterialProvidersClient d_6_mpl_ = (d_5_valueOrError1_).Extract() d_7_valueOrError2_: Wrappers.Result = None @@ -179,7 +180,7 @@ def TestEncryptionContextOnDecrypt(): out2_ = (d_6_mpl_).CreateDefaultClientSupplier(AwsCryptographyMaterialProvidersTypes.CreateDefaultClientSupplierInput_CreateDefaultClientSupplierInput()) d_7_valueOrError2_ = out2_ if not(not((d_7_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(26,30): " + _dafny.string_of(d_7_valueOrError2_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(26,26): " + _dafny.string_of(d_7_valueOrError2_)) d_8_clientSupplier_: AwsCryptographyMaterialProvidersTypes.IClientSupplier d_8_clientSupplier_ = (d_7_valueOrError2_).Extract() d_9_valueOrError3_: Wrappers.Result = None @@ -187,7 +188,7 @@ def TestEncryptionContextOnDecrypt(): out3_ = (d_8_clientSupplier_).GetClient(AwsCryptographyMaterialProvidersTypes.GetClientInput_GetClientInput(_dafny.Seq("us-west-2"))) d_9_valueOrError3_ = out3_ if not(not((d_9_valueOrError3_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(27,25): " + _dafny.string_of(d_9_valueOrError3_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(27,21): " + _dafny.string_of(d_9_valueOrError3_)) d_10_kmsClient_: ComAmazonawsKmsTypes.IKMSClient d_10_kmsClient_ = (d_9_valueOrError3_).Extract() d_11_valueOrError4_: Wrappers.Result = None @@ -195,7 +196,7 @@ def TestEncryptionContextOnDecrypt(): out4_ = (d_6_mpl_).CreateAwsKmsKeyring(AwsCryptographyMaterialProvidersTypes.CreateAwsKmsKeyringInput_CreateAwsKmsKeyringInput(d_0_kmsKey_, d_10_kmsClient_, Wrappers.Option_None())) d_11_valueOrError4_ = out4_ if not(not((d_11_valueOrError4_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(29,26): " + _dafny.string_of(d_11_valueOrError4_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(29,22): " + _dafny.string_of(d_11_valueOrError4_)) d_12_kmsKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring d_12_kmsKeyring_ = (d_11_valueOrError4_).Extract() d_13_encryptionContext_: _dafny.Map @@ -207,7 +208,7 @@ def TestEncryptionContextOnDecrypt(): out6_ = (d_4_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_1_asdf_, Wrappers.Option_Some(d_13_encryptionContext_), Wrappers.Option_None(), Wrappers.Option_Some(d_12_kmsKeyring_), Wrappers.Option_None(), Wrappers.Option_None())) d_14_encryptOutput_ = out6_ if not((d_14_encryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(48,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(48,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_15_esdkCiphertext_: _dafny.Seq d_15_esdkCiphertext_ = ((d_14_encryptOutput_).value).ciphertext d_16_decryptOutput_: Wrappers.Result @@ -215,11 +216,11 @@ def TestEncryptionContextOnDecrypt(): out7_ = (d_4_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_15_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_12_kmsKeyring_), Wrappers.Option_Some(d_13_encryptionContext_))) d_16_decryptOutput_ = out7_ if not((d_16_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(58,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(58,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_17_cycledPlaintext_: _dafny.Seq d_17_cycledPlaintext_ = ((d_16_decryptOutput_).value).plaintext if not((d_17_cycledPlaintext_) == (d_1_asdf_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(61,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(61,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) @staticmethod def TestEncryptionContextOnDecryptFailure(): @@ -234,7 +235,7 @@ def TestEncryptionContextOnDecryptFailure(): out0_ = ESDK.default__.ESDK(d_2_defaultConfig_) d_3_valueOrError0_ = out0_ if not(not((d_3_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(71,20): " + _dafny.string_of(d_3_valueOrError0_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(71,16): " + _dafny.string_of(d_3_valueOrError0_)) d_4_esdk_: ESDK.ESDKClient d_4_esdk_ = (d_3_valueOrError0_).Extract() d_5_valueOrError1_: Wrappers.Result = None @@ -242,7 +243,7 @@ def TestEncryptionContextOnDecryptFailure(): out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) d_5_valueOrError1_ = out1_ if not(not((d_5_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(72,19): " + _dafny.string_of(d_5_valueOrError1_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(72,15): " + _dafny.string_of(d_5_valueOrError1_)) d_6_mpl_: MaterialProviders.MaterialProvidersClient d_6_mpl_ = (d_5_valueOrError1_).Extract() d_7_valueOrError2_: Wrappers.Result = None @@ -250,7 +251,7 @@ def TestEncryptionContextOnDecryptFailure(): out2_ = (d_6_mpl_).CreateDefaultClientSupplier(AwsCryptographyMaterialProvidersTypes.CreateDefaultClientSupplierInput_CreateDefaultClientSupplierInput()) d_7_valueOrError2_ = out2_ if not(not((d_7_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(73,30): " + _dafny.string_of(d_7_valueOrError2_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(73,26): " + _dafny.string_of(d_7_valueOrError2_)) d_8_clientSupplier_: AwsCryptographyMaterialProvidersTypes.IClientSupplier d_8_clientSupplier_ = (d_7_valueOrError2_).Extract() d_9_valueOrError3_: Wrappers.Result = None @@ -258,7 +259,7 @@ def TestEncryptionContextOnDecryptFailure(): out3_ = (d_8_clientSupplier_).GetClient(AwsCryptographyMaterialProvidersTypes.GetClientInput_GetClientInput(_dafny.Seq("us-west-2"))) d_9_valueOrError3_ = out3_ if not(not((d_9_valueOrError3_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(74,25): " + _dafny.string_of(d_9_valueOrError3_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(74,21): " + _dafny.string_of(d_9_valueOrError3_)) d_10_kmsClient_: ComAmazonawsKmsTypes.IKMSClient d_10_kmsClient_ = (d_9_valueOrError3_).Extract() d_11_valueOrError4_: Wrappers.Result = None @@ -266,7 +267,7 @@ def TestEncryptionContextOnDecryptFailure(): out4_ = (d_6_mpl_).CreateAwsKmsKeyring(AwsCryptographyMaterialProvidersTypes.CreateAwsKmsKeyringInput_CreateAwsKmsKeyringInput(d_0_kmsKey_, d_10_kmsClient_, Wrappers.Option_None())) d_11_valueOrError4_ = out4_ if not(not((d_11_valueOrError4_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(76,26): " + _dafny.string_of(d_11_valueOrError4_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(76,22): " + _dafny.string_of(d_11_valueOrError4_)) d_12_kmsKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring d_12_kmsKeyring_ = (d_11_valueOrError4_).Extract() d_13_encryptionContext_: _dafny.Map @@ -282,7 +283,7 @@ def TestEncryptionContextOnDecryptFailure(): out7_ = (d_4_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_1_asdf_, Wrappers.Option_Some(d_13_encryptionContext_), Wrappers.Option_None(), Wrappers.Option_Some(d_12_kmsKeyring_), Wrappers.Option_None(), Wrappers.Option_None())) d_15_encryptOutput_ = out7_ if not((d_15_encryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(96,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(96,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_16_esdkCiphertext_: _dafny.Seq d_16_esdkCiphertext_ = ((d_15_encryptOutput_).value).ciphertext d_17_decryptOutput_: Wrappers.Result @@ -290,7 +291,7 @@ def TestEncryptionContextOnDecryptFailure(): out8_ = (d_4_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_16_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_12_kmsKeyring_), Wrappers.Option_Some(d_14_incorrectReproducedEncryptionContext_))) d_17_decryptOutput_ = out8_ if not((d_17_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(107,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(107,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) @staticmethod def TestMismatchedEncryptionContextOnDecrypt(): @@ -310,7 +311,7 @@ def TestMismatchedEncryptionContextOnDecrypt(): out2_ = ESDK.default__.ESDK(d_3_defaultConfig_) d_4_valueOrError0_ = out2_ if not(not((d_4_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(117,20): " + _dafny.string_of(d_4_valueOrError0_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(117,16): " + _dafny.string_of(d_4_valueOrError0_)) d_5_esdk_: ESDK.ESDKClient d_5_esdk_ = (d_4_valueOrError0_).Extract() d_6_valueOrError1_: Wrappers.Result = None @@ -318,7 +319,7 @@ def TestMismatchedEncryptionContextOnDecrypt(): out3_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) d_6_valueOrError1_ = out3_ if not(not((d_6_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(118,19): " + _dafny.string_of(d_6_valueOrError1_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(118,15): " + _dafny.string_of(d_6_valueOrError1_)) d_7_mpl_: MaterialProviders.MaterialProvidersClient d_7_mpl_ = (d_6_valueOrError1_).Extract() d_8_valueOrError2_: Wrappers.Result = None @@ -326,7 +327,7 @@ def TestMismatchedEncryptionContextOnDecrypt(): out4_ = (d_7_mpl_).CreateRawAesKeyring(AwsCryptographyMaterialProvidersTypes.CreateRawAesKeyringInput_CreateRawAesKeyringInput(d_1_namespace_, d_2_name_, _dafny.Seq([0 for d_9_i_ in range(32)]), AwsCryptographyMaterialProvidersTypes.AesWrappingAlg_ALG__AES256__GCM__IV12__TAG16())) d_8_valueOrError2_ = out4_ if not(not((d_8_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(119,29): " + _dafny.string_of(d_8_valueOrError2_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(119,25): " + _dafny.string_of(d_8_valueOrError2_)) d_10_rawAESKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring d_10_rawAESKeyring_ = (d_8_valueOrError2_).Extract() d_11_encryptionContext_: _dafny.Map @@ -342,7 +343,7 @@ def TestMismatchedEncryptionContextOnDecrypt(): out7_ = (d_5_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_0_asdf_, Wrappers.Option_Some(d_11_encryptionContext_), Wrappers.Option_None(), Wrappers.Option_Some(d_10_rawAESKeyring_), Wrappers.Option_None(), Wrappers.Option_None())) d_13_encryptOutput_ = out7_ if not((d_13_encryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(138,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(138,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_14_esdkCiphertext_: _dafny.Seq d_14_esdkCiphertext_ = ((d_13_encryptOutput_).value).ciphertext d_15_decryptOutput_: Wrappers.Result @@ -350,15 +351,15 @@ def TestMismatchedEncryptionContextOnDecrypt(): out8_ = (d_5_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_14_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_10_rawAESKeyring_), Wrappers.Option_Some(d_12_mismatchedEncryptionContext_))) d_15_decryptOutput_ = out8_ if not((d_15_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(150,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(150,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) out9_: Wrappers.Result out9_ = (d_5_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_14_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_10_rawAESKeyring_), Wrappers.Option_Some(d_11_encryptionContext_))) d_15_decryptOutput_ = out9_ if not((d_15_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(160,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(160,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) out10_: Wrappers.Result out10_ = (d_5_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_14_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_10_rawAESKeyring_), Wrappers.Option_None())) d_15_decryptOutput_ = out10_ if not((d_15_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(171,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(171,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestRequiredEncryptionContext.py b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestRequiredEncryptionContext.py index 56142172e..c20c9a29e 100644 --- a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestRequiredEncryptionContext.py +++ b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestRequiredEncryptionContext.py @@ -18,7 +18,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom import aws_cryptography_primitives.internaldafny.generated.Random as Random import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption @@ -67,6 +67,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang import smithy_dafny_standard_library.internaldafny.generated.Time as Time import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC @@ -90,22 +91,22 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk.internaldafny.generated.Header as Header -import aws_encryption_sdk.internaldafny.generated.Frames as Frames -import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK +import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header +import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames +import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn @@ -160,7 +161,7 @@ def TestReprEncryptionContextWithSameECHappyCase(): out0_ = ESDK.default__.ESDK(d_1_defaultConfig_) d_2_valueOrError0_ = out0_ if not(not((d_2_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(39,20): " + _dafny.string_of(d_2_valueOrError0_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(39,16): " + _dafny.string_of(d_2_valueOrError0_)) d_3_esdk_: ESDK.ESDKClient d_3_esdk_ = (d_2_valueOrError0_).Extract() d_4_valueOrError1_: Wrappers.Result = None @@ -168,7 +169,7 @@ def TestReprEncryptionContextWithSameECHappyCase(): out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) d_4_valueOrError1_ = out1_ if not(not((d_4_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(40,19): " + _dafny.string_of(d_4_valueOrError1_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(40,15): " + _dafny.string_of(d_4_valueOrError1_)) d_5_mpl_: MaterialProviders.MaterialProvidersClient d_5_mpl_ = (d_4_valueOrError1_).Extract() d_6_rsaKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring @@ -192,7 +193,7 @@ def TestReprEncryptionContextWithSameECHappyCase(): out6_ = (d_5_mpl_).CreateMultiKeyring(AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput_CreateMultiKeyringInput(Wrappers.Option_Some(d_8_aesKeyring_), _dafny.Seq([d_6_rsaKeyring_, d_7_kmsKeyring_, d_9_hKeyring_]))) d_10_valueOrError2_ = out6_ if not(not((d_10_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(48,28): " + _dafny.string_of(d_10_valueOrError2_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(48,24): " + _dafny.string_of(d_10_valueOrError2_)) d_11_multiKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring d_11_multiKeyring_ = (d_10_valueOrError2_).Extract() d_12_encryptionContext_: _dafny.Map @@ -204,7 +205,7 @@ def TestReprEncryptionContextWithSameECHappyCase(): out8_ = (d_3_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_0_asdf_, Wrappers.Option_Some(d_12_encryptionContext_), Wrappers.Option_None(), Wrappers.Option_Some(d_11_multiKeyring_), Wrappers.Option_None(), Wrappers.Option_None())) d_13_encryptOutput_ = out8_ if not((d_13_encryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(66,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(66,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_14_esdkCiphertext_: _dafny.Seq d_14_esdkCiphertext_ = ((d_13_encryptOutput_).value).ciphertext d_15_decryptOutput_: Wrappers.Result @@ -212,35 +213,35 @@ def TestReprEncryptionContextWithSameECHappyCase(): out9_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_14_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_6_rsaKeyring_), Wrappers.Option_Some(d_12_encryptionContext_))) d_15_decryptOutput_ = out9_ if not((d_15_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(77,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(77,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_16_cycledPlaintext_: _dafny.Seq d_16_cycledPlaintext_ = ((d_15_decryptOutput_).value).plaintext if not((d_16_cycledPlaintext_) == (d_0_asdf_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(79,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(79,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) out10_: Wrappers.Result out10_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_14_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_7_kmsKeyring_), Wrappers.Option_Some(d_12_encryptionContext_))) d_15_decryptOutput_ = out10_ if not((d_15_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(89,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(89,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_16_cycledPlaintext_ = ((d_15_decryptOutput_).value).plaintext if not((d_16_cycledPlaintext_) == (d_0_asdf_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(91,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(91,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) out11_: Wrappers.Result out11_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_14_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_8_aesKeyring_), Wrappers.Option_Some(d_12_encryptionContext_))) d_15_decryptOutput_ = out11_ if not((d_15_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(101,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(101,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_16_cycledPlaintext_ = ((d_15_decryptOutput_).value).plaintext if not((d_16_cycledPlaintext_) == (d_0_asdf_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(103,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(103,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) out12_: Wrappers.Result out12_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_14_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_9_hKeyring_), Wrappers.Option_Some(d_12_encryptionContext_))) d_15_decryptOutput_ = out12_ if not((d_15_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(113,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(113,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_16_cycledPlaintext_ = ((d_15_decryptOutput_).value).plaintext if not((d_16_cycledPlaintext_) == (d_0_asdf_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(115,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(115,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) @staticmethod def TestRemoveOnEncryptAndSupplyOnDecryptHappyCase(): @@ -253,7 +254,7 @@ def TestRemoveOnEncryptAndSupplyOnDecryptHappyCase(): out0_ = ESDK.default__.ESDK(d_1_defaultConfig_) d_2_valueOrError0_ = out0_ if not(not((d_2_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(124,20): " + _dafny.string_of(d_2_valueOrError0_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(124,16): " + _dafny.string_of(d_2_valueOrError0_)) d_3_esdk_: ESDK.ESDKClient d_3_esdk_ = (d_2_valueOrError0_).Extract() d_4_valueOrError1_: Wrappers.Result = None @@ -261,7 +262,7 @@ def TestRemoveOnEncryptAndSupplyOnDecryptHappyCase(): out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) d_4_valueOrError1_ = out1_ if not(not((d_4_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(125,19): " + _dafny.string_of(d_4_valueOrError1_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(125,15): " + _dafny.string_of(d_4_valueOrError1_)) d_5_mpl_: MaterialProviders.MaterialProvidersClient d_5_mpl_ = (d_4_valueOrError1_).Extract() d_6_rsaKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring @@ -285,7 +286,7 @@ def TestRemoveOnEncryptAndSupplyOnDecryptHappyCase(): out6_ = (d_5_mpl_).CreateMultiKeyring(AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput_CreateMultiKeyringInput(Wrappers.Option_Some(d_8_aesKeyring_), _dafny.Seq([d_6_rsaKeyring_, d_7_kmsKeyring_, d_9_hKeyring_]))) d_10_valueOrError2_ = out6_ if not(not((d_10_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(133,28): " + _dafny.string_of(d_10_valueOrError2_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(133,24): " + _dafny.string_of(d_10_valueOrError2_)) d_11_multiKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring d_11_multiKeyring_ = (d_10_valueOrError2_).Extract() d_12_encryptionContext_: _dafny.Map @@ -305,7 +306,7 @@ def TestRemoveOnEncryptAndSupplyOnDecryptHappyCase(): out10_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_11_multiKeyring_)) d_15_valueOrError3_ = out10_ if not(not((d_15_valueOrError3_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(148,26): " + _dafny.string_of(d_15_valueOrError3_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(148,22): " + _dafny.string_of(d_15_valueOrError3_)) d_16_defaultCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager d_16_defaultCMM_ = (d_15_valueOrError3_).Extract() d_17_valueOrError4_: Wrappers.Result = None @@ -313,7 +314,7 @@ def TestRemoveOnEncryptAndSupplyOnDecryptHappyCase(): out11_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), d_14_requiredEncryptionContextKeys_)) d_17_valueOrError4_ = out11_ if not(not((d_17_valueOrError4_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(155,22): " + _dafny.string_of(d_17_valueOrError4_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(155,18): " + _dafny.string_of(d_17_valueOrError4_)) d_18_reqCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager d_18_reqCMM_ = (d_17_valueOrError4_).Extract() d_19_encryptOutput_: Wrappers.Result @@ -321,7 +322,7 @@ def TestRemoveOnEncryptAndSupplyOnDecryptHappyCase(): out12_ = (d_3_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_0_asdf_, Wrappers.Option_Some(d_12_encryptionContext_), Wrappers.Option_Some(d_18_reqCMM_), Wrappers.Option_None(), Wrappers.Option_None(), Wrappers.Option_None())) d_19_encryptOutput_ = out12_ if not((d_19_encryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(174,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(174,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_20_esdkCiphertext_: _dafny.Seq d_20_esdkCiphertext_ = ((d_19_encryptOutput_).value).ciphertext d_21_decryptOutput_: Wrappers.Result @@ -329,35 +330,35 @@ def TestRemoveOnEncryptAndSupplyOnDecryptHappyCase(): out13_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_6_rsaKeyring_), Wrappers.Option_Some(d_13_reproducedEncryptionContext_))) d_21_decryptOutput_ = out13_ if not((d_21_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(185,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(185,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_22_cycledPlaintext_: _dafny.Seq d_22_cycledPlaintext_ = ((d_21_decryptOutput_).value).plaintext if not((d_22_cycledPlaintext_) == (d_0_asdf_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(187,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(187,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) out14_: Wrappers.Result out14_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_7_kmsKeyring_), Wrappers.Option_Some(d_13_reproducedEncryptionContext_))) d_21_decryptOutput_ = out14_ if not((d_21_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(197,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(197,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_22_cycledPlaintext_ = ((d_21_decryptOutput_).value).plaintext if not((d_22_cycledPlaintext_) == (d_0_asdf_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(199,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(199,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) out15_: Wrappers.Result out15_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_8_aesKeyring_), Wrappers.Option_Some(d_13_reproducedEncryptionContext_))) d_21_decryptOutput_ = out15_ if not((d_21_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(209,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(209,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_22_cycledPlaintext_ = ((d_21_decryptOutput_).value).plaintext if not((d_22_cycledPlaintext_) == (d_0_asdf_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(211,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(211,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) out16_: Wrappers.Result out16_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_9_hKeyring_), Wrappers.Option_Some(d_13_reproducedEncryptionContext_))) d_21_decryptOutput_ = out16_ if not((d_21_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(221,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(221,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_22_cycledPlaintext_ = ((d_21_decryptOutput_).value).plaintext if not((d_22_cycledPlaintext_) == (d_0_asdf_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(223,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(223,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) @staticmethod def TestRemoveOnEncryptRemoveAndSupplyOnDecryptHappyCase(): @@ -370,7 +371,7 @@ def TestRemoveOnEncryptRemoveAndSupplyOnDecryptHappyCase(): out0_ = ESDK.default__.ESDK(d_1_defaultConfig_) d_2_valueOrError0_ = out0_ if not(not((d_2_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(233,20): " + _dafny.string_of(d_2_valueOrError0_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(233,16): " + _dafny.string_of(d_2_valueOrError0_)) d_3_esdk_: ESDK.ESDKClient d_3_esdk_ = (d_2_valueOrError0_).Extract() d_4_valueOrError1_: Wrappers.Result = None @@ -378,7 +379,7 @@ def TestRemoveOnEncryptRemoveAndSupplyOnDecryptHappyCase(): out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) d_4_valueOrError1_ = out1_ if not(not((d_4_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(234,19): " + _dafny.string_of(d_4_valueOrError1_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(234,15): " + _dafny.string_of(d_4_valueOrError1_)) d_5_mpl_: MaterialProviders.MaterialProvidersClient d_5_mpl_ = (d_4_valueOrError1_).Extract() d_6_rsaKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring @@ -402,7 +403,7 @@ def TestRemoveOnEncryptRemoveAndSupplyOnDecryptHappyCase(): out6_ = (d_5_mpl_).CreateMultiKeyring(AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput_CreateMultiKeyringInput(Wrappers.Option_Some(d_8_aesKeyring_), _dafny.Seq([d_6_rsaKeyring_, d_7_kmsKeyring_, d_9_hKeyring_]))) d_10_valueOrError2_ = out6_ if not(not((d_10_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(242,28): " + _dafny.string_of(d_10_valueOrError2_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(242,24): " + _dafny.string_of(d_10_valueOrError2_)) d_11_multiKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring d_11_multiKeyring_ = (d_10_valueOrError2_).Extract() d_12_encryptionContext_: _dafny.Map @@ -422,7 +423,7 @@ def TestRemoveOnEncryptRemoveAndSupplyOnDecryptHappyCase(): out10_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_11_multiKeyring_)) d_15_valueOrError3_ = out10_ if not(not((d_15_valueOrError3_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(257,26): " + _dafny.string_of(d_15_valueOrError3_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(257,22): " + _dafny.string_of(d_15_valueOrError3_)) d_16_defaultCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager d_16_defaultCMM_ = (d_15_valueOrError3_).Extract() d_17_valueOrError4_: Wrappers.Result = None @@ -430,7 +431,7 @@ def TestRemoveOnEncryptRemoveAndSupplyOnDecryptHappyCase(): out11_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), d_14_requiredEncryptionContextKeys_)) d_17_valueOrError4_ = out11_ if not(not((d_17_valueOrError4_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(264,22): " + _dafny.string_of(d_17_valueOrError4_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(264,18): " + _dafny.string_of(d_17_valueOrError4_)) d_18_reqCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager d_18_reqCMM_ = (d_17_valueOrError4_).Extract() d_19_encryptOutput_: Wrappers.Result @@ -438,7 +439,7 @@ def TestRemoveOnEncryptRemoveAndSupplyOnDecryptHappyCase(): out12_ = (d_3_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_0_asdf_, Wrappers.Option_Some(d_12_encryptionContext_), Wrappers.Option_Some(d_18_reqCMM_), Wrappers.Option_None(), Wrappers.Option_None(), Wrappers.Option_None())) d_19_encryptOutput_ = out12_ if not((d_19_encryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(283,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(283,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_20_esdkCiphertext_: _dafny.Seq d_20_esdkCiphertext_ = ((d_19_encryptOutput_).value).ciphertext d_21_valueOrError5_: Wrappers.Result = None @@ -446,91 +447,91 @@ def TestRemoveOnEncryptRemoveAndSupplyOnDecryptHappyCase(): out13_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_6_rsaKeyring_)) d_21_valueOrError5_ = out13_ if not(not((d_21_valueOrError5_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(287,22): " + _dafny.string_of(d_21_valueOrError5_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(287,18): " + _dafny.string_of(d_21_valueOrError5_)) d_16_defaultCMM_ = (d_21_valueOrError5_).Extract() d_22_valueOrError6_: Wrappers.Result = None out14_: Wrappers.Result out14_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), d_14_requiredEncryptionContextKeys_)) d_22_valueOrError6_ = out14_ if not(not((d_22_valueOrError6_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(294,18): " + _dafny.string_of(d_22_valueOrError6_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(294,14): " + _dafny.string_of(d_22_valueOrError6_)) d_18_reqCMM_ = (d_22_valueOrError6_).Extract() d_23_decryptOutput_: Wrappers.Result out15_: Wrappers.Result out15_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_Some(d_18_reqCMM_), Wrappers.Option_None(), Wrappers.Option_Some(d_13_reproducedEncryptionContext_))) d_23_decryptOutput_ = out15_ if not((d_23_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(312,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(312,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_24_cycledPlaintext_: _dafny.Seq d_24_cycledPlaintext_ = ((d_23_decryptOutput_).value).plaintext if not((d_24_cycledPlaintext_) == (d_0_asdf_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(314,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(314,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_25_valueOrError7_: Wrappers.Result = None out16_: Wrappers.Result out16_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_7_kmsKeyring_)) d_25_valueOrError7_ = out16_ if not(not((d_25_valueOrError7_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(318,22): " + _dafny.string_of(d_25_valueOrError7_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(318,18): " + _dafny.string_of(d_25_valueOrError7_)) d_16_defaultCMM_ = (d_25_valueOrError7_).Extract() d_26_valueOrError8_: Wrappers.Result = None out17_: Wrappers.Result out17_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), d_14_requiredEncryptionContextKeys_)) d_26_valueOrError8_ = out17_ if not(not((d_26_valueOrError8_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(325,18): " + _dafny.string_of(d_26_valueOrError8_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(325,14): " + _dafny.string_of(d_26_valueOrError8_)) d_18_reqCMM_ = (d_26_valueOrError8_).Extract() out18_: Wrappers.Result out18_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_Some(d_18_reqCMM_), Wrappers.Option_None(), Wrappers.Option_Some(d_13_reproducedEncryptionContext_))) d_23_decryptOutput_ = out18_ if not((d_23_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(343,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(343,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_24_cycledPlaintext_ = ((d_23_decryptOutput_).value).plaintext if not((d_24_cycledPlaintext_) == (d_0_asdf_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(345,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(345,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_27_valueOrError9_: Wrappers.Result = None out19_: Wrappers.Result out19_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_8_aesKeyring_)) d_27_valueOrError9_ = out19_ if not(not((d_27_valueOrError9_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(349,22): " + _dafny.string_of(d_27_valueOrError9_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(349,18): " + _dafny.string_of(d_27_valueOrError9_)) d_16_defaultCMM_ = (d_27_valueOrError9_).Extract() d_28_valueOrError10_: Wrappers.Result = None out20_: Wrappers.Result out20_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), d_14_requiredEncryptionContextKeys_)) d_28_valueOrError10_ = out20_ if not(not((d_28_valueOrError10_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(356,18): " + _dafny.string_of(d_28_valueOrError10_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(356,14): " + _dafny.string_of(d_28_valueOrError10_)) d_18_reqCMM_ = (d_28_valueOrError10_).Extract() out21_: Wrappers.Result out21_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_Some(d_18_reqCMM_), Wrappers.Option_None(), Wrappers.Option_Some(d_13_reproducedEncryptionContext_))) d_23_decryptOutput_ = out21_ if not((d_23_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(374,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(374,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_24_cycledPlaintext_ = ((d_23_decryptOutput_).value).plaintext if not((d_24_cycledPlaintext_) == (d_0_asdf_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(376,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(376,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_29_valueOrError11_: Wrappers.Result = None out22_: Wrappers.Result out22_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_9_hKeyring_)) d_29_valueOrError11_ = out22_ if not(not((d_29_valueOrError11_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(379,22): " + _dafny.string_of(d_29_valueOrError11_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(379,18): " + _dafny.string_of(d_29_valueOrError11_)) d_16_defaultCMM_ = (d_29_valueOrError11_).Extract() d_30_valueOrError12_: Wrappers.Result = None out23_: Wrappers.Result out23_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), d_14_requiredEncryptionContextKeys_)) d_30_valueOrError12_ = out23_ if not(not((d_30_valueOrError12_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(386,18): " + _dafny.string_of(d_30_valueOrError12_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(386,14): " + _dafny.string_of(d_30_valueOrError12_)) d_18_reqCMM_ = (d_30_valueOrError12_).Extract() out24_: Wrappers.Result out24_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_Some(d_18_reqCMM_), Wrappers.Option_None(), Wrappers.Option_Some(d_13_reproducedEncryptionContext_))) d_23_decryptOutput_ = out24_ if not((d_23_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(404,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(404,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_24_cycledPlaintext_ = ((d_23_decryptOutput_).value).plaintext if not((d_24_cycledPlaintext_) == (d_0_asdf_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(406,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(406,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) @staticmethod def TestRemoveOnDecryptIsBackwardsCompatibleHappyCase(): @@ -543,7 +544,7 @@ def TestRemoveOnDecryptIsBackwardsCompatibleHappyCase(): out0_ = ESDK.default__.ESDK(d_1_defaultConfig_) d_2_valueOrError0_ = out0_ if not(not((d_2_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(415,20): " + _dafny.string_of(d_2_valueOrError0_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(415,16): " + _dafny.string_of(d_2_valueOrError0_)) d_3_esdk_: ESDK.ESDKClient d_3_esdk_ = (d_2_valueOrError0_).Extract() d_4_valueOrError1_: Wrappers.Result = None @@ -551,7 +552,7 @@ def TestRemoveOnDecryptIsBackwardsCompatibleHappyCase(): out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) d_4_valueOrError1_ = out1_ if not(not((d_4_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(416,19): " + _dafny.string_of(d_4_valueOrError1_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(416,15): " + _dafny.string_of(d_4_valueOrError1_)) d_5_mpl_: MaterialProviders.MaterialProvidersClient d_5_mpl_ = (d_4_valueOrError1_).Extract() d_6_rsaKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring @@ -575,7 +576,7 @@ def TestRemoveOnDecryptIsBackwardsCompatibleHappyCase(): out6_ = (d_5_mpl_).CreateMultiKeyring(AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput_CreateMultiKeyringInput(Wrappers.Option_Some(d_8_aesKeyring_), _dafny.Seq([d_6_rsaKeyring_, d_7_kmsKeyring_, d_9_hKeyring_]))) d_10_valueOrError2_ = out6_ if not(not((d_10_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(424,28): " + _dafny.string_of(d_10_valueOrError2_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(424,24): " + _dafny.string_of(d_10_valueOrError2_)) d_11_multiKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring d_11_multiKeyring_ = (d_10_valueOrError2_).Extract() d_12_encryptionContext_: _dafny.Map @@ -595,7 +596,7 @@ def TestRemoveOnDecryptIsBackwardsCompatibleHappyCase(): out10_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_11_multiKeyring_)) d_15_valueOrError3_ = out10_ if not(not((d_15_valueOrError3_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(439,26): " + _dafny.string_of(d_15_valueOrError3_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(439,22): " + _dafny.string_of(d_15_valueOrError3_)) d_16_defaultCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager d_16_defaultCMM_ = (d_15_valueOrError3_).Extract() d_17_encryptOutput_: Wrappers.Result @@ -603,7 +604,7 @@ def TestRemoveOnDecryptIsBackwardsCompatibleHappyCase(): out11_ = (d_3_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_0_asdf_, Wrappers.Option_Some(d_12_encryptionContext_), Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), Wrappers.Option_None(), Wrappers.Option_None())) d_17_encryptOutput_ = out11_ if not((d_17_encryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(455,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(455,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_18_esdkCiphertext_: _dafny.Seq d_18_esdkCiphertext_ = ((d_17_encryptOutput_).value).ciphertext d_19_valueOrError4_: Wrappers.Result = None @@ -611,14 +612,14 @@ def TestRemoveOnDecryptIsBackwardsCompatibleHappyCase(): out12_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_6_rsaKeyring_)) d_19_valueOrError4_ = out12_ if not(not((d_19_valueOrError4_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(459,22): " + _dafny.string_of(d_19_valueOrError4_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(459,18): " + _dafny.string_of(d_19_valueOrError4_)) d_16_defaultCMM_ = (d_19_valueOrError4_).Extract() d_20_valueOrError5_: Wrappers.Result = None out13_: Wrappers.Result out13_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), d_14_requiredEncryptionContextKeys_)) d_20_valueOrError5_ = out13_ if not(not((d_20_valueOrError5_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(466,22): " + _dafny.string_of(d_20_valueOrError5_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(466,18): " + _dafny.string_of(d_20_valueOrError5_)) d_21_reqCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager d_21_reqCMM_ = (d_20_valueOrError5_).Extract() d_22_decryptOutput_: Wrappers.Result @@ -626,77 +627,77 @@ def TestRemoveOnDecryptIsBackwardsCompatibleHappyCase(): out14_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_18_esdkCiphertext_, Wrappers.Option_Some(d_21_reqCMM_), Wrappers.Option_None(), Wrappers.Option_Some(d_13_reproducedEncryptionContext_))) d_22_decryptOutput_ = out14_ if not((d_22_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(484,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(484,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_23_cycledPlaintext_: _dafny.Seq d_23_cycledPlaintext_ = ((d_22_decryptOutput_).value).plaintext if not((d_23_cycledPlaintext_) == (d_0_asdf_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(486,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(486,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_24_valueOrError6_: Wrappers.Result = None out15_: Wrappers.Result out15_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_7_kmsKeyring_)) d_24_valueOrError6_ = out15_ if not(not((d_24_valueOrError6_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(490,22): " + _dafny.string_of(d_24_valueOrError6_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(490,18): " + _dafny.string_of(d_24_valueOrError6_)) d_16_defaultCMM_ = (d_24_valueOrError6_).Extract() d_25_valueOrError7_: Wrappers.Result = None out16_: Wrappers.Result out16_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), d_14_requiredEncryptionContextKeys_)) d_25_valueOrError7_ = out16_ if not(not((d_25_valueOrError7_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(497,18): " + _dafny.string_of(d_25_valueOrError7_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(497,14): " + _dafny.string_of(d_25_valueOrError7_)) d_21_reqCMM_ = (d_25_valueOrError7_).Extract() out17_: Wrappers.Result out17_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_18_esdkCiphertext_, Wrappers.Option_Some(d_21_reqCMM_), Wrappers.Option_None(), Wrappers.Option_Some(d_13_reproducedEncryptionContext_))) d_22_decryptOutput_ = out17_ if not((d_22_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(515,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(515,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_23_cycledPlaintext_ = ((d_22_decryptOutput_).value).plaintext if not((d_23_cycledPlaintext_) == (d_0_asdf_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(517,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(517,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_26_valueOrError8_: Wrappers.Result = None out18_: Wrappers.Result out18_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_8_aesKeyring_)) d_26_valueOrError8_ = out18_ if not(not((d_26_valueOrError8_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(521,22): " + _dafny.string_of(d_26_valueOrError8_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(521,18): " + _dafny.string_of(d_26_valueOrError8_)) d_16_defaultCMM_ = (d_26_valueOrError8_).Extract() d_27_valueOrError9_: Wrappers.Result = None out19_: Wrappers.Result out19_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), d_14_requiredEncryptionContextKeys_)) d_27_valueOrError9_ = out19_ if not(not((d_27_valueOrError9_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(528,18): " + _dafny.string_of(d_27_valueOrError9_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(528,14): " + _dafny.string_of(d_27_valueOrError9_)) d_21_reqCMM_ = (d_27_valueOrError9_).Extract() out20_: Wrappers.Result out20_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_18_esdkCiphertext_, Wrappers.Option_Some(d_21_reqCMM_), Wrappers.Option_None(), Wrappers.Option_Some(d_13_reproducedEncryptionContext_))) d_22_decryptOutput_ = out20_ if not((d_22_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(546,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(546,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_23_cycledPlaintext_ = ((d_22_decryptOutput_).value).plaintext if not((d_23_cycledPlaintext_) == (d_0_asdf_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(548,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(548,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_28_valueOrError10_: Wrappers.Result = None out21_: Wrappers.Result out21_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_9_hKeyring_)) d_28_valueOrError10_ = out21_ if not(not((d_28_valueOrError10_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(551,22): " + _dafny.string_of(d_28_valueOrError10_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(551,18): " + _dafny.string_of(d_28_valueOrError10_)) d_16_defaultCMM_ = (d_28_valueOrError10_).Extract() d_29_valueOrError11_: Wrappers.Result = None out22_: Wrappers.Result out22_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), d_14_requiredEncryptionContextKeys_)) d_29_valueOrError11_ = out22_ if not(not((d_29_valueOrError11_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(558,18): " + _dafny.string_of(d_29_valueOrError11_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(558,14): " + _dafny.string_of(d_29_valueOrError11_)) d_21_reqCMM_ = (d_29_valueOrError11_).Extract() out23_: Wrappers.Result out23_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_18_esdkCiphertext_, Wrappers.Option_Some(d_21_reqCMM_), Wrappers.Option_None(), Wrappers.Option_Some(d_13_reproducedEncryptionContext_))) d_22_decryptOutput_ = out23_ if not((d_22_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(576,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(576,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_23_cycledPlaintext_ = ((d_22_decryptOutput_).value).plaintext if not((d_23_cycledPlaintext_) == (d_0_asdf_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(578,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(578,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) @staticmethod def TestDifferentECOnDecryptFailure(): @@ -709,7 +710,7 @@ def TestDifferentECOnDecryptFailure(): out0_ = ESDK.default__.ESDK(d_1_defaultConfig_) d_2_valueOrError0_ = out0_ if not(not((d_2_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(590,20): " + _dafny.string_of(d_2_valueOrError0_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(590,16): " + _dafny.string_of(d_2_valueOrError0_)) d_3_esdk_: ESDK.ESDKClient d_3_esdk_ = (d_2_valueOrError0_).Extract() d_4_valueOrError1_: Wrappers.Result = None @@ -717,7 +718,7 @@ def TestDifferentECOnDecryptFailure(): out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) d_4_valueOrError1_ = out1_ if not(not((d_4_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(591,19): " + _dafny.string_of(d_4_valueOrError1_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(591,15): " + _dafny.string_of(d_4_valueOrError1_)) d_5_mpl_: MaterialProviders.MaterialProvidersClient d_5_mpl_ = (d_4_valueOrError1_).Extract() d_6_rsaKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring @@ -741,7 +742,7 @@ def TestDifferentECOnDecryptFailure(): out6_ = (d_5_mpl_).CreateMultiKeyring(AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput_CreateMultiKeyringInput(Wrappers.Option_Some(d_8_aesKeyring_), _dafny.Seq([d_6_rsaKeyring_, d_7_kmsKeyring_, d_9_hKeyring_]))) d_10_valueOrError2_ = out6_ if not(not((d_10_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(599,28): " + _dafny.string_of(d_10_valueOrError2_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(599,24): " + _dafny.string_of(d_10_valueOrError2_)) d_11_multiKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring d_11_multiKeyring_ = (d_10_valueOrError2_).Extract() d_12_encryptionContext_: _dafny.Map @@ -761,7 +762,7 @@ def TestDifferentECOnDecryptFailure(): out10_ = (d_3_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_0_asdf_, Wrappers.Option_Some(d_12_encryptionContext_), Wrappers.Option_None(), Wrappers.Option_Some(d_11_multiKeyring_), Wrappers.Option_None(), Wrappers.Option_None())) d_15_encryptOutput_ = out10_ if not((d_15_encryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(623,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(623,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_16_esdkCiphertext_: _dafny.Seq d_16_esdkCiphertext_ = ((d_15_encryptOutput_).value).ciphertext d_17_decryptOutput_: Wrappers.Result @@ -769,42 +770,42 @@ def TestDifferentECOnDecryptFailure(): out11_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_16_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_6_rsaKeyring_), Wrappers.Option_Some(d_13_reproducedAdditionalEncryptionContext_))) d_17_decryptOutput_ = out11_ if not((d_17_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(634,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(634,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) out12_: Wrappers.Result out12_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_16_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_6_rsaKeyring_), Wrappers.Option_Some(d_14_reproducedMismatchedEncryptionContext_))) d_17_decryptOutput_ = out12_ if not((d_17_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(643,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(643,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) out13_: Wrappers.Result out13_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_16_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_7_kmsKeyring_), Wrappers.Option_Some(d_13_reproducedAdditionalEncryptionContext_))) d_17_decryptOutput_ = out13_ if not((d_17_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(653,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(653,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) out14_: Wrappers.Result out14_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_16_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_7_kmsKeyring_), Wrappers.Option_Some(d_14_reproducedMismatchedEncryptionContext_))) d_17_decryptOutput_ = out14_ if not((d_17_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(662,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(662,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) out15_: Wrappers.Result out15_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_16_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_8_aesKeyring_), Wrappers.Option_Some(d_13_reproducedAdditionalEncryptionContext_))) d_17_decryptOutput_ = out15_ if not((d_17_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(672,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(672,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) out16_: Wrappers.Result out16_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_16_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_8_aesKeyring_), Wrappers.Option_Some(d_14_reproducedMismatchedEncryptionContext_))) d_17_decryptOutput_ = out16_ if not((d_17_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(681,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(681,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) out17_: Wrappers.Result out17_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_16_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_9_hKeyring_), Wrappers.Option_Some(d_13_reproducedAdditionalEncryptionContext_))) d_17_decryptOutput_ = out17_ if not((d_17_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(691,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(691,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) out18_: Wrappers.Result out18_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_16_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_9_hKeyring_), Wrappers.Option_Some(d_14_reproducedMismatchedEncryptionContext_))) d_17_decryptOutput_ = out18_ if not((d_17_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(700,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(700,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) @staticmethod def TestRemoveECAndNotSupplyOnDecryptFailure(): @@ -817,7 +818,7 @@ def TestRemoveECAndNotSupplyOnDecryptFailure(): out0_ = ESDK.default__.ESDK(d_1_defaultConfig_) d_2_valueOrError0_ = out0_ if not(not((d_2_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(715,20): " + _dafny.string_of(d_2_valueOrError0_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(715,16): " + _dafny.string_of(d_2_valueOrError0_)) d_3_esdk_: ESDK.ESDKClient d_3_esdk_ = (d_2_valueOrError0_).Extract() d_4_valueOrError1_: Wrappers.Result = None @@ -825,7 +826,7 @@ def TestRemoveECAndNotSupplyOnDecryptFailure(): out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) d_4_valueOrError1_ = out1_ if not(not((d_4_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(716,19): " + _dafny.string_of(d_4_valueOrError1_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(716,15): " + _dafny.string_of(d_4_valueOrError1_)) d_5_mpl_: MaterialProviders.MaterialProvidersClient d_5_mpl_ = (d_4_valueOrError1_).Extract() d_6_rsaKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring @@ -849,7 +850,7 @@ def TestRemoveECAndNotSupplyOnDecryptFailure(): out6_ = (d_5_mpl_).CreateMultiKeyring(AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput_CreateMultiKeyringInput(Wrappers.Option_Some(d_8_aesKeyring_), _dafny.Seq([d_6_rsaKeyring_, d_7_kmsKeyring_, d_9_hKeyring_]))) d_10_valueOrError2_ = out6_ if not(not((d_10_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(724,28): " + _dafny.string_of(d_10_valueOrError2_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(724,24): " + _dafny.string_of(d_10_valueOrError2_)) d_11_multiKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring d_11_multiKeyring_ = (d_10_valueOrError2_).Extract() d_12_encryptionContext_: _dafny.Map @@ -865,7 +866,7 @@ def TestRemoveECAndNotSupplyOnDecryptFailure(): out9_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_11_multiKeyring_)) d_14_valueOrError3_ = out9_ if not(not((d_14_valueOrError3_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(736,26): " + _dafny.string_of(d_14_valueOrError3_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(736,22): " + _dafny.string_of(d_14_valueOrError3_)) d_15_defaultCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager d_15_defaultCMM_ = (d_14_valueOrError3_).Extract() d_16_valueOrError4_: Wrappers.Result = None @@ -873,7 +874,7 @@ def TestRemoveECAndNotSupplyOnDecryptFailure(): out10_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_15_defaultCMM_), Wrappers.Option_None(), d_13_requiredECKeys_)) d_16_valueOrError4_ = out10_ if not(not((d_16_valueOrError4_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(743,22): " + _dafny.string_of(d_16_valueOrError4_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(743,18): " + _dafny.string_of(d_16_valueOrError4_)) d_17_reqCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager d_17_reqCMM_ = (d_16_valueOrError4_).Extract() d_18_encryptOutput_: Wrappers.Result @@ -881,7 +882,7 @@ def TestRemoveECAndNotSupplyOnDecryptFailure(): out11_ = (d_3_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_0_asdf_, Wrappers.Option_Some(d_12_encryptionContext_), Wrappers.Option_Some(d_17_reqCMM_), Wrappers.Option_None(), Wrappers.Option_None(), Wrappers.Option_None())) d_18_encryptOutput_ = out11_ if not((d_18_encryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(762,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(762,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_19_esdkCiphertext_: _dafny.Seq d_19_esdkCiphertext_ = ((d_18_encryptOutput_).value).ciphertext d_20_decryptOutput_: Wrappers.Result @@ -889,22 +890,22 @@ def TestRemoveECAndNotSupplyOnDecryptFailure(): out12_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_19_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_6_rsaKeyring_), Wrappers.Option_None())) d_20_decryptOutput_ = out12_ if not((d_20_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(773,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(773,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) out13_: Wrappers.Result out13_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_19_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_7_kmsKeyring_), Wrappers.Option_None())) d_20_decryptOutput_ = out13_ if not((d_20_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(783,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(783,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) out14_: Wrappers.Result out14_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_19_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_8_aesKeyring_), Wrappers.Option_None())) d_20_decryptOutput_ = out14_ if not((d_20_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(793,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(793,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) out15_: Wrappers.Result out15_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_19_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_9_hKeyring_), Wrappers.Option_None())) d_20_decryptOutput_ = out15_ if not((d_20_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(803,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(803,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) @staticmethod def TestRemoveECAndSupplyMismatchedReprECFailure(): @@ -917,7 +918,7 @@ def TestRemoveECAndSupplyMismatchedReprECFailure(): out0_ = ESDK.default__.ESDK(d_1_defaultConfig_) d_2_valueOrError0_ = out0_ if not(not((d_2_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(818,20): " + _dafny.string_of(d_2_valueOrError0_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(818,16): " + _dafny.string_of(d_2_valueOrError0_)) d_3_esdk_: ESDK.ESDKClient d_3_esdk_ = (d_2_valueOrError0_).Extract() d_4_valueOrError1_: Wrappers.Result = None @@ -925,7 +926,7 @@ def TestRemoveECAndSupplyMismatchedReprECFailure(): out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) d_4_valueOrError1_ = out1_ if not(not((d_4_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(819,19): " + _dafny.string_of(d_4_valueOrError1_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(819,15): " + _dafny.string_of(d_4_valueOrError1_)) d_5_mpl_: MaterialProviders.MaterialProvidersClient d_5_mpl_ = (d_4_valueOrError1_).Extract() d_6_rsaKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring @@ -949,7 +950,7 @@ def TestRemoveECAndSupplyMismatchedReprECFailure(): out6_ = (d_5_mpl_).CreateMultiKeyring(AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput_CreateMultiKeyringInput(Wrappers.Option_Some(d_8_aesKeyring_), _dafny.Seq([d_6_rsaKeyring_, d_7_kmsKeyring_, d_9_hKeyring_]))) d_10_valueOrError2_ = out6_ if not(not((d_10_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(827,28): " + _dafny.string_of(d_10_valueOrError2_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(827,24): " + _dafny.string_of(d_10_valueOrError2_)) d_11_multiKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring d_11_multiKeyring_ = (d_10_valueOrError2_).Extract() d_12_encryptionContext_: _dafny.Map @@ -969,7 +970,7 @@ def TestRemoveECAndSupplyMismatchedReprECFailure(): out10_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_11_multiKeyring_)) d_15_valueOrError3_ = out10_ if not(not((d_15_valueOrError3_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(841,26): " + _dafny.string_of(d_15_valueOrError3_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(841,22): " + _dafny.string_of(d_15_valueOrError3_)) d_16_defaultCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager d_16_defaultCMM_ = (d_15_valueOrError3_).Extract() d_17_valueOrError4_: Wrappers.Result = None @@ -977,7 +978,7 @@ def TestRemoveECAndSupplyMismatchedReprECFailure(): out11_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), d_13_requiredECKeys_)) d_17_valueOrError4_ = out11_ if not(not((d_17_valueOrError4_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(848,22): " + _dafny.string_of(d_17_valueOrError4_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(848,18): " + _dafny.string_of(d_17_valueOrError4_)) d_18_reqCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager d_18_reqCMM_ = (d_17_valueOrError4_).Extract() d_19_encryptOutput_: Wrappers.Result @@ -985,7 +986,7 @@ def TestRemoveECAndSupplyMismatchedReprECFailure(): out12_ = (d_3_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_0_asdf_, Wrappers.Option_Some(d_12_encryptionContext_), Wrappers.Option_Some(d_18_reqCMM_), Wrappers.Option_None(), Wrappers.Option_None(), Wrappers.Option_None())) d_19_encryptOutput_ = out12_ if not((d_19_encryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(867,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(867,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_20_esdkCiphertext_: _dafny.Seq d_20_esdkCiphertext_ = ((d_19_encryptOutput_).value).ciphertext d_21_decryptOutput_: Wrappers.Result @@ -993,22 +994,22 @@ def TestRemoveECAndSupplyMismatchedReprECFailure(): out13_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_6_rsaKeyring_), Wrappers.Option_Some(d_14_mismatchedReproducedEncryptionContext_))) d_21_decryptOutput_ = out13_ if not((d_21_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(878,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(878,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) out14_: Wrappers.Result out14_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_7_kmsKeyring_), Wrappers.Option_Some(d_14_mismatchedReproducedEncryptionContext_))) d_21_decryptOutput_ = out14_ if not((d_21_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(888,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(888,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) out15_: Wrappers.Result out15_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_8_aesKeyring_), Wrappers.Option_Some(d_14_mismatchedReproducedEncryptionContext_))) d_21_decryptOutput_ = out15_ if not((d_21_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(898,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(898,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) out16_: Wrappers.Result out16_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_9_hKeyring_), Wrappers.Option_Some(d_14_mismatchedReproducedEncryptionContext_))) d_21_decryptOutput_ = out16_ if not((d_21_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(908,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(908,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) @staticmethod def TestRemoveECAndSupplyWithMissingRequiredValueDecryptFailure(): @@ -1021,7 +1022,7 @@ def TestRemoveECAndSupplyWithMissingRequiredValueDecryptFailure(): out0_ = ESDK.default__.ESDK(d_1_defaultConfig_) d_2_valueOrError0_ = out0_ if not(not((d_2_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(922,20): " + _dafny.string_of(d_2_valueOrError0_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(922,16): " + _dafny.string_of(d_2_valueOrError0_)) d_3_esdk_: ESDK.ESDKClient d_3_esdk_ = (d_2_valueOrError0_).Extract() d_4_valueOrError1_: Wrappers.Result = None @@ -1029,7 +1030,7 @@ def TestRemoveECAndSupplyWithMissingRequiredValueDecryptFailure(): out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) d_4_valueOrError1_ = out1_ if not(not((d_4_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(923,19): " + _dafny.string_of(d_4_valueOrError1_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(923,15): " + _dafny.string_of(d_4_valueOrError1_)) d_5_mpl_: MaterialProviders.MaterialProvidersClient d_5_mpl_ = (d_4_valueOrError1_).Extract() d_6_rsaKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring @@ -1053,7 +1054,7 @@ def TestRemoveECAndSupplyWithMissingRequiredValueDecryptFailure(): out6_ = (d_5_mpl_).CreateMultiKeyring(AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput_CreateMultiKeyringInput(Wrappers.Option_Some(d_8_aesKeyring_), _dafny.Seq([d_6_rsaKeyring_, d_7_kmsKeyring_, d_9_hKeyring_]))) d_10_valueOrError2_ = out6_ if not(not((d_10_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(931,28): " + _dafny.string_of(d_10_valueOrError2_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(931,24): " + _dafny.string_of(d_10_valueOrError2_)) d_11_multiKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring d_11_multiKeyring_ = (d_10_valueOrError2_).Extract() d_12_encryptionContext_: _dafny.Map @@ -1073,7 +1074,7 @@ def TestRemoveECAndSupplyWithMissingRequiredValueDecryptFailure(): out10_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_11_multiKeyring_)) d_15_valueOrError3_ = out10_ if not(not((d_15_valueOrError3_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(945,26): " + _dafny.string_of(d_15_valueOrError3_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(945,22): " + _dafny.string_of(d_15_valueOrError3_)) d_16_defaultCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager d_16_defaultCMM_ = (d_15_valueOrError3_).Extract() d_17_valueOrError4_: Wrappers.Result = None @@ -1081,7 +1082,7 @@ def TestRemoveECAndSupplyWithMissingRequiredValueDecryptFailure(): out11_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), d_13_requiredECKeys_)) d_17_valueOrError4_ = out11_ if not(not((d_17_valueOrError4_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(952,22): " + _dafny.string_of(d_17_valueOrError4_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(952,18): " + _dafny.string_of(d_17_valueOrError4_)) d_18_reqCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager d_18_reqCMM_ = (d_17_valueOrError4_).Extract() d_19_encryptOutput_: Wrappers.Result @@ -1089,7 +1090,7 @@ def TestRemoveECAndSupplyWithMissingRequiredValueDecryptFailure(): out12_ = (d_3_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_0_asdf_, Wrappers.Option_Some(d_12_encryptionContext_), Wrappers.Option_Some(d_18_reqCMM_), Wrappers.Option_None(), Wrappers.Option_None(), Wrappers.Option_None())) d_19_encryptOutput_ = out12_ if not((d_19_encryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(971,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(971,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) d_20_esdkCiphertext_: _dafny.Seq d_20_esdkCiphertext_ = ((d_19_encryptOutput_).value).ciphertext d_21_decryptOutput_: Wrappers.Result @@ -1097,22 +1098,22 @@ def TestRemoveECAndSupplyWithMissingRequiredValueDecryptFailure(): out13_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_6_rsaKeyring_), Wrappers.Option_Some(d_14_droppedRequiredKeyEncryptionContext_))) d_21_decryptOutput_ = out13_ if not((d_21_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(982,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(982,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) out14_: Wrappers.Result out14_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_7_kmsKeyring_), Wrappers.Option_Some(d_14_droppedRequiredKeyEncryptionContext_))) d_21_decryptOutput_ = out14_ if not((d_21_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(992,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(992,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) out15_: Wrappers.Result out15_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_8_aesKeyring_), Wrappers.Option_Some(d_14_droppedRequiredKeyEncryptionContext_))) d_21_decryptOutput_ = out15_ if not((d_21_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1002,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1002,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) out16_: Wrappers.Result out16_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_9_hKeyring_), Wrappers.Option_Some(d_14_droppedRequiredKeyEncryptionContext_))) d_21_decryptOutput_ = out16_ if not((d_21_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1012,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1012,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) @staticmethod def TestReservedEncryptionContextKeyFailure(): @@ -1125,7 +1126,7 @@ def TestReservedEncryptionContextKeyFailure(): out0_ = ESDK.default__.ESDK(d_1_defaultConfig_) d_2_valueOrError0_ = out0_ if not(not((d_2_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1022,20): " + _dafny.string_of(d_2_valueOrError0_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1022,16): " + _dafny.string_of(d_2_valueOrError0_)) d_3_esdk_: ESDK.ESDKClient d_3_esdk_ = (d_2_valueOrError0_).Extract() d_4_valueOrError1_: Wrappers.Result = None @@ -1133,7 +1134,7 @@ def TestReservedEncryptionContextKeyFailure(): out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) d_4_valueOrError1_ = out1_ if not(not((d_4_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1023,19): " + _dafny.string_of(d_4_valueOrError1_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1023,15): " + _dafny.string_of(d_4_valueOrError1_)) d_5_mpl_: MaterialProviders.MaterialProvidersClient d_5_mpl_ = (d_4_valueOrError1_).Extract() d_6_rsaKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring @@ -1151,7 +1152,7 @@ def TestReservedEncryptionContextKeyFailure(): out4_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_6_rsaKeyring_)) d_9_valueOrError2_ = out4_ if not(not((d_9_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1031,26): " + _dafny.string_of(d_9_valueOrError2_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1031,22): " + _dafny.string_of(d_9_valueOrError2_)) d_10_defaultCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager d_10_defaultCMM_ = (d_9_valueOrError2_).Extract() d_11_valueOrError3_: Wrappers.Result = None @@ -1159,7 +1160,7 @@ def TestReservedEncryptionContextKeyFailure(): out5_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_10_defaultCMM_), Wrappers.Option_None(), d_8_requiredECKeys_)) d_11_valueOrError3_ = out5_ if not(not((d_11_valueOrError3_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1041,22): " + _dafny.string_of(d_11_valueOrError3_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1041,18): " + _dafny.string_of(d_11_valueOrError3_)) d_12_reqCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager d_12_reqCMM_ = (d_11_valueOrError3_).Extract() d_13_encryptOutput_: Wrappers.Result @@ -1167,7 +1168,7 @@ def TestReservedEncryptionContextKeyFailure(): out6_ = (d_3_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_0_asdf_, Wrappers.Option_Some(d_7_encryptionContext_), Wrappers.Option_Some(d_12_reqCMM_), Wrappers.Option_None(), Wrappers.Option_None(), Wrappers.Option_None())) d_13_encryptOutput_ = out6_ if not((d_13_encryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1060,8): " + _dafny.string_of(_dafny.Seq("expectation violation"))) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1060,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) @staticmethod def GetHierarchicalKeyring(): @@ -1181,7 +1182,7 @@ def GetHierarchicalKeyring(): out0_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) d_2_valueOrError0_ = out0_ if not(not((d_2_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1070,19): " + _dafny.string_of(d_2_valueOrError0_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1070,15): " + _dafny.string_of(d_2_valueOrError0_)) d_3_mpl_: MaterialProviders.MaterialProvidersClient d_3_mpl_ = (d_2_valueOrError0_).Extract() d_4_valueOrError1_: Wrappers.Result = None @@ -1189,7 +1190,7 @@ def GetHierarchicalKeyring(): out1_ = Com_Amazonaws_Kms.default__.KMSClient() d_4_valueOrError1_ = out1_ if not(not((d_4_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1072,25): " + _dafny.string_of(d_4_valueOrError1_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1072,21): " + _dafny.string_of(d_4_valueOrError1_)) d_5_kmsClient_: ComAmazonawsKmsTypes.IKMSClient d_5_kmsClient_ = (d_4_valueOrError1_).Extract() d_6_valueOrError2_: Wrappers.Result = None @@ -1197,7 +1198,7 @@ def GetHierarchicalKeyring(): out2_ = Com_Amazonaws_Dynamodb.default__.DynamoDBClient() d_6_valueOrError2_ = out2_ if not(not((d_6_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1073,25): " + _dafny.string_of(d_6_valueOrError2_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1073,21): " + _dafny.string_of(d_6_valueOrError2_)) d_7_ddbClient_: ComAmazonawsDynamodbTypes.IDynamoDBClient d_7_ddbClient_ = (d_6_valueOrError2_).Extract() d_8_kmsConfig_: AwsCryptographyKeyStoreTypes.KMSConfiguration @@ -1209,7 +1210,7 @@ def GetHierarchicalKeyring(): out3_ = KeyStore.default__.KeyStore(d_9_keyStoreConfig_) d_10_valueOrError3_ = out3_ if not(not((d_10_valueOrError3_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1086,24): " + _dafny.string_of(d_10_valueOrError3_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1086,20): " + _dafny.string_of(d_10_valueOrError3_)) d_11_keyStore_: KeyStore.KeyStoreClient d_11_keyStore_ = (d_10_valueOrError3_).Extract() d_12_valueOrError4_: Wrappers.Result = None @@ -1217,7 +1218,7 @@ def GetHierarchicalKeyring(): out4_ = (d_3_mpl_).CreateAwsKmsHierarchicalKeyring(AwsCryptographyMaterialProvidersTypes.CreateAwsKmsHierarchicalKeyringInput_CreateAwsKmsHierarchicalKeyringInput(Wrappers.Option_Some(d_0_branchKeyId_), Wrappers.Option_None(), d_11_keyStore_, d_1_ttl_, Wrappers.Option_None(), Wrappers.Option_None())) d_12_valueOrError4_ = out4_ if not(not((d_12_valueOrError4_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1088,18): " + _dafny.string_of(d_12_valueOrError4_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1088,14): " + _dafny.string_of(d_12_valueOrError4_)) output = (d_12_valueOrError4_).Extract() return output @@ -1229,7 +1230,7 @@ def GetRsaKeyring(): out0_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) d_0_valueOrError0_ = out0_ if not(not((d_0_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1102,19): " + _dafny.string_of(d_0_valueOrError0_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1102,15): " + _dafny.string_of(d_0_valueOrError0_)) d_1_mpl_: MaterialProviders.MaterialProvidersClient d_1_mpl_ = (d_0_valueOrError0_).Extract() d_2_namespace_: _dafny.Seq @@ -1248,7 +1249,7 @@ def GetRsaKeyring(): out4_ = (d_1_mpl_).CreateRawRsaKeyring(AwsCryptographyMaterialProvidersTypes.CreateRawRsaKeyringInput_CreateRawRsaKeyringInput(d_2_namespace_, d_3_name_, AwsCryptographyMaterialProvidersTypes.PaddingScheme_OAEP__SHA1__MGF1(), Wrappers.Option_Some(((d_4_keys_).publicKey).pem), Wrappers.Option_Some(((d_4_keys_).privateKey).pem))) d_5_valueOrError1_ = out4_ if not(not((d_5_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1106,18): " + _dafny.string_of(d_5_valueOrError1_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1106,14): " + _dafny.string_of(d_5_valueOrError1_)) output = (d_5_valueOrError1_).Extract() return output @@ -1260,7 +1261,7 @@ def GetAesKeyring(): out0_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) d_0_valueOrError0_ = out0_ if not(not((d_0_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1120,19): " + _dafny.string_of(d_0_valueOrError0_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1120,15): " + _dafny.string_of(d_0_valueOrError0_)) d_1_mpl_: MaterialProviders.MaterialProvidersClient d_1_mpl_ = (d_0_valueOrError0_).Extract() d_2_namespace_: _dafny.Seq @@ -1275,7 +1276,7 @@ def GetAesKeyring(): out3_ = (d_1_mpl_).CreateRawAesKeyring(AwsCryptographyMaterialProvidersTypes.CreateRawAesKeyringInput_CreateRawAesKeyringInput(d_2_namespace_, d_3_name_, _dafny.Seq([0 for d_5_i_ in range(32)]), AwsCryptographyMaterialProvidersTypes.AesWrappingAlg_ALG__AES256__GCM__IV12__TAG16())) d_4_valueOrError1_ = out3_ if not(not((d_4_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1123,18): " + _dafny.string_of(d_4_valueOrError1_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1123,14): " + _dafny.string_of(d_4_valueOrError1_)) output = (d_4_valueOrError1_).Extract() return output @@ -1291,7 +1292,7 @@ def GetKmsKeyring(): out0_ = ESDK.default__.ESDK(d_1_defaultConfig_) d_2_valueOrError0_ = out0_ if not(not((d_2_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1137,20): " + _dafny.string_of(d_2_valueOrError0_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1137,16): " + _dafny.string_of(d_2_valueOrError0_)) d_3_esdk_: ESDK.ESDKClient d_3_esdk_ = (d_2_valueOrError0_).Extract() d_4_valueOrError1_: Wrappers.Result = None @@ -1299,7 +1300,7 @@ def GetKmsKeyring(): out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) d_4_valueOrError1_ = out1_ if not(not((d_4_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1138,19): " + _dafny.string_of(d_4_valueOrError1_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1138,15): " + _dafny.string_of(d_4_valueOrError1_)) d_5_mpl_: MaterialProviders.MaterialProvidersClient d_5_mpl_ = (d_4_valueOrError1_).Extract() d_6_valueOrError2_: Wrappers.Result = None @@ -1307,7 +1308,7 @@ def GetKmsKeyring(): out2_ = (d_5_mpl_).CreateDefaultClientSupplier(AwsCryptographyMaterialProvidersTypes.CreateDefaultClientSupplierInput_CreateDefaultClientSupplierInput()) d_6_valueOrError2_ = out2_ if not(not((d_6_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1139,30): " + _dafny.string_of(d_6_valueOrError2_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1139,26): " + _dafny.string_of(d_6_valueOrError2_)) d_7_clientSupplier_: AwsCryptographyMaterialProvidersTypes.IClientSupplier d_7_clientSupplier_ = (d_6_valueOrError2_).Extract() d_8_valueOrError3_: Wrappers.Result = None @@ -1315,7 +1316,7 @@ def GetKmsKeyring(): out3_ = (d_7_clientSupplier_).GetClient(AwsCryptographyMaterialProvidersTypes.GetClientInput_GetClientInput(_dafny.Seq("us-west-2"))) d_8_valueOrError3_ = out3_ if not(not((d_8_valueOrError3_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1140,25): " + _dafny.string_of(d_8_valueOrError3_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1140,21): " + _dafny.string_of(d_8_valueOrError3_)) d_9_kmsClient_: ComAmazonawsKmsTypes.IKMSClient d_9_kmsClient_ = (d_8_valueOrError3_).Extract() d_10_valueOrError4_: Wrappers.Result = None @@ -1323,7 +1324,7 @@ def GetKmsKeyring(): out4_ = (d_5_mpl_).CreateAwsKmsKeyring(AwsCryptographyMaterialProvidersTypes.CreateAwsKmsKeyringInput_CreateAwsKmsKeyringInput(d_0_kmsKey_, d_9_kmsClient_, Wrappers.Option_None())) d_10_valueOrError4_ = out4_ if not(not((d_10_valueOrError4_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1142,18): " + _dafny.string_of(d_10_valueOrError4_)) + raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1142,14): " + _dafny.string_of(d_10_valueOrError4_)) output = (d_10_valueOrError4_).Extract() return output diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/module_.py b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/module_.py index 1b76d47bc..d9d080c19 100644 --- a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/module_.py +++ b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/module_.py @@ -18,7 +18,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom import aws_cryptography_primitives.internaldafny.generated.Random as Random import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption @@ -67,6 +67,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang import smithy_dafny_standard_library.internaldafny.generated.Time as Time import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC @@ -90,22 +91,22 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk.internaldafny.generated.Header as Header -import aws_encryption_sdk.internaldafny.generated.Frames as Frames -import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK +import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header +import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames +import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn diff --git a/TestVectors/Makefile b/TestVectors/Makefile index eeb6faf6a..2c7169d19 100644 --- a/TestVectors/Makefile +++ b/TestVectors/Makefile @@ -266,12 +266,12 @@ PYTHON_MODULE_NAME=aws_encryption_sdk_test_vectors TRANSLATION_RECORD_PYTHON := \ --translation-record ../mpl/StandardLibrary/runtimes/python/src/smithy_dafny_standard_library/internaldafny/generated/dafny_src-py.dtr \ - --translation-record ../mpl/ComAmazonawsKms/runtimes/python/src/aws_cryptography_internal_kms/internaldafny/generated/dafny_src-py.dtr \ - --translation-record ../mpl/ComAmazonawsDynamodb/runtimes/python/src/aws_cryptography_internal_dynamodb/internaldafny/generated/dafny_src-py.dtr \ - --translation-record ../mpl/AwsCryptographyPrimitives/runtimes/python/src/aws_cryptography_primitives/internaldafny/generated/dafny_src-py.dtr \ + --translation-record ../mpl/ComAmazonawsKms/runtimes/python/src/aws_cryptography_internal_kms/internaldafny/generated/dafny_src-py.dtr \ + --translation-record ../mpl/ComAmazonawsDynamodb/runtimes/python/src/aws_cryptography_internal_dynamodb/internaldafny/generated/dafny_src-py.dtr \ + --translation-record ../mpl/AwsCryptographyPrimitives/runtimes/python/src/aws_cryptography_primitives/internaldafny/generated/dafny_src-py.dtr \ --translation-record ../mpl/AwsCryptographicMaterialProviders/runtimes/python/src/aws_cryptographic_material_providers/internaldafny/generated/dafny_src-py.dtr \ --translation-record ../mpl/TestVectorsAwsCryptographicMaterialProviders/runtimes/python/src/aws_cryptography_materialproviders_test_vectors/internaldafny/generated/dafny_src-py.dtr \ - --translation-record ../AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk/internaldafny/generated/dafny_src-py.dtr + --translation-record ../AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/dafny_src-py.dtr PYTHON_DEPENDENCY_MODULE_NAMES := \ --dependency-library-name=aws.cryptography.primitives=aws_cryptography_primitives \ @@ -281,4 +281,4 @@ PYTHON_DEPENDENCY_MODULE_NAMES := \ --dependency-library-name=aws.cryptography.keyStore=aws_cryptographic_material_providers \ --dependency-library-name=smithy.api=aws_cryptographic_material_providers \ --dependency-library-name=aws.cryptography.materialProvidersTestVectorKeys=aws_cryptographic_material_providers_test_vectors \ - --dependency-library-name=aws.cryptography.encryptionSdk=aws_encryption_sdk + --dependency-library-name=aws.cryptography.encryptionSdk=aws_encryption_sdk_dafny diff --git a/TestVectors/runtimes/python/pyproject.toml b/TestVectors/runtimes/python/pyproject.toml index ff9a624d0..27acf3312 100644 --- a/TestVectors/runtimes/python/pyproject.toml +++ b/TestVectors/runtimes/python/pyproject.toml @@ -14,7 +14,9 @@ include = ["**/internaldafny/generated/*.py"] python = "^3.11.0" aws-cryptographic-material-providers = { path = "../../../mpl/AwsCryptographicMaterialProviders/runtimes/python", develop = false} aws-cryptography-internal-mpl-testvectors = { path = "../../../mpl/TestVectorsAwsCryptographicMaterialProviders/runtimes/python", develop = false} -aws-encryption-sdk = { path = "../../../AwsEncryptionSDK/runtimes/python", develop = false} +aws-encryption-sdk-dafny = { path = "../../../AwsEncryptionSDK/runtimes/python", develop = false} +aws-encryption-sdk = "4.0.0" + [tool.poetry.group.test.dependencies] pytest = "^7.4.0" diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__init__.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__init__.py index 94e3df78f..7c5bd8871 100644 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__init__.py +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__init__.py @@ -1,4 +1,4 @@ from . import ( wrapped_esdk, use_esdk_testvectors, -) \ No newline at end of file +) diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/use_esdk_testvectors.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/use_esdk_testvectors.py index 73a6dba66..029fb61a4 100644 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/use_esdk_testvectors.py +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/use_esdk_testvectors.py @@ -1,7 +1,9 @@ import aws_encryption_sdk_test_vectors.internaldafny.generated.module_ as module_ import aws_encryption_sdk_test_vectors.internaldafny.generated.WrappedESDKMain as WrappedESDKMain + def new_test_main(args): WrappedESDKMain.default__.Main2(args) + module_.default__.Test____Main____ = new_test_main diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/wrapped_esdk.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/wrapped_esdk.py index faf6f9d03..58b8f6bca 100644 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/wrapped_esdk.py +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/wrapped_esdk.py @@ -1,18 +1,182 @@ +import aws_encryption_sdk.streaming_client import aws_encryption_sdk_test_vectors.internaldafny.generated.WrappedESDK as WrappedESDK import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.client -import aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.config -import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK +import aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.client +import aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.config +import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK import aws_encryption_sdk_test_vectors.smithygenerated.aws_cryptography_encryptionsdk.shim as shim +from aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.config import ( + dafny_config_to_smithy_config, +) +import aws_encryption_sdk +from aws_encryption_sdk.identifiers import CommitmentPolicy +from aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.models import ( + EncryptInput, + EncryptOutput, + DecryptOutput, + DecryptInput, + NetV4_0_0_RetryPolicy, +) +from aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.dafny_to_smithy import ( + aws_cryptography_encryptionsdk_EncryptInput as dafny_to_smithy_EncryptInput, + aws_cryptography_encryptionsdk_DecryptInput as dafny_to_smithy_DecryptInput, +) +from aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.smithy_to_dafny import ( + aws_cryptography_encryptionsdk_DecryptOutput as smithy_to_dafny_DecryptOutput, + aws_cryptography_encryptionsdk_EncryptOutput as smithy_to_dafny_EncryptOutput, +) +from aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.errors import ( + _smithy_error_to_dafny_error, +) +from aws_encryption_sdk.materials_managers.mpl.cmm import CryptoMaterialsManagerFromMPL +from aws_encryption_sdk.materials_managers.mpl.materials import _mpl_algorithm_id_to_native_algorithm_id +from aws_encryption_sdk.identifiers import AlgorithmSuite + + +def _esdk_dafny_commitment_policy_to_native(dafny_commitment_policy): + if dafny_commitment_policy == "FORBID_ENCRYPT_ALLOW_DECRYPT": + return CommitmentPolicy.FORBID_ENCRYPT_ALLOW_DECRYPT + elif dafny_commitment_policy == "REQUIRE_ENCRYPT_ALLOW_DECRYPT": + return CommitmentPolicy.REQUIRE_ENCRYPT_ALLOW_DECRYPT + elif dafny_commitment_policy == "REQUIRE_ENCRYPT_REQUIRE_DECRYPT": + return CommitmentPolicy.REQUIRE_ENCRYPT_REQUIRE_DECRYPT + else: + raise ValueError(f"Unsupported CommitmentPolicy: {dafny_commitment_policy}") + + +class DafnyESDKToNativeESDKShim: + + def __init__(self, native_esdk): + self.native_esdk = native_esdk + + def Encrypt(self, dafny_encrypt_input): + try: + native_encrypt_input = dafny_to_smithy_EncryptInput(dafny_encrypt_input) + + if native_encrypt_input.algorithm_suite_id is None: + if native_encrypt_input.materials_manager is not None: + native_esdk_ciphertext, native_esdk_header = self.native_esdk.encrypt( + source=native_encrypt_input.plaintext, + materials_manager=native_encrypt_input.materials_manager, + encryption_context=native_encrypt_input.encryption_context, + ) + else: + native_esdk_ciphertext, native_esdk_header = self.native_esdk.encrypt( + source=native_encrypt_input.plaintext, + materials_manager=native_encrypt_input.keyring, + encryption_context=native_encrypt_input.encryption_context, + ) + else: + if native_encrypt_input.materials_manager is not None: + native_esdk_ciphertext, native_esdk_header = self.native_esdk.encrypt( + source=native_encrypt_input.plaintext, + materials_manager=native_encrypt_input.materials_manager, + encryption_context=native_encrypt_input.encryption_context, + algorithm = AlgorithmSuite.get_by_id( + _mpl_algorithm_id_to_native_algorithm_id(native_encrypt_input.algorithm_suite_id) + ) + ) + else: + native_esdk_ciphertext, native_esdk_header = self.native_esdk.encrypt( + source=native_encrypt_input.plaintext, + materials_manager=native_encrypt_input.keyring, + encryption_context=native_encrypt_input.encryption_context, + algorithm = AlgorithmSuite.get_by_id( + _mpl_algorithm_id_to_native_algorithm_id(native_encrypt_input.algorithm_suite_id) + ) + ) + + dafny_esdk_native_encrypt_output = EncryptOutput( + ciphertext=native_esdk_ciphertext, + encryption_context=native_esdk_header.encryption_context, + algorithm_suite_id=CryptoMaterialsManagerFromMPL._native_algorithm_id_to_mpl_algorithm_id( + native_esdk_header.algorithm.algorithm_id + ).value, + ) + + dafny_esdk_dafny_encrypt_output = smithy_to_dafny_EncryptOutput( + dafny_esdk_native_encrypt_output + ) + + return Wrappers.Result_Success(dafny_esdk_dafny_encrypt_output) + except Exception as e: + return Wrappers.Result_Failure(_smithy_error_to_dafny_error(e)) + + def Decrypt(self, dafny_decrypt_input): + + try: + + native_decrypt_input = dafny_to_smithy_DecryptInput(dafny_decrypt_input) + + if native_decrypt_input.materials_manager is not None: + native_esdk_plaintext, native_esdk_header = self.native_esdk.decrypt( + source=native_decrypt_input.ciphertext, + materials_manager=native_decrypt_input.materials_manager, + encryption_context=native_decrypt_input.encryption_context, + ) + else: + native_esdk_plaintext, native_esdk_header = self.native_esdk.decrypt( + source=native_decrypt_input.ciphertext, + materials_manager=native_decrypt_input.keyring, + encryption_context=native_decrypt_input.encryption_context, + ) + + dafny_esdk_native_decrypt_output = DecryptOutput( + plaintext=native_esdk_plaintext, + encryption_context=native_esdk_header.encryption_context, + algorithm_suite_id=CryptoMaterialsManagerFromMPL._native_algorithm_id_to_mpl_algorithm_id( + native_esdk_header.algorithm.algorithm_id + ).value, + ) + + dafny_esdk_dafny_decrypt_output = smithy_to_dafny_DecryptOutput( + dafny_esdk_native_decrypt_output + ) + + return Wrappers.Result_Success(dafny_esdk_dafny_decrypt_output) + except Exception as e: + return Wrappers.Result_Failure(_smithy_error_to_dafny_error(e)) + class default__(WrappedESDK.default__): - @staticmethod - def WrappedESDK(config): - smithy_client = aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.client.AwsEncryptionSdk( - dafny_client=ESDK.default__.ESDK(config).value - ) - wrapped_client = shim.ESDKShim(smithy_client) - return Wrappers.Result_Success(wrapped_client) + # Dafny-generated ESDK. Not launched right now. + # @staticmethod + # def WrappedESDK(config): + # smithy_client = aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.client.AwsEncryptionSdk( + # dafny_client=ESDK.default__.ESDK(config).value + # ) + # wrapped_client = shim.ESDKShim(smithy_client) + # return Wrappers.Result_Success(wrapped_client) + + @staticmethod + # Wrapper for the native ESDK-Python. + def WrappedESDK(dafny_config): + native_config = dafny_config_to_smithy_config(dafny_config) + + # TODO deny net 4.0.0 allow retry + + if native_config.net_v4_0_0_retry_policy == NetV4_0_0_RetryPolicy.ALLOW_RETRY: + raise ValueError("net 4.0.0 retry policy is not supported") + + commitment_policy = _esdk_dafny_commitment_policy_to_native( + native_config.commitment_policy + ) + + max_edks = ( + 1 + if native_config.max_encrypted_data_keys == 0 + else native_config.max_encrypted_data_keys + ) + + native_esdk = aws_encryption_sdk.EncryptionSDKClient( + commitment_policy=commitment_policy, + max_encrypted_data_keys=max_edks, + ) + + dafny_wrapped_esdk = DafnyESDKToNativeESDKShim(native_esdk) + + return Wrappers.Result_Success(dafny_wrapped_esdk) + -WrappedESDK.default__ = default__ \ No newline at end of file +WrappedESDK.default__ = default__ diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/AllEsdkV4NoReqEc.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/AllEsdkV4NoReqEc.py index 2597ba8ff..5dba3c398 100644 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/AllEsdkV4NoReqEc.py +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/AllEsdkV4NoReqEc.py @@ -66,6 +66,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang import smithy_dafny_standard_library.internaldafny.generated.Time as Time import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC @@ -163,24 +164,24 @@ import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeysVectorOperations as KeysVectorOperations import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyVectors as KeyVectors -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk.internaldafny.generated.Header as Header -import aws_encryption_sdk.internaldafny.generated.Frames as Frames -import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK +import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header +import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames +import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/AllEsdkV4WithReqEc.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/AllEsdkV4WithReqEc.py index 477a517d3..8eea81f8b 100644 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/AllEsdkV4WithReqEc.py +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/AllEsdkV4WithReqEc.py @@ -66,6 +66,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang import smithy_dafny_standard_library.internaldafny.generated.Time as Time import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC @@ -163,24 +164,24 @@ import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeysVectorOperations as KeysVectorOperations import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyVectors as KeyVectors -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk.internaldafny.generated.Header as Header -import aws_encryption_sdk.internaldafny.generated.Frames as Frames -import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK +import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header +import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames +import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkManifestOptions.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkManifestOptions.py index 35e6000a5..453aefa9b 100644 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkManifestOptions.py +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkManifestOptions.py @@ -66,6 +66,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang import smithy_dafny_standard_library.internaldafny.generated.Time as Time import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC @@ -163,24 +164,24 @@ import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeysVectorOperations as KeysVectorOperations import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyVectors as KeyVectors -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk.internaldafny.generated.Header as Header -import aws_encryption_sdk.internaldafny.generated.Frames as Frames -import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK +import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header +import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames +import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkTestManifests.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkTestManifests.py index 0af043c79..d7d350791 100644 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkTestManifests.py +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkTestManifests.py @@ -66,6 +66,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang import smithy_dafny_standard_library.internaldafny.generated.Time as Time import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC @@ -163,24 +164,24 @@ import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeysVectorOperations as KeysVectorOperations import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyVectors as KeyVectors -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk.internaldafny.generated.Header as Header -import aws_encryption_sdk.internaldafny.generated.Frames as Frames -import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK +import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header +import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames +import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkTestVectors.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkTestVectors.py index 3915901a7..2140889b7 100644 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkTestVectors.py +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkTestVectors.py @@ -66,6 +66,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang import smithy_dafny_standard_library.internaldafny.generated.Time as Time import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC @@ -163,24 +164,24 @@ import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeysVectorOperations as KeysVectorOperations import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyVectors as KeyVectors -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk.internaldafny.generated.Header as Header -import aws_encryption_sdk.internaldafny.generated.Frames as Frames -import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK +import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header +import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames +import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/ParseEsdkJsonManifest.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/ParseEsdkJsonManifest.py index bef53cb8b..ee5ae0928 100644 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/ParseEsdkJsonManifest.py +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/ParseEsdkJsonManifest.py @@ -66,6 +66,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang import smithy_dafny_standard_library.internaldafny.generated.Time as Time import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC @@ -163,24 +164,24 @@ import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeysVectorOperations as KeysVectorOperations import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyVectors as KeyVectors -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk.internaldafny.generated.Header as Header -import aws_encryption_sdk.internaldafny.generated.Frames as Frames -import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK +import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header +import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames +import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WrappedESDK.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WrappedESDK.py index d17464a87..100bd6670 100644 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WrappedESDK.py +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WrappedESDK.py @@ -66,6 +66,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang import smithy_dafny_standard_library.internaldafny.generated.Time as Time import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC @@ -163,24 +164,24 @@ import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeysVectorOperations as KeysVectorOperations import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyVectors as KeyVectors -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk.internaldafny.generated.Header as Header -import aws_encryption_sdk.internaldafny.generated.Frames as Frames -import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK +import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header +import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames +import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WrappedESDKMain.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WrappedESDKMain.py index 6de6386ab..e6ac54342 100644 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WrappedESDKMain.py +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WrappedESDKMain.py @@ -66,6 +66,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang import smithy_dafny_standard_library.internaldafny.generated.Time as Time import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC @@ -163,24 +164,24 @@ import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeysVectorOperations as KeysVectorOperations import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyVectors as KeyVectors -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk.internaldafny.generated.Header as Header -import aws_encryption_sdk.internaldafny.generated.Frames as Frames -import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK +import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header +import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames +import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WriteEsdkJsonManifests.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WriteEsdkJsonManifests.py index f11ec370c..16ef270bc 100644 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WriteEsdkJsonManifests.py +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WriteEsdkJsonManifests.py @@ -66,6 +66,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang import smithy_dafny_standard_library.internaldafny.generated.Time as Time import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC @@ -163,24 +164,24 @@ import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeysVectorOperations as KeysVectorOperations import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyVectors as KeyVectors -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk.internaldafny.generated.Header as Header -import aws_encryption_sdk.internaldafny.generated.Frames as Frames -import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK +import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header +import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames +import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WriteVectors.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WriteVectors.py index 1196f0f8e..8c220a302 100644 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WriteVectors.py +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WriteVectors.py @@ -66,6 +66,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang import smithy_dafny_standard_library.internaldafny.generated.Time as Time import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC @@ -163,24 +164,24 @@ import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeysVectorOperations as KeysVectorOperations import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyVectors as KeyVectors -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk.internaldafny.generated.Header as Header -import aws_encryption_sdk.internaldafny.generated.Frames as Frames -import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK +import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header +import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames +import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/module_.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/module_.py index 6cefa1fef..4a63a5ac5 100644 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/module_.py +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/module_.py @@ -66,6 +66,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang import smithy_dafny_standard_library.internaldafny.generated.Time as Time import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC @@ -163,24 +164,24 @@ import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeysVectorOperations as KeysVectorOperations import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyVectors as KeyVectors -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk.internaldafny.generated.Header as Header -import aws_encryption_sdk.internaldafny.generated.Frames as Frames -import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK +import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header +import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames +import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/smithygenerated/aws_cryptography_encryptionsdk/shim.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/smithygenerated/aws_cryptography_encryptionsdk/shim.py index 586313d2b..75c1c62f1 100644 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/smithygenerated/aws_cryptography_encryptionsdk/shim.py +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/smithygenerated/aws_cryptography_encryptionsdk/shim.py @@ -2,33 +2,33 @@ # SPDX-License-Identifier: Apache-2.0 # Do not modify this file. This file is machine generated, and any changes to it will be overwritten. -from aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes import ( +from aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes import ( DecryptInput_DecryptInput as DafnyDecryptInput, DecryptOutput_DecryptOutput as DafnyDecryptOutput, EncryptInput_EncryptInput as DafnyEncryptInput, EncryptOutput_EncryptOutput as DafnyEncryptOutput, ) -import aws_encryption_sdk.internaldafny.generated.module_ -import aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.dafny_to_smithy -import aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.errors -from aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.errors import ( +import aws_encryption_sdk_dafny.internaldafny.generated.module_ +import aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.dafny_to_smithy +import aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.errors +from aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.errors import ( CollectionOfErrors, OpaqueError, ServiceError, _smithy_error_to_dafny_error, ) -import aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.models -import aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.smithy_to_dafny +import aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.models +import aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.smithy_to_dafny from typing import Any import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes -import aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.client as client_impl +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.client as client_impl class ESDKShim( - aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes.IAwsEncryptionSdkClient + aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes.IAwsEncryptionSdkClient ): def __init__(self, _impl: client_impl): self._impl = _impl @@ -36,13 +36,13 @@ def __init__(self, _impl: client_impl): def Encrypt(self, input): try: smithy_client_request: ( - aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.models.EncryptInput - ) = aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.dafny_to_smithy.aws_cryptography_encryptionsdk_EncryptInput( + aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.models.EncryptInput + ) = aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.dafny_to_smithy.aws_cryptography_encryptionsdk_EncryptInput( input ) smithy_client_response = self._impl.encrypt(smithy_client_request) return Wrappers.Result_Success( - aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.smithy_to_dafny.aws_cryptography_encryptionsdk_EncryptOutput( + aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.smithy_to_dafny.aws_cryptography_encryptionsdk_EncryptOutput( smithy_client_response ) ) @@ -52,13 +52,13 @@ def Encrypt(self, input): def Decrypt(self, input): try: smithy_client_request: ( - aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.models.DecryptInput - ) = aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.dafny_to_smithy.aws_cryptography_encryptionsdk_DecryptInput( + aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.models.DecryptInput + ) = aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.dafny_to_smithy.aws_cryptography_encryptionsdk_DecryptInput( input ) smithy_client_response = self._impl.decrypt(smithy_client_request) return Wrappers.Result_Success( - aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.smithy_to_dafny.aws_cryptography_encryptionsdk_DecryptOutput( + aws_encryption_sdk_dafny.smithygenerated.aws_cryptography_encryptionsdk.smithy_to_dafny.aws_cryptography_encryptionsdk_DecryptOutput( smithy_client_response ) ) diff --git a/TestVectors/runtimes/python/test/internaldafny/generated/TestWrappedESDKMain.py b/TestVectors/runtimes/python/test/internaldafny/generated/TestWrappedESDKMain.py index 4e963f632..bc83215e0 100644 --- a/TestVectors/runtimes/python/test/internaldafny/generated/TestWrappedESDKMain.py +++ b/TestVectors/runtimes/python/test/internaldafny/generated/TestWrappedESDKMain.py @@ -18,7 +18,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom import aws_cryptography_primitives.internaldafny.generated.Random as Random import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption @@ -67,6 +67,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang import smithy_dafny_standard_library.internaldafny.generated.Time as Time import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC @@ -90,22 +91,22 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk.internaldafny.generated.Header as Header -import aws_encryption_sdk.internaldafny.generated.Frames as Frames -import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK +import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header +import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames +import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK import aws_encryption_sdk_test_vectors.internaldafny.generated.WrappedESDK as WrappedESDK import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites @@ -257,7 +258,7 @@ def TestNetInvalidTestVectorsExpectFailure(): out1_ = EsdkTestManifests.default__.StartDecryptVectors(EsdkManifestOptions.ManifestOptions_Decrypt((d_0_directory_) + (_dafny.Seq("dafny/TestVectors/test/invalid-Net-4.0.0/")), _dafny.Seq("manifest.json"), AwsCryptographyEncryptionSdkTypes.NetV4__0__0__RetryPolicy_FORBID__RETRY(), Wrappers.Option_None())) d_1_result_ = out1_ _dafny.print(_dafny.string_of(_dafny.Seq("ONLY WORRY IF THE ABOVE TESTS PASSED!!! THESE TESTS ARE SUPPOSED TO FAIL!\n"))) - _dafny.print(_dafny.string_of(_dafny.Seq("IF THE TESTS FAIL OTHER THAN A AES GCM TAG VALIDATION EXCEPTION, CUT AN ISSUE.\n"))) + _dafny.print(_dafny.string_of(_dafny.Seq("IF THE TESTS FAIL OTHER THAN A `AES GCM TAG VALIDATION EXCEPTION` or `AES Decrypt : gather Unspecified`, CUT AN ISSUE.\n"))) _dafny.print(_dafny.string_of(_dafny.Seq("IF THE TESTS ALL FAIL IT MEANS THE TEST PASSED!"))) if not((d_1_result_).is_Failure): raise _dafny.HaltException("dafny/TestVectors/test/RunMain.dfy(65,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) diff --git a/TestVectors/runtimes/python/test/internaldafny/generated/module_.py b/TestVectors/runtimes/python/test/internaldafny/generated/module_.py index 2e8b29492..ad98d7316 100644 --- a/TestVectors/runtimes/python/test/internaldafny/generated/module_.py +++ b/TestVectors/runtimes/python/test/internaldafny/generated/module_.py @@ -18,7 +18,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import aws_encryption_sdk.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes +import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom import aws_cryptography_primitives.internaldafny.generated.Random as Random import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption @@ -67,6 +67,7 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries +import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang import smithy_dafny_standard_library.internaldafny.generated.Time as Time import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC @@ -90,22 +91,22 @@ import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import aws_encryption_sdk.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk.internaldafny.generated.Header as Header -import aws_encryption_sdk.internaldafny.generated.Frames as Frames -import aws_encryption_sdk.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk.internaldafny.generated.ESDK as ESDK +import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes +import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys +import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody +import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth +import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header +import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames +import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody +import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation +import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers +import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations +import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK import aws_encryption_sdk_test_vectors.internaldafny.generated.WrappedESDK as WrappedESDK import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites From 817e3f21d31f6782f7cfbf69d05e8e08c527cbe4 Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Fri, 14 Feb 2025 13:13:50 -0800 Subject: [PATCH 33/50] m --- project.properties | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/project.properties b/project.properties index 44810c894..2bba2eec8 100644 --- a/project.properties +++ b/project.properties @@ -1,8 +1,8 @@ # This file stores the top level dafny version information. # All elements of the project need to agree on this version. -dafnyVersion=4.9.0 -dafnyVerifyVersion=4.9.0 -dafnyFormatVersion=4.9.0 +dafnyVersion=4.9.1 +dafnyVerifyVersion=4.9.1 +dafnyFormatVersion=4.9.1 projectJavaVersion=4.1.0 mplDependencyJavaVersion=1.9.0-SNAPSHOT dafnyRuntimeJavaVersion=4.9.0 From e6a30d65483aee5909caa482a1ce2fdf8f9bdfbb Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Fri, 14 Feb 2025 13:20:35 -0800 Subject: [PATCH 34/50] m --- project.properties | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/project.properties b/project.properties index 2bba2eec8..409fad30f 100644 --- a/project.properties +++ b/project.properties @@ -1,8 +1,8 @@ # This file stores the top level dafny version information. # All elements of the project need to agree on this version. -dafnyVersion=4.9.1 -dafnyVerifyVersion=4.9.1 -dafnyFormatVersion=4.9.1 +dafnyVersion=4.10.0 +dafnyVerifyVersion=4.10.0 +dafnyFormatVersion=4.10.0 projectJavaVersion=4.1.0 mplDependencyJavaVersion=1.9.0-SNAPSHOT dafnyRuntimeJavaVersion=4.9.0 From 9f4b2fc344b6d715a2adb40c22e8c510117c6f83 Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Fri, 14 Feb 2025 13:45:07 -0800 Subject: [PATCH 35/50] m --- .../library_interop_test_vectors.yml | 36 +++++++++++-------- project.properties | 6 ++-- 2 files changed, 25 insertions(+), 17 deletions(-) diff --git a/.github/workflows/library_interop_test_vectors.yml b/.github/workflows/library_interop_test_vectors.yml index 117c18e5b..fc32504c9 100644 --- a/.github/workflows/library_interop_test_vectors.yml +++ b/.github/workflows/library_interop_test_vectors.yml @@ -227,7 +227,7 @@ jobs: os: [ # https://taskei.amazon.dev/tasks/CrypTool-5283 # windows-latest, - ubuntu-latest, + ubuntu-22.04, macos-13, ] encrypting_language: [java, net, rust, go, python] @@ -289,27 +289,35 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 with: components: rustfmt - # TODO - uncomment this after Rust formatter works - # - name: Rustfmt Check - # uses: actions-rust-lang/rustfmt@v1 - # TODO: Remove this after the formatting in Rust starts working - - name: smithy-dafny Rust hacks + - name: Setup Rust Toolchain for GitHub CI if: matrix.decrypting_language == 'rust' - shell: bash + uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 + with: + components: rustfmt + + - name: Setup Go + uses: actions/setup-go@v5 + with: + go-version: "1.23" + + - name: Install Go imports run: | - if [ "$RUNNER_OS" == "macOS" ]; then - sed -i '' 's|rustfmt --edition 2021 runtimes/rust/src/implementation_from_dafny.rs|#&|' mpl/smithy-dafny/SmithyDafnyMakefile.mk - else - sed -i 's|rustfmt --edition 2021 runtimes/rust/src/implementation_from_dafny.rs|#&|' mpl/smithy-dafny/SmithyDafnyMakefile.mk - fi + go install golang.org/x/tools/cmd/goimports@latest - name: Setup NASM for Windows in Rust (aws-lc-sys) if: matrix.decrypting_language == 'rust' && matrix.os == 'windows-latest' uses: ilammy/setup-nasm@v1 - - name: Setup Dafny - uses: dafny-lang/setup-dafny-action@v1.6.1 + - name: Setup Dafny Rust + if: matrix.decrypting_language == 'rust' + uses: dafny-lang/setup-dafny-action@v1.8.0 + with: + dafny-version: nightly-2025-01-30-7db1e5f + + - name: Setup Dafny Not Rust + if: matrix.decrypting_language != 'rust' + uses: dafny-lang/setup-dafny-action@v1.8.0 with: dafny-version: ${{ inputs.dafny }} diff --git a/project.properties b/project.properties index 409fad30f..44810c894 100644 --- a/project.properties +++ b/project.properties @@ -1,8 +1,8 @@ # This file stores the top level dafny version information. # All elements of the project need to agree on this version. -dafnyVersion=4.10.0 -dafnyVerifyVersion=4.10.0 -dafnyFormatVersion=4.10.0 +dafnyVersion=4.9.0 +dafnyVerifyVersion=4.9.0 +dafnyFormatVersion=4.9.0 projectJavaVersion=4.1.0 mplDependencyJavaVersion=1.9.0-SNAPSHOT dafnyRuntimeJavaVersion=4.9.0 From 43b529723e71c769ba0f1d916163e0e31a12f958 Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Fri, 14 Feb 2025 13:47:12 -0800 Subject: [PATCH 36/50] m --- .../workflows/library_interop_test_vectors.yml | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/.github/workflows/library_interop_test_vectors.yml b/.github/workflows/library_interop_test_vectors.yml index fc32504c9..9d908fbad 100644 --- a/.github/workflows/library_interop_test_vectors.yml +++ b/.github/workflows/library_interop_test_vectors.yml @@ -82,11 +82,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 with: components: rustfmt - # TODO - uncomment this after Rust formatter works - # - name: Rustfmt Check - # uses: actions-rust-lang/rustfmt@v1 - # TODO: Remove this after the formatting in Rust starts working - name: Setup Go uses: actions/setup-go@v5 with: @@ -96,16 +92,6 @@ jobs: run: | go install golang.org/x/tools/cmd/goimports@latest - - name: smithy-dafny Rust hacks - if: matrix.language == 'rust' - shell: bash - run: | - if [ "$RUNNER_OS" == "macOS" ]; then - sed -i '' 's|rustfmt --edition 2021 runtimes/rust/src/implementation_from_dafny.rs|#&|' mpl/smithy-dafny/SmithyDafnyMakefile.mk - else - sed -i 's|rustfmt --edition 2021 runtimes/rust/src/implementation_from_dafny.rs|#&|' mpl/smithy-dafny/SmithyDafnyMakefile.mk - fi - - name: Setup NASM for Windows in Rust (aws-lc-sys) if: matrix.language == 'rust' && matrix.os == 'windows-latest' uses: ilammy/setup-nasm@v1 @@ -153,7 +139,6 @@ jobs: if: matrix.language == 'rust' uses: ./.github/actions/install_smithy_dafny_codegen_dependencies - # TODO: Remove this after checking in Rust polymorph code - name: Run make polymorph_rust if: matrix.language == 'rust' shell: bash @@ -352,7 +337,6 @@ jobs: if: matrix.decrypting_language == 'rust' uses: ./.github/actions/install_smithy_dafny_codegen_dependencies - # TODO: Remove this after checking in Rust polymorph code - name: Run make polymorph_rust if: matrix.decrypting_language == 'rust' shell: bash From a87409a1b66d9f61c99860deb4cbe0f0317c8ddf Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Mon, 17 Feb 2025 10:15:28 -0800 Subject: [PATCH 37/50] m --- .github/workflows/library_interop_test_vectors.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.github/workflows/library_interop_test_vectors.yml b/.github/workflows/library_interop_test_vectors.yml index 9d908fbad..60ee7a00a 100644 --- a/.github/workflows/library_interop_test_vectors.yml +++ b/.github/workflows/library_interop_test_vectors.yml @@ -275,12 +275,6 @@ jobs: with: components: rustfmt - - name: Setup Rust Toolchain for GitHub CI - if: matrix.decrypting_language == 'rust' - uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 - with: - components: rustfmt - - name: Setup Go uses: actions/setup-go@v5 with: From f0d58982eae22501431ea8aebcd1450e24b61ea1 Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Mon, 17 Feb 2025 10:57:16 -0800 Subject: [PATCH 38/50] m --- AwsEncryptionSDK/.gitignore | 2 ++ AwsEncryptionSDK/project.properties | 4 ---- AwsEncryptionSDK/runtimes/java/README.md | 10 ++++++++++ AwsEncryptionSDK/runtimes/python/.gitignore | 16 ++++++++++++++++ AwsEncryptionSDK/runtimes/python/README.md | 10 ++++++++++ AwsEncryptionSDK/runtimes/python/pyproject.toml | 14 ++++++++++++++ TestVectors/.gitignore | 1 + TestVectors/runtimes/python/.gitignore | 16 ++++++++++++++++ 8 files changed, 69 insertions(+), 4 deletions(-) delete mode 100644 AwsEncryptionSDK/project.properties create mode 100644 AwsEncryptionSDK/runtimes/java/README.md create mode 100644 AwsEncryptionSDK/runtimes/python/.gitignore create mode 100644 AwsEncryptionSDK/runtimes/python/README.md create mode 100644 TestVectors/runtimes/python/.gitignore diff --git a/AwsEncryptionSDK/.gitignore b/AwsEncryptionSDK/.gitignore index 0b80638c5..3ac5f8296 100644 --- a/AwsEncryptionSDK/.gitignore +++ b/AwsEncryptionSDK/.gitignore @@ -4,6 +4,8 @@ TestsFromDafny.cs ImplementationFromDafny-cs.dtr TestsFromDafny-cs.dtr +*.pyc + bin/ obj/ diff --git a/AwsEncryptionSDK/project.properties b/AwsEncryptionSDK/project.properties deleted file mode 100644 index 55d988fe1..000000000 --- a/AwsEncryptionSDK/project.properties +++ /dev/null @@ -1,4 +0,0 @@ -# This file stores the top level dafny version information. -# All elements of the project need to agree on this version. -dafnyVersion=4.9.0 -dafnyRuntimeJavaVersion=4.9.0 diff --git a/AwsEncryptionSDK/runtimes/java/README.md b/AwsEncryptionSDK/runtimes/java/README.md new file mode 100644 index 000000000..e1f9c0bb1 --- /dev/null +++ b/AwsEncryptionSDK/runtimes/java/README.md @@ -0,0 +1,10 @@ +# Important: Do not use this code. This package is AWS-internal. + +This is NOT the released version of the AWS Encryption SDK for Java. + +You can access the AWS Encryption SDK for Java at: + +* Github: https://github.com/aws/aws-encryption-sdk-java +* Maven: https://mvnrepository.com/artifact/com.amazonaws/aws-encryption-sdk-java + +This is an in-development rewrite of the AWS Encryption SDK for Java and should not be used until development is complete. \ No newline at end of file diff --git a/AwsEncryptionSDK/runtimes/python/.gitignore b/AwsEncryptionSDK/runtimes/python/.gitignore new file mode 100644 index 000000000..9cb72dcab --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/.gitignore @@ -0,0 +1,16 @@ +# Python build artifacts +__pycache__ +**/__pycache__ +*.pyc +src/**.egg-info/ +build +poetry.lock +**/poetry.lock +dist + +# Dafny-generated Python +**/internaldafny/generated/*.py + +# Python test artifacts +.tox +.pytest_cache diff --git a/AwsEncryptionSDK/runtimes/python/README.md b/AwsEncryptionSDK/runtimes/python/README.md new file mode 100644 index 000000000..997ef66ce --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/README.md @@ -0,0 +1,10 @@ +# Important: Do not use this code. This package is AWS-internal. + +This is NOT the released version of the AWS Encryption SDK for Python. + +You can access the AWS Encryption SDK for Python at: + +* Github: https://github.com/aws/aws-encryption-sdk-python +* PyPI: https://pypi.org/project/aws-encryption-sdk/ + +This is an in-development rewrite of the AWS Encryption SDK for Python and should not be used until development is complete. \ No newline at end of file diff --git a/AwsEncryptionSDK/runtimes/python/pyproject.toml b/AwsEncryptionSDK/runtimes/python/pyproject.toml index 7eaf7a806..8184ad6f9 100644 --- a/AwsEncryptionSDK/runtimes/python/pyproject.toml +++ b/AwsEncryptionSDK/runtimes/python/pyproject.toml @@ -1,8 +1,22 @@ [tool.poetry] +# Note: We should not release this library with this name. +# We should release this library under the name `aws-encryption-sdk`. +# But this repo's TestVectors test the released, native version of the ESDK, +# which has this name. +# The names conflict, and issues arise from this. +# When we are ready to release the Dafny-Python ESDK, we should rename this, +# but figure out if/how we can still test the native ESDK in this repo. name = "aws-encryption-sdk-dafny" version = "0.1.0" description = "" authors = ["AWS Crypto Tools "] +# Note: We should not release this library with this package name. +# We should release this library with the package name `aws_encryption_sdk`. +# But this repo's TestVectors test the released, native version of the ESDK, +# which has this name. +# The names conflict, and issues arise from this. +# When we are ready to release the Dafny-Python ESDK, we should rename this, +# but figure out if/how we can still test the native ESDK in this repo. packages = [ { include = "aws_encryption_sdk_dafny", from = "src" } ] diff --git a/TestVectors/.gitignore b/TestVectors/.gitignore index 36fa45628..d9f35c2f4 100644 --- a/TestVectors/.gitignore +++ b/TestVectors/.gitignore @@ -5,6 +5,7 @@ ImplementationFromDafny-cs.dtr TestsFromDafny-cs.dtr **/bin **/obj +*.pyc runtimes/java/dafny runtimes/**/encrypt-manifest.json runtimes/**/decrypt-manifest.json diff --git a/TestVectors/runtimes/python/.gitignore b/TestVectors/runtimes/python/.gitignore new file mode 100644 index 000000000..9cb72dcab --- /dev/null +++ b/TestVectors/runtimes/python/.gitignore @@ -0,0 +1,16 @@ +# Python build artifacts +__pycache__ +**/__pycache__ +*.pyc +src/**.egg-info/ +build +poetry.lock +**/poetry.lock +dist + +# Dafny-generated Python +**/internaldafny/generated/*.py + +# Python test artifacts +.tox +.pytest_cache From ff43673d1fe169f1ab46f9b0c54b3d253e7abeb5 Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Mon, 17 Feb 2025 11:03:16 -0800 Subject: [PATCH 39/50] m --- AwsEncryptionSDK/.gitignore | 2 -- 1 file changed, 2 deletions(-) diff --git a/AwsEncryptionSDK/.gitignore b/AwsEncryptionSDK/.gitignore index 3ac5f8296..0b80638c5 100644 --- a/AwsEncryptionSDK/.gitignore +++ b/AwsEncryptionSDK/.gitignore @@ -4,8 +4,6 @@ TestsFromDafny.cs ImplementationFromDafny-cs.dtr TestsFromDafny-cs.dtr -*.pyc - bin/ obj/ From 83b50ee21f160825aca3d583001a94a91c79cd87 Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Mon, 17 Feb 2025 11:05:07 -0800 Subject: [PATCH 40/50] clean --- AwsEncryptionSDK/runtimes/python/poetry.lock | 430 ------ .../AwsCryptographyEncryptionSdkTypes.py | 431 ------ .../generated/AwsEncryptionSdkOperations.py | 560 ------- .../internaldafny/generated/ESDK.py | 235 --- .../generated/EncryptDecryptHelpers.py | 635 -------- .../generated/EncryptedDataKeys.py | 239 --- .../generated/EncryptionContext.py | 354 ----- .../internaldafny/generated/Frames.py | 347 ----- .../internaldafny/generated/Header.py | 228 --- .../internaldafny/generated/HeaderAuth.py | 212 --- .../internaldafny/generated/HeaderTypes.py | 366 ----- .../internaldafny/generated/KeyDerivation.py | 354 ----- .../internaldafny/generated/MessageBody.py | 528 ------- .../generated/SerializableTypes.py | 259 ---- .../generated/SerializeFunctions.py | 335 ---- .../generated/SharedHeaderFunctions.py | 237 --- .../internaldafny/generated/V1HeaderBody.py | 295 ---- .../internaldafny/generated/V2HeaderBody.py | 213 --- .../internaldafny/generated/__main__.py | 15 - .../internaldafny/generated/module_.py | 194 --- .../__pycache__/__init__.cpython-311.pyc | Bin 223 -> 0 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 211 -> 0 bytes ...dafny_wrapper.cpython-311-pytest-7.4.4.pyc | Bin 1298 -> 0 bytes ...dafny_wrapper.cpython-312-pytest-7.4.4.pyc | Bin 1182 -> 0 bytes .../test/internaldafny/generated/Fixtures.py | 536 ------- .../generated/TestCreateEsdkClient.py | 242 --- .../generated/TestEncryptDecrypt.py | 221 --- .../TestReproducedEncryptionContext.py | 365 ----- .../TestRequiredEncryptionContext.py | 1345 ----------------- .../test/internaldafny/generated/__main__.py | 15 - .../test/internaldafny/generated/module_.py | 394 ----- 31 files changed, 9585 deletions(-) delete mode 100644 AwsEncryptionSDK/runtimes/python/poetry.lock delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/AwsCryptographyEncryptionSdkTypes.py delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/AwsEncryptionSdkOperations.py delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/ESDK.py delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/EncryptDecryptHelpers.py delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/EncryptedDataKeys.py delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/EncryptionContext.py delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/Frames.py delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/Header.py delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/HeaderAuth.py delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/HeaderTypes.py delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/KeyDerivation.py delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/MessageBody.py delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/SerializableTypes.py delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/SerializeFunctions.py delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/SharedHeaderFunctions.py delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/V1HeaderBody.py delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/V2HeaderBody.py delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/__main__.py delete mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/module_.py delete mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/__pycache__/__init__.cpython-311.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/__pycache__/__init__.cpython-312.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/__pycache__/test_dafny_wrapper.cpython-311-pytest-7.4.4.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/__pycache__/test_dafny_wrapper.cpython-312-pytest-7.4.4.pyc delete mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/Fixtures.py delete mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestCreateEsdkClient.py delete mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestEncryptDecrypt.py delete mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestReproducedEncryptionContext.py delete mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestRequiredEncryptionContext.py delete mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__main__.py delete mode 100644 AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/module_.py diff --git a/AwsEncryptionSDK/runtimes/python/poetry.lock b/AwsEncryptionSDK/runtimes/python/poetry.lock deleted file mode 100644 index b01e1b745..000000000 --- a/AwsEncryptionSDK/runtimes/python/poetry.lock +++ /dev/null @@ -1,430 +0,0 @@ -# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. - -[[package]] -name = "aws-cryptographic-material-providers" -version = "1.8.0" -description = "AWS Cryptographic Material Providers Library for Python" -optional = false -python-versions = "^3.11.0" -files = [] -develop = false - -[package.dependencies] -aws-cryptography-internal-dynamodb = {path = "../../../ComAmazonawsDynamodb/runtimes/python"} -aws-cryptography-internal-kms = {path = "../../../ComAmazonawsKms/runtimes/python"} -aws-cryptography-internal-primitives = {path = "../../../AwsCryptographyPrimitives/runtimes/python"} -aws-cryptography-internal-standard-library = {path = "../../../StandardLibrary/runtimes/python"} - -[package.source] -type = "directory" -url = "../../../mpl/AwsCryptographicMaterialProviders/runtimes/python" - -[[package]] -name = "aws-cryptography-internal-dynamodb" -version = "1.8.0" -description = "" -optional = false -python-versions = "^3.11.0" -files = [] -develop = false - -[package.dependencies] -aws-cryptography-internal-standard-library = {path = "../../../StandardLibrary/runtimes/python"} -boto3 = "^1.35.42" - -[package.source] -type = "directory" -url = "../../../mpl/ComAmazonawsDynamodb/runtimes/python" - -[[package]] -name = "aws-cryptography-internal-kms" -version = "1.8.0" -description = "" -optional = false -python-versions = "^3.11.0" -files = [] -develop = false - -[package.dependencies] -aws-cryptography-internal-standard-library = {path = "../../../StandardLibrary/runtimes/python"} -boto3 = "^1.35.42" - -[package.source] -type = "directory" -url = "../../../mpl/ComAmazonawsKms/runtimes/python" - -[[package]] -name = "aws-cryptography-internal-primitives" -version = "1.8.0" -description = "" -optional = false -python-versions = "^3.11.0" -files = [] -develop = false - -[package.dependencies] -aws-cryptography-internal-standard-library = {path = "../../../StandardLibrary/runtimes/python"} -cryptography = "^43.0.1" - -[package.source] -type = "directory" -url = "../../../mpl/AwsCryptographyPrimitives/runtimes/python" - -[[package]] -name = "aws-cryptography-internal-standard-library" -version = "1.8.0" -description = "" -optional = false -python-versions = "^3.11.0" -files = [] -develop = false - -[package.dependencies] -DafnyRuntimePython = "4.8.1.post1" -pytz = "^2023.3.post1" - -[package.source] -type = "directory" -url = "../../../mpl/StandardLibrary/runtimes/python" - -[[package]] -name = "boto3" -version = "1.35.79" -description = "The AWS SDK for Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "boto3-1.35.79-py3-none-any.whl", hash = "sha256:a673b0b6378c9ccbf045a31a43195b175e12aa5c37fb7635fcbfc8f48fb857b3"}, - {file = "boto3-1.35.79.tar.gz", hash = "sha256:1fa26217cd33ded82e55aed4460cd55f7223fa647916aa0d3c5d6828e6ec7135"}, -] - -[package.dependencies] -botocore = ">=1.35.79,<1.36.0" -jmespath = ">=0.7.1,<2.0.0" -s3transfer = ">=0.10.0,<0.11.0" - -[package.extras] -crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] - -[[package]] -name = "botocore" -version = "1.35.79" -description = "Low-level, data-driven core of boto 3." -optional = false -python-versions = ">=3.8" -files = [ - {file = "botocore-1.35.79-py3-none-any.whl", hash = "sha256:e6b10bb9a357e3f5ca2e60f6dd15a85d311b9a476eb21b3c0c2a3b364a2897c8"}, - {file = "botocore-1.35.79.tar.gz", hash = "sha256:245bfdda1b1508539ddd1819c67a8a2cc81780adf0715d3de418d64c4247f346"}, -] - -[package.dependencies] -jmespath = ">=0.7.1,<2.0.0" -python-dateutil = ">=2.1,<3.0.0" -urllib3 = {version = ">=1.25.4,<2.2.0 || >2.2.0,<3", markers = "python_version >= \"3.10\""} - -[package.extras] -crt = ["awscrt (==0.22.0)"] - -[[package]] -name = "cffi" -version = "1.17.1" -description = "Foreign Function Interface for Python calling C code." -optional = false -python-versions = ">=3.8" -files = [ - {file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"}, - {file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"}, - {file = "cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382"}, - {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702"}, - {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3"}, - {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6"}, - {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17"}, - {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8"}, - {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e"}, - {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be"}, - {file = "cffi-1.17.1-cp310-cp310-win32.whl", hash = "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c"}, - {file = "cffi-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15"}, - {file = "cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401"}, - {file = "cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf"}, - {file = "cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4"}, - {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41"}, - {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1"}, - {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6"}, - {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d"}, - {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6"}, - {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f"}, - {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"}, - {file = "cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655"}, - {file = "cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0"}, - {file = "cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4"}, - {file = "cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c"}, - {file = "cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36"}, - {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5"}, - {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff"}, - {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99"}, - {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93"}, - {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3"}, - {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8"}, - {file = "cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65"}, - {file = "cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903"}, - {file = "cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e"}, - {file = "cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2"}, - {file = "cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3"}, - {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683"}, - {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5"}, - {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4"}, - {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd"}, - {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed"}, - {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9"}, - {file = "cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d"}, - {file = "cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a"}, - {file = "cffi-1.17.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b"}, - {file = "cffi-1.17.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964"}, - {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9"}, - {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc"}, - {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c"}, - {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1"}, - {file = "cffi-1.17.1-cp38-cp38-win32.whl", hash = "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8"}, - {file = "cffi-1.17.1-cp38-cp38-win_amd64.whl", hash = "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1"}, - {file = "cffi-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16"}, - {file = "cffi-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36"}, - {file = "cffi-1.17.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8"}, - {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576"}, - {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87"}, - {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0"}, - {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3"}, - {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595"}, - {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a"}, - {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e"}, - {file = "cffi-1.17.1-cp39-cp39-win32.whl", hash = "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7"}, - {file = "cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662"}, - {file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"}, -] - -[package.dependencies] -pycparser = "*" - -[[package]] -name = "colorama" -version = "0.4.6" -description = "Cross-platform colored terminal text." -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" -files = [ - {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, - {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, -] - -[[package]] -name = "cryptography" -version = "43.0.3" -description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." -optional = false -python-versions = ">=3.7" -files = [ - {file = "cryptography-43.0.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:bf7a1932ac4176486eab36a19ed4c0492da5d97123f1406cf15e41b05e787d2e"}, - {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63efa177ff54aec6e1c0aefaa1a241232dcd37413835a9b674b6e3f0ae2bfd3e"}, - {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e1ce50266f4f70bf41a2c6dc4358afadae90e2a1e5342d3c08883df1675374f"}, - {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:443c4a81bb10daed9a8f334365fe52542771f25aedaf889fd323a853ce7377d6"}, - {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:74f57f24754fe349223792466a709f8e0c093205ff0dca557af51072ff47ab18"}, - {file = "cryptography-43.0.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9762ea51a8fc2a88b70cf2995e5675b38d93bf36bd67d91721c309df184f49bd"}, - {file = "cryptography-43.0.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:81ef806b1fef6b06dcebad789f988d3b37ccaee225695cf3e07648eee0fc6b73"}, - {file = "cryptography-43.0.3-cp37-abi3-win32.whl", hash = "sha256:cbeb489927bd7af4aa98d4b261af9a5bc025bd87f0e3547e11584be9e9427be2"}, - {file = "cryptography-43.0.3-cp37-abi3-win_amd64.whl", hash = "sha256:f46304d6f0c6ab8e52770addfa2fc41e6629495548862279641972b6215451cd"}, - {file = "cryptography-43.0.3-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:8ac43ae87929a5982f5948ceda07001ee5e83227fd69cf55b109144938d96984"}, - {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:846da004a5804145a5f441b8530b4bf35afbf7da70f82409f151695b127213d5"}, - {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f996e7268af62598f2fc1204afa98a3b5712313a55c4c9d434aef49cadc91d4"}, - {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:f7b178f11ed3664fd0e995a47ed2b5ff0a12d893e41dd0494f406d1cf555cab7"}, - {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:c2e6fc39c4ab499049df3bdf567f768a723a5e8464816e8f009f121a5a9f4405"}, - {file = "cryptography-43.0.3-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e1be4655c7ef6e1bbe6b5d0403526601323420bcf414598955968c9ef3eb7d16"}, - {file = "cryptography-43.0.3-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:df6b6c6d742395dd77a23ea3728ab62f98379eff8fb61be2744d4679ab678f73"}, - {file = "cryptography-43.0.3-cp39-abi3-win32.whl", hash = "sha256:d56e96520b1020449bbace2b78b603442e7e378a9b3bd68de65c782db1507995"}, - {file = "cryptography-43.0.3-cp39-abi3-win_amd64.whl", hash = "sha256:0c580952eef9bf68c4747774cde7ec1d85a6e61de97281f2dba83c7d2c806362"}, - {file = "cryptography-43.0.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d03b5621a135bffecad2c73e9f4deb1a0f977b9a8ffe6f8e002bf6c9d07b918c"}, - {file = "cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:a2a431ee15799d6db9fe80c82b055bae5a752bef645bba795e8e52687c69efe3"}, - {file = "cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:281c945d0e28c92ca5e5930664c1cefd85efe80e5c0d2bc58dd63383fda29f83"}, - {file = "cryptography-43.0.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:f18c716be16bc1fea8e95def49edf46b82fccaa88587a45f8dc0ff6ab5d8e0a7"}, - {file = "cryptography-43.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:4a02ded6cd4f0a5562a8887df8b3bd14e822a90f97ac5e544c162899bc467664"}, - {file = "cryptography-43.0.3-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:53a583b6637ab4c4e3591a15bc9db855b8d9dee9a669b550f311480acab6eb08"}, - {file = "cryptography-43.0.3-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1ec0bcf7e17c0c5669d881b1cd38c4972fade441b27bda1051665faaa89bdcaa"}, - {file = "cryptography-43.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2ce6fae5bdad59577b44e4dfed356944fbf1d925269114c28be377692643b4ff"}, - {file = "cryptography-43.0.3.tar.gz", hash = "sha256:315b9001266a492a6ff443b61238f956b214dbec9910a081ba5b6646a055a805"}, -] - -[package.dependencies] -cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""} - -[package.extras] -docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"] -docstest = ["pyenchant (>=1.6.11)", "readme-renderer", "sphinxcontrib-spelling (>=4.0.1)"] -nox = ["nox"] -pep8test = ["check-sdist", "click", "mypy", "ruff"] -sdist = ["build"] -ssh = ["bcrypt (>=3.1.5)"] -test = ["certifi", "cryptography-vectors (==43.0.3)", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] -test-randomorder = ["pytest-randomly"] - -[[package]] -name = "dafnyruntimepython" -version = "4.8.1.post1" -description = "Dafny runtime for Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "DafnyRuntimePython-4.8.1.post1-py3-none-any.whl", hash = "sha256:72e5d9e27413301b2ca5fb0be304bca96e63e6ea4e1dbcc5ee5b4bd68a5a415f"}, - {file = "dafnyruntimepython-4.8.1.post1.tar.gz", hash = "sha256:71a4983ae4a55272c7edfef012a5ff36e2db02441f3a3ac0c2bd02cf57324c4c"}, -] - -[[package]] -name = "iniconfig" -version = "2.0.0" -description = "brain-dead simple config-ini parsing" -optional = false -python-versions = ">=3.7" -files = [ - {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, - {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, -] - -[[package]] -name = "jmespath" -version = "1.0.1" -description = "JSON Matching Expressions" -optional = false -python-versions = ">=3.7" -files = [ - {file = "jmespath-1.0.1-py3-none-any.whl", hash = "sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980"}, - {file = "jmespath-1.0.1.tar.gz", hash = "sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe"}, -] - -[[package]] -name = "packaging" -version = "24.2" -description = "Core utilities for Python packages" -optional = false -python-versions = ">=3.8" -files = [ - {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, - {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, -] - -[[package]] -name = "pluggy" -version = "1.5.0" -description = "plugin and hook calling mechanisms for python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, - {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, -] - -[package.extras] -dev = ["pre-commit", "tox"] -testing = ["pytest", "pytest-benchmark"] - -[[package]] -name = "pycparser" -version = "2.22" -description = "C parser in Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, - {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, -] - -[[package]] -name = "pytest" -version = "7.4.4" -description = "pytest: simple powerful testing with Python" -optional = false -python-versions = ">=3.7" -files = [ - {file = "pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8"}, - {file = "pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280"}, -] - -[package.dependencies] -colorama = {version = "*", markers = "sys_platform == \"win32\""} -iniconfig = "*" -packaging = "*" -pluggy = ">=0.12,<2.0" - -[package.extras] -testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] - -[[package]] -name = "python-dateutil" -version = "2.9.0.post0" -description = "Extensions to the standard Python datetime module" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" -files = [ - {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, - {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, -] - -[package.dependencies] -six = ">=1.5" - -[[package]] -name = "pytz" -version = "2023.4" -description = "World timezone definitions, modern and historical" -optional = false -python-versions = "*" -files = [ - {file = "pytz-2023.4-py2.py3-none-any.whl", hash = "sha256:f90ef520d95e7c46951105338d918664ebfd6f1d995bd7d153127ce90efafa6a"}, - {file = "pytz-2023.4.tar.gz", hash = "sha256:31d4583c4ed539cd037956140d695e42c033a19e984bfce9964a3f7d59bc2b40"}, -] - -[[package]] -name = "s3transfer" -version = "0.10.4" -description = "An Amazon S3 Transfer Manager" -optional = false -python-versions = ">=3.8" -files = [ - {file = "s3transfer-0.10.4-py3-none-any.whl", hash = "sha256:244a76a24355363a68164241438de1b72f8781664920260c48465896b712a41e"}, - {file = "s3transfer-0.10.4.tar.gz", hash = "sha256:29edc09801743c21eb5ecbc617a152df41d3c287f67b615f73e5f750583666a7"}, -] - -[package.dependencies] -botocore = ">=1.33.2,<2.0a.0" - -[package.extras] -crt = ["botocore[crt] (>=1.33.2,<2.0a.0)"] - -[[package]] -name = "six" -version = "1.17.0" -description = "Python 2 and 3 compatibility utilities" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" -files = [ - {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, - {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, -] - -[[package]] -name = "urllib3" -version = "2.2.3" -description = "HTTP library with thread-safe connection pooling, file post, and more." -optional = false -python-versions = ">=3.8" -files = [ - {file = "urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac"}, - {file = "urllib3-2.2.3.tar.gz", hash = "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9"}, -] - -[package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] -h2 = ["h2 (>=4,<5)"] -socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] -zstd = ["zstandard (>=0.18.0)"] - -[metadata] -lock-version = "2.0" -python-versions = "^3.11.0" -content-hash = "fa310949fae43a2ef38e7ac3f855cd8a658ec53eda2a7d2f314c5507e0bbadec" diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/AwsCryptographyEncryptionSdkTypes.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/AwsCryptographyEncryptionSdkTypes.py deleted file mode 100644 index 7088f8d69..000000000 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/AwsCryptographyEncryptionSdkTypes.py +++ /dev/null @@ -1,431 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary -import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom -import aws_cryptography_primitives.internaldafny.generated.Random as Random -import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption -import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest -import aws_cryptography_primitives.internaldafny.generated.Digest as Digest -import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC -import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC -import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF -import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF -import aws_cryptography_primitives.internaldafny.generated.Signature as Signature -import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr -import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption -import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives -import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 -import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites -import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials -import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring -import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations -import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort -import smithy_dafny_standard_library.internaldafny.generated.Math as Math -import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq -import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils -import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants -import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID -import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping -import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets -import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext -import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping -import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring -import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms -import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries -import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang -import smithy_dafny_standard_library.internaldafny.generated.Time as Time -import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker -import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC -import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring -import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring -import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM -import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults -import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment -import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM -import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier -import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils -import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders -import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn -import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure -import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable -import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore -import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr -import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode -import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions -import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings -import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO -import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals -import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals -import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul -import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals -import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals -import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod -import smithy_dafny_standard_library.internaldafny.generated.Power as Power -import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm -import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop -import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting -import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings -import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt -import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare -import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall -import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas - -# Module: AwsCryptographyEncryptionSdkTypes - -class default__: - def __init__(self): - pass - - @staticmethod - def IsValid__CountingNumbers(x): - return (1) <= (x) - - @staticmethod - def IsValid__FrameLength(x): - return ((1) <= (x)) and ((x) <= (4294967296)) - - @staticmethod - def IsDummySubsetType(x): - return (0) < (x) - - -class DafnyCallEvent: - @classmethod - def default(cls, default_I, default_O): - return lambda: DafnyCallEvent_DafnyCallEvent(default_I(), default_O()) - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_DafnyCallEvent(self) -> bool: - return isinstance(self, DafnyCallEvent_DafnyCallEvent) - -class DafnyCallEvent_DafnyCallEvent(DafnyCallEvent, NamedTuple('DafnyCallEvent', [('input', Any), ('output', Any)])): - def __dafnystr__(self) -> str: - return f'AwsCryptographyEncryptionSdkTypes.DafnyCallEvent.DafnyCallEvent({_dafny.string_of(self.input)}, {_dafny.string_of(self.output)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, DafnyCallEvent_DafnyCallEvent) and self.input == __o.input and self.output == __o.output - def __hash__(self) -> int: - return super().__hash__() - - -class IAwsEncryptionSdkClientCallHistory: - def __init__(self): - pass - - def __dafnystr__(self) -> str: - return "AwsCryptographyEncryptionSdkTypes.IAwsEncryptionSdkClientCallHistory" - -class IAwsEncryptionSdkClient: - pass - def Encrypt(self, input): - pass - - def Decrypt(self, input): - pass - - -class AwsEncryptionSdkConfig: - @classmethod - def default(cls, ): - return lambda: AwsEncryptionSdkConfig_AwsEncryptionSdkConfig(Wrappers.Option.default()(), Wrappers.Option.default()(), Wrappers.Option.default()()) - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_AwsEncryptionSdkConfig(self) -> bool: - return isinstance(self, AwsEncryptionSdkConfig_AwsEncryptionSdkConfig) - -class AwsEncryptionSdkConfig_AwsEncryptionSdkConfig(AwsEncryptionSdkConfig, NamedTuple('AwsEncryptionSdkConfig', [('commitmentPolicy', Any), ('maxEncryptedDataKeys', Any), ('netV4__0__0__RetryPolicy', Any)])): - def __dafnystr__(self) -> str: - return f'AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig.AwsEncryptionSdkConfig({_dafny.string_of(self.commitmentPolicy)}, {_dafny.string_of(self.maxEncryptedDataKeys)}, {_dafny.string_of(self.netV4__0__0__RetryPolicy)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, AwsEncryptionSdkConfig_AwsEncryptionSdkConfig) and self.commitmentPolicy == __o.commitmentPolicy and self.maxEncryptedDataKeys == __o.maxEncryptedDataKeys and self.netV4__0__0__RetryPolicy == __o.netV4__0__0__RetryPolicy - def __hash__(self) -> int: - return super().__hash__() - - -class CountingNumbers: - def __init__(self): - pass - - @staticmethod - def default(): - return int(0) - def _Is(source__): - d_0_x_: int = source__ - if True: - return default__.IsValid__CountingNumbers(d_0_x_) - return False - -class DecryptInput: - @classmethod - def default(cls, ): - return lambda: DecryptInput_DecryptInput(_dafny.Seq({}), Wrappers.Option.default()(), Wrappers.Option.default()(), Wrappers.Option.default()()) - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_DecryptInput(self) -> bool: - return isinstance(self, DecryptInput_DecryptInput) - -class DecryptInput_DecryptInput(DecryptInput, NamedTuple('DecryptInput', [('ciphertext', Any), ('materialsManager', Any), ('keyring', Any), ('encryptionContext', Any)])): - def __dafnystr__(self) -> str: - return f'AwsCryptographyEncryptionSdkTypes.DecryptInput.DecryptInput({_dafny.string_of(self.ciphertext)}, {_dafny.string_of(self.materialsManager)}, {_dafny.string_of(self.keyring)}, {_dafny.string_of(self.encryptionContext)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, DecryptInput_DecryptInput) and self.ciphertext == __o.ciphertext and self.materialsManager == __o.materialsManager and self.keyring == __o.keyring and self.encryptionContext == __o.encryptionContext - def __hash__(self) -> int: - return super().__hash__() - - -class DecryptOutput: - @classmethod - def default(cls, ): - return lambda: DecryptOutput_DecryptOutput(_dafny.Seq({}), _dafny.Map({}), AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId.default()()) - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_DecryptOutput(self) -> bool: - return isinstance(self, DecryptOutput_DecryptOutput) - -class DecryptOutput_DecryptOutput(DecryptOutput, NamedTuple('DecryptOutput', [('plaintext', Any), ('encryptionContext', Any), ('algorithmSuiteId', Any)])): - def __dafnystr__(self) -> str: - return f'AwsCryptographyEncryptionSdkTypes.DecryptOutput.DecryptOutput({_dafny.string_of(self.plaintext)}, {_dafny.string_of(self.encryptionContext)}, {_dafny.string_of(self.algorithmSuiteId)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, DecryptOutput_DecryptOutput) and self.plaintext == __o.plaintext and self.encryptionContext == __o.encryptionContext and self.algorithmSuiteId == __o.algorithmSuiteId - def __hash__(self) -> int: - return super().__hash__() - - -class EncryptInput: - @classmethod - def default(cls, ): - return lambda: EncryptInput_EncryptInput(_dafny.Seq({}), Wrappers.Option.default()(), Wrappers.Option.default()(), Wrappers.Option.default()(), Wrappers.Option.default()(), Wrappers.Option.default()()) - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_EncryptInput(self) -> bool: - return isinstance(self, EncryptInput_EncryptInput) - -class EncryptInput_EncryptInput(EncryptInput, NamedTuple('EncryptInput', [('plaintext', Any), ('encryptionContext', Any), ('materialsManager', Any), ('keyring', Any), ('algorithmSuiteId', Any), ('frameLength', Any)])): - def __dafnystr__(self) -> str: - return f'AwsCryptographyEncryptionSdkTypes.EncryptInput.EncryptInput({_dafny.string_of(self.plaintext)}, {_dafny.string_of(self.encryptionContext)}, {_dafny.string_of(self.materialsManager)}, {_dafny.string_of(self.keyring)}, {_dafny.string_of(self.algorithmSuiteId)}, {_dafny.string_of(self.frameLength)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, EncryptInput_EncryptInput) and self.plaintext == __o.plaintext and self.encryptionContext == __o.encryptionContext and self.materialsManager == __o.materialsManager and self.keyring == __o.keyring and self.algorithmSuiteId == __o.algorithmSuiteId and self.frameLength == __o.frameLength - def __hash__(self) -> int: - return super().__hash__() - - -class EncryptOutput: - @classmethod - def default(cls, ): - return lambda: EncryptOutput_EncryptOutput(_dafny.Seq({}), _dafny.Map({}), AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId.default()()) - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_EncryptOutput(self) -> bool: - return isinstance(self, EncryptOutput_EncryptOutput) - -class EncryptOutput_EncryptOutput(EncryptOutput, NamedTuple('EncryptOutput', [('ciphertext', Any), ('encryptionContext', Any), ('algorithmSuiteId', Any)])): - def __dafnystr__(self) -> str: - return f'AwsCryptographyEncryptionSdkTypes.EncryptOutput.EncryptOutput({_dafny.string_of(self.ciphertext)}, {_dafny.string_of(self.encryptionContext)}, {_dafny.string_of(self.algorithmSuiteId)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, EncryptOutput_EncryptOutput) and self.ciphertext == __o.ciphertext and self.encryptionContext == __o.encryptionContext and self.algorithmSuiteId == __o.algorithmSuiteId - def __hash__(self) -> int: - return super().__hash__() - - -class FrameLength: - def __init__(self): - pass - - @staticmethod - def default(): - return int(0) - def _Is(source__): - d_1_x_: int = source__ - if True: - return default__.IsValid__FrameLength(d_1_x_) - return False - -class NetV4__0__0__RetryPolicy: - @_dafny.classproperty - def AllSingletonConstructors(cls): - return [NetV4__0__0__RetryPolicy_FORBID__RETRY(), NetV4__0__0__RetryPolicy_ALLOW__RETRY()] - @classmethod - def default(cls, ): - return lambda: NetV4__0__0__RetryPolicy_FORBID__RETRY() - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_FORBID__RETRY(self) -> bool: - return isinstance(self, NetV4__0__0__RetryPolicy_FORBID__RETRY) - @property - def is_ALLOW__RETRY(self) -> bool: - return isinstance(self, NetV4__0__0__RetryPolicy_ALLOW__RETRY) - -class NetV4__0__0__RetryPolicy_FORBID__RETRY(NetV4__0__0__RetryPolicy, NamedTuple('FORBID__RETRY', [])): - def __dafnystr__(self) -> str: - return f'AwsCryptographyEncryptionSdkTypes.NetV4_0_0_RetryPolicy.FORBID_RETRY' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, NetV4__0__0__RetryPolicy_FORBID__RETRY) - def __hash__(self) -> int: - return super().__hash__() - -class NetV4__0__0__RetryPolicy_ALLOW__RETRY(NetV4__0__0__RetryPolicy, NamedTuple('ALLOW__RETRY', [])): - def __dafnystr__(self) -> str: - return f'AwsCryptographyEncryptionSdkTypes.NetV4_0_0_RetryPolicy.ALLOW_RETRY' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, NetV4__0__0__RetryPolicy_ALLOW__RETRY) - def __hash__(self) -> int: - return super().__hash__() - - -class Error: - @classmethod - def default(cls, ): - return lambda: Error_AwsEncryptionSdkException(_dafny.Seq("")) - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_AwsEncryptionSdkException(self) -> bool: - return isinstance(self, Error_AwsEncryptionSdkException) - @property - def is_AwsCryptographyMaterialProviders(self) -> bool: - return isinstance(self, Error_AwsCryptographyMaterialProviders) - @property - def is_AwsCryptographyPrimitives(self) -> bool: - return isinstance(self, Error_AwsCryptographyPrimitives) - @property - def is_CollectionOfErrors(self) -> bool: - return isinstance(self, Error_CollectionOfErrors) - @property - def is_Opaque(self) -> bool: - return isinstance(self, Error_Opaque) - @property - def is_OpaqueWithText(self) -> bool: - return isinstance(self, Error_OpaqueWithText) - -class Error_AwsEncryptionSdkException(Error, NamedTuple('AwsEncryptionSdkException', [('message', Any)])): - def __dafnystr__(self) -> str: - return f'AwsCryptographyEncryptionSdkTypes.Error.AwsEncryptionSdkException({_dafny.string_of(self.message)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, Error_AwsEncryptionSdkException) and self.message == __o.message - def __hash__(self) -> int: - return super().__hash__() - -class Error_AwsCryptographyMaterialProviders(Error, NamedTuple('AwsCryptographyMaterialProviders', [('AwsCryptographyMaterialProviders', Any)])): - def __dafnystr__(self) -> str: - return f'AwsCryptographyEncryptionSdkTypes.Error.AwsCryptographyMaterialProviders({_dafny.string_of(self.AwsCryptographyMaterialProviders)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, Error_AwsCryptographyMaterialProviders) and self.AwsCryptographyMaterialProviders == __o.AwsCryptographyMaterialProviders - def __hash__(self) -> int: - return super().__hash__() - -class Error_AwsCryptographyPrimitives(Error, NamedTuple('AwsCryptographyPrimitives', [('AwsCryptographyPrimitives', Any)])): - def __dafnystr__(self) -> str: - return f'AwsCryptographyEncryptionSdkTypes.Error.AwsCryptographyPrimitives({_dafny.string_of(self.AwsCryptographyPrimitives)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, Error_AwsCryptographyPrimitives) and self.AwsCryptographyPrimitives == __o.AwsCryptographyPrimitives - def __hash__(self) -> int: - return super().__hash__() - -class Error_CollectionOfErrors(Error, NamedTuple('CollectionOfErrors', [('list', Any), ('message', Any)])): - def __dafnystr__(self) -> str: - return f'AwsCryptographyEncryptionSdkTypes.Error.CollectionOfErrors({_dafny.string_of(self.list)}, {_dafny.string_of(self.message)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, Error_CollectionOfErrors) and self.list == __o.list and self.message == __o.message - def __hash__(self) -> int: - return super().__hash__() - -class Error_Opaque(Error, NamedTuple('Opaque', [('obj', Any)])): - def __dafnystr__(self) -> str: - return f'AwsCryptographyEncryptionSdkTypes.Error.Opaque({_dafny.string_of(self.obj)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, Error_Opaque) and self.obj == __o.obj - def __hash__(self) -> int: - return super().__hash__() - -class Error_OpaqueWithText(Error, NamedTuple('OpaqueWithText', [('obj', Any), ('objMessage', Any)])): - def __dafnystr__(self) -> str: - return f'AwsCryptographyEncryptionSdkTypes.Error.OpaqueWithText({_dafny.string_of(self.obj)}, {_dafny.string_of(self.objMessage)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, Error_OpaqueWithText) and self.obj == __o.obj and self.objMessage == __o.objMessage - def __hash__(self) -> int: - return super().__hash__() - - -class OpaqueError: - def __init__(self): - pass - - @staticmethod - def default(): - return Error.default()() - def _Is(source__): - d_2_e_: Error = source__ - return ((d_2_e_).is_Opaque) or ((d_2_e_).is_OpaqueWithText) - -class DummySubsetType: - def __init__(self): - pass - - @staticmethod - def default(): - return 1 - def _Is(source__): - d_3_x_: int = source__ - return default__.IsDummySubsetType(d_3_x_) diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/AwsEncryptionSdkOperations.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/AwsEncryptionSdkOperations.py deleted file mode 100644 index 7fbc690b3..000000000 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/AwsEncryptionSdkOperations.py +++ /dev/null @@ -1,560 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary -import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom -import aws_cryptography_primitives.internaldafny.generated.Random as Random -import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption -import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest -import aws_cryptography_primitives.internaldafny.generated.Digest as Digest -import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC -import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC -import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF -import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF -import aws_cryptography_primitives.internaldafny.generated.Signature as Signature -import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr -import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption -import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives -import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 -import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites -import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials -import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring -import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations -import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort -import smithy_dafny_standard_library.internaldafny.generated.Math as Math -import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq -import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils -import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants -import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID -import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping -import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets -import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext -import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping -import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring -import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms -import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries -import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang -import smithy_dafny_standard_library.internaldafny.generated.Time as Time -import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker -import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC -import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring -import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring -import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM -import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults -import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment -import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM -import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier -import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils -import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders -import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn -import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure -import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable -import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore -import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr -import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode -import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions -import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings -import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO -import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals -import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals -import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul -import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals -import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals -import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod -import smithy_dafny_standard_library.internaldafny.generated.Power as Power -import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm -import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop -import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting -import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings -import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt -import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare -import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall -import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header -import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames -import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers - -# Module: AwsEncryptionSdkOperations - -class default__: - def __init__(self): - pass - - @staticmethod - def Encrypt(config, input): - output: Wrappers.Result = Wrappers.Result.default(AwsCryptographyEncryptionSdkTypes.EncryptOutput.default())() - d_0_valueOrError1_: Wrappers.Result = Wrappers.Result.default(BoundedInts.int64.default)() - if ((input).frameLength).is_Some: - d_1_valueOrError0_ = Wrappers.default__.Need(((0) < (((input).frameLength).value)) and ((((input).frameLength).value) <= (4294967295)), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("FrameLength must be greater than 0 and less than 2^32"))) - if (d_1_valueOrError0_).IsFailure(): - d_0_valueOrError1_ = (d_1_valueOrError0_).PropagateFailure() - elif True: - d_0_valueOrError1_ = Wrappers.Result_Success(((input).frameLength).value) - elif True: - d_0_valueOrError1_ = Wrappers.Result_Success(EncryptDecryptHelpers.default__.DEFAULT__FRAME__LENGTH) - if (d_0_valueOrError1_).IsFailure(): - output = (d_0_valueOrError1_).PropagateFailure() - return output - d_2_frameLength_: int - d_2_frameLength_ = (d_0_valueOrError1_).Extract() - d_3_valueOrError2_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_3_valueOrError2_ = EncryptDecryptHelpers.default__.ValidateEncryptionContext((input).encryptionContext) - if (d_3_valueOrError2_).IsFailure(): - output = (d_3_valueOrError2_).PropagateFailure() - return output - d_4_encryptionContext_: _dafny.Map - if ((input).encryptionContext).is_Some: - d_4_encryptionContext_ = ((input).encryptionContext).value - elif True: - d_4_encryptionContext_ = _dafny.Map({}) - d_5_valueOrError3_: Wrappers.Result = None - out0_: Wrappers.Result - out0_ = EncryptDecryptHelpers.default__.CreateCmmFromInput((input).materialsManager, (input).keyring) - d_5_valueOrError3_ = out0_ - if (d_5_valueOrError3_).IsFailure(): - output = (d_5_valueOrError3_).PropagateFailure() - return output - d_6_cmm_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager - d_6_cmm_ = (d_5_valueOrError3_).Extract() - d_7_algorithmSuiteId_: Wrappers.Option - if ((input).algorithmSuiteId).is_Some: - d_7_algorithmSuiteId_ = Wrappers.Option_Some(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId_ESDK(((input).algorithmSuiteId).value)) - elif True: - d_7_algorithmSuiteId_ = Wrappers.Option_None() - if (d_7_algorithmSuiteId_).is_Some: - d_8_valueOrError4_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() - def lambda0_(d_9_e_): - return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyMaterialProviders(d_9_e_) - - d_8_valueOrError4_ = (((config).mpl).ValidateCommitmentPolicyOnEncrypt(AwsCryptographyMaterialProvidersTypes.ValidateCommitmentPolicyOnEncryptInput_ValidateCommitmentPolicyOnEncryptInput((d_7_algorithmSuiteId_).value, AwsCryptographyMaterialProvidersTypes.CommitmentPolicy_ESDK((config).commitmentPolicy)))).MapFailure(lambda0_) - if (d_8_valueOrError4_).IsFailure(): - output = (d_8_valueOrError4_).PropagateFailure() - return output - d_10___v0_: tuple - d_10___v0_ = (d_8_valueOrError4_).Extract() - d_11_valueOrError5_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_11_valueOrError5_ = Wrappers.default__.Need((len((input).plaintext)) < (StandardLibrary_UInt.default__.INT64__MAX__LIMIT), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Plaintext exceeds maximum allowed size"))) - if (d_11_valueOrError5_).IsFailure(): - output = (d_11_valueOrError5_).PropagateFailure() - return output - d_12_valueOrError6_: Wrappers.Result = None - out1_: Wrappers.Result - out1_ = EncryptDecryptHelpers.default__.GetEncryptionMaterials(d_6_cmm_, d_7_algorithmSuiteId_, d_4_encryptionContext_, len((input).plaintext), (config).commitmentPolicy, (config).mpl) - d_12_valueOrError6_ = out1_ - if (d_12_valueOrError6_).IsFailure(): - output = (d_12_valueOrError6_).PropagateFailure() - return output - d_13_materials_: AwsCryptographyMaterialProvidersTypes.EncryptionMaterials - d_13_materials_ = (d_12_valueOrError6_).Extract() - d_14_valueOrError7_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_14_valueOrError7_ = Wrappers.default__.Need((((d_13_materials_).algorithmSuite).id).is_ESDK, AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Encryption materials contain incompatible algorithm suite for the AWS Encryption SDK."))) - if (d_14_valueOrError7_).IsFailure(): - output = (d_14_valueOrError7_).PropagateFailure() - return output - d_15_valueOrError8_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_15_valueOrError8_ = EncryptDecryptHelpers.default__.ValidateMaxEncryptedDataKeys((config).maxEncryptedDataKeys, (d_13_materials_).encryptedDataKeys) - if (d_15_valueOrError8_).IsFailure(): - output = (d_15_valueOrError8_).PropagateFailure() - return output - d_16_encryptedDataKeys_: _dafny.Seq - d_16_encryptedDataKeys_ = (d_13_materials_).encryptedDataKeys - d_17_valueOrError9_: Wrappers.Result = None - out2_: Wrappers.Result - out2_ = EncryptDecryptHelpers.default__.GenerateMessageId((d_13_materials_).algorithmSuite, (config).crypto) - d_17_valueOrError9_ = out2_ - if (d_17_valueOrError9_).IsFailure(): - output = (d_17_valueOrError9_).PropagateFailure() - return output - d_18_messageId_: _dafny.Seq - d_18_messageId_ = (d_17_valueOrError9_).Extract() - d_19_maybeDerivedDataKeys_: Wrappers.Result - out3_: Wrappers.Result - out3_ = KeyDerivation.default__.DeriveKeys(d_18_messageId_, ((d_13_materials_).plaintextDataKey).value, (d_13_materials_).algorithmSuite, (config).crypto, (config).netV4__0__0__RetryPolicy, False) - d_19_maybeDerivedDataKeys_ = out3_ - d_20_valueOrError10_: Wrappers.Result = Wrappers.Result.default(KeyDerivation.ExpandedKeyMaterial.default())() - def lambda1_(d_21_e_): - return AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Failed to derive data keys")) - - d_20_valueOrError10_ = (d_19_maybeDerivedDataKeys_).MapFailure(lambda1_) - if (d_20_valueOrError10_).IsFailure(): - output = (d_20_valueOrError10_).PropagateFailure() - return output - d_22_derivedDataKeys_: KeyDerivation.ExpandedKeyMaterial - d_22_derivedDataKeys_ = (d_20_valueOrError10_).Extract() - d_23_maybeHeader_: Wrappers.Result - out4_: Wrappers.Result - out4_ = EncryptDecryptHelpers.default__.BuildHeaderForEncrypt(d_18_messageId_, (d_13_materials_).algorithmSuite, (d_13_materials_).encryptionContext, (d_13_materials_).requiredEncryptionContextKeys, d_16_encryptedDataKeys_, d_2_frameLength_, d_22_derivedDataKeys_, (config).crypto) - d_23_maybeHeader_ = out4_ - d_24_valueOrError11_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_24_valueOrError11_ = Wrappers.default__.Need((d_23_maybeHeader_).is_Success, AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Failed to build header body"))) - if (d_24_valueOrError11_).IsFailure(): - output = (d_24_valueOrError11_).PropagateFailure() - return output - d_25_header_: Header.HeaderInfo - d_25_header_ = (d_23_maybeHeader_).value - d_26_valueOrError12_: Wrappers.Result = None - out5_: Wrappers.Result - out5_ = MessageBody.default__.EncryptMessageBody((input).plaintext, d_25_header_, (d_22_derivedDataKeys_).dataKey, (config).crypto) - d_26_valueOrError12_ = out5_ - if (d_26_valueOrError12_).IsFailure(): - output = (d_26_valueOrError12_).PropagateFailure() - return output - d_27_framedMessage_: MessageBody.FramedMessageBody - d_27_framedMessage_ = (d_26_valueOrError12_).Extract() - d_28_maybeSignedMessage_: Wrappers.Result - out6_: Wrappers.Result - out6_ = default__.SignAndSerializeMessage(config, d_25_header_, d_27_framedMessage_, d_13_materials_) - d_28_maybeSignedMessage_ = out6_ - output = d_28_maybeSignedMessage_ - return output - - @staticmethod - def SignAndSerializeMessage(config, header, framedMessage, materials): - output: Wrappers.Result = Wrappers.Result.default(AwsCryptographyEncryptionSdkTypes.EncryptOutput.default())() - if (((((framedMessage).finalFrame).header).suite).signature).is_ECDSA: - d_0_valueOrError0_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_0_valueOrError0_ = EncryptDecryptHelpers.default__.SerializeMessageWithoutSignature(framedMessage, (materials).algorithmSuite) - if (d_0_valueOrError0_).IsFailure(): - output = (d_0_valueOrError0_).PropagateFailure() - return output - d_1_msg_: _dafny.Seq - d_1_msg_ = (d_0_valueOrError0_).Extract() - d_2_ecdsaParams_: AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm - d_2_ecdsaParams_ = ((((((framedMessage).finalFrame).header).suite).signature).ECDSA).curve - d_3_valueOrError1_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_3_valueOrError1_ = Wrappers.default__.Need(((materials).signingKey).is_Some, AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Missing signing key."))) - if (d_3_valueOrError1_).IsFailure(): - output = (d_3_valueOrError1_).PropagateFailure() - return output - d_4_maybeBytes_: Wrappers.Result - out0_: Wrappers.Result - out0_ = ((config).crypto).ECDSASign(AwsCryptographyPrimitivesTypes.ECDSASignInput_ECDSASignInput(d_2_ecdsaParams_, ((materials).signingKey).value, d_1_msg_)) - d_4_maybeBytes_ = out0_ - d_5_valueOrError2_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - def lambda0_(d_6_e_): - return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyPrimitives(d_6_e_) - - d_5_valueOrError2_ = (d_4_maybeBytes_).MapFailure(lambda0_) - if (d_5_valueOrError2_).IsFailure(): - output = (d_5_valueOrError2_).PropagateFailure() - return output - d_7_bytes_: _dafny.Seq - d_7_bytes_ = (d_5_valueOrError2_).Extract() - d_8_valueOrError3_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_8_valueOrError3_ = Wrappers.default__.Need((len(d_7_bytes_)) < (StandardLibrary_UInt.default__.UINT16__LIMIT), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Length of signature bytes is larger than the uint16 limit."))) - if (d_8_valueOrError3_).IsFailure(): - output = (d_8_valueOrError3_).PropagateFailure() - return output - d_9_signature_: _dafny.Seq - d_9_signature_ = (StandardLibrary_UInt.default__.UInt16ToSeq(len(d_7_bytes_))) + (d_7_bytes_) - d_1_msg_ = (d_1_msg_) + (d_9_signature_) - output = Wrappers.Result_Success(AwsCryptographyEncryptionSdkTypes.EncryptOutput_EncryptOutput(d_1_msg_, (header).encryptionContext, (((header).suite).id).ESDK)) - return output - elif True: - d_10_valueOrError4_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_10_valueOrError4_ = EncryptDecryptHelpers.default__.SerializeMessageWithoutSignature(framedMessage, (materials).algorithmSuite) - if (d_10_valueOrError4_).IsFailure(): - output = (d_10_valueOrError4_).PropagateFailure() - return output - d_11_msg_: _dafny.Seq - d_11_msg_ = (d_10_valueOrError4_).Extract() - output = Wrappers.Result_Success(AwsCryptographyEncryptionSdkTypes.EncryptOutput_EncryptOutput(d_11_msg_, (header).encryptionContext, (((header).suite).id).ESDK)) - return output - return output - - @staticmethod - def Decrypt(config, input): - output: Wrappers.Result = Wrappers.Result.default(AwsCryptographyEncryptionSdkTypes.DecryptOutput.default())() - d_0_valueOrError0_: Wrappers.Result = None - out0_: Wrappers.Result - out0_ = EncryptDecryptHelpers.default__.CreateCmmFromInput((input).materialsManager, (input).keyring) - d_0_valueOrError0_ = out0_ - if (d_0_valueOrError0_).IsFailure(): - output = (d_0_valueOrError0_).PropagateFailure() - return output - d_1_cmm_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager - d_1_cmm_ = (d_0_valueOrError0_).Extract() - d_2_buffer_: SerializeFunctions.ReadableBuffer - d_2_buffer_ = SerializeFunctions.ReadableBuffer_ReadableBuffer((input).ciphertext, 0) - out1_: Wrappers.Result - out1_ = default__.InternalDecrypt(config, d_1_cmm_, d_2_buffer_, (input).encryptionContext) - output = out1_ - return output - - @staticmethod - def InternalDecrypt(config, cmm, buffer, inputEncryptionContext): - output: Wrappers.Result = Wrappers.Result.default(AwsCryptographyEncryptionSdkTypes.DecryptOutput.default())() - d_0_v4Retry_: bool - d_0_v4Retry_ = False - d_1_valueOrError0_: Wrappers.Result = None - d_1_valueOrError0_ = (Header.default__.ReadHeaderBody(buffer, (config).maxEncryptedDataKeys, (config).mpl)).MapFailure(EncryptDecryptHelpers.default__.MapSerializeFailure(_dafny.Seq(": ReadHeaderBody"))) - if (d_1_valueOrError0_).IsFailure(): - output = (d_1_valueOrError0_).PropagateFailure() - return output - d_2_headerBody_: SerializeFunctions.SuccessfulRead - d_2_headerBody_ = (d_1_valueOrError0_).Extract() - d_3_rawHeader_: _dafny.Seq - d_3_rawHeader_ = _dafny.Seq(((buffer).bytes)[(buffer).start:((d_2_headerBody_).tail).start:]) - d_4_algorithmSuite_: AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo - d_4_algorithmSuite_ = ((d_2_headerBody_).data).algorithmSuite - d_5_valueOrError1_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() - def lambda0_(d_6_e_): - return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyMaterialProviders(d_6_e_) - - d_5_valueOrError1_ = (((config).mpl).ValidateCommitmentPolicyOnDecrypt(AwsCryptographyMaterialProvidersTypes.ValidateCommitmentPolicyOnDecryptInput_ValidateCommitmentPolicyOnDecryptInput((d_4_algorithmSuite_).id, AwsCryptographyMaterialProvidersTypes.CommitmentPolicy_ESDK((config).commitmentPolicy)))).MapFailure(lambda0_) - if (d_5_valueOrError1_).IsFailure(): - output = (d_5_valueOrError1_).PropagateFailure() - return output - d_7___v1_: tuple - d_7___v1_ = (d_5_valueOrError1_).Extract() - d_8_valueOrError2_: Wrappers.Result = None - out0_: Wrappers.Result - out0_ = EncryptDecryptHelpers.default__.GetDecryptionMaterials(cmm, (d_4_algorithmSuite_).id, (d_2_headerBody_).data, inputEncryptionContext, (config).commitmentPolicy, (config).mpl) - d_8_valueOrError2_ = out0_ - if (d_8_valueOrError2_).IsFailure(): - output = (d_8_valueOrError2_).PropagateFailure() - return output - d_9_decMat_: AwsCryptographyMaterialProvidersTypes.DecryptionMaterials - d_9_decMat_ = (d_8_valueOrError2_).Extract() - d_10_suite_: AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo - d_10_suite_ = (d_9_decMat_).algorithmSuite - d_11_valueOrError3_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_11_valueOrError3_ = Wrappers.default__.Need((d_10_suite_) == (d_4_algorithmSuite_), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Stored header algorithm suite does not match decryption algorithm suite."))) - if (d_11_valueOrError3_).IsFailure(): - output = (d_11_valueOrError3_).PropagateFailure() - return output - d_12_valueOrError4_: Wrappers.Result = None - d_12_valueOrError4_ = (HeaderAuth.default__.ReadHeaderAuthTag((d_2_headerBody_).tail, d_10_suite_)).MapFailure(EncryptDecryptHelpers.default__.MapSerializeFailure(_dafny.Seq(": ReadHeaderAuthTag"))) - if (d_12_valueOrError4_).IsFailure(): - output = (d_12_valueOrError4_).PropagateFailure() - return output - d_13_headerAuth_: SerializeFunctions.SuccessfulRead - d_13_headerAuth_ = (d_12_valueOrError4_).Extract() - d_14_maybeDerivedDataKeys_: Wrappers.Result - out1_: Wrappers.Result - out1_ = KeyDerivation.default__.DeriveKeys(((d_2_headerBody_).data).messageId, ((d_9_decMat_).plaintextDataKey).value, d_10_suite_, (config).crypto, (config).netV4__0__0__RetryPolicy, False) - d_14_maybeDerivedDataKeys_ = out1_ - d_15_valueOrError5_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_15_valueOrError5_ = Wrappers.default__.Need((d_14_maybeDerivedDataKeys_).is_Success, AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Failed to derive data keys"))) - if (d_15_valueOrError5_).IsFailure(): - output = (d_15_valueOrError5_).PropagateFailure() - return output - d_16_derivedDataKeys_: KeyDerivation.ExpandedKeyMaterial - d_16_derivedDataKeys_ = (d_14_maybeDerivedDataKeys_).value - d_17_valueOrError6_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_17_valueOrError6_ = Wrappers.default__.Need(Header.default__.HeaderVersionSupportsCommitment_q(d_10_suite_, (d_2_headerBody_).data), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Invalid commitment values found in header body"))) - if (d_17_valueOrError6_).IsFailure(): - output = (d_17_valueOrError6_).PropagateFailure() - return output - if ((d_10_suite_).commitment).is_HKDF: - d_18_valueOrError7_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() - out2_: Wrappers.Result - out2_ = EncryptDecryptHelpers.default__.ValidateSuiteData(d_10_suite_, (d_2_headerBody_).data, ((d_16_derivedDataKeys_).commitmentKey).value) - d_18_valueOrError7_ = out2_ - if (d_18_valueOrError7_).IsFailure(): - output = (d_18_valueOrError7_).PropagateFailure() - return output - d_19___v2_: tuple - d_19___v2_ = (d_18_valueOrError7_).Extract() - d_20_headerEncryptionContext_: _dafny.Map - d_20_headerEncryptionContext_ = EncryptionContext.default__.GetEncryptionContext(((d_2_headerBody_).data).encryptionContext) - d_21_encryptionContextToOnlyAuthenticate_: _dafny.Map - d_21_encryptionContextToOnlyAuthenticate_ = default__.buildEncryptionContextToOnlyAuthenticate(d_9_decMat_) - d_22_canonicalReqEncryptionContext_: _dafny.Seq - d_22_canonicalReqEncryptionContext_ = EncryptionContext.default__.GetCanonicalEncryptionContext(d_21_encryptionContextToOnlyAuthenticate_) - d_23_serializedReqEncryptionContext_: _dafny.Seq - d_23_serializedReqEncryptionContext_ = EncryptionContext.default__.WriteEmptyEcOrWriteAAD(d_22_canonicalReqEncryptionContext_) - d_24_maybeHeaderAuth_: Wrappers.Result - out3_: Wrappers.Result - out3_ = ((config).crypto).AESDecrypt(AwsCryptographyPrimitivesTypes.AESDecryptInput_AESDecryptInput(((d_10_suite_).encrypt).AES__GCM, (d_16_derivedDataKeys_).dataKey, _dafny.Seq([]), ((d_13_headerAuth_).data).headerAuthTag, ((d_13_headerAuth_).data).headerIv, (d_3_rawHeader_) + (d_23_serializedReqEncryptionContext_))) - d_24_maybeHeaderAuth_ = out3_ - if (((d_24_maybeHeaderAuth_).is_Failure) and (((config).netV4__0__0__RetryPolicy) == (AwsCryptographyEncryptionSdkTypes.NetV4__0__0__RetryPolicy_ALLOW__RETRY()))) and ((d_0_v4Retry_) == (False)): - d_0_v4Retry_ = True - out4_: Wrappers.Result - out4_ = KeyDerivation.default__.DeriveKeys(((d_2_headerBody_).data).messageId, ((d_9_decMat_).plaintextDataKey).value, d_10_suite_, (config).crypto, (config).netV4__0__0__RetryPolicy, True) - d_14_maybeDerivedDataKeys_ = out4_ - d_25_valueOrError8_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_25_valueOrError8_ = Wrappers.default__.Need((d_14_maybeDerivedDataKeys_).is_Success, AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Failed to derive data keys"))) - if (d_25_valueOrError8_).IsFailure(): - output = (d_25_valueOrError8_).PropagateFailure() - return output - d_16_derivedDataKeys_ = (d_14_maybeDerivedDataKeys_).value - d_23_serializedReqEncryptionContext_ = EncryptionContext.default__.WriteAAD(d_22_canonicalReqEncryptionContext_) - out5_: Wrappers.Result - out5_ = ((config).crypto).AESDecrypt(AwsCryptographyPrimitivesTypes.AESDecryptInput_AESDecryptInput(((d_10_suite_).encrypt).AES__GCM, (d_16_derivedDataKeys_).dataKey, _dafny.Seq([]), ((d_13_headerAuth_).data).headerAuthTag, ((d_13_headerAuth_).data).headerIv, (d_3_rawHeader_) + (d_23_serializedReqEncryptionContext_))) - d_24_maybeHeaderAuth_ = out5_ - d_26_valueOrError9_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - def lambda1_(d_27_e_): - return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyPrimitives(d_27_e_) - - d_26_valueOrError9_ = (d_24_maybeHeaderAuth_).MapFailure(lambda1_) - if (d_26_valueOrError9_).IsFailure(): - output = (d_26_valueOrError9_).PropagateFailure() - return output - d_28___v3_: _dafny.Seq - d_28___v3_ = (d_26_valueOrError9_).Extract() - d_29_header_: Header.HeaderInfo - d_29_header_ = Header.HeaderInfo_HeaderInfo((d_2_headerBody_).data, d_3_rawHeader_, d_20_headerEncryptionContext_, d_10_suite_, (d_13_headerAuth_).data) - d_30_key_: _dafny.Seq - d_30_key_ = (d_16_derivedDataKeys_).dataKey - d_31_plaintext_: _dafny.Seq = _dafny.Seq({}) - d_32_messageBodyTail_: SerializeFunctions.ReadableBuffer = SerializeFunctions.ReadableBuffer.default()() - source0_ = ((d_29_header_).body).contentType - with _dafny.label("match0"): - if True: - if source0_.is_NonFramed: - d_33_valueOrError10_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple(_dafny.Seq, SerializeFunctions.ReadableBuffer.default()))() - out6_: Wrappers.Result - out6_ = EncryptDecryptHelpers.default__.ReadAndDecryptNonFramedMessageBody((d_13_headerAuth_).tail, d_29_header_, d_30_key_, (config).crypto) - d_33_valueOrError10_ = out6_ - if (d_33_valueOrError10_).IsFailure(): - output = (d_33_valueOrError10_).PropagateFailure() - return output - d_34_decryptRes_: tuple - d_34_decryptRes_ = (d_33_valueOrError10_).Extract() - d_31_plaintext_ = (d_34_decryptRes_)[0] - d_32_messageBodyTail_ = (d_34_decryptRes_)[1] - raise _dafny.Break("match0") - if True: - d_35_valueOrError11_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple(_dafny.Seq, SerializeFunctions.ReadableBuffer.default()))() - out7_: Wrappers.Result - out7_ = EncryptDecryptHelpers.default__.ReadAndDecryptFramedMessageBody((d_13_headerAuth_).tail, d_29_header_, d_30_key_, (config).crypto) - d_35_valueOrError11_ = out7_ - if (d_35_valueOrError11_).IsFailure(): - output = (d_35_valueOrError11_).PropagateFailure() - return output - d_36_decryptRes_: tuple - d_36_decryptRes_ = (d_35_valueOrError11_).Extract() - d_31_plaintext_ = (d_36_decryptRes_)[0] - d_32_messageBodyTail_ = (d_36_decryptRes_)[1] - pass - d_37_valueOrError12_: Wrappers.Result = Wrappers.Result.default(SerializeFunctions.ReadableBuffer.default())() - out8_: Wrappers.Result - out8_ = EncryptDecryptHelpers.default__.VerifySignature(d_32_messageBodyTail_, _dafny.Seq(((d_32_messageBodyTail_).bytes)[(buffer).start:(d_32_messageBodyTail_).start:]), d_9_decMat_, (config).crypto) - d_37_valueOrError12_ = out8_ - if (d_37_valueOrError12_).IsFailure(): - output = (d_37_valueOrError12_).PropagateFailure() - return output - d_38_signature_: SerializeFunctions.ReadableBuffer - d_38_signature_ = (d_37_valueOrError12_).Extract() - d_39_valueOrError13_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_39_valueOrError13_ = Wrappers.default__.Need(((d_38_signature_).start) == (len((d_38_signature_).bytes)), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Data after message footer."))) - if (d_39_valueOrError13_).IsFailure(): - output = (d_39_valueOrError13_).PropagateFailure() - return output - output = Wrappers.Result_Success(AwsCryptographyEncryptionSdkTypes.DecryptOutput_DecryptOutput(d_31_plaintext_, ((d_29_header_).encryptionContext) | (d_21_encryptionContextToOnlyAuthenticate_), (((d_29_header_).suite).id).ESDK)) - return output - - @staticmethod - def buildEncryptionContextToOnlyAuthenticate(decMat): - def iife0_(): - coll0_ = _dafny.Map() - compr_0_: _dafny.Seq - for compr_0_ in ((decMat).encryptionContext).keys.Elements: - d_0_k_: _dafny.Seq = compr_0_ - if UTF8.ValidUTF8Bytes._Is(d_0_k_): - if ((d_0_k_) in ((decMat).encryptionContext)) and ((d_0_k_) in ((decMat).requiredEncryptionContextKeys)): - coll0_[d_0_k_] = ((decMat).encryptionContext)[d_0_k_] - return _dafny.Map(coll0_) - return iife0_() - - - -class Config: - @classmethod - def default(cls, ): - return lambda: Config_Config(None, None, AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy.default()(), Wrappers.Option.default()(), AwsCryptographyEncryptionSdkTypes.NetV4__0__0__RetryPolicy.default()()) - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_Config(self) -> bool: - return isinstance(self, Config_Config) - -class Config_Config(Config, NamedTuple('Config', [('crypto', Any), ('mpl', Any), ('commitmentPolicy', Any), ('maxEncryptedDataKeys', Any), ('netV4__0__0__RetryPolicy', Any)])): - def __dafnystr__(self) -> str: - return f'AwsEncryptionSdkOperations.Config.Config({_dafny.string_of(self.crypto)}, {_dafny.string_of(self.mpl)}, {_dafny.string_of(self.commitmentPolicy)}, {_dafny.string_of(self.maxEncryptedDataKeys)}, {_dafny.string_of(self.netV4__0__0__RetryPolicy)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, Config_Config) and self.crypto == __o.crypto and self.mpl == __o.mpl and self.commitmentPolicy == __o.commitmentPolicy and self.maxEncryptedDataKeys == __o.maxEncryptedDataKeys and self.netV4__0__0__RetryPolicy == __o.netV4__0__0__RetryPolicy - def __hash__(self) -> int: - return super().__hash__() - - -class FrameLength: - def __init__(self): - pass - - @staticmethod - def default(): - return int(0) - def _Is(source__): - d_0_frameLength_: int = source__ - if True: - return ((0) < (d_0_frameLength_)) and ((d_0_frameLength_) <= (4294967295)) - return False diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/ESDK.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/ESDK.py deleted file mode 100644 index 2dcb6bd84..000000000 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/ESDK.py +++ /dev/null @@ -1,235 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary -import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom -import aws_cryptography_primitives.internaldafny.generated.Random as Random -import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption -import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest -import aws_cryptography_primitives.internaldafny.generated.Digest as Digest -import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC -import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC -import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF -import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF -import aws_cryptography_primitives.internaldafny.generated.Signature as Signature -import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr -import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption -import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives -import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 -import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites -import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials -import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring -import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations -import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort -import smithy_dafny_standard_library.internaldafny.generated.Math as Math -import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq -import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils -import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants -import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID -import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping -import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets -import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext -import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping -import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring -import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms -import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries -import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang -import smithy_dafny_standard_library.internaldafny.generated.Time as Time -import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker -import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC -import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring -import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring -import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM -import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults -import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment -import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM -import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier -import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils -import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders -import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn -import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure -import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable -import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore -import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr -import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode -import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions -import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings -import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO -import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals -import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals -import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul -import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals -import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals -import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod -import smithy_dafny_standard_library.internaldafny.generated.Power as Power -import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm -import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop -import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting -import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings -import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt -import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare -import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall -import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header -import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames -import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations - -# Module: ESDK - -class default__: - def __init__(self): - pass - - @staticmethod - def DefaultAwsEncryptionSdkConfig(): - return AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig_AwsEncryptionSdkConfig(Wrappers.Option_Some(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT()), Wrappers.Option_None(), Wrappers.Option_Some(AwsCryptographyEncryptionSdkTypes.NetV4__0__0__RetryPolicy_ALLOW__RETRY())) - - @staticmethod - def ESDK(config): - res: Wrappers.Result = None - d_0_maybeCrypto_: Wrappers.Result - out0_: Wrappers.Result - out0_ = AtomicPrimitives.default__.AtomicPrimitives(AtomicPrimitives.default__.DefaultCryptoConfig()) - d_0_maybeCrypto_ = out0_ - d_1_valueOrError0_: Wrappers.Result = None - def lambda0_(d_2_e_): - return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyPrimitives(d_2_e_) - - d_1_valueOrError0_ = (d_0_maybeCrypto_).MapFailure(lambda0_) - if (d_1_valueOrError0_).IsFailure(): - res = (d_1_valueOrError0_).PropagateFailure() - return res - d_3_cryptoX_: AwsCryptographyPrimitivesTypes.IAwsCryptographicPrimitivesClient - d_3_cryptoX_ = (d_1_valueOrError0_).Extract() - d_4_crypto_: AtomicPrimitives.AtomicPrimitivesClient - d_4_crypto_ = d_3_cryptoX_ - d_5_maybeMpl_: Wrappers.Result - out1_: Wrappers.Result - out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) - d_5_maybeMpl_ = out1_ - d_6_valueOrError1_: Wrappers.Result = None - def lambda1_(d_7_e_): - return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyMaterialProviders(d_7_e_) - - d_6_valueOrError1_ = (d_5_maybeMpl_).MapFailure(lambda1_) - if (d_6_valueOrError1_).IsFailure(): - res = (d_6_valueOrError1_).PropagateFailure() - return res - d_8_mplX_: AwsCryptographyMaterialProvidersTypes.IAwsCryptographicMaterialProvidersClient - d_8_mplX_ = (d_6_valueOrError1_).Extract() - d_9_mpl_: MaterialProviders.MaterialProvidersClient - d_9_mpl_ = d_8_mplX_ - d_10_internalConfig_: AwsEncryptionSdkOperations.Config - d_10_internalConfig_ = AwsEncryptionSdkOperations.Config_Config(d_4_crypto_, d_9_mpl_, ((config).commitmentPolicy).UnwrapOr(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT()), (config).maxEncryptedDataKeys, ((config).netV4__0__0__RetryPolicy).UnwrapOr(AwsCryptographyEncryptionSdkTypes.NetV4__0__0__RetryPolicy_ALLOW__RETRY())) - d_11_client_: ESDKClient - nw0_ = ESDKClient() - nw0_.ctor__(d_10_internalConfig_) - d_11_client_ = nw0_ - res = Wrappers.Result_Success(d_11_client_) - return res - return res - - @staticmethod - def CreateSuccessOfClient(client): - return Wrappers.Result_Success(client) - - @staticmethod - def CreateFailureOfError(error): - return Wrappers.Result_Failure(error) - - -class ESDKClient(AwsCryptographyEncryptionSdkTypes.IAwsEncryptionSdkClient): - def __init__(self): - self._config: AwsEncryptionSdkOperations.Config = None - pass - - def __dafnystr__(self) -> str: - return "ESDK.ESDKClient" - def ctor__(self, config): - (self)._config = config - - def Encrypt(self, input): - output: Wrappers.Result = Wrappers.Result.default(AwsCryptographyEncryptionSdkTypes.EncryptOutput.default())() - out0_: Wrappers.Result - out0_ = AwsEncryptionSdkOperations.default__.Encrypt((self).config, input) - output = out0_ - return output - - def Decrypt(self, input): - output: Wrappers.Result = Wrappers.Result.default(AwsCryptographyEncryptionSdkTypes.DecryptOutput.default())() - out0_: Wrappers.Result - out0_ = AwsEncryptionSdkOperations.default__.Decrypt((self).config, input) - output = out0_ - return output - - @property - def config(self): - return self._config diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/EncryptDecryptHelpers.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/EncryptDecryptHelpers.py deleted file mode 100644 index e19b92da9..000000000 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/EncryptDecryptHelpers.py +++ /dev/null @@ -1,635 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary -import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom -import aws_cryptography_primitives.internaldafny.generated.Random as Random -import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption -import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest -import aws_cryptography_primitives.internaldafny.generated.Digest as Digest -import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC -import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC -import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF -import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF -import aws_cryptography_primitives.internaldafny.generated.Signature as Signature -import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr -import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption -import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives -import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 -import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites -import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials -import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring -import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations -import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort -import smithy_dafny_standard_library.internaldafny.generated.Math as Math -import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq -import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils -import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants -import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID -import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping -import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets -import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext -import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping -import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring -import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms -import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries -import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang -import smithy_dafny_standard_library.internaldafny.generated.Time as Time -import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker -import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC -import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring -import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring -import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM -import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults -import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment -import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM -import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier -import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils -import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders -import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn -import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure -import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable -import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore -import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr -import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode -import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions -import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings -import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO -import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals -import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals -import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul -import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals -import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals -import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod -import smithy_dafny_standard_library.internaldafny.generated.Power as Power -import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm -import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop -import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting -import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings -import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt -import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare -import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall -import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header -import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames -import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation - -# Module: EncryptDecryptHelpers - -class default__: - def __init__(self): - pass - - @staticmethod - def SerializeMessageWithSignature(framedMessage, signature, suite): - d_0_serializedSignature_ = SerializeFunctions.default__.WriteShortLengthSeq(signature) - d_1_valueOrError0_ = default__.SerializeMessageWithoutSignature(framedMessage, suite) - if (d_1_valueOrError0_).IsFailure(): - return (d_1_valueOrError0_).PropagateFailure() - elif True: - d_2_serializedMessage_ = (d_1_valueOrError0_).Extract() - return Wrappers.Result_Success((d_2_serializedMessage_) + (d_0_serializedSignature_)) - - @staticmethod - def SerializeMessageWithoutSignature(framedMessage, suite): - d_0_valueOrError0_ = HeaderAuth.default__.WriteHeaderAuthTag((((framedMessage).finalFrame).header).headerAuth, suite) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - d_1_headerAuth_ = (d_0_valueOrError0_).Extract() - return Wrappers.Result_Success((((((framedMessage).finalFrame).header).rawHeader) + (d_1_headerAuth_)) + (MessageBody.default__.WriteFramedMessageBody(framedMessage))) - - @staticmethod - def VerifySignature(buffer, msg, decMat, crypto): - res: Wrappers.Result = Wrappers.Result.default(SerializeFunctions.ReadableBuffer.default())() - if ((decMat).verificationKey).is_None: - res = Wrappers.Result_Success(buffer) - return res - d_0_valueOrError0_: Wrappers.Result = Wrappers.Result.default(SerializeFunctions.SuccessfulRead.default(StandardLibrary_UInt.seq16.default))() - d_0_valueOrError0_ = (SerializeFunctions.default__.ReadShortLengthSeq(buffer)).MapFailure(default__.MapSerializeFailure(_dafny.Seq(": ReadShortLengthSeq"))) - if (d_0_valueOrError0_).IsFailure(): - res = (d_0_valueOrError0_).PropagateFailure() - return res - d_1_signature_: SerializeFunctions.SuccessfulRead - d_1_signature_ = (d_0_valueOrError0_).Extract() - d_2_ecdsaParams_: AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm - d_2_ecdsaParams_ = ((((decMat).algorithmSuite).signature).ECDSA).curve - d_3_maybeSignatureVerifiedResult_: Wrappers.Result - out0_: Wrappers.Result - out0_ = (crypto).ECDSAVerify(AwsCryptographyPrimitivesTypes.ECDSAVerifyInput_ECDSAVerifyInput(d_2_ecdsaParams_, ((decMat).verificationKey).value, msg, (d_1_signature_).data)) - d_3_maybeSignatureVerifiedResult_ = out0_ - d_4_valueOrError1_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.bool)() - def lambda0_(d_5_e_): - return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyPrimitives(d_5_e_) - - d_4_valueOrError1_ = (d_3_maybeSignatureVerifiedResult_).MapFailure(lambda0_) - if (d_4_valueOrError1_).IsFailure(): - res = (d_4_valueOrError1_).PropagateFailure() - return res - d_6_signatureVerifiedResult_: bool - d_6_signatureVerifiedResult_ = (d_4_valueOrError1_).Extract() - if not(d_6_signatureVerifiedResult_): - res = Wrappers.Result_Failure(AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Invalid signature"))) - return res - res = Wrappers.Result_Success((d_1_signature_).tail) - return res - return res - - @staticmethod - def MapSerializeFailure(s): - def lambda0_(d_0_s_): - def lambda1_(d_1_e_): - def lambda2_(): - source0_ = d_1_e_ - if True: - if source0_.is_Error: - d_2_e_ = source0_.message - return AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(d_2_e_) - if True: - return AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException((_dafny.Seq("Incomplete message")) + (d_0_s_)) - - return lambda2_() - - return lambda1_ - - return lambda0_(s) - - @staticmethod - def ValidateEncryptionContext(input): - def lambda0_(exists_var_0_): - d_0_key_: _dafny.Seq = exists_var_0_ - if UTF8.ValidUTF8Bytes._Is(d_0_key_): - return ((d_0_key_) in (((input).value).keys)) and ((default__.RESERVED__ENCRYPTION__CONTEXT) <= (d_0_key_)) - elif True: - return False - - if ((input).is_Some) and (_dafny.quantifier((((input).value).keys).Elements, False, lambda0_)): - return Wrappers.Outcome_Fail(AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Encryption context keys cannot contain reserved prefix 'aws-crypto-'"))) - elif True: - return Wrappers.Outcome_Pass() - - @staticmethod - def CreateCmmFromInput(inputCmm, inputKeyring): - res: Wrappers.Result = None - d_0_valueOrError0_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_0_valueOrError0_ = Wrappers.default__.Need(((inputCmm).is_None) or ((inputKeyring).is_None), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Cannot provide both a keyring and a CMM"))) - if (d_0_valueOrError0_).IsFailure(): - res = (d_0_valueOrError0_).PropagateFailure() - return res - d_1_valueOrError1_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_1_valueOrError1_ = Wrappers.default__.Need(((inputCmm).is_Some) or ((inputKeyring).is_Some), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Must provide either a keyring or a CMM"))) - if (d_1_valueOrError1_).IsFailure(): - res = (d_1_valueOrError1_).PropagateFailure() - return res - d_2_cmm_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager = None - if (inputCmm).is_Some: - res = Wrappers.Result_Success((inputCmm).value) - return res - elif True: - d_3_maybeMaterialsProviders_: Wrappers.Result - out0_: Wrappers.Result - out0_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) - d_3_maybeMaterialsProviders_ = out0_ - d_4_valueOrError2_: Wrappers.Result = None - def lambda0_(d_5_e_): - return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyMaterialProviders(d_5_e_) - - d_4_valueOrError2_ = (d_3_maybeMaterialsProviders_).MapFailure(lambda0_) - if (d_4_valueOrError2_).IsFailure(): - res = (d_4_valueOrError2_).PropagateFailure() - return res - d_6_materialProviders_: MaterialProviders.MaterialProvidersClient - d_6_materialProviders_ = (d_4_valueOrError2_).Extract() - d_7_maybeCmm_: Wrappers.Result - out1_: Wrappers.Result - out1_ = (d_6_materialProviders_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput((inputKeyring).value)) - d_7_maybeCmm_ = out1_ - def lambda1_(d_8_e_): - return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyMaterialProviders(d_8_e_) - - res = (d_7_maybeCmm_).MapFailure(lambda1_) - return res - return res - - @staticmethod - def ValidateMaxEncryptedDataKeys(maxEncryptedDataKeys, edks): - if ((maxEncryptedDataKeys).is_Some) and ((len(edks)) > ((maxEncryptedDataKeys).value)): - return Wrappers.Outcome_Fail(AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Encrypted data keys exceed maxEncryptedDataKeys"))) - elif True: - return Wrappers.Outcome_Pass() - - @staticmethod - def GenerateMessageId(suite, crypto): - res: Wrappers.Result = None - d_0_maybeId_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - if ((suite).messageVersion) == (1): - out0_: Wrappers.Result - out0_ = (crypto).GenerateRandomBytes(AwsCryptographyPrimitivesTypes.GenerateRandomBytesInput_GenerateRandomBytesInput(HeaderTypes.default__.MESSAGE__ID__LEN__V1)) - d_0_maybeId_ = out0_ - elif True: - out1_: Wrappers.Result - out1_ = (crypto).GenerateRandomBytes(AwsCryptographyPrimitivesTypes.GenerateRandomBytesInput_GenerateRandomBytesInput(HeaderTypes.default__.MESSAGE__ID__LEN__V2)) - d_0_maybeId_ = out1_ - d_1_valueOrError0_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - def lambda0_(d_2_e_): - return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyPrimitives(d_2_e_) - - d_1_valueOrError0_ = (d_0_maybeId_).MapFailure(lambda0_) - if (d_1_valueOrError0_).IsFailure(): - res = (d_1_valueOrError0_).PropagateFailure() - return res - d_3_id_: _dafny.Seq - d_3_id_ = (d_1_valueOrError0_).Extract() - res = Wrappers.Result_Success(d_3_id_) - return res - return res - - @staticmethod - def BuildHeaderForEncrypt(messageId, suite, encryptionContext, requiredEncryptionContextKeys, encryptedDataKeys, frameLength, derivedDataKeys, crypto): - res: Wrappers.Result = None - d_0_reqKeySet_: _dafny.Set - def iife0_(): - coll0_ = _dafny.Set() - compr_0_: _dafny.Seq - for compr_0_ in (requiredEncryptionContextKeys).Elements: - d_1_k_: _dafny.Seq = compr_0_ - if UTF8.ValidUTF8Bytes._Is(d_1_k_): - if (d_1_k_) in (requiredEncryptionContextKeys): - coll0_ = coll0_.union(_dafny.Set([d_1_k_])) - return _dafny.Set(coll0_) - d_0_reqKeySet_ = iife0_() - - d_2_storedEncryptionContext_: _dafny.Map - def iife1_(): - coll1_ = _dafny.Map() - compr_1_: _dafny.Seq - for compr_1_ in ((encryptionContext) - (d_0_reqKeySet_)).keys.Elements: - d_3_f_: _dafny.Seq = compr_1_ - if UTF8.ValidUTF8Bytes._Is(d_3_f_): - if (d_3_f_) in ((encryptionContext) - (d_0_reqKeySet_)): - coll1_[d_3_f_] = (encryptionContext)[d_3_f_] - return _dafny.Map(coll1_) - d_2_storedEncryptionContext_ = iife1_() - - d_4_canonicalStoredEncryptionContext_: _dafny.Seq - d_4_canonicalStoredEncryptionContext_ = EncryptionContext.default__.GetCanonicalEncryptionContext(d_2_storedEncryptionContext_) - d_5_body_: HeaderTypes.HeaderBody - out0_: HeaderTypes.HeaderBody - out0_ = default__.BuildHeaderBody(messageId, suite, d_4_canonicalStoredEncryptionContext_, encryptedDataKeys, frameLength, (derivedDataKeys).commitmentKey) - d_5_body_ = out0_ - d_6_requiredEncryptionContextMap_: _dafny.Map - def iife2_(): - coll2_ = _dafny.Map() - compr_2_: _dafny.Seq - for compr_2_ in (d_0_reqKeySet_).Elements: - d_7_r_: _dafny.Seq = compr_2_ - if UTF8.ValidUTF8Bytes._Is(d_7_r_): - if (d_7_r_) in (d_0_reqKeySet_): - coll2_[d_7_r_] = (encryptionContext)[d_7_r_] - return _dafny.Map(coll2_) - d_6_requiredEncryptionContextMap_ = iife2_() - - d_8_canonicalReqEncryptionContext_: _dafny.Seq - d_8_canonicalReqEncryptionContext_ = EncryptionContext.default__.GetCanonicalEncryptionContext(d_6_requiredEncryptionContextMap_) - d_9_serializedReqEncryptionContext_: _dafny.Seq - d_9_serializedReqEncryptionContext_ = EncryptionContext.default__.WriteEmptyEcOrWriteAAD(d_8_canonicalReqEncryptionContext_) - d_10_rawHeader_: _dafny.Seq - d_10_rawHeader_ = Header.default__.WriteHeaderBody(d_5_body_) - d_11_valueOrError0_: Wrappers.Result = Wrappers.Result.default(HeaderTypes.HeaderAuth.default())() - out1_: Wrappers.Result - out1_ = default__.BuildHeaderAuthTag(suite, (derivedDataKeys).dataKey, d_10_rawHeader_, d_9_serializedReqEncryptionContext_, crypto) - d_11_valueOrError0_ = out1_ - if (d_11_valueOrError0_).IsFailure(): - res = (d_11_valueOrError0_).PropagateFailure() - return res - d_12_headerAuth_: HeaderTypes.HeaderAuth - d_12_headerAuth_ = (d_11_valueOrError0_).Extract() - d_13_header_: Header.HeaderInfo - d_13_header_ = Header.HeaderInfo_HeaderInfo(d_5_body_, d_10_rawHeader_, encryptionContext, suite, d_12_headerAuth_) - res = Wrappers.Result_Success(d_13_header_) - return res - return res - - @staticmethod - def BuildHeaderBody(messageId, suite, encryptionContext, encryptedDataKeys, frameLength, suiteData): - res: HeaderTypes.HeaderBody = None - d_0_contentType_: HeaderTypes.ContentType - d_0_contentType_ = HeaderTypes.ContentType_Framed() - source0_ = (suite).commitment - with _dafny.label("match0"): - if True: - if source0_.is_None: - res = HeaderTypes.HeaderBody_V1HeaderBody(HeaderTypes.MessageType_TYPE__CUSTOMER__AED(), suite, messageId, encryptionContext, encryptedDataKeys, d_0_contentType_, SerializableTypes.default__.GetIvLength(suite), frameLength) - return res - raise _dafny.Break("match0") - if True: - res = HeaderTypes.HeaderBody_V2HeaderBody(suite, messageId, encryptionContext, encryptedDataKeys, d_0_contentType_, frameLength, (suiteData).value) - return res - pass - return res - - @staticmethod - def BuildHeaderAuthTag(suite, dataKey, rawHeader, serializedReqEncryptionContext, crypto): - res: Wrappers.Result = Wrappers.Result.default(HeaderTypes.HeaderAuth.default())() - d_0_keyLength_: int - d_0_keyLength_ = SerializableTypes.default__.GetEncryptKeyLength(suite) - d_1_valueOrError0_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_1_valueOrError0_ = Wrappers.default__.Need((len(dataKey)) == (d_0_keyLength_), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Incorrect data key length"))) - if (d_1_valueOrError0_).IsFailure(): - res = (d_1_valueOrError0_).PropagateFailure() - return res - d_2_ivLength_: int - d_2_ivLength_ = SerializableTypes.default__.GetIvLength(suite) - d_3_iv_: _dafny.Seq - d_3_iv_ = _dafny.Seq([0 for d_4___v3_ in range(d_2_ivLength_)]) - d_5_maybeEncryptionOutput_: Wrappers.Result - out0_: Wrappers.Result - out0_ = (crypto).AESEncrypt(AwsCryptographyPrimitivesTypes.AESEncryptInput_AESEncryptInput(((suite).encrypt).AES__GCM, d_3_iv_, dataKey, _dafny.Seq([]), (rawHeader) + (serializedReqEncryptionContext))) - d_5_maybeEncryptionOutput_ = out0_ - d_6_valueOrError1_: Wrappers.Result = Wrappers.Result.default(AwsCryptographyPrimitivesTypes.AESEncryptOutput.default())() - def lambda0_(d_7_e_): - return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyPrimitives(d_7_e_) - - d_6_valueOrError1_ = (d_5_maybeEncryptionOutput_).MapFailure(lambda0_) - if (d_6_valueOrError1_).IsFailure(): - res = (d_6_valueOrError1_).PropagateFailure() - return res - d_8_encryptionOutput_: AwsCryptographyPrimitivesTypes.AESEncryptOutput - d_8_encryptionOutput_ = (d_6_valueOrError1_).Extract() - d_9_headerAuth_: HeaderTypes.HeaderAuth - d_9_headerAuth_ = HeaderTypes.HeaderAuth_AESMac(d_3_iv_, (d_8_encryptionOutput_).authTag) - res = Wrappers.Result_Success(d_9_headerAuth_) - return res - return res - - @staticmethod - def GetEncryptionMaterials(cmm, algorithmSuiteId, encryptionContext, maxPlaintextLength, commitmentPolicy, mpl): - res: Wrappers.Result = None - d_0_encMatRequest_: AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsInput - d_0_encMatRequest_ = AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsInput_GetEncryptionMaterialsInput(encryptionContext, AwsCryptographyMaterialProvidersTypes.CommitmentPolicy_ESDK(commitmentPolicy), algorithmSuiteId, Wrappers.Option_Some(maxPlaintextLength), Wrappers.Option_None()) - d_1_getEncMatResult_: Wrappers.Result - out0_: Wrappers.Result - out0_ = (cmm).GetEncryptionMaterials(d_0_encMatRequest_) - d_1_getEncMatResult_ = out0_ - d_2_valueOrError0_: Wrappers.Result = None - def lambda0_(d_3_e_): - return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyMaterialProviders(d_3_e_) - - d_2_valueOrError0_ = (d_1_getEncMatResult_).MapFailure(lambda0_) - if (d_2_valueOrError0_).IsFailure(): - res = (d_2_valueOrError0_).PropagateFailure() - return res - d_4_output_: AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsOutput - d_4_output_ = (d_2_valueOrError0_).Extract() - d_5_materials_: AwsCryptographyMaterialProvidersTypes.EncryptionMaterials - d_5_materials_ = (d_4_output_).encryptionMaterials - d_6_valueOrError1_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() - def lambda1_(d_7_e_): - return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyMaterialProviders(d_7_e_) - - d_6_valueOrError1_ = ((mpl).ValidateCommitmentPolicyOnEncrypt(AwsCryptographyMaterialProvidersTypes.ValidateCommitmentPolicyOnEncryptInput_ValidateCommitmentPolicyOnEncryptInput(((d_5_materials_).algorithmSuite).id, AwsCryptographyMaterialProvidersTypes.CommitmentPolicy_ESDK(commitmentPolicy)))).MapFailure(lambda1_) - if (d_6_valueOrError1_).IsFailure(): - res = (d_6_valueOrError1_).PropagateFailure() - return res - d_8___v4_: tuple - d_8___v4_ = (d_6_valueOrError1_).Extract() - d_9_valueOrError2_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() - def lambda2_(d_10_e_): - return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyMaterialProviders(d_10_e_) - - d_9_valueOrError2_ = ((mpl).EncryptionMaterialsHasPlaintextDataKey(d_5_materials_)).MapFailure(lambda2_) - if (d_9_valueOrError2_).IsFailure(): - res = (d_9_valueOrError2_).PropagateFailure() - return res - d_11___v5_: tuple - d_11___v5_ = (d_9_valueOrError2_).Extract() - d_12_valueOrError3_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_12_valueOrError3_ = Wrappers.default__.Need(SerializableTypes.default__.IsESDKEncryptionContext((d_5_materials_).encryptionContext), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("CMM failed to return serializable encryption materials."))) - if (d_12_valueOrError3_).IsFailure(): - res = (d_12_valueOrError3_).PropagateFailure() - return res - d_13_valueOrError4_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_13_valueOrError4_ = Wrappers.default__.Need(StandardLibrary_UInt.default__.HasUint16Len((d_5_materials_).encryptedDataKeys), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("CMM returned EDKs that exceed the allowed maximum."))) - if (d_13_valueOrError4_).IsFailure(): - res = (d_13_valueOrError4_).PropagateFailure() - return res - d_14_valueOrError5_: Wrappers.Outcome = Wrappers.Outcome.default()() - def lambda3_(forall_var_0_): - d_15_edk_: AwsCryptographyMaterialProvidersTypes.EncryptedDataKey = forall_var_0_ - return not ((d_15_edk_) in ((d_5_materials_).encryptedDataKeys)) or (SerializableTypes.default__.IsESDKEncryptedDataKey(d_15_edk_)) - - d_14_valueOrError5_ = Wrappers.default__.Need(_dafny.quantifier(((d_5_materials_).encryptedDataKeys).UniqueElements, True, lambda3_), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("CMM returned non-serializable encrypted data key."))) - if (d_14_valueOrError5_).IsFailure(): - res = (d_14_valueOrError5_).PropagateFailure() - return res - res = Wrappers.Result_Success(d_5_materials_) - return res - return res - - @staticmethod - def GetDecryptionMaterials(cmm, algorithmSuiteId, headerBody, reproducedEncryptionContext, commitmentPolicy, mpl): - res: Wrappers.Result = None - d_0_encryptionContext_: _dafny.Map - d_0_encryptionContext_ = EncryptionContext.default__.GetEncryptionContext((headerBody).encryptionContext) - d_1_decMatRequest_: AwsCryptographyMaterialProvidersTypes.DecryptMaterialsInput - d_1_decMatRequest_ = AwsCryptographyMaterialProvidersTypes.DecryptMaterialsInput_DecryptMaterialsInput(algorithmSuiteId, AwsCryptographyMaterialProvidersTypes.CommitmentPolicy_ESDK(commitmentPolicy), (headerBody).encryptedDataKeys, d_0_encryptionContext_, reproducedEncryptionContext) - d_2_decMatResult_: Wrappers.Result - out0_: Wrappers.Result - out0_ = (cmm).DecryptMaterials(d_1_decMatRequest_) - d_2_decMatResult_ = out0_ - d_3_valueOrError0_: Wrappers.Result = None - def lambda0_(d_4_e_): - return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyMaterialProviders(d_4_e_) - - d_3_valueOrError0_ = (d_2_decMatResult_).MapFailure(lambda0_) - if (d_3_valueOrError0_).IsFailure(): - res = (d_3_valueOrError0_).PropagateFailure() - return res - d_5_output_: AwsCryptographyMaterialProvidersTypes.DecryptMaterialsOutput - d_5_output_ = (d_3_valueOrError0_).Extract() - d_6_materials_: AwsCryptographyMaterialProvidersTypes.DecryptionMaterials - d_6_materials_ = (d_5_output_).decryptionMaterials - d_7_valueOrError1_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() - def lambda1_(d_8_e_): - return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyMaterialProviders(d_8_e_) - - d_7_valueOrError1_ = ((mpl).ValidateCommitmentPolicyOnDecrypt(AwsCryptographyMaterialProvidersTypes.ValidateCommitmentPolicyOnDecryptInput_ValidateCommitmentPolicyOnDecryptInput(((d_6_materials_).algorithmSuite).id, AwsCryptographyMaterialProvidersTypes.CommitmentPolicy_ESDK(commitmentPolicy)))).MapFailure(lambda1_) - if (d_7_valueOrError1_).IsFailure(): - res = (d_7_valueOrError1_).PropagateFailure() - return res - d_9___v6_: tuple - d_9___v6_ = (d_7_valueOrError1_).Extract() - d_10_valueOrError2_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() - def lambda2_(d_11_e_): - return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyMaterialProviders(d_11_e_) - - d_10_valueOrError2_ = ((mpl).DecryptionMaterialsWithPlaintextDataKey(d_6_materials_)).MapFailure(lambda2_) - if (d_10_valueOrError2_).IsFailure(): - res = (d_10_valueOrError2_).PropagateFailure() - return res - d_12___v7_: tuple - d_12___v7_ = (d_10_valueOrError2_).Extract() - d_13_valueOrError3_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_13_valueOrError3_ = Wrappers.default__.Need(SerializableTypes.default__.IsESDKEncryptionContext((d_6_materials_).encryptionContext), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("CMM failed to return serializable encryption materials."))) - if (d_13_valueOrError3_).IsFailure(): - res = (d_13_valueOrError3_).PropagateFailure() - return res - res = Wrappers.Result_Success(d_6_materials_) - return res - return res - - @staticmethod - def ValidateSuiteData(suite, header, expectedSuiteData): - res: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() - d_0_valueOrError0_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_0_valueOrError0_ = Wrappers.default__.Need((len((header).suiteData)) == ((((suite).commitment).HKDF).outputKeyLength), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Commitment key is invalid"))) - if (d_0_valueOrError0_).IsFailure(): - res = (d_0_valueOrError0_).PropagateFailure() - return res - d_1_valueOrError1_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_1_valueOrError1_ = Wrappers.default__.Need((expectedSuiteData) == ((header).suiteData), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Commitment key does not match"))) - if (d_1_valueOrError1_).IsFailure(): - res = (d_1_valueOrError1_).PropagateFailure() - return res - res = Wrappers.Result_Success(()) - return res - return res - - @staticmethod - def ReadAndDecryptFramedMessageBody(buffer, header, key, crypto): - res: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple(_dafny.Seq, SerializeFunctions.ReadableBuffer.default()))() - d_0_valueOrError0_: Wrappers.Result = None - d_0_valueOrError0_ = (MessageBody.default__.ReadFramedMessageBody(buffer, header, _dafny.Seq([]), buffer)).MapFailure(default__.MapSerializeFailure(_dafny.Seq(": ReadFramedMessageBody"))) - if (d_0_valueOrError0_).IsFailure(): - res = (d_0_valueOrError0_).PropagateFailure() - return res - d_1_messageBody_: SerializeFunctions.SuccessfulRead - d_1_messageBody_ = (d_0_valueOrError0_).Extract() - d_2_valueOrError1_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - out0_: Wrappers.Result - out0_ = MessageBody.default__.DecryptFramedMessageBody((d_1_messageBody_).data, key, crypto) - d_2_valueOrError1_ = out0_ - if (d_2_valueOrError1_).IsFailure(): - res = (d_2_valueOrError1_).PropagateFailure() - return res - d_3_plaintext_: _dafny.Seq - d_3_plaintext_ = (d_2_valueOrError1_).Extract() - d_4_messageBodyTail_: SerializeFunctions.ReadableBuffer - d_4_messageBodyTail_ = (d_1_messageBody_).tail - res = Wrappers.Result_Success((d_3_plaintext_, d_4_messageBodyTail_)) - return res - return res - - @staticmethod - def ReadAndDecryptNonFramedMessageBody(buffer, header, key, crypto): - res: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple(_dafny.Seq, SerializeFunctions.ReadableBuffer.default()))() - d_0_valueOrError0_: Wrappers.Result = None - d_0_valueOrError0_ = (MessageBody.default__.ReadNonFramedMessageBody(buffer, header)).MapFailure(default__.MapSerializeFailure(_dafny.Seq(": ReadNonFramedMessageBody"))) - if (d_0_valueOrError0_).IsFailure(): - res = (d_0_valueOrError0_).PropagateFailure() - return res - d_1_messageBody_: SerializeFunctions.SuccessfulRead - d_1_messageBody_ = (d_0_valueOrError0_).Extract() - d_2_frame_: Frames.Frame - d_2_frame_ = (d_1_messageBody_).data - d_3_valueOrError1_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - out0_: Wrappers.Result - out0_ = MessageBody.default__.DecryptFrame(d_2_frame_, key, crypto) - d_3_valueOrError1_ = out0_ - if (d_3_valueOrError1_).IsFailure(): - res = (d_3_valueOrError1_).PropagateFailure() - return res - d_4_plaintext_: _dafny.Seq - d_4_plaintext_ = (d_3_valueOrError1_).Extract() - d_5_messageBodyTail_: SerializeFunctions.ReadableBuffer - d_5_messageBodyTail_ = (d_1_messageBody_).tail - res = Wrappers.Result_Success((d_4_plaintext_, d_5_messageBodyTail_)) - return res - return res - - @_dafny.classproperty - def DEFAULT__FRAME__LENGTH(instance): - return 4096 - @_dafny.classproperty - def RESERVED__ENCRYPTION__CONTEXT(instance): - d_0_s_ = _dafny.Seq([97, 119, 115, 45, 99, 114, 121, 112, 116, 111, 45]) - return d_0_s_ - -class FrameLength: - def __init__(self): - pass - - @staticmethod - def default(): - return int(0) - def _Is(source__): - d_1_frameLength_: int = source__ - if True: - return ((0) < (d_1_frameLength_)) and ((d_1_frameLength_) <= (4294967295)) - return False diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/EncryptedDataKeys.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/EncryptedDataKeys.py deleted file mode 100644 index a79666cd1..000000000 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/EncryptedDataKeys.py +++ /dev/null @@ -1,239 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary -import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom -import aws_cryptography_primitives.internaldafny.generated.Random as Random -import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption -import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest -import aws_cryptography_primitives.internaldafny.generated.Digest as Digest -import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC -import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC -import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF -import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF -import aws_cryptography_primitives.internaldafny.generated.Signature as Signature -import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr -import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption -import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives -import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 -import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites -import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials -import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring -import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations -import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort -import smithy_dafny_standard_library.internaldafny.generated.Math as Math -import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq -import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils -import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants -import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID -import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping -import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets -import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext -import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping -import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring -import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms -import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries -import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang -import smithy_dafny_standard_library.internaldafny.generated.Time as Time -import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker -import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC -import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring -import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring -import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM -import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults -import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment -import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM -import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier -import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils -import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders -import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn -import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure -import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable -import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore -import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr -import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode -import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions -import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings -import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO -import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals -import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals -import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul -import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals -import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals -import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod -import smithy_dafny_standard_library.internaldafny.generated.Power as Power -import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm -import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop -import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting -import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings -import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt -import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare -import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall -import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions - -# Module: EncryptedDataKeys - -class default__: - def __init__(self): - pass - - @staticmethod - def WriteEncryptedDataKey(edk): - return ((SerializeFunctions.default__.WriteShortLengthSeq((edk).keyProviderId)) + (SerializeFunctions.default__.WriteShortLengthSeq((edk).keyProviderInfo))) + (SerializeFunctions.default__.WriteShortLengthSeq((edk).ciphertext)) - - @staticmethod - def WriteEncryptedDataKeys(edks): - d_0___accumulator_ = _dafny.Seq([]) - while True: - with _dafny.label(): - if (len(edks)) == (0): - return (_dafny.Seq([])) + (d_0___accumulator_) - elif True: - d_0___accumulator_ = (default__.WriteEncryptedDataKey(Seq.default__.Last(edks))) + (d_0___accumulator_) - in0_ = Seq.default__.DropLast(edks) - edks = in0_ - raise _dafny.TailCall() - break - - @staticmethod - def WriteEncryptedDataKeysSection(edks): - return (StandardLibrary_UInt.default__.UInt16ToSeq(len(edks))) + (default__.WriteEncryptedDataKeys(edks)) - - @staticmethod - def ReadEncryptedDataKey(buffer): - d_0_valueOrError0_ = SerializeFunctions.default__.ReadShortLengthSeq(buffer) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - let_tmp_rhs0_ = (d_0_valueOrError0_).Extract() - d_1_providerId_ = let_tmp_rhs0_.data - d_2_providerIdPos_ = let_tmp_rhs0_.tail - d_3_valueOrError1_ = Wrappers.default__.Need(UTF8.default__.ValidUTF8Seq(d_1_providerId_), SerializeFunctions.ReadProblems_Error(_dafny.Seq("Invalid providerID"))) - if (d_3_valueOrError1_).IsFailure(): - return (d_3_valueOrError1_).PropagateFailure() - elif True: - d_4_valueOrError2_ = SerializeFunctions.default__.ReadShortLengthSeq(d_2_providerIdPos_) - if (d_4_valueOrError2_).IsFailure(): - return (d_4_valueOrError2_).PropagateFailure() - elif True: - let_tmp_rhs1_ = (d_4_valueOrError2_).Extract() - d_5_providerInfo_ = let_tmp_rhs1_.data - d_6_providerInfoPos_ = let_tmp_rhs1_.tail - d_7_valueOrError3_ = SerializeFunctions.default__.ReadShortLengthSeq(d_6_providerInfoPos_) - if (d_7_valueOrError3_).IsFailure(): - return (d_7_valueOrError3_).PropagateFailure() - elif True: - let_tmp_rhs2_ = (d_7_valueOrError3_).Extract() - d_8_cipherText_ = let_tmp_rhs2_.data - d_9_tail_ = let_tmp_rhs2_.tail - d_10_edk_ = AwsCryptographyMaterialProvidersTypes.EncryptedDataKey_EncryptedDataKey(d_1_providerId_, d_5_providerInfo_, d_8_cipherText_) - return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_10_edk_, d_9_tail_)) - - @staticmethod - def ReadEncryptedDataKeys(buffer, accumulator, count, nextEdkStart): - while True: - with _dafny.label(): - if (count) > (len(accumulator)): - d_0_valueOrError0_ = default__.ReadEncryptedDataKey(nextEdkStart) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - let_tmp_rhs0_ = (d_0_valueOrError0_).Extract() - d_1_edk_ = let_tmp_rhs0_.data - d_2_newPos_ = let_tmp_rhs0_.tail - d_3_nextAcc_ = (accumulator) + (_dafny.Seq([d_1_edk_])) - in0_ = buffer - in1_ = d_3_nextAcc_ - in2_ = count - in3_ = d_2_newPos_ - buffer = in0_ - accumulator = in1_ - count = in2_ - nextEdkStart = in3_ - raise _dafny.TailCall() - elif True: - return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(accumulator, nextEdkStart)) - break - - @staticmethod - def ReadEncryptedDataKeysSection(buffer, maxEdks): - d_0_valueOrError0_ = SerializeFunctions.default__.ReadUInt16(buffer) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - let_tmp_rhs0_ = (d_0_valueOrError0_).Extract() - d_1_count_ = let_tmp_rhs0_.data - d_2_edkStart_ = let_tmp_rhs0_.tail - if ((maxEdks).is_Some) and ((d_1_count_) > ((maxEdks).value)): - return Wrappers.Result_Failure(SerializeFunctions.ReadProblems_Error(_dafny.Seq("Ciphertext encrypted data keys exceed maxEncryptedDataKeys"))) - elif True: - d_3_valueOrError1_ = default__.ReadEncryptedDataKeys(d_2_edkStart_, _dafny.Seq([]), d_1_count_, d_2_edkStart_) - if (d_3_valueOrError1_).IsFailure(): - return (d_3_valueOrError1_).PropagateFailure() - elif True: - let_tmp_rhs1_ = (d_3_valueOrError1_).Extract() - d_4_edks_ = let_tmp_rhs1_.data - d_5_tail_ = let_tmp_rhs1_.tail - return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_4_edks_, d_5_tail_)) - diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/EncryptionContext.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/EncryptionContext.py deleted file mode 100644 index dac61d49d..000000000 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/EncryptionContext.py +++ /dev/null @@ -1,354 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary -import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom -import aws_cryptography_primitives.internaldafny.generated.Random as Random -import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption -import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest -import aws_cryptography_primitives.internaldafny.generated.Digest as Digest -import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC -import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC -import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF -import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF -import aws_cryptography_primitives.internaldafny.generated.Signature as Signature -import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr -import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption -import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives -import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 -import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites -import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials -import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring -import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations -import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort -import smithy_dafny_standard_library.internaldafny.generated.Math as Math -import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq -import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils -import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants -import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID -import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping -import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets -import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext -import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping -import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring -import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms -import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries -import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang -import smithy_dafny_standard_library.internaldafny.generated.Time as Time -import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker -import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC -import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring -import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring -import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM -import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults -import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment -import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM -import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier -import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils -import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders -import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn -import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure -import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable -import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore -import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr -import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode -import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions -import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings -import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO -import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals -import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals -import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul -import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals -import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals -import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod -import smithy_dafny_standard_library.internaldafny.generated.Power as Power -import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm -import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop -import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting -import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings -import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt -import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare -import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall -import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions - -# Module: EncryptionContext - -class default__: - def __init__(self): - pass - - @staticmethod - def GetCanonicalEncryptionContext(encryptionContext): - return SerializableTypes.default__.GetCanonicalLinearPairs(encryptionContext) - - @staticmethod - def GetEncryptionContext(canonicalEncryptionContext): - def iife0_(): - coll0_ = _dafny.Map() - compr_0_: int - for compr_0_ in _dafny.IntegerRange(0, len(canonicalEncryptionContext)): - d_0_i_: int = compr_0_ - if ((0) <= (d_0_i_)) and ((d_0_i_) < (len(canonicalEncryptionContext))): - coll0_[((canonicalEncryptionContext)[d_0_i_]).key] = ((canonicalEncryptionContext)[d_0_i_]).value - return _dafny.Map(coll0_) - return iife0_() - - - @staticmethod - def WriteAADSection(ec): - if (len(ec)) == (0): - return SerializeFunctions.default__.WriteUint16(0) - elif True: - d_0_aad_ = default__.WriteAAD(ec) - return (SerializeFunctions.default__.WriteUint16(len(d_0_aad_))) + (d_0_aad_) - - @staticmethod - def WriteEmptyEcOrWriteAAD(ec): - if (len(ec)) == (0): - return _dafny.Seq([]) - elif True: - return default__.WriteAAD(ec) - - @staticmethod - def WriteAAD(ec): - return (SerializeFunctions.default__.WriteUint16(len(ec))) + (default__.WriteAADPairs(ec)) - - @staticmethod - def WriteAADPairs(ec): - d_0___accumulator_ = _dafny.Seq([]) - while True: - with _dafny.label(): - if (len(ec)) == (0): - return (_dafny.Seq([])) + (d_0___accumulator_) - elif True: - d_0___accumulator_ = (default__.WriteAADPair(Seq.default__.Last(ec))) + (d_0___accumulator_) - in0_ = Seq.default__.DropLast(ec) - ec = in0_ - raise _dafny.TailCall() - break - - @staticmethod - def WriteAADPair(pair): - return (SerializeFunctions.default__.WriteShortLengthSeq((pair).key)) + (SerializeFunctions.default__.WriteShortLengthSeq((pair).value)) - - @staticmethod - def ReadAADPair(buffer): - d_0_valueOrError0_ = SerializeFunctions.default__.ReadShortLengthSeq(buffer) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - let_tmp_rhs0_ = (d_0_valueOrError0_).Extract() - d_1_key_ = let_tmp_rhs0_.data - d_2_keyEnd_ = let_tmp_rhs0_.tail - d_3_valueOrError1_ = Wrappers.default__.Need(UTF8.default__.ValidUTF8Seq(d_1_key_), SerializeFunctions.ReadProblems_Error(_dafny.Seq("Invalid Encryption Context key"))) - if (d_3_valueOrError1_).IsFailure(): - return (d_3_valueOrError1_).PropagateFailure() - elif True: - d_4_valueOrError2_ = SerializeFunctions.default__.ReadShortLengthSeq(d_2_keyEnd_) - if (d_4_valueOrError2_).IsFailure(): - return (d_4_valueOrError2_).PropagateFailure() - elif True: - let_tmp_rhs1_ = (d_4_valueOrError2_).Extract() - d_5_value_ = let_tmp_rhs1_.data - d_6_tail_ = let_tmp_rhs1_.tail - d_7_valueOrError3_ = Wrappers.default__.Need(UTF8.default__.ValidUTF8Seq(d_5_value_), SerializeFunctions.ReadProblems_Error(_dafny.Seq("Invalid Encryption Context value"))) - if (d_7_valueOrError3_).IsFailure(): - return (d_7_valueOrError3_).PropagateFailure() - elif True: - d_8_pair_ = SerializableTypes.Pair_Pair(d_1_key_, d_5_value_) - return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_8_pair_, d_6_tail_)) - - @staticmethod - def ReadAADPairs(buffer, accumulator, keys, count, nextPair): - while True: - with _dafny.label(): - if (count) > (len(accumulator)): - d_0_valueOrError0_ = default__.ReadAADPair(nextPair) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - let_tmp_rhs0_ = (d_0_valueOrError0_).Extract() - d_1_pair_ = let_tmp_rhs0_.data - d_2_newPos_ = let_tmp_rhs0_.tail - d_3_valueOrError1_ = Wrappers.default__.Need(((d_1_pair_).key) not in (keys), SerializeFunctions.ReadProblems_Error(_dafny.Seq("Duplicate Encryption Context key value."))) - if (d_3_valueOrError1_).IsFailure(): - return (d_3_valueOrError1_).PropagateFailure() - elif True: - d_4_valueOrError2_ = Wrappers.default__.Need((((d_2_newPos_).start) - ((buffer).start)) < (SerializableTypes.default__.ESDK__CANONICAL__ENCRYPTION__CONTEXT__MAX__LENGTH), SerializeFunctions.ReadProblems_Error(_dafny.Seq("Encryption Context exceeds maximum length."))) - if (d_4_valueOrError2_).IsFailure(): - return (d_4_valueOrError2_).PropagateFailure() - elif True: - d_5_nextAcc_ = (accumulator) + (_dafny.Seq([d_1_pair_])) - d_6_nextKeys_ = (keys) | (default__.KeysToSet(_dafny.Seq([d_1_pair_]))) - in0_ = buffer - in1_ = d_5_nextAcc_ - in2_ = d_6_nextKeys_ - in3_ = count - in4_ = d_2_newPos_ - buffer = in0_ - accumulator = in1_ - keys = in2_ - count = in3_ - nextPair = in4_ - raise _dafny.TailCall() - elif True: - return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(accumulator, nextPair)) - break - - @staticmethod - def ReadAAD(buffer): - d_0_valueOrError0_ = SerializeFunctions.default__.ReadUInt16(buffer) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - let_tmp_rhs0_ = (d_0_valueOrError0_).Extract() - d_1_count_ = let_tmp_rhs0_.data - d_2_ecPos_ = let_tmp_rhs0_.tail - if (d_1_count_) == (0): - d_3_edks_ = _dafny.Seq([]) - return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_3_edks_, d_2_ecPos_)) - elif True: - d_4_accumulator_ = _dafny.Seq([]) - d_5_keys_ = default__.KeysToSet(d_4_accumulator_) - d_6_valueOrError1_ = default__.ReadAADPairs(d_2_ecPos_, d_4_accumulator_, d_5_keys_, d_1_count_, d_2_ecPos_) - if (d_6_valueOrError1_).IsFailure(): - return (d_6_valueOrError1_).PropagateFailure() - elif True: - let_tmp_rhs1_ = (d_6_valueOrError1_).Extract() - d_7_pairs_ = let_tmp_rhs1_.data - d_8_tail_ = let_tmp_rhs1_.tail - return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_7_pairs_, d_8_tail_)) - - @staticmethod - def ReadAADSection(buffer): - d_0_valueOrError0_ = SerializeFunctions.default__.ReadUInt16(buffer) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - d_1_length_ = (d_0_valueOrError0_).Extract() - if ((d_1_length_).data) == (0): - d_2_empty_ = _dafny.Seq([]) - return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_2_empty_, (d_1_length_).tail)) - elif True: - d_3_valueOrError1_ = Wrappers.default__.Need(((((d_1_length_).tail).start) + ((d_1_length_).data)) <= (len(((d_1_length_).tail).bytes)), SerializeFunctions.ReadProblems_MoreNeeded((((d_1_length_).tail).start) + ((d_1_length_).data))) - if (d_3_valueOrError1_).IsFailure(): - return (d_3_valueOrError1_).PropagateFailure() - elif True: - d_4_valueOrError2_ = SerializeFunctions.default__.ReadUInt16((d_1_length_).tail) - if (d_4_valueOrError2_).IsFailure(): - return (d_4_valueOrError2_).PropagateFailure() - elif True: - d_5_verifyCount_ = (d_4_valueOrError2_).Extract() - if ((d_1_length_).data) == (2): - d_6_valueOrError3_ = Wrappers.default__.Need(((d_5_verifyCount_).data) == (0), SerializeFunctions.ReadProblems_Error(_dafny.Seq("Encryption Context pairs count can not exceed byte length"))) - if (d_6_valueOrError3_).IsFailure(): - return (d_6_valueOrError3_).PropagateFailure() - elif True: - d_7_empty_ = _dafny.Seq([]) - return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_7_empty_, (d_5_verifyCount_).tail)) - elif True: - d_8_valueOrError4_ = Wrappers.default__.Need((0) < ((d_5_verifyCount_).data), SerializeFunctions.ReadProblems_Error(_dafny.Seq("Encryption Context byte length exceeds pairs count."))) - if (d_8_valueOrError4_).IsFailure(): - return (d_8_valueOrError4_).PropagateFailure() - elif True: - d_9_valueOrError5_ = default__.ReadAAD((d_1_length_).tail) - if (d_9_valueOrError5_).IsFailure(): - return (d_9_valueOrError5_).PropagateFailure() - elif True: - d_10_aad_ = (d_9_valueOrError5_).Extract() - d_11_valueOrError6_ = Wrappers.default__.Need(((((d_10_aad_).tail).start) - (((d_1_length_).tail).start)) == ((d_1_length_).data), SerializeFunctions.ReadProblems_Error(_dafny.Seq("AAD Length did not match stored length."))) - if (d_11_valueOrError6_).IsFailure(): - return (d_11_valueOrError6_).PropagateFailure() - elif True: - return Wrappers.Result_Success(d_10_aad_) - - @staticmethod - def KeysToSet(pairs): - def iife0_(): - coll0_ = _dafny.Set() - compr_0_: SerializableTypes.Pair - for compr_0_ in (pairs).Elements: - d_0_p_: SerializableTypes.Pair = compr_0_ - if (d_0_p_) in (pairs): - coll0_ = coll0_.union(_dafny.Set([(d_0_p_).key])) - return _dafny.Set(coll0_) - return iife0_() - - - -class ESDKEncryptionContextPair: - def __init__(self): - pass - - @staticmethod - def default(): - return SerializableTypes.Pair.default(UTF8.ValidUTF8Bytes.default, UTF8.ValidUTF8Bytes.default)() - def _Is(source__): - d_0_p_: SerializableTypes.Pair = source__ - return (((StandardLibrary_UInt.default__.HasUint16Len((d_0_p_).key)) and (UTF8.default__.ValidUTF8Seq((d_0_p_).key))) and (StandardLibrary_UInt.default__.HasUint16Len((d_0_p_).value))) and (UTF8.default__.ValidUTF8Seq((d_0_p_).value)) - -class ESDKCanonicalEncryptionContext: - def __init__(self): - pass - - @staticmethod - def default(): - return _dafny.Seq({}) diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/Frames.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/Frames.py deleted file mode 100644 index 197571ca9..000000000 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/Frames.py +++ /dev/null @@ -1,347 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary -import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom -import aws_cryptography_primitives.internaldafny.generated.Random as Random -import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption -import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest -import aws_cryptography_primitives.internaldafny.generated.Digest as Digest -import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC -import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC -import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF -import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF -import aws_cryptography_primitives.internaldafny.generated.Signature as Signature -import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr -import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption -import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives -import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 -import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites -import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials -import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring -import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations -import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort -import smithy_dafny_standard_library.internaldafny.generated.Math as Math -import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq -import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils -import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants -import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID -import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping -import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets -import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext -import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping -import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring -import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms -import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries -import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang -import smithy_dafny_standard_library.internaldafny.generated.Time as Time -import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker -import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC -import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring -import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring -import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM -import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults -import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment -import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM -import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier -import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils -import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders -import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn -import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure -import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable -import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore -import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr -import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode -import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions -import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings -import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO -import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals -import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals -import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul -import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals -import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals -import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod -import smithy_dafny_standard_library.internaldafny.generated.Power as Power -import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm -import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop -import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting -import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings -import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt -import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare -import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall -import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header - -# Module: Frames - -class default__: - def __init__(self): - pass - - @staticmethod - def WriteRegularFrame(regularFrame): - return (((SerializeFunctions.default__.WriteUint32((regularFrame).seqNum)) + (SerializeFunctions.default__.Write((regularFrame).iv))) + (SerializeFunctions.default__.Write((regularFrame).encContent))) + (SerializeFunctions.default__.Write((regularFrame).authTag)) - - @staticmethod - def ReadRegularFrame(buffer, header): - d_0_valueOrError0_ = SerializeFunctions.default__.ReadUInt32(buffer) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - d_1_sequenceNumber_ = (d_0_valueOrError0_).Extract() - d_2_valueOrError1_ = Wrappers.default__.Need(((d_1_sequenceNumber_).data) < (default__.ENDFRAME__SEQUENCE__NUMBER), SerializeFunctions.ReadProblems_Error(_dafny.Seq("Regular frame sequence number can not equal or exceed the final frame."))) - if (d_2_valueOrError1_).IsFailure(): - return (d_2_valueOrError1_).PropagateFailure() - elif True: - d_3_valueOrError2_ = SerializeFunctions.default__.Read((d_1_sequenceNumber_).tail, SerializableTypes.default__.GetIvLength((header).suite)) - if (d_3_valueOrError2_).IsFailure(): - return (d_3_valueOrError2_).PropagateFailure() - elif True: - d_4_iv_ = (d_3_valueOrError2_).Extract() - d_5_valueOrError3_ = SerializeFunctions.default__.Read((d_4_iv_).tail, ((header).body).frameLength) - if (d_5_valueOrError3_).IsFailure(): - return (d_5_valueOrError3_).PropagateFailure() - elif True: - d_6_encContent_ = (d_5_valueOrError3_).Extract() - d_7_valueOrError4_ = SerializeFunctions.default__.Read((d_6_encContent_).tail, SerializableTypes.default__.GetTagLength((header).suite)) - if (d_7_valueOrError4_).IsFailure(): - return (d_7_valueOrError4_).PropagateFailure() - elif True: - d_8_authTag_ = (d_7_valueOrError4_).Extract() - d_9_regularFrame_ = Frame_RegularFrame(header, (d_1_sequenceNumber_).data, (d_4_iv_).data, (d_6_encContent_).data, (d_8_authTag_).data) - return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_9_regularFrame_, (d_8_authTag_).tail)) - - @staticmethod - def WriteFinalFrame(finalFrame): - return ((((SerializeFunctions.default__.WriteUint32(default__.ENDFRAME__SEQUENCE__NUMBER)) + (SerializeFunctions.default__.WriteUint32((finalFrame).seqNum))) + (SerializeFunctions.default__.Write((finalFrame).iv))) + (SerializeFunctions.default__.WriteUint32Seq((finalFrame).encContent))) + (SerializeFunctions.default__.Write((finalFrame).authTag)) - - @staticmethod - def ReadFinalFrame(buffer, header): - d_0_valueOrError0_ = SerializeFunctions.default__.ReadUInt32(buffer) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - d_1_finalFrameSignal_ = (d_0_valueOrError0_).Extract() - d_2_valueOrError1_ = Wrappers.default__.Need(((d_1_finalFrameSignal_).data) == (default__.ENDFRAME__SEQUENCE__NUMBER), SerializeFunctions.ReadProblems_Error(_dafny.Seq("Final frame sequence number MUST be the end-frame sequence number."))) - if (d_2_valueOrError1_).IsFailure(): - return (d_2_valueOrError1_).PropagateFailure() - elif True: - d_3_valueOrError2_ = SerializeFunctions.default__.ReadUInt32((d_1_finalFrameSignal_).tail) - if (d_3_valueOrError2_).IsFailure(): - return (d_3_valueOrError2_).PropagateFailure() - elif True: - d_4_sequenceNumber_ = (d_3_valueOrError2_).Extract() - d_5_valueOrError3_ = SerializeFunctions.default__.Read((d_4_sequenceNumber_).tail, SerializableTypes.default__.GetIvLength((header).suite)) - if (d_5_valueOrError3_).IsFailure(): - return (d_5_valueOrError3_).PropagateFailure() - elif True: - d_6_iv_ = (d_5_valueOrError3_).Extract() - d_7_valueOrError4_ = SerializeFunctions.default__.ReadUInt32((d_6_iv_).tail) - if (d_7_valueOrError4_).IsFailure(): - return (d_7_valueOrError4_).PropagateFailure() - elif True: - d_8_contentLength_ = (d_7_valueOrError4_).Extract() - d_9_valueOrError5_ = Wrappers.default__.Need(((d_8_contentLength_).data) <= (((header).body).frameLength), SerializeFunctions.ReadProblems_Error(_dafny.Seq("Content length MUST NOT exceed the frame length."))) - if (d_9_valueOrError5_).IsFailure(): - return (d_9_valueOrError5_).PropagateFailure() - elif True: - d_10_valueOrError6_ = SerializeFunctions.default__.ReadUint32Seq((d_6_iv_).tail) - if (d_10_valueOrError6_).IsFailure(): - return (d_10_valueOrError6_).PropagateFailure() - elif True: - d_11_encContent_ = (d_10_valueOrError6_).Extract() - d_12_valueOrError7_ = SerializeFunctions.default__.Read((d_11_encContent_).tail, SerializableTypes.default__.GetTagLength((header).suite)) - if (d_12_valueOrError7_).IsFailure(): - return (d_12_valueOrError7_).PropagateFailure() - elif True: - d_13_authTag_ = (d_12_valueOrError7_).Extract() - d_14_finalFrame_ = Frame_FinalFrame(header, (d_4_sequenceNumber_).data, (d_6_iv_).data, (d_11_encContent_).data, (d_13_authTag_).data) - return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_14_finalFrame_, (d_13_authTag_).tail)) - - @staticmethod - def ReadNonFrame(buffer, header): - d_0_valueOrError0_ = SerializeFunctions.default__.Read(buffer, SerializableTypes.default__.GetIvLength((header).suite)) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - d_1_iv_ = (d_0_valueOrError0_).Extract() - d_2_valueOrError1_ = SerializeFunctions.default__.ReadUInt64((d_1_iv_).tail) - if (d_2_valueOrError1_).IsFailure(): - return (d_2_valueOrError1_).PropagateFailure() - elif True: - d_3_contentLength_ = (d_2_valueOrError1_).Extract() - d_4_valueOrError2_ = Wrappers.default__.Need(((d_3_contentLength_).data) < (default__.SAFE__MAX__ENCRYPT), SerializeFunctions.ReadProblems_Error(_dafny.Seq("Frame exceeds AES-GCM cryptographic safety for a single key/iv."))) - if (d_4_valueOrError2_).IsFailure(): - return (d_4_valueOrError2_).PropagateFailure() - elif True: - d_5_valueOrError3_ = SerializeFunctions.default__.ReadUint64Seq((d_1_iv_).tail) - if (d_5_valueOrError3_).IsFailure(): - return (d_5_valueOrError3_).PropagateFailure() - elif True: - d_6_encContent_ = (d_5_valueOrError3_).Extract() - d_7_valueOrError4_ = SerializeFunctions.default__.Read((d_6_encContent_).tail, SerializableTypes.default__.GetTagLength((header).suite)) - if (d_7_valueOrError4_).IsFailure(): - return (d_7_valueOrError4_).PropagateFailure() - elif True: - d_8_authTag_ = (d_7_valueOrError4_).Extract() - d_9_nonFramed_ = Frame_NonFramed(header, (d_1_iv_).data, (d_6_encContent_).data, (d_8_authTag_).data) - return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_9_nonFramed_, (d_8_authTag_).tail)) - - @_dafny.classproperty - def ENDFRAME__SEQUENCE__NUMBER(instance): - return 4294967295 - @_dafny.classproperty - def SAFE__MAX__ENCRYPT(instance): - return 68719476704 - @_dafny.classproperty - def START__SEQUENCE__NUMBER(instance): - return 1 - @_dafny.classproperty - def NONFRAMED__SEQUENCE__NUMBER(instance): - return 1 - -class FramedHeader: - def __init__(self): - pass - - @staticmethod - def default(): - return Header.HeaderInfo.default()() - -class NonFramedHeader: - def __init__(self): - pass - - @staticmethod - def default(): - return Header.HeaderInfo.default()() - -class Frame: - @classmethod - def default(cls, ): - return lambda: Frame_RegularFrame(Header.HeaderInfo.default()(), int(0), _dafny.Seq({}), _dafny.Seq({}), _dafny.Seq({})) - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_RegularFrame(self) -> bool: - return isinstance(self, Frame_RegularFrame) - @property - def is_FinalFrame(self) -> bool: - return isinstance(self, Frame_FinalFrame) - @property - def is_NonFramed(self) -> bool: - return isinstance(self, Frame_NonFramed) - -class Frame_RegularFrame(Frame, NamedTuple('RegularFrame', [('header', Any), ('seqNum', Any), ('iv', Any), ('encContent', Any), ('authTag', Any)])): - def __dafnystr__(self) -> str: - return f'Frames.Frame.RegularFrame({_dafny.string_of(self.header)}, {_dafny.string_of(self.seqNum)}, {_dafny.string_of(self.iv)}, {_dafny.string_of(self.encContent)}, {_dafny.string_of(self.authTag)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, Frame_RegularFrame) and self.header == __o.header and self.seqNum == __o.seqNum and self.iv == __o.iv and self.encContent == __o.encContent and self.authTag == __o.authTag - def __hash__(self) -> int: - return super().__hash__() - -class Frame_FinalFrame(Frame, NamedTuple('FinalFrame', [('header', Any), ('seqNum', Any), ('iv', Any), ('encContent', Any), ('authTag', Any)])): - def __dafnystr__(self) -> str: - return f'Frames.Frame.FinalFrame({_dafny.string_of(self.header)}, {_dafny.string_of(self.seqNum)}, {_dafny.string_of(self.iv)}, {_dafny.string_of(self.encContent)}, {_dafny.string_of(self.authTag)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, Frame_FinalFrame) and self.header == __o.header and self.seqNum == __o.seqNum and self.iv == __o.iv and self.encContent == __o.encContent and self.authTag == __o.authTag - def __hash__(self) -> int: - return super().__hash__() - -class Frame_NonFramed(Frame, NamedTuple('NonFramed', [('header', Any), ('iv', Any), ('encContent', Any), ('authTag', Any)])): - def __dafnystr__(self) -> str: - return f'Frames.Frame.NonFramed({_dafny.string_of(self.header)}, {_dafny.string_of(self.iv)}, {_dafny.string_of(self.encContent)}, {_dafny.string_of(self.authTag)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, Frame_NonFramed) and self.header == __o.header and self.iv == __o.iv and self.encContent == __o.encContent and self.authTag == __o.authTag - def __hash__(self) -> int: - return super().__hash__() - - -class RegularFrame: - def __init__(self): - pass - - @staticmethod - def default(): - return Frame.default()() - -class FinalFrame: - def __init__(self): - pass - - @staticmethod - def default(): - return Frame.default()() - -class NonFramed: - def __init__(self): - pass - - @staticmethod - def default(): - return Frame.default()() diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/Header.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/Header.py deleted file mode 100644 index 9eb0af038..000000000 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/Header.py +++ /dev/null @@ -1,228 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary -import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom -import aws_cryptography_primitives.internaldafny.generated.Random as Random -import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption -import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest -import aws_cryptography_primitives.internaldafny.generated.Digest as Digest -import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC -import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC -import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF -import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF -import aws_cryptography_primitives.internaldafny.generated.Signature as Signature -import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr -import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption -import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives -import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 -import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites -import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials -import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring -import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations -import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort -import smithy_dafny_standard_library.internaldafny.generated.Math as Math -import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq -import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils -import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants -import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID -import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping -import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets -import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext -import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping -import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring -import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms -import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries -import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang -import smithy_dafny_standard_library.internaldafny.generated.Time as Time -import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker -import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC -import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring -import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring -import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM -import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults -import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment -import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM -import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier -import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils -import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders -import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn -import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure -import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable -import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore -import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr -import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode -import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions -import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings -import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO -import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals -import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals -import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul -import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals -import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals -import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod -import smithy_dafny_standard_library.internaldafny.generated.Power as Power -import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm -import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop -import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting -import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings -import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt -import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare -import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall -import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth - -# Module: Header - -class default__: - def __init__(self): - pass - - @staticmethod - def HeaderVersionSupportsCommitment_q(suite, body): - return (not (((suite).commitment).is_HKDF) or (((body).is_V2HeaderBody) and ((len((body).suiteData)) == ((((suite).commitment).HKDF).outputKeyLength)))) and (not (not(((suite).commitment).is_HKDF)) or ((True) and ((body).is_V1HeaderBody))) - - @staticmethod - def ReadHeaderBody(buffer, maxEdks, mpl): - d_0_valueOrError0_ = SharedHeaderFunctions.default__.ReadMessageFormatVersion(buffer) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - d_1_version_ = (d_0_valueOrError0_).Extract() - def lambda0_(): - source0_ = (d_1_version_).data - if True: - if source0_.is_V1: - d_3_valueOrError2_ = V1HeaderBody.default__.ReadV1HeaderBody(buffer, maxEdks, mpl) - if (d_3_valueOrError2_).IsFailure(): - return (d_3_valueOrError2_).PropagateFailure() - elif True: - d_4_b_ = (d_3_valueOrError2_).Extract() - d_5_body_ = (d_4_b_).data - return Wrappers.Result_Success((d_5_body_, (d_4_b_).tail)) - if True: - d_6_valueOrError3_ = V2HeaderBody.default__.ReadV2HeaderBody(buffer, maxEdks, mpl) - if (d_6_valueOrError3_).IsFailure(): - return (d_6_valueOrError3_).PropagateFailure() - elif True: - d_7_b_ = (d_6_valueOrError3_).Extract() - d_8_body_ = (d_7_b_).data - return Wrappers.Result_Success((d_8_body_, (d_7_b_).tail)) - - d_2_valueOrError1_ = lambda0_() - if (d_2_valueOrError1_).IsFailure(): - return (d_2_valueOrError1_).PropagateFailure() - elif True: - let_tmp_rhs0_ = (d_2_valueOrError1_).Extract() - d_9_body_ = let_tmp_rhs0_[0] - d_10_tail_ = let_tmp_rhs0_[1] - d_11_valueOrError4_ = Wrappers.default__.Need((((d_9_body_).contentType).is_Framed) == (((d_9_body_).frameLength) > (0)), SerializeFunctions.ReadProblems_Error(_dafny.Seq("Frame length must be positive if content is framed"))) - if (d_11_valueOrError4_).IsFailure(): - return (d_11_valueOrError4_).PropagateFailure() - elif True: - d_12_valueOrError5_ = Wrappers.default__.Need((((d_9_body_).contentType).is_NonFramed) == (((d_9_body_).frameLength) == (0)), SerializeFunctions.ReadProblems_Error(_dafny.Seq("Frame length must be zero if content is non-framed"))) - if (d_12_valueOrError5_).IsFailure(): - return (d_12_valueOrError5_).PropagateFailure() - elif True: - return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_9_body_, d_10_tail_)) - - @staticmethod - def WriteHeaderBody(body): - source0_ = body - if True: - if source0_.is_V1HeaderBody: - return V1HeaderBody.default__.WriteV1HeaderBody(body) - if True: - return V2HeaderBody.default__.WriteV2HeaderBody(body) - - -class HeaderInfo: - @classmethod - def default(cls, ): - return lambda: HeaderInfo_HeaderInfo(HeaderTypes.HeaderBody.default()(), _dafny.Seq({}), _dafny.Map({}), AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo.default()(), HeaderTypes.HeaderAuth.default()()) - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_HeaderInfo(self) -> bool: - return isinstance(self, HeaderInfo_HeaderInfo) - -class HeaderInfo_HeaderInfo(HeaderInfo, NamedTuple('HeaderInfo', [('body', Any), ('rawHeader', Any), ('encryptionContext', Any), ('suite', Any), ('headerAuth', Any)])): - def __dafnystr__(self) -> str: - return f'Header.HeaderInfo.HeaderInfo({_dafny.string_of(self.body)}, {_dafny.string_of(self.rawHeader)}, {_dafny.string_of(self.encryptionContext)}, {_dafny.string_of(self.suite)}, {_dafny.string_of(self.headerAuth)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, HeaderInfo_HeaderInfo) and self.body == __o.body and self.rawHeader == __o.rawHeader and self.encryptionContext == __o.encryptionContext and self.suite == __o.suite and self.headerAuth == __o.headerAuth - def __hash__(self) -> int: - return super().__hash__() - - -class Header: - def __init__(self): - pass - - @staticmethod - def default(): - return HeaderInfo.default()() diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/HeaderAuth.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/HeaderAuth.py deleted file mode 100644 index e599023fe..000000000 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/HeaderAuth.py +++ /dev/null @@ -1,212 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary -import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom -import aws_cryptography_primitives.internaldafny.generated.Random as Random -import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption -import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest -import aws_cryptography_primitives.internaldafny.generated.Digest as Digest -import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC -import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC -import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF -import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF -import aws_cryptography_primitives.internaldafny.generated.Signature as Signature -import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr -import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption -import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives -import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 -import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites -import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials -import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring -import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations -import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort -import smithy_dafny_standard_library.internaldafny.generated.Math as Math -import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq -import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils -import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants -import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID -import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping -import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets -import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext -import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping -import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring -import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms -import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries -import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang -import smithy_dafny_standard_library.internaldafny.generated.Time as Time -import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker -import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC -import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring -import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring -import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM -import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults -import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment -import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM -import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier -import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils -import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders -import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn -import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure -import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable -import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore -import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr -import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode -import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions -import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings -import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO -import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals -import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals -import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul -import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals -import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals -import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod -import smithy_dafny_standard_library.internaldafny.generated.Power as Power -import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm -import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop -import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting -import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings -import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt -import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare -import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall -import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody - -# Module: HeaderAuth - -class default__: - def __init__(self): - pass - - @staticmethod - def WriteHeaderAuthTagV2(headerAuth): - return SerializeFunctions.default__.Write((headerAuth).headerAuthTag) - - @staticmethod - def WriteHeaderAuthTagV1(headerAuth): - return (SerializeFunctions.default__.Write((headerAuth).headerIv)) + (SerializeFunctions.default__.Write((headerAuth).headerAuthTag)) - - @staticmethod - def WriteHeaderAuthTag(headerAuth, suite): - source0_ = (suite).messageVersion - if True: - if (source0_) == (1): - return Wrappers.Result_Success(default__.WriteHeaderAuthTagV1(headerAuth)) - if True: - if (source0_) == (2): - return Wrappers.Result_Success(default__.WriteHeaderAuthTagV2(headerAuth)) - if True: - return Wrappers.Result_Failure(AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Unexpected message version"))) - - @staticmethod - def ReadHeaderAuthTagV1(buffer, suite): - d_0_valueOrError0_ = SerializeFunctions.default__.Read(buffer, SerializableTypes.default__.GetIvLength(suite)) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - d_1_headerIv_ = (d_0_valueOrError0_).Extract() - d_2_valueOrError1_ = SerializeFunctions.default__.Read((d_1_headerIv_).tail, SerializableTypes.default__.GetTagLength(suite)) - if (d_2_valueOrError1_).IsFailure(): - return (d_2_valueOrError1_).PropagateFailure() - elif True: - d_3_headerAuthTag_ = (d_2_valueOrError1_).Extract() - d_4_auth_ = HeaderTypes.HeaderAuth_AESMac((d_1_headerIv_).data, (d_3_headerAuthTag_).data) - return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_4_auth_, (d_3_headerAuthTag_).tail)) - - @staticmethod - def ReadHeaderAuthTagV2(buffer, suite): - d_0_headerIv_ = _dafny.Seq([0 for d_1___v1_ in range(SerializableTypes.default__.GetIvLength(suite))]) - d_2_valueOrError0_ = SerializeFunctions.default__.Read(buffer, SerializableTypes.default__.GetTagLength(suite)) - if (d_2_valueOrError0_).IsFailure(): - return (d_2_valueOrError0_).PropagateFailure() - elif True: - d_3_headerAuthTag_ = (d_2_valueOrError0_).Extract() - d_4_auth_ = HeaderTypes.HeaderAuth_AESMac(d_0_headerIv_, (d_3_headerAuthTag_).data) - return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_4_auth_, (d_3_headerAuthTag_).tail)) - - @staticmethod - def ReadHeaderAuthTag(buffer, suite): - source0_ = (suite).messageVersion - if True: - if (source0_) == (1): - return default__.ReadHeaderAuthTagV1(buffer, suite) - if True: - if (source0_) == (2): - return default__.ReadHeaderAuthTagV2(buffer, suite) - if True: - return Wrappers.Result_Failure(SerializeFunctions.ReadProblems_Error(_dafny.Seq("Unexpected message version"))) - - -class AESMac: - def __init__(self): - pass - - @staticmethod - def default(): - return HeaderTypes.HeaderAuth.default()() - def _Is(source__): - d_0_a_: HeaderTypes.HeaderAuth = source__ - return True diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/HeaderTypes.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/HeaderTypes.py deleted file mode 100644 index c0a4c1cff..000000000 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/HeaderTypes.py +++ /dev/null @@ -1,366 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary -import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom -import aws_cryptography_primitives.internaldafny.generated.Random as Random -import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption -import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest -import aws_cryptography_primitives.internaldafny.generated.Digest as Digest -import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC -import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC -import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF -import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF -import aws_cryptography_primitives.internaldafny.generated.Signature as Signature -import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr -import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption -import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives -import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 -import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites -import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials -import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring -import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations -import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort -import smithy_dafny_standard_library.internaldafny.generated.Math as Math -import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq -import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils -import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants -import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID -import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping -import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets -import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext -import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping -import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring -import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms -import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries -import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang -import smithy_dafny_standard_library.internaldafny.generated.Time as Time -import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker -import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC -import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring -import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring -import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM -import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults -import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment -import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM -import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier -import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils -import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders -import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn -import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure -import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable -import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore -import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr -import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode -import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions -import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings -import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO -import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals -import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals -import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul -import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals -import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals -import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod -import smithy_dafny_standard_library.internaldafny.generated.Power as Power -import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm -import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop -import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting -import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings -import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt -import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare -import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall -import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext - -# Module: HeaderTypes - -class default__: - def __init__(self): - pass - - @_dafny.classproperty - def MESSAGE__ID__LEN__V1(instance): - return 16 - @_dafny.classproperty - def MESSAGE__ID__LEN__V2(instance): - return 32 - -class MessageFormatVersion: - @_dafny.classproperty - def AllSingletonConstructors(cls): - return [MessageFormatVersion_V1(), MessageFormatVersion_V2()] - @classmethod - def default(cls, ): - return lambda: MessageFormatVersion_V1() - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_V1(self) -> bool: - return isinstance(self, MessageFormatVersion_V1) - @property - def is_V2(self) -> bool: - return isinstance(self, MessageFormatVersion_V2) - def Serialize(self): - source0_ = self - if True: - if source0_.is_V1: - return _dafny.Seq([1]) - if True: - return _dafny.Seq([2]) - - @staticmethod - def Get(x): - d_0_valueOrError0_ = Wrappers.default__.Need(((x) == (_dafny.Seq([1]))) or ((x) == (_dafny.Seq([2]))), _dafny.Seq("Unsupported Version value.")) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - def lambda0_(): - source0_ = (x)[0] - if True: - if (source0_) == (1): - return MessageFormatVersion_V1() - if True: - return MessageFormatVersion_V2() - - return Wrappers.Result_Success(lambda0_()) - - -class MessageFormatVersion_V1(MessageFormatVersion, NamedTuple('V1', [])): - def __dafnystr__(self) -> str: - return f'HeaderTypes.MessageFormatVersion.V1' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, MessageFormatVersion_V1) - def __hash__(self) -> int: - return super().__hash__() - -class MessageFormatVersion_V2(MessageFormatVersion, NamedTuple('V2', [])): - def __dafnystr__(self) -> str: - return f'HeaderTypes.MessageFormatVersion.V2' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, MessageFormatVersion_V2) - def __hash__(self) -> int: - return super().__hash__() - - -class ESDKAlgorithmSuite: - def __init__(self): - pass - - @staticmethod - def default(): - return AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo.default()() - -class HeaderBody: - @classmethod - def default(cls, ): - return lambda: HeaderBody_V1HeaderBody(MessageType.default()(), AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo.default()(), _dafny.Seq({}), _dafny.Seq({}), _dafny.Seq({}), ContentType.default()(), int(0), int(0)) - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_V1HeaderBody(self) -> bool: - return isinstance(self, HeaderBody_V1HeaderBody) - @property - def is_V2HeaderBody(self) -> bool: - return isinstance(self, HeaderBody_V2HeaderBody) - -class HeaderBody_V1HeaderBody(HeaderBody, NamedTuple('V1HeaderBody', [('messageType', Any), ('algorithmSuite', Any), ('messageId', Any), ('encryptionContext', Any), ('encryptedDataKeys', Any), ('contentType', Any), ('headerIvLength', Any), ('frameLength', Any)])): - def __dafnystr__(self) -> str: - return f'HeaderTypes.HeaderBody.V1HeaderBody({_dafny.string_of(self.messageType)}, {_dafny.string_of(self.algorithmSuite)}, {_dafny.string_of(self.messageId)}, {_dafny.string_of(self.encryptionContext)}, {_dafny.string_of(self.encryptedDataKeys)}, {_dafny.string_of(self.contentType)}, {_dafny.string_of(self.headerIvLength)}, {_dafny.string_of(self.frameLength)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, HeaderBody_V1HeaderBody) and self.messageType == __o.messageType and self.algorithmSuite == __o.algorithmSuite and self.messageId == __o.messageId and self.encryptionContext == __o.encryptionContext and self.encryptedDataKeys == __o.encryptedDataKeys and self.contentType == __o.contentType and self.headerIvLength == __o.headerIvLength and self.frameLength == __o.frameLength - def __hash__(self) -> int: - return super().__hash__() - -class HeaderBody_V2HeaderBody(HeaderBody, NamedTuple('V2HeaderBody', [('algorithmSuite', Any), ('messageId', Any), ('encryptionContext', Any), ('encryptedDataKeys', Any), ('contentType', Any), ('frameLength', Any), ('suiteData', Any)])): - def __dafnystr__(self) -> str: - return f'HeaderTypes.HeaderBody.V2HeaderBody({_dafny.string_of(self.algorithmSuite)}, {_dafny.string_of(self.messageId)}, {_dafny.string_of(self.encryptionContext)}, {_dafny.string_of(self.encryptedDataKeys)}, {_dafny.string_of(self.contentType)}, {_dafny.string_of(self.frameLength)}, {_dafny.string_of(self.suiteData)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, HeaderBody_V2HeaderBody) and self.algorithmSuite == __o.algorithmSuite and self.messageId == __o.messageId and self.encryptionContext == __o.encryptionContext and self.encryptedDataKeys == __o.encryptedDataKeys and self.contentType == __o.contentType and self.frameLength == __o.frameLength and self.suiteData == __o.suiteData - def __hash__(self) -> int: - return super().__hash__() - - -class HeaderAuth: - @classmethod - def default(cls, ): - return lambda: HeaderAuth_AESMac(_dafny.Seq({}), _dafny.Seq({})) - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_AESMac(self) -> bool: - return isinstance(self, HeaderAuth_AESMac) - -class HeaderAuth_AESMac(HeaderAuth, NamedTuple('AESMac', [('headerIv', Any), ('headerAuthTag', Any)])): - def __dafnystr__(self) -> str: - return f'HeaderTypes.HeaderAuth.AESMac({_dafny.string_of(self.headerIv)}, {_dafny.string_of(self.headerAuthTag)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, HeaderAuth_AESMac) and self.headerIv == __o.headerIv and self.headerAuthTag == __o.headerAuthTag - def __hash__(self) -> int: - return super().__hash__() - - -class MessageType: - @_dafny.classproperty - def AllSingletonConstructors(cls): - return [MessageType_TYPE__CUSTOMER__AED()] - @classmethod - def default(cls, ): - return lambda: MessageType_TYPE__CUSTOMER__AED() - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_TYPE__CUSTOMER__AED(self) -> bool: - return isinstance(self, MessageType_TYPE__CUSTOMER__AED) - def Serialize(self): - source0_ = self - if True: - return 128 - - @staticmethod - def Get(x): - d_0_valueOrError0_ = Wrappers.default__.Need((x) == (128), _dafny.Seq("Unsupported ContentType value.")) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - def lambda0_(): - source0_ = x - if True: - return MessageType_TYPE__CUSTOMER__AED() - - return Wrappers.Result_Success(lambda0_()) - - -class MessageType_TYPE__CUSTOMER__AED(MessageType, NamedTuple('TYPE__CUSTOMER__AED', [])): - def __dafnystr__(self) -> str: - return f'HeaderTypes.MessageType.TYPE_CUSTOMER_AED' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, MessageType_TYPE__CUSTOMER__AED) - def __hash__(self) -> int: - return super().__hash__() - - -class ContentType: - @_dafny.classproperty - def AllSingletonConstructors(cls): - return [ContentType_NonFramed(), ContentType_Framed()] - @classmethod - def default(cls, ): - return lambda: ContentType_NonFramed() - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_NonFramed(self) -> bool: - return isinstance(self, ContentType_NonFramed) - @property - def is_Framed(self) -> bool: - return isinstance(self, ContentType_Framed) - def Serialize(self): - source0_ = self - if True: - if source0_.is_NonFramed: - return 1 - if True: - return 2 - - @staticmethod - def Get(x): - d_0_valueOrError0_ = Wrappers.default__.Need(((x) == (1)) or ((x) == (2)), _dafny.Seq("Unsupported ContentType value.")) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - def lambda0_(): - source0_ = x - if True: - if (source0_) == (1): - return ContentType_NonFramed() - if True: - return ContentType_Framed() - - return Wrappers.Result_Success(lambda0_()) - - -class ContentType_NonFramed(ContentType, NamedTuple('NonFramed', [])): - def __dafnystr__(self) -> str: - return f'HeaderTypes.ContentType.NonFramed' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, ContentType_NonFramed) - def __hash__(self) -> int: - return super().__hash__() - -class ContentType_Framed(ContentType, NamedTuple('Framed', [])): - def __dafnystr__(self) -> str: - return f'HeaderTypes.ContentType.Framed' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, ContentType_Framed) - def __hash__(self) -> int: - return super().__hash__() - - -class MessageId: - def __init__(self): - pass - - @staticmethod - def default(): - return _dafny.Seq({}) - def _Is(source__): - d_1_x_: _dafny.Seq = source__ - return ((len(d_1_x_)) == (default__.MESSAGE__ID__LEN__V1)) or ((len(d_1_x_)) == (default__.MESSAGE__ID__LEN__V2)) diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/KeyDerivation.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/KeyDerivation.py deleted file mode 100644 index e84ff84a3..000000000 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/KeyDerivation.py +++ /dev/null @@ -1,354 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary -import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom -import aws_cryptography_primitives.internaldafny.generated.Random as Random -import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption -import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest -import aws_cryptography_primitives.internaldafny.generated.Digest as Digest -import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC -import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC -import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF -import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF -import aws_cryptography_primitives.internaldafny.generated.Signature as Signature -import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr -import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption -import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives -import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 -import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites -import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials -import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring -import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations -import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort -import smithy_dafny_standard_library.internaldafny.generated.Math as Math -import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq -import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils -import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants -import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID -import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping -import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets -import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext -import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping -import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring -import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms -import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries -import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang -import smithy_dafny_standard_library.internaldafny.generated.Time as Time -import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker -import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC -import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring -import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring -import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM -import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults -import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment -import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM -import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier -import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils -import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders -import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn -import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure -import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable -import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore -import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr -import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode -import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions -import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings -import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO -import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals -import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals -import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul -import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals -import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals -import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod -import smithy_dafny_standard_library.internaldafny.generated.Power as Power -import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm -import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop -import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting -import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings -import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt -import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare -import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall -import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header -import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames -import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody - -# Module: KeyDerivation - -class default__: - def __init__(self): - pass - - @staticmethod - def DeriveKey(messageId, plaintextDataKey, suite, crypto, onNetV4Retry): - res: Wrappers.Result = Wrappers.Result.default(ExpandedKeyMaterial.default())() - source0_ = (suite).kdf - with _dafny.label("match0"): - if True: - if source0_.is_IDENTITY: - d_0_i_ = source0_.IDENTITY - if True: - res = Wrappers.Result_Success(ExpandedKeyMaterial_ExpandedKeyMaterial(plaintextDataKey, Wrappers.Option_None())) - return res - raise _dafny.Break("match0") - if True: - if source0_.is_HKDF: - d_1_hkdf_ = source0_.HKDF - if True: - d_2_hkdfInput_: AwsCryptographyPrimitivesTypes.HkdfInput - d_2_hkdfInput_ = AwsCryptographyPrimitivesTypes.HkdfInput_HkdfInput((d_1_hkdf_).hmac, Wrappers.Option_None(), plaintextDataKey, ((suite).binaryId) + (messageId), (d_1_hkdf_).outputKeyLength) - if onNetV4Retry: - d_2_hkdfInput_ = AwsCryptographyPrimitivesTypes.HkdfInput_HkdfInput((d_1_hkdf_).hmac, Wrappers.Option_None(), plaintextDataKey, (suite).binaryId, (d_1_hkdf_).outputKeyLength) - d_3_maybeDerivedKey_: Wrappers.Result - out0_: Wrappers.Result - out0_ = (crypto).Hkdf(d_2_hkdfInput_) - d_3_maybeDerivedKey_ = out0_ - d_4_valueOrError0_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - def lambda0_(d_5_e_): - return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyPrimitives(d_5_e_) - - d_4_valueOrError0_ = (d_3_maybeDerivedKey_).MapFailure(lambda0_) - if (d_4_valueOrError0_).IsFailure(): - res = (d_4_valueOrError0_).PropagateFailure() - return res - d_6_derivedKey_: _dafny.Seq - d_6_derivedKey_ = (d_4_valueOrError0_).Extract() - res = Wrappers.Result_Success(ExpandedKeyMaterial_ExpandedKeyMaterial(d_6_derivedKey_, Wrappers.Option_None())) - return res - raise _dafny.Break("match0") - if True: - d_7_None_ = source0_ - if True: - res = Wrappers.Result_Failure(AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("None is not a valid Key Derivation Function"))) - return res - pass - return res - - @staticmethod - def ExpandKeyMaterial(messageId, plaintextKey, suite, crypto): - res: Wrappers.Result = Wrappers.Result.default(ExpandedKeyMaterial.default())() - d_0_digest_: AwsCryptographyPrimitivesTypes.DigestAlgorithm - d_0_digest_ = (((suite).commitment).HKDF).hmac - d_1_info_: _dafny.Seq - d_1_info_ = ((suite).binaryId) + (default__.KEY__LABEL) - d_2_hkdfExtractInput_: AwsCryptographyPrimitivesTypes.HkdfExtractInput - d_2_hkdfExtractInput_ = AwsCryptographyPrimitivesTypes.HkdfExtractInput_HkdfExtractInput(d_0_digest_, Wrappers.Option_Some(messageId), plaintextKey) - d_3_maybePseudoRandomKey_: Wrappers.Result - out0_: Wrappers.Result - out0_ = (crypto).HkdfExtract(d_2_hkdfExtractInput_) - d_3_maybePseudoRandomKey_ = out0_ - d_4_valueOrError0_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - def lambda0_(d_5_e_): - return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyPrimitives(d_5_e_) - - d_4_valueOrError0_ = (d_3_maybePseudoRandomKey_).MapFailure(lambda0_) - if (d_4_valueOrError0_).IsFailure(): - res = (d_4_valueOrError0_).PropagateFailure() - return res - d_6_pseudoRandomKey_: _dafny.Seq - d_6_pseudoRandomKey_ = (d_4_valueOrError0_).Extract() - d_7_encryptKeyInput_: AwsCryptographyPrimitivesTypes.HkdfExpandInput - d_7_encryptKeyInput_ = AwsCryptographyPrimitivesTypes.HkdfExpandInput_HkdfExpandInput(d_0_digest_, d_6_pseudoRandomKey_, d_1_info_, (((suite).kdf).HKDF).outputKeyLength) - d_8_commitKeyInput_: AwsCryptographyPrimitivesTypes.HkdfExpandInput - d_9_dt__update__tmp_h0_ = d_7_encryptKeyInput_ - d_10_dt__update_hexpectedLength_h0_ = (((suite).commitment).HKDF).outputKeyLength - d_11_dt__update_hinfo_h0_ = default__.COMMIT__LABEL - d_8_commitKeyInput_ = AwsCryptographyPrimitivesTypes.HkdfExpandInput_HkdfExpandInput((d_9_dt__update__tmp_h0_).digestAlgorithm, (d_9_dt__update__tmp_h0_).prk, d_11_dt__update_hinfo_h0_, d_10_dt__update_hexpectedLength_h0_) - d_12_maybeEncryptKey_: Wrappers.Result - out1_: Wrappers.Result - out1_ = (crypto).HkdfExpand(d_7_encryptKeyInput_) - d_12_maybeEncryptKey_ = out1_ - d_13_maybeCommitKey_: Wrappers.Result - out2_: Wrappers.Result - out2_ = (crypto).HkdfExpand(d_8_commitKeyInput_) - d_13_maybeCommitKey_ = out2_ - d_14_valueOrError1_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - def lambda1_(d_15_e_): - return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyPrimitives(d_15_e_) - - d_14_valueOrError1_ = (d_12_maybeEncryptKey_).MapFailure(lambda1_) - if (d_14_valueOrError1_).IsFailure(): - res = (d_14_valueOrError1_).PropagateFailure() - return res - d_16_encryptKey_: _dafny.Seq - d_16_encryptKey_ = (d_14_valueOrError1_).Extract() - d_17_valueOrError2_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - def lambda2_(d_18_e_): - return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyPrimitives(d_18_e_) - - d_17_valueOrError2_ = (d_13_maybeCommitKey_).MapFailure(lambda2_) - if (d_17_valueOrError2_).IsFailure(): - res = (d_17_valueOrError2_).PropagateFailure() - return res - d_19_commitKey_: _dafny.Seq - d_19_commitKey_ = (d_17_valueOrError2_).Extract() - res = Wrappers.Result_Success(ExpandedKeyMaterial_ExpandedKeyMaterial(d_16_encryptKey_, Wrappers.Option_Some(d_19_commitKey_))) - return res - return res - - @staticmethod - def DeriveKeys(messageId, plaintextKey, suite, crypto, netV4__0__0__RetryPolicy, onNetV4Retry): - res: Wrappers.Result = Wrappers.Result.default(ExpandedKeyMaterial.default())() - d_0_keys_: ExpandedKeyMaterial = ExpandedKeyMaterial.default()() - if ((suite).messageVersion) == (2): - d_1_valueOrError0_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_1_valueOrError0_ = Wrappers.default__.Need((((suite).commitment).is_HKDF) and (((suite).kdf) == ((suite).commitment)), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Suites with message version 2 must have commitment"))) - if (d_1_valueOrError0_).IsFailure(): - res = (d_1_valueOrError0_).PropagateFailure() - return res - d_2_valueOrError1_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_2_valueOrError1_ = Wrappers.default__.Need(((SerializableTypes.default__.GetEncryptKeyLength(suite)) == ((((suite).kdf).HKDF).outputKeyLength)) and ((len(plaintextKey)) == ((((suite).kdf).HKDF).inputKeyLength)), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Invalid Materials"))) - if (d_2_valueOrError1_).IsFailure(): - res = (d_2_valueOrError1_).PropagateFailure() - return res - d_3_valueOrError2_: Wrappers.Result = Wrappers.Result.default(ExpandedKeyMaterial.default())() - out0_: Wrappers.Result - out0_ = default__.ExpandKeyMaterial(messageId, plaintextKey, suite, crypto) - d_3_valueOrError2_ = out0_ - if (d_3_valueOrError2_).IsFailure(): - res = (d_3_valueOrError2_).PropagateFailure() - return res - d_0_keys_ = (d_3_valueOrError2_).Extract() - elif ((suite).messageVersion) == (1): - d_4_valueOrError3_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_4_valueOrError3_ = Wrappers.default__.Need(((suite).commitment).is_None, AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Suites with message version 1 must not have commitment"))) - if (d_4_valueOrError3_).IsFailure(): - res = (d_4_valueOrError3_).PropagateFailure() - return res - d_5_valueOrError4_: Wrappers.Outcome = Wrappers.Outcome.default()() - def lambda0_(): - source0_ = (suite).kdf - if True: - if source0_.is_IDENTITY: - d_6_i_ = source0_.IDENTITY - return (len(plaintextKey)) == (SerializableTypes.default__.GetEncryptKeyLength(suite)) - if True: - if source0_.is_HKDF: - d_7_hkdf_ = source0_.HKDF - return ((len(plaintextKey)) == ((((suite).kdf).HKDF).inputKeyLength)) and (((((suite).kdf).HKDF).outputKeyLength) == (SerializableTypes.default__.GetEncryptKeyLength(suite))) - if True: - d_8_None_ = source0_ - return False - - d_5_valueOrError4_ = Wrappers.default__.Need(lambda0_(), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Suites with message version 1 must not have commitment"))) - if (d_5_valueOrError4_).IsFailure(): - res = (d_5_valueOrError4_).PropagateFailure() - return res - if ((netV4__0__0__RetryPolicy) == (AwsCryptographyEncryptionSdkTypes.NetV4__0__0__RetryPolicy_ALLOW__RETRY())) and (onNetV4Retry): - d_9_valueOrError5_: Wrappers.Result = Wrappers.Result.default(ExpandedKeyMaterial.default())() - out1_: Wrappers.Result - out1_ = default__.DeriveKey(messageId, plaintextKey, suite, crypto, True) - d_9_valueOrError5_ = out1_ - if (d_9_valueOrError5_).IsFailure(): - res = (d_9_valueOrError5_).PropagateFailure() - return res - d_0_keys_ = (d_9_valueOrError5_).Extract() - elif True: - d_10_valueOrError6_: Wrappers.Result = Wrappers.Result.default(ExpandedKeyMaterial.default())() - out2_: Wrappers.Result - out2_ = default__.DeriveKey(messageId, plaintextKey, suite, crypto, False) - d_10_valueOrError6_ = out2_ - if (d_10_valueOrError6_).IsFailure(): - res = (d_10_valueOrError6_).PropagateFailure() - return res - d_0_keys_ = (d_10_valueOrError6_).Extract() - elif True: - res = Wrappers.Result_Failure(AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("Unknown message version"))) - return res - res = Wrappers.Result_Success(d_0_keys_) - return res - return res - - @_dafny.classproperty - def KEY__LABEL(instance): - d_0_s_ = _dafny.Seq([68, 69, 82, 73, 86, 69, 75, 69, 89]) - return d_0_s_ - @_dafny.classproperty - def COMMIT__LABEL(instance): - d_0_s_ = _dafny.Seq([67, 79, 77, 77, 73, 84, 75, 69, 89]) - return d_0_s_ - -class ExpandedKeyMaterial: - @classmethod - def default(cls, ): - return lambda: ExpandedKeyMaterial_ExpandedKeyMaterial(_dafny.Seq({}), Wrappers.Option.default()()) - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_ExpandedKeyMaterial(self) -> bool: - return isinstance(self, ExpandedKeyMaterial_ExpandedKeyMaterial) - -class ExpandedKeyMaterial_ExpandedKeyMaterial(ExpandedKeyMaterial, NamedTuple('ExpandedKeyMaterial', [('dataKey', Any), ('commitmentKey', Any)])): - def __dafnystr__(self) -> str: - return f'KeyDerivation.ExpandedKeyMaterial.ExpandedKeyMaterial({_dafny.string_of(self.dataKey)}, {_dafny.string_of(self.commitmentKey)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, ExpandedKeyMaterial_ExpandedKeyMaterial) and self.dataKey == __o.dataKey and self.commitmentKey == __o.commitmentKey - def __hash__(self) -> int: - return super().__hash__() - diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/MessageBody.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/MessageBody.py deleted file mode 100644 index 5f148aff0..000000000 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/MessageBody.py +++ /dev/null @@ -1,528 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary -import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom -import aws_cryptography_primitives.internaldafny.generated.Random as Random -import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption -import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest -import aws_cryptography_primitives.internaldafny.generated.Digest as Digest -import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC -import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC -import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF -import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF -import aws_cryptography_primitives.internaldafny.generated.Signature as Signature -import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr -import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption -import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives -import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 -import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites -import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials -import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring -import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations -import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort -import smithy_dafny_standard_library.internaldafny.generated.Math as Math -import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq -import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils -import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants -import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID -import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping -import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets -import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext -import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping -import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring -import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms -import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries -import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang -import smithy_dafny_standard_library.internaldafny.generated.Time as Time -import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker -import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC -import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring -import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring -import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM -import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults -import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment -import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM -import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier -import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils -import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders -import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn -import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure -import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable -import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore -import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr -import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode -import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions -import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings -import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO -import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals -import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals -import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul -import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals -import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals -import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod -import smithy_dafny_standard_library.internaldafny.generated.Power as Power -import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm -import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop -import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting -import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings -import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt -import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare -import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall -import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header -import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames - -# Module: MessageBody - -class default__: - def __init__(self): - pass - - @staticmethod - def BodyAADContentTypeString(bc): - source0_ = bc - if True: - if source0_.is_AADRegularFrame: - return default__.BODY__AAD__CONTENT__REGULAR__FRAME - if True: - if source0_.is_AADFinalFrame: - return default__.BODY__AAD__CONTENT__FINAL__FRAME - if True: - return default__.BODY__AAD__CONTENT__SINGLE__BLOCK - - @staticmethod - def IVSeq(suite, sequenceNumber): - return (_dafny.Seq([0 for d_0___v0_ in range((SerializableTypes.default__.GetIvLength(suite)) - (4))])) + (StandardLibrary_UInt.default__.UInt32ToSeq(sequenceNumber)) - - @staticmethod - def EncryptMessageBody(plaintext, header, key, crypto): - result: Wrappers.Result = None - d_0_n_: int - d_1_sequenceNumber_: int - rhs0_ = 0 - rhs1_ = default__.START__SEQUENCE__NUMBER - d_0_n_ = rhs0_ - d_1_sequenceNumber_ = rhs1_ - d_2_regularFrames_: _dafny.Seq - d_2_regularFrames_ = _dafny.Seq([]) - while ((d_0_n_) + (((header).body).frameLength)) < (len(plaintext)): - d_3_valueOrError0_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_3_valueOrError0_ = Wrappers.default__.Need((d_1_sequenceNumber_) < (default__.ENDFRAME__SEQUENCE__NUMBER), AwsCryptographyEncryptionSdkTypes.Error_AwsEncryptionSdkException(_dafny.Seq("too many frames"))) - if (d_3_valueOrError0_).IsFailure(): - result = (d_3_valueOrError0_).PropagateFailure() - return result - d_4_plaintextFrame_: _dafny.Seq - d_4_plaintextFrame_ = _dafny.Seq((plaintext)[d_0_n_:(d_0_n_) + (((header).body).frameLength):]) - d_5_valueOrError1_: Wrappers.Result = None - out0_: Wrappers.Result - out0_ = default__.EncryptRegularFrame(key, header, d_4_plaintextFrame_, d_1_sequenceNumber_, crypto) - d_5_valueOrError1_ = out0_ - if (d_5_valueOrError1_).IsFailure(): - result = (d_5_valueOrError1_).PropagateFailure() - return result - d_6_regularFrame_: Frames.Frame - d_6_regularFrame_ = (d_5_valueOrError1_).Extract() - d_2_regularFrames_ = (d_2_regularFrames_) + (_dafny.Seq([d_6_regularFrame_])) - d_0_n_ = (d_0_n_) + (((header).body).frameLength) - d_1_sequenceNumber_ = (d_1_sequenceNumber_) + (1) - d_7_valueOrError2_: Wrappers.Result = None - out1_: Wrappers.Result - out1_ = default__.EncryptFinalFrame(key, header, _dafny.Seq((plaintext)[d_0_n_::]), d_1_sequenceNumber_, crypto) - d_7_valueOrError2_ = out1_ - if (d_7_valueOrError2_).IsFailure(): - result = (d_7_valueOrError2_).PropagateFailure() - return result - d_8_finalFrame_: Frames.Frame - d_8_finalFrame_ = (d_7_valueOrError2_).Extract() - result = Wrappers.Result_Success(FramedMessageBody_FramedMessageBody(d_2_regularFrames_, d_8_finalFrame_)) - return result - - @staticmethod - def EncryptRegularFrame(key, header, plaintext, sequenceNumber, crypto): - res: Wrappers.Result = None - d_0_iv_: _dafny.Seq - d_0_iv_ = default__.IVSeq((header).suite, sequenceNumber) - d_1_aad_: _dafny.Seq - d_1_aad_ = default__.BodyAAD(((header).body).messageId, BodyAADContent_AADRegularFrame(), sequenceNumber, len(plaintext)) - d_2_aesEncryptInput_: AwsCryptographyPrimitivesTypes.AESEncryptInput - d_2_aesEncryptInput_ = AwsCryptographyPrimitivesTypes.AESEncryptInput_AESEncryptInput((((header).suite).encrypt).AES__GCM, d_0_iv_, key, plaintext, d_1_aad_) - d_3_maybeEncryptionOutput_: Wrappers.Result - out0_: Wrappers.Result - out0_ = (crypto).AESEncrypt(d_2_aesEncryptInput_) - d_3_maybeEncryptionOutput_ = out0_ - d_4_valueOrError0_: Wrappers.Result = Wrappers.Result.default(AwsCryptographyPrimitivesTypes.AESEncryptOutput.default())() - def lambda0_(d_5_e_): - return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyPrimitives(d_5_e_) - - d_4_valueOrError0_ = (d_3_maybeEncryptionOutput_).MapFailure(lambda0_) - if (d_4_valueOrError0_).IsFailure(): - res = (d_4_valueOrError0_).PropagateFailure() - return res - d_6_encryptionOutput_: AwsCryptographyPrimitivesTypes.AESEncryptOutput - d_6_encryptionOutput_ = (d_4_valueOrError0_).Extract() - d_7_frame_: Frames.Frame - d_7_frame_ = Frames.Frame_RegularFrame(header, sequenceNumber, d_0_iv_, (d_6_encryptionOutput_).cipherText, (d_6_encryptionOutput_).authTag) - res = Wrappers.Result_Success(d_7_frame_) - return res - return res - - @staticmethod - def EncryptFinalFrame(key, header, plaintext, sequenceNumber, crypto): - res: Wrappers.Result = None - d_0_iv_: _dafny.Seq - d_0_iv_ = default__.IVSeq((header).suite, sequenceNumber) - d_1_aad_: _dafny.Seq - d_1_aad_ = default__.BodyAAD(((header).body).messageId, BodyAADContent_AADFinalFrame(), sequenceNumber, len(plaintext)) - d_2_aesEncryptInput_: AwsCryptographyPrimitivesTypes.AESEncryptInput - d_2_aesEncryptInput_ = AwsCryptographyPrimitivesTypes.AESEncryptInput_AESEncryptInput((((header).suite).encrypt).AES__GCM, d_0_iv_, key, plaintext, d_1_aad_) - d_3_maybeEncryptionOutput_: Wrappers.Result - out0_: Wrappers.Result - out0_ = (crypto).AESEncrypt(d_2_aesEncryptInput_) - d_3_maybeEncryptionOutput_ = out0_ - d_4_valueOrError0_: Wrappers.Result = Wrappers.Result.default(AwsCryptographyPrimitivesTypes.AESEncryptOutput.default())() - def lambda0_(d_5_e_): - return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyPrimitives(d_5_e_) - - d_4_valueOrError0_ = (d_3_maybeEncryptionOutput_).MapFailure(lambda0_) - if (d_4_valueOrError0_).IsFailure(): - res = (d_4_valueOrError0_).PropagateFailure() - return res - d_6_encryptionOutput_: AwsCryptographyPrimitivesTypes.AESEncryptOutput - d_6_encryptionOutput_ = (d_4_valueOrError0_).Extract() - d_7_finalFrame_: Frames.Frame - d_7_finalFrame_ = Frames.Frame_FinalFrame(header, sequenceNumber, d_0_iv_, (d_6_encryptionOutput_).cipherText, (d_6_encryptionOutput_).authTag) - res = Wrappers.Result_Success(d_7_finalFrame_) - return res - return res - - @staticmethod - def DecryptFramedMessageBody(body, key, crypto): - res: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_0_plaintext_: _dafny.Seq - d_0_plaintext_ = _dafny.Seq([]) - hi0_ = len((body).regularFrames) - for d_1_i_ in range(0, hi0_): - d_2_valueOrError0_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - out0_: Wrappers.Result - out0_ = default__.DecryptFrame(((body).regularFrames)[d_1_i_], key, crypto) - d_2_valueOrError0_ = out0_ - if (d_2_valueOrError0_).IsFailure(): - res = (d_2_valueOrError0_).PropagateFailure() - return res - d_3_plaintextSegment_: _dafny.Seq - d_3_plaintextSegment_ = (d_2_valueOrError0_).Extract() - d_0_plaintext_ = (d_0_plaintext_) + (d_3_plaintextSegment_) - d_4_valueOrError1_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - out1_: Wrappers.Result - out1_ = default__.DecryptFrame((body).finalFrame, key, crypto) - d_4_valueOrError1_ = out1_ - if (d_4_valueOrError1_).IsFailure(): - res = (d_4_valueOrError1_).PropagateFailure() - return res - d_5_finalPlaintextSegment_: _dafny.Seq - d_5_finalPlaintextSegment_ = (d_4_valueOrError1_).Extract() - d_0_plaintext_ = (d_0_plaintext_) + (d_5_finalPlaintextSegment_) - res = Wrappers.Result_Success(d_0_plaintext_) - return res - - @staticmethod - def DecryptFrame(frame, key, crypto): - res: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_0_aad_: _dafny.Seq - d_0_aad_ = default__.BodyAADByFrameType(frame) - d_1_maybePlaintextSegment_: Wrappers.Result - out0_: Wrappers.Result - out0_ = (crypto).AESDecrypt(AwsCryptographyPrimitivesTypes.AESDecryptInput_AESDecryptInput(((((frame).header).suite).encrypt).AES__GCM, key, (frame).encContent, (frame).authTag, (frame).iv, d_0_aad_)) - d_1_maybePlaintextSegment_ = out0_ - d_2_valueOrError0_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - def lambda0_(d_3_e_): - return AwsCryptographyEncryptionSdkTypes.Error_AwsCryptographyPrimitives(d_3_e_) - - d_2_valueOrError0_ = (d_1_maybePlaintextSegment_).MapFailure(lambda0_) - if (d_2_valueOrError0_).IsFailure(): - res = (d_2_valueOrError0_).PropagateFailure() - return res - d_4_plaintextSegment_: _dafny.Seq - d_4_plaintextSegment_ = (d_2_valueOrError0_).Extract() - res = Wrappers.Result_Success(d_4_plaintextSegment_) - return res - return res - - @staticmethod - def BodyAADByFrameType(frame): - def lambda0_(): - source0_ = frame - if True: - if source0_.is_RegularFrame: - d_0_header_ = source0_.header - d_1_seqNum_ = source0_.seqNum - return (d_1_seqNum_, BodyAADContent_AADRegularFrame(), ((d_0_header_).body).frameLength) - if True: - if source0_.is_FinalFrame: - d_2_seqNum_ = source0_.seqNum - d_3_encContent_ = source0_.encContent - return (d_2_seqNum_, BodyAADContent_AADFinalFrame(), len(d_3_encContent_)) - if True: - d_4_encContent_ = source0_.encContent - return (default__.NONFRAMED__SEQUENCE__NUMBER, BodyAADContent_AADSingleBlock(), len(d_4_encContent_)) - - let_tmp_rhs0_ = lambda0_() - d_5_sequenceNumber_ = let_tmp_rhs0_[0] - d_6_bc_ = let_tmp_rhs0_[1] - d_7_length_ = let_tmp_rhs0_[2] - return default__.BodyAAD((((frame).header).body).messageId, d_6_bc_, d_5_sequenceNumber_, d_7_length_) - - @staticmethod - def BodyAAD(messageID, bc, sequenceNumber, length): - d_0_contentAAD_ = UTF8.default__.Encode(default__.BodyAADContentTypeString(bc)) - return (((messageID) + ((d_0_contentAAD_).value)) + (StandardLibrary_UInt.default__.UInt32ToSeq(sequenceNumber))) + (StandardLibrary_UInt.default__.UInt64ToSeq(length)) - - @staticmethod - def WriteFramedMessageBody(body): - return (default__.WriteMessageRegularFrames((body).regularFrames)) + (Frames.default__.WriteFinalFrame((body).finalFrame)) - - @staticmethod - def WriteMessageRegularFrames(frames): - d_0___accumulator_ = _dafny.Seq([]) - while True: - with _dafny.label(): - if (len(frames)) == (0): - return (_dafny.Seq([])) + (d_0___accumulator_) - elif True: - d_0___accumulator_ = (Frames.default__.WriteRegularFrame(Seq.default__.Last(frames))) + (d_0___accumulator_) - in0_ = Seq.default__.DropLast(frames) - frames = in0_ - raise _dafny.TailCall() - break - - @staticmethod - def ReadFramedMessageBody(buffer, header, regularFrames, continuation): - while True: - with _dafny.label(): - d_0_valueOrError0_ = SerializeFunctions.default__.ReadUInt32(continuation) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - d_1_sequenceNumber_ = (d_0_valueOrError0_).Extract() - if ((d_1_sequenceNumber_).data) != (default__.ENDFRAME__SEQUENCE__NUMBER): - d_2_valueOrError1_ = Frames.default__.ReadRegularFrame(continuation, header) - if (d_2_valueOrError1_).IsFailure(): - return (d_2_valueOrError1_).PropagateFailure() - elif True: - d_3_regularFrame_ = (d_2_valueOrError1_).Extract() - d_4_valueOrError2_ = Wrappers.default__.Need((((d_3_regularFrame_).data).seqNum) == ((len(regularFrames)) + (1)), SerializeFunctions.ReadProblems_Error(_dafny.Seq("Sequence number out of order."))) - if (d_4_valueOrError2_).IsFailure(): - return (d_4_valueOrError2_).PropagateFailure() - elif True: - d_5_nextRegularFrames_ = (regularFrames) + (_dafny.Seq([(d_3_regularFrame_).data])) - in0_ = buffer - in1_ = header - in2_ = d_5_nextRegularFrames_ - in3_ = (d_3_regularFrame_).tail - buffer = in0_ - header = in1_ - regularFrames = in2_ - continuation = in3_ - raise _dafny.TailCall() - elif True: - d_6_valueOrError3_ = Frames.default__.ReadFinalFrame(continuation, header) - if (d_6_valueOrError3_).IsFailure(): - return (d_6_valueOrError3_).PropagateFailure() - elif True: - d_7_finalFrame_ = (d_6_valueOrError3_).Extract() - d_8_valueOrError4_ = Wrappers.default__.Need((((d_7_finalFrame_).data).seqNum) == ((len(regularFrames)) + (1)), SerializeFunctions.ReadProblems_Error(_dafny.Seq("Sequence number out of order."))) - if (d_8_valueOrError4_).IsFailure(): - return (d_8_valueOrError4_).PropagateFailure() - elif True: - d_9_body_ = FramedMessageBody_FramedMessageBody(regularFrames, (d_7_finalFrame_).data) - return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_9_body_, (d_7_finalFrame_).tail)) - break - - @staticmethod - def ReadNonFramedMessageBody(buffer, header): - d_0_valueOrError0_ = Frames.default__.ReadNonFrame(buffer, header) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - d_1_block_ = (d_0_valueOrError0_).Extract() - return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead((d_1_block_).data, (d_1_block_).tail)) - - @_dafny.classproperty - def BODY__AAD__CONTENT__REGULAR__FRAME(instance): - return _dafny.Seq("AWSKMSEncryptionClient Frame") - @_dafny.classproperty - def BODY__AAD__CONTENT__FINAL__FRAME(instance): - return _dafny.Seq("AWSKMSEncryptionClient Final Frame") - @_dafny.classproperty - def BODY__AAD__CONTENT__SINGLE__BLOCK(instance): - return _dafny.Seq("AWSKMSEncryptionClient Single Block") - @_dafny.classproperty - def ENDFRAME__SEQUENCE__NUMBER(instance): - return Frames.default__.ENDFRAME__SEQUENCE__NUMBER - @_dafny.classproperty - def START__SEQUENCE__NUMBER(instance): - return Frames.default__.START__SEQUENCE__NUMBER - @_dafny.classproperty - def NONFRAMED__SEQUENCE__NUMBER(instance): - return Frames.default__.NONFRAMED__SEQUENCE__NUMBER - -class BodyAADContent: - @_dafny.classproperty - def AllSingletonConstructors(cls): - return [BodyAADContent_AADRegularFrame(), BodyAADContent_AADFinalFrame(), BodyAADContent_AADSingleBlock()] - @classmethod - def default(cls, ): - return lambda: BodyAADContent_AADRegularFrame() - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_AADRegularFrame(self) -> bool: - return isinstance(self, BodyAADContent_AADRegularFrame) - @property - def is_AADFinalFrame(self) -> bool: - return isinstance(self, BodyAADContent_AADFinalFrame) - @property - def is_AADSingleBlock(self) -> bool: - return isinstance(self, BodyAADContent_AADSingleBlock) - -class BodyAADContent_AADRegularFrame(BodyAADContent, NamedTuple('AADRegularFrame', [])): - def __dafnystr__(self) -> str: - return f'MessageBody.BodyAADContent.AADRegularFrame' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, BodyAADContent_AADRegularFrame) - def __hash__(self) -> int: - return super().__hash__() - -class BodyAADContent_AADFinalFrame(BodyAADContent, NamedTuple('AADFinalFrame', [])): - def __dafnystr__(self) -> str: - return f'MessageBody.BodyAADContent.AADFinalFrame' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, BodyAADContent_AADFinalFrame) - def __hash__(self) -> int: - return super().__hash__() - -class BodyAADContent_AADSingleBlock(BodyAADContent, NamedTuple('AADSingleBlock', [])): - def __dafnystr__(self) -> str: - return f'MessageBody.BodyAADContent.AADSingleBlock' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, BodyAADContent_AADSingleBlock) - def __hash__(self) -> int: - return super().__hash__() - - -class MessageRegularFrames: - def __init__(self): - pass - - @staticmethod - def default(): - return _dafny.Seq({}) - -class FramedMessageBody: - @classmethod - def default(cls, ): - return lambda: FramedMessageBody_FramedMessageBody(_dafny.Seq({}), Frames.Frame.default()()) - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_FramedMessageBody(self) -> bool: - return isinstance(self, FramedMessageBody_FramedMessageBody) - -class FramedMessageBody_FramedMessageBody(FramedMessageBody, NamedTuple('FramedMessageBody', [('regularFrames', Any), ('finalFrame', Any)])): - def __dafnystr__(self) -> str: - return f'MessageBody.FramedMessageBody.FramedMessageBody({_dafny.string_of(self.regularFrames)}, {_dafny.string_of(self.finalFrame)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, FramedMessageBody_FramedMessageBody) and self.regularFrames == __o.regularFrames and self.finalFrame == __o.finalFrame - def __hash__(self) -> int: - return super().__hash__() - - -class FramedMessage: - def __init__(self): - pass - - @staticmethod - def default(): - return FramedMessageBody.default()() - -class MessageFrame: - def __init__(self): - pass - - @staticmethod - def default(): - return Frames.Frame.default()() - -class Frame: - def __init__(self): - pass - - @staticmethod - def default(): - return Frames.Frame.default()() diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/SerializableTypes.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/SerializableTypes.py deleted file mode 100644 index 3524fd335..000000000 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/SerializableTypes.py +++ /dev/null @@ -1,259 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary -import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom -import aws_cryptography_primitives.internaldafny.generated.Random as Random -import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption -import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest -import aws_cryptography_primitives.internaldafny.generated.Digest as Digest -import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC -import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC -import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF -import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF -import aws_cryptography_primitives.internaldafny.generated.Signature as Signature -import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr -import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption -import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives -import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 -import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites -import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials -import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring -import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations -import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort -import smithy_dafny_standard_library.internaldafny.generated.Math as Math -import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq -import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils -import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants -import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID -import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping -import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets -import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext -import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping -import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring -import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms -import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries -import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang -import smithy_dafny_standard_library.internaldafny.generated.Time as Time -import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker -import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC -import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring -import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring -import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM -import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults -import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment -import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM -import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier -import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils -import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders -import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn -import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure -import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable -import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore -import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr -import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode -import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions -import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings -import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO -import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals -import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals -import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul -import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals -import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals -import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod -import smithy_dafny_standard_library.internaldafny.generated.Power as Power -import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm -import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop -import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting -import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings -import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt -import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare -import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall -import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes - -# Module: SerializableTypes - -class default__: - def __init__(self): - pass - - @staticmethod - def IsESDKEncryptedDataKey(edk): - return (((StandardLibrary_UInt.default__.HasUint16Len((edk).keyProviderId)) and (UTF8.default__.ValidUTF8Seq((edk).keyProviderId))) and (StandardLibrary_UInt.default__.HasUint16Len((edk).keyProviderInfo))) and (StandardLibrary_UInt.default__.HasUint16Len((edk).ciphertext)) - - @staticmethod - def IsESDKEncryptionContext(ec): - def lambda0_(forall_var_0_): - d_0_element_: _dafny.Seq = forall_var_0_ - if UTF8.ValidUTF8Bytes._Is(d_0_element_): - return not ((d_0_element_) in ((_dafny.MultiSet((ec).keys)) | (_dafny.MultiSet((ec).values)))) or ((StandardLibrary_UInt.default__.HasUint16Len(d_0_element_)) and (UTF8.default__.ValidUTF8Seq(d_0_element_))) - elif True: - return True - - return (((len(ec)) < (StandardLibrary_UInt.default__.UINT16__LIMIT)) and ((default__.Length(ec)) < (default__.ESDK__CANONICAL__ENCRYPTION__CONTEXT__MAX__LENGTH))) and (_dafny.quantifier(((_dafny.MultiSet((ec).keys)) | (_dafny.MultiSet((ec).values))).UniqueElements, True, lambda0_)) - - @staticmethod - def GetIvLength(a): - source0_ = (a).encrypt - if True: - d_0_e_ = source0_.AES__GCM - return (d_0_e_).ivLength - - @staticmethod - def GetTagLength(a): - source0_ = (a).encrypt - if True: - d_0_e_ = source0_.AES__GCM - return (d_0_e_).tagLength - - @staticmethod - def GetEncryptKeyLength(a): - source0_ = (a).encrypt - if True: - d_0_e_ = source0_.AES__GCM - return (d_0_e_).keyLength - - @staticmethod - def Length(encryptionContext): - if (len(encryptionContext)) == (0): - return 0 - elif True: - d_0_pairs_ = default__.GetCanonicalLinearPairs(encryptionContext) - return default__.LinearLength(d_0_pairs_) - - @staticmethod - def GetCanonicalLinearPairs(encryptionContext): - d_0_keys_ = SortedSets.default__.SetToOrderedSequence2((encryptionContext).keys, StandardLibrary_UInt.default__.UInt8Less) - return _dafny.Seq([Pair_Pair((d_0_keys_)[d_1_i_], (encryptionContext)[(d_0_keys_)[d_1_i_]]) for d_1_i_ in range(len(d_0_keys_))]) - - @staticmethod - def LinearLength(pairs): - d_0___accumulator_ = 0 - while True: - with _dafny.label(): - if (len(pairs)) == (0): - return (0) + (d_0___accumulator_) - elif True: - d_0___accumulator_ = (default__.PairLength(Seq.default__.Last(pairs))) + (d_0___accumulator_) - in0_ = Seq.default__.DropLast(pairs) - pairs = in0_ - raise _dafny.TailCall() - break - - @staticmethod - def PairLength(pair): - return (((2) + (len((pair).key))) + (2)) + (len((pair).value)) - - @_dafny.classproperty - def ESDK__CANONICAL__ENCRYPTION__CONTEXT__MAX__LENGTH(instance): - return (StandardLibrary_UInt.default__.UINT16__LIMIT) - (2) - -class ShortUTF8Seq: - def __init__(self): - pass - - @staticmethod - def default(): - return UTF8.ValidUTF8Bytes.default() - def _Is(source__): - d_0_s_: _dafny.Seq = source__ - if UTF8.ValidUTF8Bytes._Is(d_0_s_): - return StandardLibrary_UInt.default__.HasUint16Len(d_0_s_) - return False - -class Pair: - @classmethod - def default(cls, default_K, default_V): - return lambda: Pair_Pair(default_K(), default_V()) - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_Pair(self) -> bool: - return isinstance(self, Pair_Pair) - -class Pair_Pair(Pair, NamedTuple('Pair', [('key', Any), ('value', Any)])): - def __dafnystr__(self) -> str: - return f'SerializableTypes.Pair.Pair({_dafny.string_of(self.key)}, {_dafny.string_of(self.value)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, Pair_Pair) and self.key == __o.key and self.value == __o.value - def __hash__(self) -> int: - return super().__hash__() - - -class ESDKEncryptedDataKey: - def __init__(self): - pass - - @staticmethod - def default(): - return AwsCryptographyMaterialProvidersTypes.EncryptedDataKey.default()() - def _Is(source__): - d_1_e_: AwsCryptographyMaterialProvidersTypes.EncryptedDataKey = source__ - return default__.IsESDKEncryptedDataKey(d_1_e_) - -class ESDKEncryptionContext: - def __init__(self): - pass - - @staticmethod - def default(): - return _dafny.Map({}) - def _Is(source__): - d_2_ec_: _dafny.Map = source__ - return default__.IsESDKEncryptionContext(d_2_ec_) diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/SerializeFunctions.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/SerializeFunctions.py deleted file mode 100644 index 086f39f16..000000000 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/SerializeFunctions.py +++ /dev/null @@ -1,335 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary -import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom -import aws_cryptography_primitives.internaldafny.generated.Random as Random -import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption -import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest -import aws_cryptography_primitives.internaldafny.generated.Digest as Digest -import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC -import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC -import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF -import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF -import aws_cryptography_primitives.internaldafny.generated.Signature as Signature -import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr -import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption -import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives -import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 -import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites -import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials -import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring -import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations -import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort -import smithy_dafny_standard_library.internaldafny.generated.Math as Math -import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq -import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils -import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants -import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID -import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping -import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets -import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext -import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping -import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring -import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms -import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries -import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang -import smithy_dafny_standard_library.internaldafny.generated.Time as Time -import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker -import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC -import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring -import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring -import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM -import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults -import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment -import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM -import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier -import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils -import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders -import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn -import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure -import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable -import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore -import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr -import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode -import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions -import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings -import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO -import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals -import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals -import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul -import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals -import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals -import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod -import smithy_dafny_standard_library.internaldafny.generated.Power as Power -import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm -import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop -import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting -import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings -import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt -import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare -import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall -import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes - -# Module: SerializeFunctions - -class default__: - def __init__(self): - pass - - @staticmethod - def Write(data): - return data - - @staticmethod - def Read(buffer, length): - d_0_end_ = ((buffer).start) + (length) - d_1_valueOrError0_ = Wrappers.default__.Need((len((buffer).bytes)) >= (d_0_end_), ReadProblems_MoreNeeded(d_0_end_)) - if (d_1_valueOrError0_).IsFailure(): - return (d_1_valueOrError0_).PropagateFailure() - elif True: - def iife0_(_pat_let0_0): - def iife1_(d_2_dt__update__tmp_h0_): - def iife2_(_pat_let1_0): - def iife3_(d_3_dt__update_hstart_h0_): - return ReadableBuffer_ReadableBuffer((d_2_dt__update__tmp_h0_).bytes, d_3_dt__update_hstart_h0_) - return iife3_(_pat_let1_0) - return iife2_(d_0_end_) - return iife1_(_pat_let0_0) - return Wrappers.Result_Success(SuccessfulRead_SuccessfulRead(_dafny.Seq(((buffer).bytes)[(buffer).start:d_0_end_:]), iife0_(buffer))) - - @staticmethod - def WriteUint16(number): - return default__.Write(StandardLibrary_UInt.default__.UInt16ToSeq(number)) - - @staticmethod - def ReadUInt16(buffer): - d_0_valueOrError0_ = default__.Read(buffer, 2) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - let_tmp_rhs0_ = (d_0_valueOrError0_).Extract() - d_1_uint16Bytes_ = let_tmp_rhs0_.data - d_2_tail_ = let_tmp_rhs0_.tail - return Wrappers.Result_Success(SuccessfulRead_SuccessfulRead(StandardLibrary_UInt.default__.SeqToUInt16(d_1_uint16Bytes_), d_2_tail_)) - - @staticmethod - def WriteUint32(number): - return default__.Write(StandardLibrary_UInt.default__.UInt32ToSeq(number)) - - @staticmethod - def ReadUInt32(buffer): - d_0_valueOrError0_ = default__.Read(buffer, 4) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - let_tmp_rhs0_ = (d_0_valueOrError0_).Extract() - d_1_uint32Bytes_ = let_tmp_rhs0_.data - d_2_tail_ = let_tmp_rhs0_.tail - return Wrappers.Result_Success(SuccessfulRead_SuccessfulRead(StandardLibrary_UInt.default__.SeqToUInt32(d_1_uint32Bytes_), d_2_tail_)) - - @staticmethod - def WriteUint64(number): - return default__.Write(StandardLibrary_UInt.default__.UInt64ToSeq(number)) - - @staticmethod - def ReadUInt64(buffer): - d_0_valueOrError0_ = default__.Read(buffer, 8) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - let_tmp_rhs0_ = (d_0_valueOrError0_).Extract() - d_1_uint64Bytes_ = let_tmp_rhs0_.data - d_2_tail_ = let_tmp_rhs0_.tail - return Wrappers.Result_Success(SuccessfulRead_SuccessfulRead(StandardLibrary_UInt.default__.SeqToUInt64(d_1_uint64Bytes_), d_2_tail_)) - - @staticmethod - def WriteShortLengthSeq(d): - return (default__.WriteUint16(len(d))) + (default__.Write(d)) - - @staticmethod - def ReadShortLengthSeq(buffer): - d_0_valueOrError0_ = default__.ReadUInt16(buffer) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - d_1_length_ = (d_0_valueOrError0_).Extract() - d_2_valueOrError1_ = default__.Read((d_1_length_).tail, (d_1_length_).data) - if (d_2_valueOrError1_).IsFailure(): - return (d_2_valueOrError1_).PropagateFailure() - elif True: - d_3_d_ = (d_2_valueOrError1_).Extract() - return Wrappers.Result_Success(d_3_d_) - - @staticmethod - def WriteUint32Seq(d): - return (default__.WriteUint32(len(d))) + (default__.Write(d)) - - @staticmethod - def ReadUint32Seq(buffer): - d_0_valueOrError0_ = default__.ReadUInt32(buffer) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - d_1_length_ = (d_0_valueOrError0_).Extract() - d_2_valueOrError1_ = default__.Read((d_1_length_).tail, (d_1_length_).data) - if (d_2_valueOrError1_).IsFailure(): - return (d_2_valueOrError1_).PropagateFailure() - elif True: - d_3_d_ = (d_2_valueOrError1_).Extract() - return Wrappers.Result_Success(d_3_d_) - - @staticmethod - def WriteUint64Seq(d): - return (default__.WriteUint64(len(d))) + (default__.Write(d)) - - @staticmethod - def ReadUint64Seq(buffer): - d_0_valueOrError0_ = default__.ReadUInt64(buffer) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - d_1_length_ = (d_0_valueOrError0_).Extract() - d_2_valueOrError1_ = default__.Read((d_1_length_).tail, (d_1_length_).data) - if (d_2_valueOrError1_).IsFailure(): - return (d_2_valueOrError1_).PropagateFailure() - elif True: - d_3_d_ = (d_2_valueOrError1_).Extract() - return Wrappers.Result_Success(d_3_d_) - - -class ReadProblems: - @classmethod - def default(cls, ): - return lambda: ReadProblems_MoreNeeded(int(0)) - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_MoreNeeded(self) -> bool: - return isinstance(self, ReadProblems_MoreNeeded) - @property - def is_Error(self) -> bool: - return isinstance(self, ReadProblems_Error) - -class ReadProblems_MoreNeeded(ReadProblems, NamedTuple('MoreNeeded', [('pos', Any)])): - def __dafnystr__(self) -> str: - return f'SerializeFunctions.ReadProblems.MoreNeeded({_dafny.string_of(self.pos)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, ReadProblems_MoreNeeded) and self.pos == __o.pos - def __hash__(self) -> int: - return super().__hash__() - -class ReadProblems_Error(ReadProblems, NamedTuple('Error', [('message', Any)])): - def __dafnystr__(self) -> str: - return f'SerializeFunctions.ReadProblems.Error({_dafny.string_of(self.message)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, ReadProblems_Error) and self.message == __o.message - def __hash__(self) -> int: - return super().__hash__() - - -class MoreNeeded: - def __init__(self): - pass - - @staticmethod - def default(): - return ReadProblems.default()() - def _Is(source__): - d_0_p_: ReadProblems = source__ - return (d_0_p_).is_MoreNeeded - -class ReadableBuffer: - @classmethod - def default(cls, ): - return lambda: ReadableBuffer_ReadableBuffer(_dafny.Seq({}), int(0)) - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_ReadableBuffer(self) -> bool: - return isinstance(self, ReadableBuffer_ReadableBuffer) - -class ReadableBuffer_ReadableBuffer(ReadableBuffer, NamedTuple('ReadableBuffer', [('bytes', Any), ('start', Any)])): - def __dafnystr__(self) -> str: - return f'SerializeFunctions.ReadableBuffer.ReadableBuffer({_dafny.string_of(self.bytes)}, {_dafny.string_of(self.start)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, ReadableBuffer_ReadableBuffer) and self.bytes == __o.bytes and self.start == __o.start - def __hash__(self) -> int: - return super().__hash__() - - -class SuccessfulRead: - @classmethod - def default(cls, default_T): - return lambda: SuccessfulRead_SuccessfulRead(default_T(), ReadableBuffer.default()()) - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_SuccessfulRead(self) -> bool: - return isinstance(self, SuccessfulRead_SuccessfulRead) - -class SuccessfulRead_SuccessfulRead(SuccessfulRead, NamedTuple('SuccessfulRead', [('data', Any), ('tail', Any)])): - def __dafnystr__(self) -> str: - return f'SerializeFunctions.SuccessfulRead.SuccessfulRead({_dafny.string_of(self.data)}, {_dafny.string_of(self.tail)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, SuccessfulRead_SuccessfulRead) and self.data == __o.data and self.tail == __o.tail - def __hash__(self) -> int: - return super().__hash__() - diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/SharedHeaderFunctions.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/SharedHeaderFunctions.py deleted file mode 100644 index c0b097ec7..000000000 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/SharedHeaderFunctions.py +++ /dev/null @@ -1,237 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary -import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom -import aws_cryptography_primitives.internaldafny.generated.Random as Random -import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption -import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest -import aws_cryptography_primitives.internaldafny.generated.Digest as Digest -import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC -import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC -import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF -import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF -import aws_cryptography_primitives.internaldafny.generated.Signature as Signature -import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr -import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption -import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives -import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 -import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites -import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials -import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring -import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations -import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort -import smithy_dafny_standard_library.internaldafny.generated.Math as Math -import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq -import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils -import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants -import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID -import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping -import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets -import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext -import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping -import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring -import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms -import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries -import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang -import smithy_dafny_standard_library.internaldafny.generated.Time as Time -import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker -import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC -import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring -import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring -import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM -import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults -import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment -import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM -import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier -import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils -import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders -import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn -import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure -import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable -import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore -import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr -import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode -import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions -import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings -import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO -import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals -import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals -import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul -import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals -import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals -import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod -import smithy_dafny_standard_library.internaldafny.generated.Power as Power -import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm -import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop -import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting -import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings -import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt -import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare -import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall -import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes - -# Module: SharedHeaderFunctions - -class default__: - def __init__(self): - pass - - @staticmethod - def WriteMessageFormatVersion(version): - return SerializeFunctions.default__.Write((version).Serialize()) - - @staticmethod - def ReadMessageFormatVersion(buffer): - d_0_valueOrError0_ = SerializeFunctions.default__.Read(buffer, 1) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - d_1_rawVersion_ = (d_0_valueOrError0_).Extract() - def lambda0_(d_3_e_): - return SerializeFunctions.ReadProblems_Error(d_3_e_) - - d_2_valueOrError1_ = (HeaderTypes.MessageFormatVersion.Get((d_1_rawVersion_).data)).MapFailure(lambda0_) - if (d_2_valueOrError1_).IsFailure(): - return (d_2_valueOrError1_).PropagateFailure() - elif True: - d_4_version_ = (d_2_valueOrError1_).Extract() - return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_4_version_, (d_1_rawVersion_).tail)) - - @staticmethod - def WriteESDKSuiteId(suite): - return SerializeFunctions.default__.Write((suite).binaryId) - - @staticmethod - def ReadESDKSuiteId(buffer, mpl): - d_0_valueOrError0_ = SerializeFunctions.default__.Read(buffer, 2) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - d_1_esdkSuiteIdBytes_ = (d_0_valueOrError0_).Extract() - def lambda0_(d_3___v0_): - return SerializeFunctions.ReadProblems_Error(_dafny.Seq("Algorithm suite ID not supported.")) - - d_2_valueOrError1_ = ((mpl).GetAlgorithmSuiteInfo((d_1_esdkSuiteIdBytes_).data)).MapFailure(lambda0_) - if (d_2_valueOrError1_).IsFailure(): - return (d_2_valueOrError1_).PropagateFailure() - elif True: - d_4_suite_ = (d_2_valueOrError1_).Extract() - d_5_valueOrError2_ = Wrappers.default__.Need(((d_4_suite_).binaryId) == ((d_1_esdkSuiteIdBytes_).data), SerializeFunctions.ReadProblems_Error(_dafny.Seq("Algorithm suite ID not supported."))) - if (d_5_valueOrError2_).IsFailure(): - return (d_5_valueOrError2_).PropagateFailure() - elif True: - d_6_valueOrError3_ = Wrappers.default__.Need(((d_4_suite_).id).is_ESDK, SerializeFunctions.ReadProblems_Error(_dafny.Seq("Algorithm suite ID not supported."))) - if (d_6_valueOrError3_).IsFailure(): - return (d_6_valueOrError3_).PropagateFailure() - elif True: - d_7_esdkSuite_ = d_4_suite_ - return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_7_esdkSuite_, (d_1_esdkSuiteIdBytes_).tail)) - - @staticmethod - def WriteMessageId(messageId): - return SerializeFunctions.default__.Write(messageId) - - @staticmethod - def ReadMessageIdV1(buffer): - d_0_valueOrError0_ = SerializeFunctions.default__.Read(buffer, HeaderTypes.default__.MESSAGE__ID__LEN__V1) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - d_1_messageIdRead_ = (d_0_valueOrError0_).Extract() - d_2_messageId_ = (d_1_messageIdRead_).data - return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_2_messageId_, (d_1_messageIdRead_).tail)) - - @staticmethod - def ReadMessageIdV2(buffer): - d_0_valueOrError0_ = SerializeFunctions.default__.Read(buffer, HeaderTypes.default__.MESSAGE__ID__LEN__V2) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - d_1_messageIdRead_ = (d_0_valueOrError0_).Extract() - d_2_messageId_ = (d_1_messageIdRead_).data - return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_2_messageId_, (d_1_messageIdRead_).tail)) - - @staticmethod - def WriteContentType(contentType): - return SerializeFunctions.default__.Write(_dafny.Seq([(contentType).Serialize()])) - - @staticmethod - def ReadContentType(buffer): - d_0_valueOrError0_ = SerializeFunctions.default__.Read(buffer, 1) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - let_tmp_rhs0_ = (d_0_valueOrError0_).Extract() - d_1_raw_ = let_tmp_rhs0_.data - d_2_tail_ = let_tmp_rhs0_.tail - def lambda0_(d_4_e_): - return SerializeFunctions.ReadProblems_Error(d_4_e_) - - d_3_valueOrError1_ = (HeaderTypes.ContentType.Get((d_1_raw_)[0])).MapFailure(lambda0_) - if (d_3_valueOrError1_).IsFailure(): - return (d_3_valueOrError1_).PropagateFailure() - elif True: - d_5_contentType_ = (d_3_valueOrError1_).Extract() - return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_5_contentType_, d_2_tail_)) - diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/V1HeaderBody.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/V1HeaderBody.py deleted file mode 100644 index c77b97d5e..000000000 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/V1HeaderBody.py +++ /dev/null @@ -1,295 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary -import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom -import aws_cryptography_primitives.internaldafny.generated.Random as Random -import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption -import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest -import aws_cryptography_primitives.internaldafny.generated.Digest as Digest -import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC -import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC -import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF -import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF -import aws_cryptography_primitives.internaldafny.generated.Signature as Signature -import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr -import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption -import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives -import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 -import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites -import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials -import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring -import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations -import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort -import smithy_dafny_standard_library.internaldafny.generated.Math as Math -import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq -import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils -import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants -import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID -import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping -import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets -import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext -import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping -import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring -import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms -import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries -import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang -import smithy_dafny_standard_library.internaldafny.generated.Time as Time -import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker -import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC -import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring -import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring -import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM -import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults -import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment -import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM -import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier -import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils -import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders -import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn -import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure -import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable -import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore -import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr -import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode -import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions -import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings -import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO -import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals -import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals -import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul -import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals -import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals -import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod -import smithy_dafny_standard_library.internaldafny.generated.Power as Power -import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm -import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop -import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting -import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings -import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt -import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare -import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall -import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys - -# Module: V1HeaderBody - -class default__: - def __init__(self): - pass - - @staticmethod - def WriteV1HeaderBody(body): - return (((((((((SharedHeaderFunctions.default__.WriteMessageFormatVersion(HeaderTypes.MessageFormatVersion_V1())) + (default__.WriteV1MessageType((body).messageType))) + (SharedHeaderFunctions.default__.WriteESDKSuiteId((body).algorithmSuite))) + (SharedHeaderFunctions.default__.WriteMessageId((body).messageId))) + (EncryptionContext.default__.WriteAADSection((body).encryptionContext))) + (EncryptedDataKeys.default__.WriteEncryptedDataKeysSection((body).encryptedDataKeys))) + (SharedHeaderFunctions.default__.WriteContentType((body).contentType))) + (default__.WriteV1ReservedBytes(default__.RESERVED__BYTES))) + (default__.WriteV1HeaderIvLength(SerializableTypes.default__.GetIvLength((body).algorithmSuite)))) + (SerializeFunctions.default__.WriteUint32((body).frameLength)) - - @staticmethod - def ReadV1HeaderBody(buffer, maxEdks, mpl): - d_0_valueOrError0_ = SharedHeaderFunctions.default__.ReadMessageFormatVersion(buffer) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - d_1_version_ = (d_0_valueOrError0_).Extract() - d_2_valueOrError1_ = Wrappers.default__.Need(((d_1_version_).data).is_V1, SerializeFunctions.ReadProblems_Error(_dafny.Seq("Message version must be version 1."))) - if (d_2_valueOrError1_).IsFailure(): - return (d_2_valueOrError1_).PropagateFailure() - elif True: - d_3_valueOrError2_ = default__.ReadV1MessageType((d_1_version_).tail) - if (d_3_valueOrError2_).IsFailure(): - return (d_3_valueOrError2_).PropagateFailure() - elif True: - d_4_messageType_ = (d_3_valueOrError2_).Extract() - d_5_valueOrError3_ = SharedHeaderFunctions.default__.ReadESDKSuiteId((d_4_messageType_).tail, mpl) - if (d_5_valueOrError3_).IsFailure(): - return (d_5_valueOrError3_).PropagateFailure() - elif True: - d_6_suite_ = (d_5_valueOrError3_).Extract() - d_7_valueOrError4_ = Wrappers.default__.Need((((d_6_suite_).data).commitment).is_None, SerializeFunctions.ReadProblems_Error(_dafny.Seq("Algorithm suite must not support commitment."))) - if (d_7_valueOrError4_).IsFailure(): - return (d_7_valueOrError4_).PropagateFailure() - elif True: - d_8_valueOrError5_ = SharedHeaderFunctions.default__.ReadMessageIdV1((d_6_suite_).tail) - if (d_8_valueOrError5_).IsFailure(): - return (d_8_valueOrError5_).PropagateFailure() - elif True: - d_9_messageId_ = (d_8_valueOrError5_).Extract() - d_10_valueOrError6_ = EncryptionContext.default__.ReadAADSection((d_9_messageId_).tail) - if (d_10_valueOrError6_).IsFailure(): - return (d_10_valueOrError6_).PropagateFailure() - elif True: - d_11_encryptionContext_ = (d_10_valueOrError6_).Extract() - d_12_valueOrError7_ = EncryptedDataKeys.default__.ReadEncryptedDataKeysSection((d_11_encryptionContext_).tail, maxEdks) - if (d_12_valueOrError7_).IsFailure(): - return (d_12_valueOrError7_).PropagateFailure() - elif True: - d_13_encryptedDataKeys_ = (d_12_valueOrError7_).Extract() - d_14_valueOrError8_ = SharedHeaderFunctions.default__.ReadContentType((d_13_encryptedDataKeys_).tail) - if (d_14_valueOrError8_).IsFailure(): - return (d_14_valueOrError8_).PropagateFailure() - elif True: - d_15_contentType_ = (d_14_valueOrError8_).Extract() - d_16_valueOrError9_ = default__.ReadV1ReservedBytes((d_15_contentType_).tail) - if (d_16_valueOrError9_).IsFailure(): - return (d_16_valueOrError9_).PropagateFailure() - elif True: - d_17_reservedBytes_ = (d_16_valueOrError9_).Extract() - d_18_valueOrError10_ = default__.ReadV1HeaderIvLength((d_17_reservedBytes_).tail, (d_6_suite_).data) - if (d_18_valueOrError10_).IsFailure(): - return (d_18_valueOrError10_).PropagateFailure() - elif True: - d_19_headerIvLength_ = (d_18_valueOrError10_).Extract() - d_20_valueOrError11_ = SerializeFunctions.default__.ReadUInt32((d_19_headerIvLength_).tail) - if (d_20_valueOrError11_).IsFailure(): - return (d_20_valueOrError11_).PropagateFailure() - elif True: - d_21_frameLength_ = (d_20_valueOrError11_).Extract() - d_22_body_ = HeaderTypes.HeaderBody_V1HeaderBody((d_4_messageType_).data, (d_6_suite_).data, (d_9_messageId_).data, (d_11_encryptionContext_).data, (d_13_encryptedDataKeys_).data, (d_15_contentType_).data, (d_19_headerIvLength_).data, (d_21_frameLength_).data) - return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_22_body_, (d_21_frameLength_).tail)) - - @staticmethod - def WriteV1MessageType(messageType): - return _dafny.Seq([(messageType).Serialize()]) - - @staticmethod - def ReadV1MessageType(buffer): - d_0_valueOrError0_ = SerializeFunctions.default__.Read(buffer, 1) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - let_tmp_rhs0_ = (d_0_valueOrError0_).Extract() - d_1_raw_ = let_tmp_rhs0_.data - d_2_tail_ = let_tmp_rhs0_.tail - def lambda0_(d_4_e_): - return SerializeFunctions.ReadProblems_Error(d_4_e_) - - d_3_valueOrError1_ = (HeaderTypes.MessageType.Get((d_1_raw_)[0])).MapFailure(lambda0_) - if (d_3_valueOrError1_).IsFailure(): - return (d_3_valueOrError1_).PropagateFailure() - elif True: - d_5_messageType_ = (d_3_valueOrError1_).Extract() - return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_5_messageType_, d_2_tail_)) - - @staticmethod - def WriteV1ReservedBytes(reservedBytes): - return reservedBytes - - @staticmethod - def ReadV1ReservedBytes(buffer): - d_0_valueOrError0_ = SerializeFunctions.default__.Read(buffer, len(default__.RESERVED__BYTES)) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - let_tmp_rhs0_ = (d_0_valueOrError0_).Extract() - d_1_raw_ = let_tmp_rhs0_.data - d_2_tail_ = let_tmp_rhs0_.tail - d_3_valueOrError1_ = Wrappers.default__.Need((d_1_raw_) == (default__.RESERVED__BYTES), SerializeFunctions.ReadProblems_Error(_dafny.Seq("Incorrect reserved bytes."))) - if (d_3_valueOrError1_).IsFailure(): - return (d_3_valueOrError1_).PropagateFailure() - elif True: - d_4_reservedBytes_ = d_1_raw_ - return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_4_reservedBytes_, d_2_tail_)) - - @staticmethod - def WriteV1HeaderIvLength(ivLength): - return _dafny.Seq([ivLength]) - - @staticmethod - def ReadV1HeaderIvLength(buffer, suite): - d_0_valueOrError0_ = SerializeFunctions.default__.Read(buffer, 1) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - let_tmp_rhs0_ = (d_0_valueOrError0_).Extract() - d_1_raw_ = let_tmp_rhs0_.data - d_2_tail_ = let_tmp_rhs0_.tail - d_3_valueOrError1_ = Wrappers.default__.Need(((d_1_raw_)[0]) == (SerializableTypes.default__.GetIvLength(suite)), SerializeFunctions.ReadProblems_Error(_dafny.Seq("HeaderIv Length does not match Algorithm Suite."))) - if (d_3_valueOrError1_).IsFailure(): - return (d_3_valueOrError1_).PropagateFailure() - elif True: - return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead((d_1_raw_)[0], d_2_tail_)) - - @_dafny.classproperty - def RESERVED__BYTES(instance): - return _dafny.Seq([0, 0, 0, 0]) - -class V1HeaderBody: - def __init__(self): - pass - - @staticmethod - def default(): - return HeaderTypes.HeaderBody.default()() - def _Is(source__): - d_0_h_: HeaderTypes.HeaderBody = source__ - return (d_0_h_).is_V1HeaderBody - -class ReservedBytes: - def __init__(self): - pass - - @staticmethod - def default(): - return default__.RESERVED__BYTES - def _Is(source__): - d_1_s_: _dafny.Seq = source__ - return (d_1_s_) == (default__.RESERVED__BYTES) diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/V2HeaderBody.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/V2HeaderBody.py deleted file mode 100644 index e7578329b..000000000 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/V2HeaderBody.py +++ /dev/null @@ -1,213 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary -import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom -import aws_cryptography_primitives.internaldafny.generated.Random as Random -import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption -import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest -import aws_cryptography_primitives.internaldafny.generated.Digest as Digest -import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC -import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC -import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF -import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF -import aws_cryptography_primitives.internaldafny.generated.Signature as Signature -import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr -import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption -import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives -import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 -import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites -import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials -import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring -import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations -import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort -import smithy_dafny_standard_library.internaldafny.generated.Math as Math -import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq -import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils -import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants -import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID -import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping -import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets -import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext -import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping -import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring -import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms -import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries -import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang -import smithy_dafny_standard_library.internaldafny.generated.Time as Time -import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker -import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC -import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring -import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring -import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM -import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults -import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment -import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM -import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier -import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils -import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders -import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn -import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure -import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable -import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore -import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr -import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode -import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions -import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings -import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO -import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals -import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals -import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul -import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals -import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals -import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod -import smithy_dafny_standard_library.internaldafny.generated.Power as Power -import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm -import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop -import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting -import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings -import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt -import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare -import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall -import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody - -# Module: V2HeaderBody - -class default__: - def __init__(self): - pass - - @staticmethod - def WriteV2HeaderBody(body): - return (((((((SharedHeaderFunctions.default__.WriteMessageFormatVersion(HeaderTypes.MessageFormatVersion_V2())) + (SharedHeaderFunctions.default__.WriteESDKSuiteId((body).algorithmSuite))) + (SharedHeaderFunctions.default__.WriteMessageId((body).messageId))) + (EncryptionContext.default__.WriteAADSection((body).encryptionContext))) + (EncryptedDataKeys.default__.WriteEncryptedDataKeysSection((body).encryptedDataKeys))) + (SharedHeaderFunctions.default__.WriteContentType((body).contentType))) + (SerializeFunctions.default__.WriteUint32((body).frameLength))) + (SerializeFunctions.default__.Write((body).suiteData)) - - @staticmethod - def ReadV2HeaderBody(buffer, maxEdks, mpl): - d_0_valueOrError0_ = SharedHeaderFunctions.default__.ReadMessageFormatVersion(buffer) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - d_1_version_ = (d_0_valueOrError0_).Extract() - d_2_valueOrError1_ = Wrappers.default__.Need(((d_1_version_).data).is_V2, SerializeFunctions.ReadProblems_Error(_dafny.Seq("Message version must be version 2."))) - if (d_2_valueOrError1_).IsFailure(): - return (d_2_valueOrError1_).PropagateFailure() - elif True: - d_3_valueOrError2_ = SharedHeaderFunctions.default__.ReadESDKSuiteId((d_1_version_).tail, mpl) - if (d_3_valueOrError2_).IsFailure(): - return (d_3_valueOrError2_).PropagateFailure() - elif True: - d_4_suite_ = (d_3_valueOrError2_).Extract() - d_5_valueOrError3_ = Wrappers.default__.Need((((d_4_suite_).data).commitment).is_HKDF, SerializeFunctions.ReadProblems_Error(_dafny.Seq("Algorithm suite must support commitment."))) - if (d_5_valueOrError3_).IsFailure(): - return (d_5_valueOrError3_).PropagateFailure() - elif True: - d_6_valueOrError4_ = SharedHeaderFunctions.default__.ReadMessageIdV2((d_4_suite_).tail) - if (d_6_valueOrError4_).IsFailure(): - return (d_6_valueOrError4_).PropagateFailure() - elif True: - d_7_messageId_ = (d_6_valueOrError4_).Extract() - d_8_valueOrError5_ = EncryptionContext.default__.ReadAADSection((d_7_messageId_).tail) - if (d_8_valueOrError5_).IsFailure(): - return (d_8_valueOrError5_).PropagateFailure() - elif True: - d_9_encryptionContext_ = (d_8_valueOrError5_).Extract() - d_10_valueOrError6_ = EncryptedDataKeys.default__.ReadEncryptedDataKeysSection((d_9_encryptionContext_).tail, maxEdks) - if (d_10_valueOrError6_).IsFailure(): - return (d_10_valueOrError6_).PropagateFailure() - elif True: - d_11_encryptedDataKeys_ = (d_10_valueOrError6_).Extract() - d_12_valueOrError7_ = SharedHeaderFunctions.default__.ReadContentType((d_11_encryptedDataKeys_).tail) - if (d_12_valueOrError7_).IsFailure(): - return (d_12_valueOrError7_).PropagateFailure() - elif True: - d_13_contentType_ = (d_12_valueOrError7_).Extract() - d_14_valueOrError8_ = SerializeFunctions.default__.ReadUInt32((d_13_contentType_).tail) - if (d_14_valueOrError8_).IsFailure(): - return (d_14_valueOrError8_).PropagateFailure() - elif True: - d_15_frameLength_ = (d_14_valueOrError8_).Extract() - d_16_valueOrError9_ = SerializeFunctions.default__.Read((d_15_frameLength_).tail, ((((d_4_suite_).data).commitment).HKDF).outputKeyLength) - if (d_16_valueOrError9_).IsFailure(): - return (d_16_valueOrError9_).PropagateFailure() - elif True: - d_17_suiteData_ = (d_16_valueOrError9_).Extract() - d_18_body_ = HeaderTypes.HeaderBody_V2HeaderBody((d_4_suite_).data, (d_7_messageId_).data, (d_9_encryptionContext_).data, (d_11_encryptedDataKeys_).data, (d_13_contentType_).data, (d_15_frameLength_).data, (d_17_suiteData_).data) - return Wrappers.Result_Success(SerializeFunctions.SuccessfulRead_SuccessfulRead(d_18_body_, (d_17_suiteData_).tail)) - - @_dafny.classproperty - def headerBytesToAADStart(instance): - return ((1) + (2)) + (32) - -class V2HeaderBody: - def __init__(self): - pass - - @staticmethod - def default(): - return HeaderTypes.HeaderBody.default()() - def _Is(source__): - d_0_h_: HeaderTypes.HeaderBody = source__ - return (d_0_h_).is_V2HeaderBody diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/__main__.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/__main__.py deleted file mode 100644 index d577947e7..000000000 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/__main__.py +++ /dev/null @@ -1,15 +0,0 @@ -# Dafny program the_program compiled into Python -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ -import _dafny as _dafny - -try: - dafnyArgs = [_dafny.Seq(a) for a in sys.argv] - module_.default__.Test____Main____(dafnyArgs) -except _dafny.HaltException as e: - _dafny.print("[Program halted] " + e.message + "\n") - sys.exit(1) diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/module_.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/module_.py deleted file mode 100644 index 13a1dd5ef..000000000 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/generated/module_.py +++ /dev/null @@ -1,194 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import aws_encryption_sdk_dafny.internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary -import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom -import aws_cryptography_primitives.internaldafny.generated.Random as Random -import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption -import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest -import aws_cryptography_primitives.internaldafny.generated.Digest as Digest -import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC -import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC -import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF -import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF -import aws_cryptography_primitives.internaldafny.generated.Signature as Signature -import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr -import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption -import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives -import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 -import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites -import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials -import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring -import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations -import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort -import smithy_dafny_standard_library.internaldafny.generated.Math as Math -import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq -import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils -import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants -import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID -import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping -import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets -import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext -import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping -import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring -import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms -import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries -import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang -import smithy_dafny_standard_library.internaldafny.generated.Time as Time -import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker -import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC -import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring -import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring -import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM -import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults -import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment -import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM -import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier -import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils -import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders -import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn -import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure -import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable -import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore -import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr -import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode -import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions -import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings -import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO -import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals -import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals -import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul -import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals -import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals -import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod -import smithy_dafny_standard_library.internaldafny.generated.Power as Power -import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm -import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop -import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting -import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings -import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt -import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare -import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall -import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header -import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames -import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Core as JSON_Utils_Views_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Writers as JSON_Utils_Views_Writers -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Cursors as JSON_Utils_Cursors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Parsers as JSON_Utils_Parsers -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str as JSON_Utils_Str -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Seq as JSON_Utils_Seq -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Vectors as JSON_Utils_Vectors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Errors as JSON_Errors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Values as JSON_Values -import smithy_dafny_standard_library.internaldafny.generated.JSON_Spec as JSON_Spec -import smithy_dafny_standard_library.internaldafny.generated.JSON_Grammar as JSON_Grammar -import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer as JSON_Serializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer as JSON_Deserializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec -import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_API as JSON_ZeroCopy_API -import smithy_dafny_standard_library.internaldafny.generated.JSON_API as JSON_API - -# Module: module_ - -class default__: - def __init__(self): - pass - - @staticmethod - def Test____Main____(noArgsParameter__): - d_0_success_: bool - d_0_success_ = True - if not(d_0_success_): - raise _dafny.HaltException("(1,0): " + _dafny.string_of(_dafny.Seq("Test failures occurred: see above.\n"))) - diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/__pycache__/__init__.cpython-311.pyc b/AwsEncryptionSDK/runtimes/python/test/internaldafny/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index 13e93f272e212dfa980ba525d8ad22df8cf1b02b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 223 zcmZ3^%ge<81kY#sr)L4_#~=<2FhUuh*?^4c3@Hr344RC7D;bKIfc(!O$zMhKp~b01 z#rip=$+^iX`FZ-~`9;|UIf==s`ibSmx~X}|MU@35nfZCT#VOgkDT!%$mHLk5#jbGi zU>9%wqSCyQ%-qys{esGp44@e$sl_GwnRz9tMR|!i5IynnnR%Hd@$q^EmA^P_a`RJ4 eb5iY!SbSU;yU zIX5{aKTp3rzbLyPCowryKe4=6H#IN0sIs6WGe1waI3-&*B{40pQs1$>*cC1w?BcCo zRGL?knVVXyUrPO4oI VE6@pyKwJ!Bd}L;1WGrF^vH+n3JqZ8+ diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/__pycache__/test_dafny_wrapper.cpython-311-pytest-7.4.4.pyc b/AwsEncryptionSDK/runtimes/python/test/internaldafny/__pycache__/test_dafny_wrapper.cpython-311-pytest-7.4.4.pyc deleted file mode 100644 index 4cdbbd8f2751d1bdb40849f473e1ff73995b02ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1298 zcma)5%}*0S6rb((iv^@e6N8at{J4`5VB_*2@X2eKy;4~AP4Zd~-uF0C!$;Ox$unK$!(?_+-RV{}wO(0+e;y81qa z&@Zv*w#@0|I4dEvg9s`kB9W9Wl~eI3J83f|AtzIY1Feq=m zk-r1_Pv}V_DU$w>n(Qvo;BI-C=GI2Kn~l-#tbe4#B(n*MK}!k!mu2=mOOo40WZJ?rf3F;z)i;?S~f z2+<|jfS!a%aZsiBmB7=92=x_qXi)XQD}~T*Dq+9KvX?=jT} zl(-a@o4}tU6G+DlJXTkgBXLEGCz5vb2ij&%qZyBZ$x;~wXhI(L3u#n|IaB&WwywRR>%D86NOvfaitA!q0 z_ie+Zni296bxl_H1Iu$uoUE7P1ho4hf7sJ6%|F&y%?&Jvat$h61q@LJZJ;u-Dygg< zCM<#SM9RN{vtfv*C<40-VhbIluQ$*8k6{;0k3~6MC!VS6QGTUn*}yR#jokC=dT%wU zpHj@=kfBIHWi(_~K%=3aD#~?r3K+-H7%Y-`ok!_4&vHc>#T9~|4EJp-h{gx<(%~+n zv~L8}C@Z+{k~oh&#Kd!C;%%Sg?<7>d%dWsul%4N_=*W^Jb@Ev$-9bVWkR)wE;^%(K zR{R|nFYPRRTKN3(+w#}t-3P6ynfBDo{>1*Z{fYL}?N)KFU7Ty8@k1nU=Rc0U8*3J> pHXgMKr4~}#NNpnZpnvB{t1#0-vu!lnM6;c&B;Dvh3};20$zNiaZLa_T diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/__pycache__/test_dafny_wrapper.cpython-312-pytest-7.4.4.pyc b/AwsEncryptionSDK/runtimes/python/test/internaldafny/__pycache__/test_dafny_wrapper.cpython-312-pytest-7.4.4.pyc deleted file mode 100644 index 4dc4bc97a1819b76e892319929cddcfb55a81175..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1182 zcmb7E&1=*^6rb7bZql^1Tdeq57(Xrx?xrGo5>c#BQR+cO*@J1CneEOtU(RGnQxq&M z^z5njq(_UF{vTdi+JodE1rO4TC_Mgbb~4aD)zfkb zE1zK|;{q<81G&~1Bx?Iieyg{)&-dh9B7?ZJD3sh6g8%X@_xoaX1vE~?g{o#<7u59U z%nAa+P?I_YHGPK20X^V1XIgTH3)Zr-f5p@Hf zg~;`B#~~as@~T4_!Du$lP-=6;Bg_hgDaF%giHJpx2RnYPu4f@pL>)&^^f0o-%qS8R zwg{S$cqW!qXOK(6mM@|bLG7v@wW!_7T>Ctz7ZT=KPU>W){@JVZH>Q$f89{s3|~UK}9U0$z+287rp@y#GtB7 z@5>I^fQe?Bu0=i5tQL}iE)>(mDO1J5W(> zvsoO3)c0x}&(~7=#@&eD@7kYCJ~UXz3#m)EA@bW27%~Y)UtUsEmRB>%dPF2A(R=A; zgM!bPBql$jx8Pgx@_`UQbtF+u6Z^JlCfaO=I-;3)GIS@1&8~LVJnAKji^oW|bw(ma zLy`=1O^KS@bm5!^wpgO@m?y=yPd%A2St}8z!~=(h$!OmbOi{F?7+7H|Da$7Ja7uXt zupvQ{$=|}Eb}Q@I+w6i+Wrn#d-Y*40_**N(;-3nDa0M*udt;~9rru4xfAQhv`pZxE zcE%?*Pi|h?8o#kKc5@4i?g3?0ThdlXmPWQJ7e7AOuGDrx{cFGV(RO8G7hF3iLwF@6 F@ejCyQ78Za diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/Fixtures.py b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/Fixtures.py deleted file mode 100644 index 27257b7ec..000000000 --- a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/Fixtures.py +++ /dev/null @@ -1,536 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import module_ as module_ -import _dafny as _dafny -import System_ as System_ -import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary -import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 -import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom -import aws_cryptography_primitives.internaldafny.generated.Random as Random -import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption -import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest -import aws_cryptography_primitives.internaldafny.generated.Digest as Digest -import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC -import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC -import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF -import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF -import aws_cryptography_primitives.internaldafny.generated.Signature as Signature -import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr -import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption -import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives -import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 -import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites -import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials -import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring -import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations -import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort -import smithy_dafny_standard_library.internaldafny.generated.Math as Math -import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq -import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils -import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants -import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID -import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping -import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets -import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext -import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping -import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring -import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms -import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries -import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang -import smithy_dafny_standard_library.internaldafny.generated.Time as Time -import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker -import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC -import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring -import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring -import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM -import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults -import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment -import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM -import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier -import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils -import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders -import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header -import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames -import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK -import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr -import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn -import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure -import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable -import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore -import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode -import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions -import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings -import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO -import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals -import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals -import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul -import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals -import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals -import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod -import smithy_dafny_standard_library.internaldafny.generated.Power as Power -import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm -import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop -import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting -import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings -import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt -import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare -import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall -import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas - -# Module: Fixtures - -class default__: - def __init__(self): - pass - - @staticmethod - def SmallEncryptionContext(v): - encryptionContext: _dafny.Map = _dafny.Map({}) - d_0_valueOrError0_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() - d_0_valueOrError0_ = UTF8.default__.Encode(_dafny.Seq("keyA")) - if not(not((d_0_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(36,16): " + _dafny.string_of(d_0_valueOrError0_)) - d_1_keyA_: _dafny.Seq - d_1_keyA_ = (d_0_valueOrError0_).Extract() - d_2_valueOrError1_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() - d_2_valueOrError1_ = UTF8.default__.Encode(_dafny.Seq("valA")) - if not(not((d_2_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(37,16): " + _dafny.string_of(d_2_valueOrError1_)) - d_3_valA_: _dafny.Seq - d_3_valA_ = (d_2_valueOrError1_).Extract() - d_4_valueOrError2_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() - d_4_valueOrError2_ = UTF8.default__.Encode(_dafny.Seq("keyB")) - if not(not((d_4_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(38,16): " + _dafny.string_of(d_4_valueOrError2_)) - d_5_keyB_: _dafny.Seq - d_5_keyB_ = (d_4_valueOrError2_).Extract() - d_6_valueOrError3_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() - d_6_valueOrError3_ = UTF8.default__.Encode(_dafny.Seq("valB")) - if not(not((d_6_valueOrError3_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(39,16): " + _dafny.string_of(d_6_valueOrError3_)) - d_7_valB_: _dafny.Seq - d_7_valB_ = (d_6_valueOrError3_).Extract() - d_8_valueOrError4_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() - d_8_valueOrError4_ = UTF8.default__.Encode(_dafny.Seq("keyC")) - if not(not((d_8_valueOrError4_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(40,16): " + _dafny.string_of(d_8_valueOrError4_)) - d_9_keyC_: _dafny.Seq - d_9_keyC_ = (d_8_valueOrError4_).Extract() - d_10_valueOrError5_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() - d_10_valueOrError5_ = UTF8.default__.Encode(_dafny.Seq("valC")) - if not(not((d_10_valueOrError5_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(41,16): " + _dafny.string_of(d_10_valueOrError5_)) - d_11_valC_: _dafny.Seq - d_11_valC_ = (d_10_valueOrError5_).Extract() - d_12_valueOrError6_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() - d_12_valueOrError6_ = UTF8.default__.Encode(_dafny.Seq("keyD")) - if not(not((d_12_valueOrError6_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(42,16): " + _dafny.string_of(d_12_valueOrError6_)) - d_13_keyD_: _dafny.Seq - d_13_keyD_ = (d_12_valueOrError6_).Extract() - d_14_valueOrError7_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() - d_14_valueOrError7_ = UTF8.default__.Encode(_dafny.Seq("valD")) - if not(not((d_14_valueOrError7_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(43,16): " + _dafny.string_of(d_14_valueOrError7_)) - d_15_valD_: _dafny.Seq - d_15_valD_ = (d_14_valueOrError7_).Extract() - source0_ = v - with _dafny.label("match0"): - if True: - if source0_.is_Empty: - encryptionContext = _dafny.Map({}) - raise _dafny.Break("match0") - if True: - if source0_.is_A: - encryptionContext = _dafny.Map({d_1_keyA_: d_3_valA_}) - raise _dafny.Break("match0") - if True: - if source0_.is_B: - encryptionContext = _dafny.Map({d_5_keyB_: d_7_valB_}) - raise _dafny.Break("match0") - if True: - if source0_.is_AB: - encryptionContext = _dafny.Map({d_1_keyA_: d_3_valA_, d_5_keyB_: d_7_valB_}) - raise _dafny.Break("match0") - if True: - if source0_.is_BA: - encryptionContext = _dafny.Map({d_5_keyB_: d_7_valB_, d_1_keyA_: d_3_valA_}) - raise _dafny.Break("match0") - if True: - if source0_.is_C: - encryptionContext = _dafny.Map({d_9_keyC_: d_11_valC_}) - raise _dafny.Break("match0") - if True: - d_16_CE_ = source0_ - encryptionContext = _dafny.Map({d_9_keyC_: d_11_valC_, d_13_keyD_: d_15_valD_}) - pass - return encryptionContext - - @staticmethod - def GetResrvedECMap(): - encryptionContext: _dafny.Map = _dafny.Map({}) - d_0_valueOrError0_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() - d_0_valueOrError0_ = UTF8.default__.Encode(_dafny.Seq("aws-crypto-public-key")) - if not(not((d_0_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(67,23): " + _dafny.string_of(d_0_valueOrError0_)) - d_1_reservedKey_: _dafny.Seq - d_1_reservedKey_ = (d_0_valueOrError0_).Extract() - d_2_valueOrError1_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() - d_2_valueOrError1_ = UTF8.default__.Encode(_dafny.Seq("not a real public key")) - if not(not((d_2_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(68,15): " + _dafny.string_of(d_2_valueOrError1_)) - d_3_val_: _dafny.Seq - d_3_val_ = (d_2_valueOrError1_).Extract() - encryptionContext = _dafny.Map({d_1_reservedKey_: d_3_val_}) - return encryptionContext - - @staticmethod - def SmallEncryptionContextKeys(v): - encryptionContextKeys: _dafny.Seq = _dafny.Seq({}) - d_0_valueOrError0_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() - d_0_valueOrError0_ = UTF8.default__.Encode(_dafny.Seq("keyA")) - if not(not((d_0_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(76,16): " + _dafny.string_of(d_0_valueOrError0_)) - d_1_keyA_: _dafny.Seq - d_1_keyA_ = (d_0_valueOrError0_).Extract() - d_2_valueOrError1_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() - d_2_valueOrError1_ = UTF8.default__.Encode(_dafny.Seq("keyB")) - if not(not((d_2_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(77,16): " + _dafny.string_of(d_2_valueOrError1_)) - d_3_keyB_: _dafny.Seq - d_3_keyB_ = (d_2_valueOrError1_).Extract() - d_4_valueOrError2_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() - d_4_valueOrError2_ = UTF8.default__.Encode(_dafny.Seq("keyC")) - if not(not((d_4_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(78,16): " + _dafny.string_of(d_4_valueOrError2_)) - d_5_keyC_: _dafny.Seq - d_5_keyC_ = (d_4_valueOrError2_).Extract() - d_6_valueOrError3_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() - d_6_valueOrError3_ = UTF8.default__.Encode(_dafny.Seq("keyD")) - if not(not((d_6_valueOrError3_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(79,16): " + _dafny.string_of(d_6_valueOrError3_)) - d_7_keyD_: _dafny.Seq - d_7_keyD_ = (d_6_valueOrError3_).Extract() - source0_ = v - with _dafny.label("match0"): - if True: - if source0_.is_Empty: - encryptionContextKeys = _dafny.Seq([]) - raise _dafny.Break("match0") - if True: - if source0_.is_A: - encryptionContextKeys = _dafny.Seq([d_1_keyA_]) - raise _dafny.Break("match0") - if True: - if source0_.is_B: - encryptionContextKeys = _dafny.Seq([d_3_keyB_]) - raise _dafny.Break("match0") - if True: - if source0_.is_AB: - encryptionContextKeys = _dafny.Seq([d_1_keyA_, d_3_keyB_]) - raise _dafny.Break("match0") - if True: - if source0_.is_BA: - encryptionContextKeys = _dafny.Seq([d_3_keyB_, d_1_keyA_]) - raise _dafny.Break("match0") - if True: - if source0_.is_C: - encryptionContextKeys = _dafny.Seq([d_5_keyC_]) - raise _dafny.Break("match0") - if True: - d_8_CE_ = source0_ - encryptionContextKeys = _dafny.Seq([d_5_keyC_, d_7_keyD_]) - pass - return encryptionContextKeys - - @staticmethod - def SmallMismatchedEncryptionContex(v): - encryptionContext: _dafny.Map = _dafny.Map({}) - d_0_valueOrError0_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() - d_0_valueOrError0_ = UTF8.default__.Encode(_dafny.Seq("keyA")) - if not(not((d_0_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(102,16): " + _dafny.string_of(d_0_valueOrError0_)) - d_1_keyA_: _dafny.Seq - d_1_keyA_ = (d_0_valueOrError0_).Extract() - d_2_valueOrError1_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() - d_2_valueOrError1_ = UTF8.default__.Encode(_dafny.Seq("valA")) - if not(not((d_2_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(103,16): " + _dafny.string_of(d_2_valueOrError1_)) - d_3_valA_: _dafny.Seq - d_3_valA_ = (d_2_valueOrError1_).Extract() - d_4_valueOrError2_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() - d_4_valueOrError2_ = UTF8.default__.Encode(_dafny.Seq("keyB")) - if not(not((d_4_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(104,16): " + _dafny.string_of(d_4_valueOrError2_)) - d_5_keyB_: _dafny.Seq - d_5_keyB_ = (d_4_valueOrError2_).Extract() - d_6_valueOrError3_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() - d_6_valueOrError3_ = UTF8.default__.Encode(_dafny.Seq("valB")) - if not(not((d_6_valueOrError3_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(105,16): " + _dafny.string_of(d_6_valueOrError3_)) - d_7_valB_: _dafny.Seq - d_7_valB_ = (d_6_valueOrError3_).Extract() - d_8_valueOrError4_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() - d_8_valueOrError4_ = UTF8.default__.Encode(_dafny.Seq("keyC")) - if not(not((d_8_valueOrError4_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(106,16): " + _dafny.string_of(d_8_valueOrError4_)) - d_9_keyC_: _dafny.Seq - d_9_keyC_ = (d_8_valueOrError4_).Extract() - d_10_valueOrError5_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() - d_10_valueOrError5_ = UTF8.default__.Encode(_dafny.Seq("valC")) - if not(not((d_10_valueOrError5_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(107,16): " + _dafny.string_of(d_10_valueOrError5_)) - d_11_valC_: _dafny.Seq - d_11_valC_ = (d_10_valueOrError5_).Extract() - d_12_valueOrError6_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() - d_12_valueOrError6_ = UTF8.default__.Encode(_dafny.Seq("keyD")) - if not(not((d_12_valueOrError6_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(108,16): " + _dafny.string_of(d_12_valueOrError6_)) - d_13_keyD_: _dafny.Seq - d_13_keyD_ = (d_12_valueOrError6_).Extract() - d_14_valueOrError7_: Wrappers.Result = Wrappers.Result.default(UTF8.ValidUTF8Bytes.default)() - d_14_valueOrError7_ = UTF8.default__.Encode(_dafny.Seq("valD")) - if not(not((d_14_valueOrError7_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(109,16): " + _dafny.string_of(d_14_valueOrError7_)) - d_15_valD_: _dafny.Seq - d_15_valD_ = (d_14_valueOrError7_).Extract() - source0_ = v - with _dafny.label("match0"): - if True: - if source0_.is_Empty: - encryptionContext = _dafny.Map({}) - raise _dafny.Break("match0") - if True: - if source0_.is_A: - encryptionContext = _dafny.Map({d_1_keyA_: d_7_valB_}) - raise _dafny.Break("match0") - if True: - if source0_.is_B: - encryptionContext = _dafny.Map({d_5_keyB_: d_3_valA_}) - raise _dafny.Break("match0") - if True: - if source0_.is_AB: - encryptionContext = _dafny.Map({d_1_keyA_: d_11_valC_, d_5_keyB_: d_15_valD_}) - raise _dafny.Break("match0") - if True: - if source0_.is_BA: - encryptionContext = _dafny.Map({d_5_keyB_: d_3_valA_, d_1_keyA_: d_7_valB_}) - raise _dafny.Break("match0") - if True: - if source0_.is_C: - encryptionContext = _dafny.Map({d_9_keyC_: d_3_valA_}) - raise _dafny.Break("match0") - if True: - d_16_CE_ = source0_ - encryptionContext = _dafny.Map({d_9_keyC_: d_3_valA_, d_13_keyD_: d_7_valB_}) - pass - return encryptionContext - - @staticmethod - def NamespaceAndName(n): - namespace: _dafny.Seq = _dafny.Seq("") - name: _dafny.Seq = _dafny.Seq("") - d_0_s_: _dafny.Seq - d_0_s_ = (_dafny.Seq("child")) + (_dafny.Seq([_dafny.plus_char(chr(n), '0')])) - namespace = (d_0_s_) + (_dafny.Seq(" Namespace")) - name = (d_0_s_) + (_dafny.Seq(" Name")) - return namespace, name - - @staticmethod - def GenerateKeyPair(keyModulusLength): - keys: AwsCryptographyPrimitivesTypes.GenerateRSAKeyPairOutput = None - d_0_valueOrError0_: Wrappers.Result = None - out0_: Wrappers.Result - out0_ = AtomicPrimitives.default__.AtomicPrimitives(AtomicPrimitives.default__.DefaultCryptoConfig()) - d_0_valueOrError0_ = out0_ - if not(not((d_0_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(143,70): " + _dafny.string_of(d_0_valueOrError0_)) - d_1_cryptoX_: AwsCryptographyPrimitivesTypes.IAwsCryptographicPrimitivesClient - d_1_cryptoX_ = (d_0_valueOrError0_).Extract() - d_2_crypto_: AtomicPrimitives.AtomicPrimitivesClient - d_2_crypto_ = d_1_cryptoX_ - d_3_valueOrError1_: Wrappers.Result = None - out1_: Wrappers.Result - out1_ = (d_2_crypto_).GenerateRSAKeyPair(AwsCryptographyPrimitivesTypes.GenerateRSAKeyPairInput_GenerateRSAKeyPairInput(keyModulusLength)) - d_3_valueOrError1_ = out1_ - if not(not((d_3_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/Fixtures.dfy(147,12): " + _dafny.string_of(d_3_valueOrError1_)) - keys = (d_3_valueOrError1_).Extract() - return keys - - @_dafny.classproperty - def branchKeyStoreName(instance): - return _dafny.Seq("KeyStoreDdbTable") - @_dafny.classproperty - def logicalKeyStoreName(instance): - return default__.branchKeyStoreName - @_dafny.classproperty - def keyArn(instance): - return _dafny.Seq("arn:aws:kms:us-west-2:658956600833:key/b3537ef1-d8dc-4780-9f5a-55776cbb2f7f") - @_dafny.classproperty - def hierarchyKeyArn(instance): - return _dafny.Seq("arn:aws:kms:us-west-2:370957321024:key/9d989aa2-2f9c-438c-a745-cc57d3ad0126") - @_dafny.classproperty - def mkrKeyArn(instance): - return _dafny.Seq("arn:aws:kms:us-west-2:370957321024:key/mrk-63d386cb70614ea59b32ad65c9315297") - @_dafny.classproperty - def branchKeyId(instance): - return _dafny.Seq("75789115-1deb-4fe3-a2ec-be9e885d1945") - @_dafny.classproperty - def RESERVED__ENCRYPTION__CONTEXT(instance): - d_0_s_ = _dafny.Seq([97, 119, 115, 45, 99, 114, 121, 112, 116, 111, 45]) - return d_0_s_ - -class SmallEncryptionContextVariation: - @_dafny.classproperty - def AllSingletonConstructors(cls): - return [SmallEncryptionContextVariation_Empty(), SmallEncryptionContextVariation_A(), SmallEncryptionContextVariation_B(), SmallEncryptionContextVariation_AB(), SmallEncryptionContextVariation_BA(), SmallEncryptionContextVariation_C(), SmallEncryptionContextVariation_CD()] - @classmethod - def default(cls, ): - return lambda: SmallEncryptionContextVariation_Empty() - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_Empty(self) -> bool: - return isinstance(self, SmallEncryptionContextVariation_Empty) - @property - def is_A(self) -> bool: - return isinstance(self, SmallEncryptionContextVariation_A) - @property - def is_B(self) -> bool: - return isinstance(self, SmallEncryptionContextVariation_B) - @property - def is_AB(self) -> bool: - return isinstance(self, SmallEncryptionContextVariation_AB) - @property - def is_BA(self) -> bool: - return isinstance(self, SmallEncryptionContextVariation_BA) - @property - def is_C(self) -> bool: - return isinstance(self, SmallEncryptionContextVariation_C) - @property - def is_CD(self) -> bool: - return isinstance(self, SmallEncryptionContextVariation_CD) - -class SmallEncryptionContextVariation_Empty(SmallEncryptionContextVariation, NamedTuple('Empty', [])): - def __dafnystr__(self) -> str: - return f'Fixtures.SmallEncryptionContextVariation.Empty' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, SmallEncryptionContextVariation_Empty) - def __hash__(self) -> int: - return super().__hash__() - -class SmallEncryptionContextVariation_A(SmallEncryptionContextVariation, NamedTuple('A', [])): - def __dafnystr__(self) -> str: - return f'Fixtures.SmallEncryptionContextVariation.A' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, SmallEncryptionContextVariation_A) - def __hash__(self) -> int: - return super().__hash__() - -class SmallEncryptionContextVariation_B(SmallEncryptionContextVariation, NamedTuple('B', [])): - def __dafnystr__(self) -> str: - return f'Fixtures.SmallEncryptionContextVariation.B' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, SmallEncryptionContextVariation_B) - def __hash__(self) -> int: - return super().__hash__() - -class SmallEncryptionContextVariation_AB(SmallEncryptionContextVariation, NamedTuple('AB', [])): - def __dafnystr__(self) -> str: - return f'Fixtures.SmallEncryptionContextVariation.AB' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, SmallEncryptionContextVariation_AB) - def __hash__(self) -> int: - return super().__hash__() - -class SmallEncryptionContextVariation_BA(SmallEncryptionContextVariation, NamedTuple('BA', [])): - def __dafnystr__(self) -> str: - return f'Fixtures.SmallEncryptionContextVariation.BA' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, SmallEncryptionContextVariation_BA) - def __hash__(self) -> int: - return super().__hash__() - -class SmallEncryptionContextVariation_C(SmallEncryptionContextVariation, NamedTuple('C', [])): - def __dafnystr__(self) -> str: - return f'Fixtures.SmallEncryptionContextVariation.C' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, SmallEncryptionContextVariation_C) - def __hash__(self) -> int: - return super().__hash__() - -class SmallEncryptionContextVariation_CD(SmallEncryptionContextVariation, NamedTuple('CD', [])): - def __dafnystr__(self) -> str: - return f'Fixtures.SmallEncryptionContextVariation.CD' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, SmallEncryptionContextVariation_CD) - def __hash__(self) -> int: - return super().__hash__() - diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestCreateEsdkClient.py b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestCreateEsdkClient.py deleted file mode 100644 index eff91ded9..000000000 --- a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestCreateEsdkClient.py +++ /dev/null @@ -1,242 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import module_ as module_ -import _dafny as _dafny -import System_ as System_ -import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary -import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 -import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom -import aws_cryptography_primitives.internaldafny.generated.Random as Random -import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption -import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest -import aws_cryptography_primitives.internaldafny.generated.Digest as Digest -import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC -import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC -import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF -import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF -import aws_cryptography_primitives.internaldafny.generated.Signature as Signature -import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr -import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption -import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives -import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 -import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites -import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials -import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring -import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations -import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort -import smithy_dafny_standard_library.internaldafny.generated.Math as Math -import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq -import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils -import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants -import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID -import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping -import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets -import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext -import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping -import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring -import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms -import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries -import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang -import smithy_dafny_standard_library.internaldafny.generated.Time as Time -import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker -import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC -import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring -import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring -import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM -import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults -import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment -import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM -import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier -import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils -import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders -import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header -import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames -import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK -import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr -import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn -import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure -import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable -import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore -import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode -import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions -import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings -import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO -import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals -import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals -import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul -import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals -import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals -import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod -import smithy_dafny_standard_library.internaldafny.generated.Power as Power -import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm -import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop -import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting -import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings -import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt -import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare -import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall -import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import Fixtures as Fixtures -import TestRequiredEncryptionContext as TestRequiredEncryptionContext -import TestReproducedEncryptionContext as TestReproducedEncryptionContext -import TestEncryptDecrypt as TestEncryptDecrypt - -# Module: TestCreateEsdkClient - -class default__: - def __init__(self): - pass - - @staticmethod - def TestClientCreation(): - d_0_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - d_0_defaultConfig_ = ESDK.default__.DefaultAwsEncryptionSdkConfig() - d_1_valueOrError0_: Wrappers.Result = None - out0_: Wrappers.Result - out0_ = ESDK.default__.ESDK(d_0_defaultConfig_) - d_1_valueOrError0_ = out0_ - if not(not((d_1_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(55,47): " + _dafny.string_of(d_1_valueOrError0_)) - d_2_esdk_: AwsCryptographyEncryptionSdkTypes.IAwsEncryptionSdkClient - d_2_esdk_ = (d_1_valueOrError0_).Extract() - def iife0_(_is_0): - return isinstance(_is_0, ESDK.ESDKClient) - if not(iife0_(d_2_esdk_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(56,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_3_esdkClient_: ESDK.ESDKClient - d_3_esdkClient_ = d_2_esdk_ - if not((((d_3_esdkClient_).config).commitmentPolicy) == (((d_0_defaultConfig_).commitmentPolicy).value)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(59,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - if not((((d_3_esdkClient_).config).maxEncryptedDataKeys) == ((d_0_defaultConfig_).maxEncryptedDataKeys)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(60,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - if not((((d_3_esdkClient_).config).netV4__0__0__RetryPolicy) == (AwsCryptographyEncryptionSdkTypes.NetV4__0__0__RetryPolicy_ALLOW__RETRY())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(61,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - - @staticmethod - def TestNetRetryFlag(): - d_0_valueOrError0_: Wrappers.Result = None - out0_: Wrappers.Result - out0_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) - d_0_valueOrError0_ = out0_ - if not(not((d_0_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(65,15): " + _dafny.string_of(d_0_valueOrError0_)) - d_1_mpl_: MaterialProviders.MaterialProvidersClient - d_1_mpl_ = (d_0_valueOrError0_).Extract() - d_2_keyNamespace_: _dafny.Seq - d_2_keyNamespace_ = _dafny.Seq("Some managed raw keys") - d_3_keyName_: _dafny.Seq - d_3_keyName_ = _dafny.Seq("My 256-bit AES wrapping key") - d_4_expectedMessage_: _dafny.Seq - d_4_expectedMessage_ = _dafny.Seq([84, 104, 105, 115, 32, 105, 115, 32, 97, 32, 116, 101, 115, 116, 46]) - d_5_valueOrError1_: Wrappers.Result = None - out1_: Wrappers.Result - out1_ = (d_1_mpl_).CreateRawAesKeyring(AwsCryptographyMaterialProvidersTypes.CreateRawAesKeyringInput_CreateRawAesKeyringInput(d_2_keyNamespace_, d_3_keyName_, _dafny.Seq([0 for d_6_i_ in range(32)]), AwsCryptographyMaterialProvidersTypes.AesWrappingAlg_ALG__AES256__GCM__IV12__TAG16())) - d_5_valueOrError1_ = out1_ - if not(not((d_5_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(70,25): " + _dafny.string_of(d_5_valueOrError1_)) - d_7_rawAesKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - d_7_rawAesKeyring_ = (d_5_valueOrError1_).Extract() - d_8_esdkConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - d_8_esdkConfig_ = AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig_AwsEncryptionSdkConfig(Wrappers.Option_Some(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT()), Wrappers.Option_None(), Wrappers.Option_Some(AwsCryptographyEncryptionSdkTypes.NetV4__0__0__RetryPolicy_FORBID__RETRY())) - d_9_valueOrError2_: Wrappers.Result = None - out2_: Wrappers.Result - out2_ = ESDK.default__.ESDK(d_8_esdkConfig_) - d_9_valueOrError2_ = out2_ - if not(not((d_9_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(85,23): " + _dafny.string_of(d_9_valueOrError2_)) - d_10_noRetryEsdk_: ESDK.ESDKClient - d_10_noRetryEsdk_ = (d_9_valueOrError2_).Extract() - d_11_expectFailureDecryptOutput_: Wrappers.Result - out3_: Wrappers.Result - out3_ = (d_10_noRetryEsdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(default__.ESDK__NET__V400__MESSAGE, Wrappers.Option_None(), Wrappers.Option_Some(d_7_rawAesKeyring_), Wrappers.Option_None())) - d_11_expectFailureDecryptOutput_ = out3_ - if not((d_11_expectFailureDecryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(94,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_12_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - d_12_defaultConfig_ = ESDK.default__.DefaultAwsEncryptionSdkConfig() - d_13_valueOrError3_: Wrappers.Result = None - out4_: Wrappers.Result - out4_ = ESDK.default__.ESDK(d_12_defaultConfig_) - d_13_valueOrError3_ = out4_ - if not(not((d_13_valueOrError3_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(99,16): " + _dafny.string_of(d_13_valueOrError3_)) - d_14_esdk_: ESDK.ESDKClient - d_14_esdk_ = (d_13_valueOrError3_).Extract() - d_15_decryptOutput_: Wrappers.Result - out5_: Wrappers.Result - out5_ = (d_14_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(default__.ESDK__NET__V400__MESSAGE, Wrappers.Option_None(), Wrappers.Option_Some(d_7_rawAesKeyring_), Wrappers.Option_None())) - d_15_decryptOutput_ = out5_ - if not((d_15_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(108,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - if not((((d_15_decryptOutput_).value).plaintext) == (d_4_expectedMessage_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestCreateEsdkClient.dfy(109,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - - @_dafny.classproperty - def ESDK__NET__V400__MESSAGE(instance): - return _dafny.Seq([2, 5, 120, 238, 5, 239, 107, 129, 136, 211, 103, 75, 18, 140, 11, 74, 26, 191, 92, 27, 202, 170, 33, 28, 9, 117, 252, 29, 29, 92, 213, 21, 231, 172, 234, 0, 95, 0, 1, 0, 21, 97, 119, 115, 45, 99, 114, 121, 112, 116, 111, 45, 112, 117, 98, 108, 105, 99, 45, 107, 101, 121, 0, 68, 65, 119, 102, 117, 103, 90, 99, 107, 57, 116, 100, 53, 104, 78, 108, 49, 78, 108, 75, 111, 47, 104, 105, 114, 53, 85, 47, 48, 81, 109, 98, 73, 111, 107, 79, 72, 81, 87, 97, 72, 83, 43, 115, 117, 119, 75, 73, 77, 82, 76, 99, 67, 80, 49, 54, 55, 56, 43, 49, 82, 75, 49, 48, 82, 101, 119, 61, 61, 0, 1, 0, 21, 83, 111, 109, 101, 32, 109, 97, 110, 97, 103, 101, 100, 32, 114, 97, 119, 32, 107, 101, 121, 115, 0, 47, 77, 121, 32, 50, 53, 54, 45, 98, 105, 116, 32, 65, 69, 83, 32, 119, 114, 97, 112, 112, 105, 110, 103, 32, 107, 101, 121, 0, 0, 0, 128, 0, 0, 0, 12, 229, 254, 197, 205, 110, 124, 222, 48, 217, 121, 252, 11, 0, 48, 64, 60, 232, 232, 76, 229, 15, 118, 224, 152, 79, 93, 113, 166, 255, 172, 255, 148, 185, 150, 195, 179, 78, 52, 186, 38, 216, 48, 118, 45, 113, 204, 71, 102, 116, 148, 199, 109, 178, 19, 2, 203, 150, 201, 65, 32, 199, 180, 2, 0, 0, 16, 0, 67, 72, 208, 112, 230, 137, 188, 187, 0, 28, 183, 198, 192, 45, 248, 108, 2, 129, 34, 42, 59, 155, 70, 117, 182, 216, 239, 27, 210, 78, 62, 104, 181, 247, 141, 50, 133, 42, 72, 200, 185, 57, 20, 49, 193, 240, 171, 140, 255, 255, 255, 255, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 15, 67, 37, 106, 11, 15, 23, 78, 239, 208, 185, 4, 36, 182, 9, 63, 62, 83, 97, 42, 250, 252, 185, 165, 14, 182, 231, 83, 176, 227, 191, 92, 0, 103, 48, 101, 2, 49, 0, 193, 152, 7, 169, 197, 137, 244, 88, 9, 1, 6, 56, 96, 13, 220, 201, 56, 16, 50, 68, 70, 36, 174, 38, 14, 241, 207, 11, 139, 154, 166, 224, 191, 20, 12, 175, 56, 117, 183, 120, 119, 228, 173, 130, 71, 110, 211, 189, 2, 48, 99, 98, 250, 36, 53, 182, 2, 204, 198, 55, 150, 51, 159, 101, 231, 34, 42, 30, 57, 204, 88, 114, 138, 94, 12, 79, 52, 71, 178, 34, 61, 246, 55, 163, 145, 95, 80, 61, 85, 143, 32, 0, 98, 20, 88, 251, 204, 5]) diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestEncryptDecrypt.py b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestEncryptDecrypt.py deleted file mode 100644 index 854f28fb1..000000000 --- a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestEncryptDecrypt.py +++ /dev/null @@ -1,221 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import module_ as module_ -import _dafny as _dafny -import System_ as System_ -import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary -import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 -import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom -import aws_cryptography_primitives.internaldafny.generated.Random as Random -import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption -import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest -import aws_cryptography_primitives.internaldafny.generated.Digest as Digest -import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC -import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC -import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF -import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF -import aws_cryptography_primitives.internaldafny.generated.Signature as Signature -import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr -import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption -import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives -import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 -import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites -import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials -import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring -import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations -import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort -import smithy_dafny_standard_library.internaldafny.generated.Math as Math -import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq -import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils -import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants -import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID -import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping -import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets -import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext -import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping -import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring -import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms -import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries -import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang -import smithy_dafny_standard_library.internaldafny.generated.Time as Time -import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker -import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC -import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring -import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring -import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM -import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults -import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment -import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM -import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier -import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils -import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders -import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header -import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames -import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK -import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr -import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn -import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure -import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable -import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore -import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode -import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions -import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings -import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO -import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals -import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals -import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul -import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals -import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals -import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod -import smithy_dafny_standard_library.internaldafny.generated.Power as Power -import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm -import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop -import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting -import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings -import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt -import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare -import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall -import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import Fixtures as Fixtures -import TestRequiredEncryptionContext as TestRequiredEncryptionContext -import TestReproducedEncryptionContext as TestReproducedEncryptionContext - -# Module: TestEncryptDecrypt - -class default__: - def __init__(self): - pass - - @staticmethod - def TestEncryptDecrypt(): - d_0_kmsKey_: _dafny.Seq - d_0_kmsKey_ = Fixtures.default__.keyArn - d_1_asdf_: _dafny.Seq - d_1_asdf_ = _dafny.Seq([97, 115, 100, 102]) - d_2_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - d_2_defaultConfig_ = ESDK.default__.DefaultAwsEncryptionSdkConfig() - d_3_valueOrError0_: Wrappers.Result = None - out0_: Wrappers.Result - out0_ = ESDK.default__.ESDK(d_2_defaultConfig_) - d_3_valueOrError0_ = out0_ - if not(not((d_3_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestEncryptDecrypt.dfy(24,16): " + _dafny.string_of(d_3_valueOrError0_)) - d_4_esdk_: ESDK.ESDKClient - d_4_esdk_ = (d_3_valueOrError0_).Extract() - d_5_valueOrError1_: Wrappers.Result = None - out1_: Wrappers.Result - out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) - d_5_valueOrError1_ = out1_ - if not(not((d_5_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestEncryptDecrypt.dfy(25,15): " + _dafny.string_of(d_5_valueOrError1_)) - d_6_mpl_: MaterialProviders.MaterialProvidersClient - d_6_mpl_ = (d_5_valueOrError1_).Extract() - d_7_valueOrError2_: Wrappers.Result = None - out2_: Wrappers.Result - out2_ = (d_6_mpl_).CreateDefaultClientSupplier(AwsCryptographyMaterialProvidersTypes.CreateDefaultClientSupplierInput_CreateDefaultClientSupplierInput()) - d_7_valueOrError2_ = out2_ - if not(not((d_7_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestEncryptDecrypt.dfy(26,26): " + _dafny.string_of(d_7_valueOrError2_)) - d_8_clientSupplier_: AwsCryptographyMaterialProvidersTypes.IClientSupplier - d_8_clientSupplier_ = (d_7_valueOrError2_).Extract() - d_9_valueOrError3_: Wrappers.Result = None - out3_: Wrappers.Result - out3_ = (d_8_clientSupplier_).GetClient(AwsCryptographyMaterialProvidersTypes.GetClientInput_GetClientInput(_dafny.Seq("us-west-2"))) - d_9_valueOrError3_ = out3_ - if not(not((d_9_valueOrError3_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestEncryptDecrypt.dfy(27,21): " + _dafny.string_of(d_9_valueOrError3_)) - d_10_kmsClient_: ComAmazonawsKmsTypes.IKMSClient - d_10_kmsClient_ = (d_9_valueOrError3_).Extract() - d_11_valueOrError4_: Wrappers.Result = None - out4_: Wrappers.Result - out4_ = (d_6_mpl_).CreateAwsKmsKeyring(AwsCryptographyMaterialProvidersTypes.CreateAwsKmsKeyringInput_CreateAwsKmsKeyringInput(d_0_kmsKey_, d_10_kmsClient_, Wrappers.Option_None())) - d_11_valueOrError4_ = out4_ - if not(not((d_11_valueOrError4_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestEncryptDecrypt.dfy(29,22): " + _dafny.string_of(d_11_valueOrError4_)) - d_12_kmsKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - d_12_kmsKeyring_ = (d_11_valueOrError4_).Extract() - d_13_encryptOutput_: Wrappers.Result - out5_: Wrappers.Result - out5_ = (d_4_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_1_asdf_, Wrappers.Option_None(), Wrappers.Option_None(), Wrappers.Option_Some(d_12_kmsKeyring_), Wrappers.Option_None(), Wrappers.Option_None())) - d_13_encryptOutput_ = out5_ - if not((d_13_encryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestEncryptDecrypt.dfy(46,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_14_esdkCiphertext_: _dafny.Seq - d_14_esdkCiphertext_ = ((d_13_encryptOutput_).value).ciphertext - d_15_decryptOutput_: Wrappers.Result - out6_: Wrappers.Result - out6_ = (d_4_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_14_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_12_kmsKeyring_), Wrappers.Option_None())) - d_15_decryptOutput_ = out6_ - if not((d_15_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestEncryptDecrypt.dfy(56,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_16_cycledPlaintext_: _dafny.Seq - d_16_cycledPlaintext_ = ((d_15_decryptOutput_).value).plaintext - if not((d_16_cycledPlaintext_) == (d_1_asdf_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestEncryptDecrypt.dfy(59,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestReproducedEncryptionContext.py b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestReproducedEncryptionContext.py deleted file mode 100644 index 13f828848..000000000 --- a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestReproducedEncryptionContext.py +++ /dev/null @@ -1,365 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import module_ as module_ -import _dafny as _dafny -import System_ as System_ -import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary -import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 -import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom -import aws_cryptography_primitives.internaldafny.generated.Random as Random -import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption -import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest -import aws_cryptography_primitives.internaldafny.generated.Digest as Digest -import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC -import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC -import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF -import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF -import aws_cryptography_primitives.internaldafny.generated.Signature as Signature -import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr -import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption -import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives -import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 -import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites -import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials -import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring -import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations -import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort -import smithy_dafny_standard_library.internaldafny.generated.Math as Math -import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq -import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils -import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants -import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID -import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping -import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets -import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext -import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping -import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring -import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms -import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries -import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang -import smithy_dafny_standard_library.internaldafny.generated.Time as Time -import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker -import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC -import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring -import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring -import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM -import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults -import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment -import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM -import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier -import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils -import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders -import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header -import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames -import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK -import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr -import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn -import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure -import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable -import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore -import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode -import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions -import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings -import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO -import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals -import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals -import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul -import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals -import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals -import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod -import smithy_dafny_standard_library.internaldafny.generated.Power as Power -import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm -import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop -import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting -import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings -import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt -import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare -import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall -import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import Fixtures as Fixtures -import TestRequiredEncryptionContext as TestRequiredEncryptionContext - -# Module: TestReproducedEncryptionContext - -class default__: - def __init__(self): - pass - - @staticmethod - def TestEncryptionContextOnDecrypt(): - d_0_kmsKey_: _dafny.Seq - d_0_kmsKey_ = Fixtures.default__.keyArn - d_1_asdf_: _dafny.Seq - d_1_asdf_ = _dafny.Seq([97, 115, 100, 102]) - d_2_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - d_2_defaultConfig_ = ESDK.default__.DefaultAwsEncryptionSdkConfig() - d_3_valueOrError0_: Wrappers.Result = None - out0_: Wrappers.Result - out0_ = ESDK.default__.ESDK(d_2_defaultConfig_) - d_3_valueOrError0_ = out0_ - if not(not((d_3_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(24,16): " + _dafny.string_of(d_3_valueOrError0_)) - d_4_esdk_: ESDK.ESDKClient - d_4_esdk_ = (d_3_valueOrError0_).Extract() - d_5_valueOrError1_: Wrappers.Result = None - out1_: Wrappers.Result - out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) - d_5_valueOrError1_ = out1_ - if not(not((d_5_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(25,15): " + _dafny.string_of(d_5_valueOrError1_)) - d_6_mpl_: MaterialProviders.MaterialProvidersClient - d_6_mpl_ = (d_5_valueOrError1_).Extract() - d_7_valueOrError2_: Wrappers.Result = None - out2_: Wrappers.Result - out2_ = (d_6_mpl_).CreateDefaultClientSupplier(AwsCryptographyMaterialProvidersTypes.CreateDefaultClientSupplierInput_CreateDefaultClientSupplierInput()) - d_7_valueOrError2_ = out2_ - if not(not((d_7_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(26,26): " + _dafny.string_of(d_7_valueOrError2_)) - d_8_clientSupplier_: AwsCryptographyMaterialProvidersTypes.IClientSupplier - d_8_clientSupplier_ = (d_7_valueOrError2_).Extract() - d_9_valueOrError3_: Wrappers.Result = None - out3_: Wrappers.Result - out3_ = (d_8_clientSupplier_).GetClient(AwsCryptographyMaterialProvidersTypes.GetClientInput_GetClientInput(_dafny.Seq("us-west-2"))) - d_9_valueOrError3_ = out3_ - if not(not((d_9_valueOrError3_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(27,21): " + _dafny.string_of(d_9_valueOrError3_)) - d_10_kmsClient_: ComAmazonawsKmsTypes.IKMSClient - d_10_kmsClient_ = (d_9_valueOrError3_).Extract() - d_11_valueOrError4_: Wrappers.Result = None - out4_: Wrappers.Result - out4_ = (d_6_mpl_).CreateAwsKmsKeyring(AwsCryptographyMaterialProvidersTypes.CreateAwsKmsKeyringInput_CreateAwsKmsKeyringInput(d_0_kmsKey_, d_10_kmsClient_, Wrappers.Option_None())) - d_11_valueOrError4_ = out4_ - if not(not((d_11_valueOrError4_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(29,22): " + _dafny.string_of(d_11_valueOrError4_)) - d_12_kmsKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - d_12_kmsKeyring_ = (d_11_valueOrError4_).Extract() - d_13_encryptionContext_: _dafny.Map - out5_: _dafny.Map - out5_ = Fixtures.default__.SmallEncryptionContext(Fixtures.SmallEncryptionContextVariation_AB()) - d_13_encryptionContext_ = out5_ - d_14_encryptOutput_: Wrappers.Result - out6_: Wrappers.Result - out6_ = (d_4_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_1_asdf_, Wrappers.Option_Some(d_13_encryptionContext_), Wrappers.Option_None(), Wrappers.Option_Some(d_12_kmsKeyring_), Wrappers.Option_None(), Wrappers.Option_None())) - d_14_encryptOutput_ = out6_ - if not((d_14_encryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(48,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_15_esdkCiphertext_: _dafny.Seq - d_15_esdkCiphertext_ = ((d_14_encryptOutput_).value).ciphertext - d_16_decryptOutput_: Wrappers.Result - out7_: Wrappers.Result - out7_ = (d_4_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_15_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_12_kmsKeyring_), Wrappers.Option_Some(d_13_encryptionContext_))) - d_16_decryptOutput_ = out7_ - if not((d_16_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(58,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_17_cycledPlaintext_: _dafny.Seq - d_17_cycledPlaintext_ = ((d_16_decryptOutput_).value).plaintext - if not((d_17_cycledPlaintext_) == (d_1_asdf_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(61,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - - @staticmethod - def TestEncryptionContextOnDecryptFailure(): - d_0_kmsKey_: _dafny.Seq - d_0_kmsKey_ = Fixtures.default__.keyArn - d_1_asdf_: _dafny.Seq - d_1_asdf_ = _dafny.Seq([97, 115, 100, 102]) - d_2_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - d_2_defaultConfig_ = ESDK.default__.DefaultAwsEncryptionSdkConfig() - d_3_valueOrError0_: Wrappers.Result = None - out0_: Wrappers.Result - out0_ = ESDK.default__.ESDK(d_2_defaultConfig_) - d_3_valueOrError0_ = out0_ - if not(not((d_3_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(71,16): " + _dafny.string_of(d_3_valueOrError0_)) - d_4_esdk_: ESDK.ESDKClient - d_4_esdk_ = (d_3_valueOrError0_).Extract() - d_5_valueOrError1_: Wrappers.Result = None - out1_: Wrappers.Result - out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) - d_5_valueOrError1_ = out1_ - if not(not((d_5_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(72,15): " + _dafny.string_of(d_5_valueOrError1_)) - d_6_mpl_: MaterialProviders.MaterialProvidersClient - d_6_mpl_ = (d_5_valueOrError1_).Extract() - d_7_valueOrError2_: Wrappers.Result = None - out2_: Wrappers.Result - out2_ = (d_6_mpl_).CreateDefaultClientSupplier(AwsCryptographyMaterialProvidersTypes.CreateDefaultClientSupplierInput_CreateDefaultClientSupplierInput()) - d_7_valueOrError2_ = out2_ - if not(not((d_7_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(73,26): " + _dafny.string_of(d_7_valueOrError2_)) - d_8_clientSupplier_: AwsCryptographyMaterialProvidersTypes.IClientSupplier - d_8_clientSupplier_ = (d_7_valueOrError2_).Extract() - d_9_valueOrError3_: Wrappers.Result = None - out3_: Wrappers.Result - out3_ = (d_8_clientSupplier_).GetClient(AwsCryptographyMaterialProvidersTypes.GetClientInput_GetClientInput(_dafny.Seq("us-west-2"))) - d_9_valueOrError3_ = out3_ - if not(not((d_9_valueOrError3_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(74,21): " + _dafny.string_of(d_9_valueOrError3_)) - d_10_kmsClient_: ComAmazonawsKmsTypes.IKMSClient - d_10_kmsClient_ = (d_9_valueOrError3_).Extract() - d_11_valueOrError4_: Wrappers.Result = None - out4_: Wrappers.Result - out4_ = (d_6_mpl_).CreateAwsKmsKeyring(AwsCryptographyMaterialProvidersTypes.CreateAwsKmsKeyringInput_CreateAwsKmsKeyringInput(d_0_kmsKey_, d_10_kmsClient_, Wrappers.Option_None())) - d_11_valueOrError4_ = out4_ - if not(not((d_11_valueOrError4_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(76,22): " + _dafny.string_of(d_11_valueOrError4_)) - d_12_kmsKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - d_12_kmsKeyring_ = (d_11_valueOrError4_).Extract() - d_13_encryptionContext_: _dafny.Map - out5_: _dafny.Map - out5_ = Fixtures.default__.SmallEncryptionContext(Fixtures.SmallEncryptionContextVariation_A()) - d_13_encryptionContext_ = out5_ - d_14_incorrectReproducedEncryptionContext_: _dafny.Map - out6_: _dafny.Map - out6_ = Fixtures.default__.SmallEncryptionContext(Fixtures.SmallEncryptionContextVariation_AB()) - d_14_incorrectReproducedEncryptionContext_ = out6_ - d_15_encryptOutput_: Wrappers.Result - out7_: Wrappers.Result - out7_ = (d_4_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_1_asdf_, Wrappers.Option_Some(d_13_encryptionContext_), Wrappers.Option_None(), Wrappers.Option_Some(d_12_kmsKeyring_), Wrappers.Option_None(), Wrappers.Option_None())) - d_15_encryptOutput_ = out7_ - if not((d_15_encryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(96,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_16_esdkCiphertext_: _dafny.Seq - d_16_esdkCiphertext_ = ((d_15_encryptOutput_).value).ciphertext - d_17_decryptOutput_: Wrappers.Result - out8_: Wrappers.Result - out8_ = (d_4_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_16_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_12_kmsKeyring_), Wrappers.Option_Some(d_14_incorrectReproducedEncryptionContext_))) - d_17_decryptOutput_ = out8_ - if not((d_17_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(107,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - - @staticmethod - def TestMismatchedEncryptionContextOnDecrypt(): - d_0_asdf_: _dafny.Seq - d_0_asdf_ = _dafny.Seq([97, 115, 100, 102]) - d_1_namespace_: _dafny.Seq - d_2_name_: _dafny.Seq - out0_: _dafny.Seq - out1_: _dafny.Seq - out0_, out1_ = Fixtures.default__.NamespaceAndName(0) - d_1_namespace_ = out0_ - d_2_name_ = out1_ - d_3_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - d_3_defaultConfig_ = ESDK.default__.DefaultAwsEncryptionSdkConfig() - d_4_valueOrError0_: Wrappers.Result = None - out2_: Wrappers.Result - out2_ = ESDK.default__.ESDK(d_3_defaultConfig_) - d_4_valueOrError0_ = out2_ - if not(not((d_4_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(117,16): " + _dafny.string_of(d_4_valueOrError0_)) - d_5_esdk_: ESDK.ESDKClient - d_5_esdk_ = (d_4_valueOrError0_).Extract() - d_6_valueOrError1_: Wrappers.Result = None - out3_: Wrappers.Result - out3_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) - d_6_valueOrError1_ = out3_ - if not(not((d_6_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(118,15): " + _dafny.string_of(d_6_valueOrError1_)) - d_7_mpl_: MaterialProviders.MaterialProvidersClient - d_7_mpl_ = (d_6_valueOrError1_).Extract() - d_8_valueOrError2_: Wrappers.Result = None - out4_: Wrappers.Result - out4_ = (d_7_mpl_).CreateRawAesKeyring(AwsCryptographyMaterialProvidersTypes.CreateRawAesKeyringInput_CreateRawAesKeyringInput(d_1_namespace_, d_2_name_, _dafny.Seq([0 for d_9_i_ in range(32)]), AwsCryptographyMaterialProvidersTypes.AesWrappingAlg_ALG__AES256__GCM__IV12__TAG16())) - d_8_valueOrError2_ = out4_ - if not(not((d_8_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(119,25): " + _dafny.string_of(d_8_valueOrError2_)) - d_10_rawAESKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - d_10_rawAESKeyring_ = (d_8_valueOrError2_).Extract() - d_11_encryptionContext_: _dafny.Map - out5_: _dafny.Map - out5_ = Fixtures.default__.SmallEncryptionContext(Fixtures.SmallEncryptionContextVariation_A()) - d_11_encryptionContext_ = out5_ - d_12_mismatchedEncryptionContext_: _dafny.Map - out6_: _dafny.Map - out6_ = Fixtures.default__.SmallMismatchedEncryptionContex(Fixtures.SmallEncryptionContextVariation_A()) - d_12_mismatchedEncryptionContext_ = out6_ - d_13_encryptOutput_: Wrappers.Result - out7_: Wrappers.Result - out7_ = (d_5_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_0_asdf_, Wrappers.Option_Some(d_11_encryptionContext_), Wrappers.Option_None(), Wrappers.Option_Some(d_10_rawAESKeyring_), Wrappers.Option_None(), Wrappers.Option_None())) - d_13_encryptOutput_ = out7_ - if not((d_13_encryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(138,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_14_esdkCiphertext_: _dafny.Seq - d_14_esdkCiphertext_ = ((d_13_encryptOutput_).value).ciphertext - d_15_decryptOutput_: Wrappers.Result - out8_: Wrappers.Result - out8_ = (d_5_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_14_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_10_rawAESKeyring_), Wrappers.Option_Some(d_12_mismatchedEncryptionContext_))) - d_15_decryptOutput_ = out8_ - if not((d_15_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(150,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - out9_: Wrappers.Result - out9_ = (d_5_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_14_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_10_rawAESKeyring_), Wrappers.Option_Some(d_11_encryptionContext_))) - d_15_decryptOutput_ = out9_ - if not((d_15_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(160,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - out10_: Wrappers.Result - out10_ = (d_5_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_14_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_10_rawAESKeyring_), Wrappers.Option_None())) - d_15_decryptOutput_ = out10_ - if not((d_15_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestReproducedEncContext.dfy(171,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestRequiredEncryptionContext.py b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestRequiredEncryptionContext.py deleted file mode 100644 index c20c9a29e..000000000 --- a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/TestRequiredEncryptionContext.py +++ /dev/null @@ -1,1345 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import module_ as module_ -import _dafny as _dafny -import System_ as System_ -import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary -import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 -import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom -import aws_cryptography_primitives.internaldafny.generated.Random as Random -import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption -import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest -import aws_cryptography_primitives.internaldafny.generated.Digest as Digest -import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC -import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC -import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF -import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF -import aws_cryptography_primitives.internaldafny.generated.Signature as Signature -import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr -import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption -import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives -import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 -import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites -import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials -import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring -import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations -import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort -import smithy_dafny_standard_library.internaldafny.generated.Math as Math -import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq -import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils -import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants -import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID -import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping -import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets -import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext -import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping -import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring -import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms -import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries -import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang -import smithy_dafny_standard_library.internaldafny.generated.Time as Time -import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker -import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC -import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring -import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring -import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM -import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults -import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment -import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM -import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier -import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils -import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders -import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header -import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames -import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK -import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr -import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn -import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure -import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable -import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore -import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode -import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions -import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings -import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO -import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals -import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals -import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul -import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals -import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals -import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod -import smithy_dafny_standard_library.internaldafny.generated.Power as Power -import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm -import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop -import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting -import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings -import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt -import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare -import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall -import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import Fixtures as Fixtures - -# Module: TestRequiredEncryptionContext - -class default__: - def __init__(self): - pass - - @staticmethod - def TestReprEncryptionContextWithSameECHappyCase(): - d_0_asdf_: _dafny.Seq - d_0_asdf_ = _dafny.Seq([97, 115, 100, 102]) - d_1_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - d_1_defaultConfig_ = ESDK.default__.DefaultAwsEncryptionSdkConfig() - d_2_valueOrError0_: Wrappers.Result = None - out0_: Wrappers.Result - out0_ = ESDK.default__.ESDK(d_1_defaultConfig_) - d_2_valueOrError0_ = out0_ - if not(not((d_2_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(39,16): " + _dafny.string_of(d_2_valueOrError0_)) - d_3_esdk_: ESDK.ESDKClient - d_3_esdk_ = (d_2_valueOrError0_).Extract() - d_4_valueOrError1_: Wrappers.Result = None - out1_: Wrappers.Result - out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) - d_4_valueOrError1_ = out1_ - if not(not((d_4_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(40,15): " + _dafny.string_of(d_4_valueOrError1_)) - d_5_mpl_: MaterialProviders.MaterialProvidersClient - d_5_mpl_ = (d_4_valueOrError1_).Extract() - d_6_rsaKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - out2_: AwsCryptographyMaterialProvidersTypes.IKeyring - out2_ = default__.GetRsaKeyring() - d_6_rsaKeyring_ = out2_ - d_7_kmsKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - out3_: AwsCryptographyMaterialProvidersTypes.IKeyring - out3_ = default__.GetKmsKeyring() - d_7_kmsKeyring_ = out3_ - d_8_aesKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - out4_: AwsCryptographyMaterialProvidersTypes.IKeyring - out4_ = default__.GetAesKeyring() - d_8_aesKeyring_ = out4_ - d_9_hKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - out5_: AwsCryptographyMaterialProvidersTypes.IKeyring - out5_ = default__.GetHierarchicalKeyring() - d_9_hKeyring_ = out5_ - d_10_valueOrError2_: Wrappers.Result = None - out6_: Wrappers.Result - out6_ = (d_5_mpl_).CreateMultiKeyring(AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput_CreateMultiKeyringInput(Wrappers.Option_Some(d_8_aesKeyring_), _dafny.Seq([d_6_rsaKeyring_, d_7_kmsKeyring_, d_9_hKeyring_]))) - d_10_valueOrError2_ = out6_ - if not(not((d_10_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(48,24): " + _dafny.string_of(d_10_valueOrError2_)) - d_11_multiKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - d_11_multiKeyring_ = (d_10_valueOrError2_).Extract() - d_12_encryptionContext_: _dafny.Map - out7_: _dafny.Map - out7_ = Fixtures.default__.SmallEncryptionContext(Fixtures.SmallEncryptionContextVariation_AB()) - d_12_encryptionContext_ = out7_ - d_13_encryptOutput_: Wrappers.Result - out8_: Wrappers.Result - out8_ = (d_3_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_0_asdf_, Wrappers.Option_Some(d_12_encryptionContext_), Wrappers.Option_None(), Wrappers.Option_Some(d_11_multiKeyring_), Wrappers.Option_None(), Wrappers.Option_None())) - d_13_encryptOutput_ = out8_ - if not((d_13_encryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(66,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_14_esdkCiphertext_: _dafny.Seq - d_14_esdkCiphertext_ = ((d_13_encryptOutput_).value).ciphertext - d_15_decryptOutput_: Wrappers.Result - out9_: Wrappers.Result - out9_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_14_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_6_rsaKeyring_), Wrappers.Option_Some(d_12_encryptionContext_))) - d_15_decryptOutput_ = out9_ - if not((d_15_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(77,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_16_cycledPlaintext_: _dafny.Seq - d_16_cycledPlaintext_ = ((d_15_decryptOutput_).value).plaintext - if not((d_16_cycledPlaintext_) == (d_0_asdf_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(79,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - out10_: Wrappers.Result - out10_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_14_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_7_kmsKeyring_), Wrappers.Option_Some(d_12_encryptionContext_))) - d_15_decryptOutput_ = out10_ - if not((d_15_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(89,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_16_cycledPlaintext_ = ((d_15_decryptOutput_).value).plaintext - if not((d_16_cycledPlaintext_) == (d_0_asdf_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(91,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - out11_: Wrappers.Result - out11_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_14_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_8_aesKeyring_), Wrappers.Option_Some(d_12_encryptionContext_))) - d_15_decryptOutput_ = out11_ - if not((d_15_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(101,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_16_cycledPlaintext_ = ((d_15_decryptOutput_).value).plaintext - if not((d_16_cycledPlaintext_) == (d_0_asdf_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(103,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - out12_: Wrappers.Result - out12_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_14_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_9_hKeyring_), Wrappers.Option_Some(d_12_encryptionContext_))) - d_15_decryptOutput_ = out12_ - if not((d_15_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(113,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_16_cycledPlaintext_ = ((d_15_decryptOutput_).value).plaintext - if not((d_16_cycledPlaintext_) == (d_0_asdf_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(115,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - - @staticmethod - def TestRemoveOnEncryptAndSupplyOnDecryptHappyCase(): - d_0_asdf_: _dafny.Seq - d_0_asdf_ = _dafny.Seq([97, 115, 100, 102]) - d_1_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - d_1_defaultConfig_ = ESDK.default__.DefaultAwsEncryptionSdkConfig() - d_2_valueOrError0_: Wrappers.Result = None - out0_: Wrappers.Result - out0_ = ESDK.default__.ESDK(d_1_defaultConfig_) - d_2_valueOrError0_ = out0_ - if not(not((d_2_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(124,16): " + _dafny.string_of(d_2_valueOrError0_)) - d_3_esdk_: ESDK.ESDKClient - d_3_esdk_ = (d_2_valueOrError0_).Extract() - d_4_valueOrError1_: Wrappers.Result = None - out1_: Wrappers.Result - out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) - d_4_valueOrError1_ = out1_ - if not(not((d_4_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(125,15): " + _dafny.string_of(d_4_valueOrError1_)) - d_5_mpl_: MaterialProviders.MaterialProvidersClient - d_5_mpl_ = (d_4_valueOrError1_).Extract() - d_6_rsaKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - out2_: AwsCryptographyMaterialProvidersTypes.IKeyring - out2_ = default__.GetRsaKeyring() - d_6_rsaKeyring_ = out2_ - d_7_kmsKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - out3_: AwsCryptographyMaterialProvidersTypes.IKeyring - out3_ = default__.GetKmsKeyring() - d_7_kmsKeyring_ = out3_ - d_8_aesKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - out4_: AwsCryptographyMaterialProvidersTypes.IKeyring - out4_ = default__.GetAesKeyring() - d_8_aesKeyring_ = out4_ - d_9_hKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - out5_: AwsCryptographyMaterialProvidersTypes.IKeyring - out5_ = default__.GetHierarchicalKeyring() - d_9_hKeyring_ = out5_ - d_10_valueOrError2_: Wrappers.Result = None - out6_: Wrappers.Result - out6_ = (d_5_mpl_).CreateMultiKeyring(AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput_CreateMultiKeyringInput(Wrappers.Option_Some(d_8_aesKeyring_), _dafny.Seq([d_6_rsaKeyring_, d_7_kmsKeyring_, d_9_hKeyring_]))) - d_10_valueOrError2_ = out6_ - if not(not((d_10_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(133,24): " + _dafny.string_of(d_10_valueOrError2_)) - d_11_multiKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - d_11_multiKeyring_ = (d_10_valueOrError2_).Extract() - d_12_encryptionContext_: _dafny.Map - out7_: _dafny.Map - out7_ = Fixtures.default__.SmallEncryptionContext(Fixtures.SmallEncryptionContextVariation_AB()) - d_12_encryptionContext_ = out7_ - d_13_reproducedEncryptionContext_: _dafny.Map - out8_: _dafny.Map - out8_ = Fixtures.default__.SmallEncryptionContext(Fixtures.SmallEncryptionContextVariation_A()) - d_13_reproducedEncryptionContext_ = out8_ - d_14_requiredEncryptionContextKeys_: _dafny.Seq - out9_: _dafny.Seq - out9_ = Fixtures.default__.SmallEncryptionContextKeys(Fixtures.SmallEncryptionContextVariation_A()) - d_14_requiredEncryptionContextKeys_ = out9_ - d_15_valueOrError3_: Wrappers.Result = None - out10_: Wrappers.Result - out10_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_11_multiKeyring_)) - d_15_valueOrError3_ = out10_ - if not(not((d_15_valueOrError3_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(148,22): " + _dafny.string_of(d_15_valueOrError3_)) - d_16_defaultCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager - d_16_defaultCMM_ = (d_15_valueOrError3_).Extract() - d_17_valueOrError4_: Wrappers.Result = None - out11_: Wrappers.Result - out11_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), d_14_requiredEncryptionContextKeys_)) - d_17_valueOrError4_ = out11_ - if not(not((d_17_valueOrError4_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(155,18): " + _dafny.string_of(d_17_valueOrError4_)) - d_18_reqCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager - d_18_reqCMM_ = (d_17_valueOrError4_).Extract() - d_19_encryptOutput_: Wrappers.Result - out12_: Wrappers.Result - out12_ = (d_3_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_0_asdf_, Wrappers.Option_Some(d_12_encryptionContext_), Wrappers.Option_Some(d_18_reqCMM_), Wrappers.Option_None(), Wrappers.Option_None(), Wrappers.Option_None())) - d_19_encryptOutput_ = out12_ - if not((d_19_encryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(174,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_20_esdkCiphertext_: _dafny.Seq - d_20_esdkCiphertext_ = ((d_19_encryptOutput_).value).ciphertext - d_21_decryptOutput_: Wrappers.Result - out13_: Wrappers.Result - out13_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_6_rsaKeyring_), Wrappers.Option_Some(d_13_reproducedEncryptionContext_))) - d_21_decryptOutput_ = out13_ - if not((d_21_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(185,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_22_cycledPlaintext_: _dafny.Seq - d_22_cycledPlaintext_ = ((d_21_decryptOutput_).value).plaintext - if not((d_22_cycledPlaintext_) == (d_0_asdf_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(187,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - out14_: Wrappers.Result - out14_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_7_kmsKeyring_), Wrappers.Option_Some(d_13_reproducedEncryptionContext_))) - d_21_decryptOutput_ = out14_ - if not((d_21_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(197,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_22_cycledPlaintext_ = ((d_21_decryptOutput_).value).plaintext - if not((d_22_cycledPlaintext_) == (d_0_asdf_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(199,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - out15_: Wrappers.Result - out15_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_8_aesKeyring_), Wrappers.Option_Some(d_13_reproducedEncryptionContext_))) - d_21_decryptOutput_ = out15_ - if not((d_21_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(209,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_22_cycledPlaintext_ = ((d_21_decryptOutput_).value).plaintext - if not((d_22_cycledPlaintext_) == (d_0_asdf_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(211,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - out16_: Wrappers.Result - out16_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_9_hKeyring_), Wrappers.Option_Some(d_13_reproducedEncryptionContext_))) - d_21_decryptOutput_ = out16_ - if not((d_21_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(221,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_22_cycledPlaintext_ = ((d_21_decryptOutput_).value).plaintext - if not((d_22_cycledPlaintext_) == (d_0_asdf_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(223,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - - @staticmethod - def TestRemoveOnEncryptRemoveAndSupplyOnDecryptHappyCase(): - d_0_asdf_: _dafny.Seq - d_0_asdf_ = _dafny.Seq([97, 115, 100, 102]) - d_1_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - d_1_defaultConfig_ = ESDK.default__.DefaultAwsEncryptionSdkConfig() - d_2_valueOrError0_: Wrappers.Result = None - out0_: Wrappers.Result - out0_ = ESDK.default__.ESDK(d_1_defaultConfig_) - d_2_valueOrError0_ = out0_ - if not(not((d_2_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(233,16): " + _dafny.string_of(d_2_valueOrError0_)) - d_3_esdk_: ESDK.ESDKClient - d_3_esdk_ = (d_2_valueOrError0_).Extract() - d_4_valueOrError1_: Wrappers.Result = None - out1_: Wrappers.Result - out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) - d_4_valueOrError1_ = out1_ - if not(not((d_4_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(234,15): " + _dafny.string_of(d_4_valueOrError1_)) - d_5_mpl_: MaterialProviders.MaterialProvidersClient - d_5_mpl_ = (d_4_valueOrError1_).Extract() - d_6_rsaKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - out2_: AwsCryptographyMaterialProvidersTypes.IKeyring - out2_ = default__.GetRsaKeyring() - d_6_rsaKeyring_ = out2_ - d_7_kmsKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - out3_: AwsCryptographyMaterialProvidersTypes.IKeyring - out3_ = default__.GetKmsKeyring() - d_7_kmsKeyring_ = out3_ - d_8_aesKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - out4_: AwsCryptographyMaterialProvidersTypes.IKeyring - out4_ = default__.GetAesKeyring() - d_8_aesKeyring_ = out4_ - d_9_hKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - out5_: AwsCryptographyMaterialProvidersTypes.IKeyring - out5_ = default__.GetHierarchicalKeyring() - d_9_hKeyring_ = out5_ - d_10_valueOrError2_: Wrappers.Result = None - out6_: Wrappers.Result - out6_ = (d_5_mpl_).CreateMultiKeyring(AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput_CreateMultiKeyringInput(Wrappers.Option_Some(d_8_aesKeyring_), _dafny.Seq([d_6_rsaKeyring_, d_7_kmsKeyring_, d_9_hKeyring_]))) - d_10_valueOrError2_ = out6_ - if not(not((d_10_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(242,24): " + _dafny.string_of(d_10_valueOrError2_)) - d_11_multiKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - d_11_multiKeyring_ = (d_10_valueOrError2_).Extract() - d_12_encryptionContext_: _dafny.Map - out7_: _dafny.Map - out7_ = Fixtures.default__.SmallEncryptionContext(Fixtures.SmallEncryptionContextVariation_AB()) - d_12_encryptionContext_ = out7_ - d_13_reproducedEncryptionContext_: _dafny.Map - out8_: _dafny.Map - out8_ = Fixtures.default__.SmallEncryptionContext(Fixtures.SmallEncryptionContextVariation_A()) - d_13_reproducedEncryptionContext_ = out8_ - d_14_requiredEncryptionContextKeys_: _dafny.Seq - out9_: _dafny.Seq - out9_ = Fixtures.default__.SmallEncryptionContextKeys(Fixtures.SmallEncryptionContextVariation_A()) - d_14_requiredEncryptionContextKeys_ = out9_ - d_15_valueOrError3_: Wrappers.Result = None - out10_: Wrappers.Result - out10_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_11_multiKeyring_)) - d_15_valueOrError3_ = out10_ - if not(not((d_15_valueOrError3_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(257,22): " + _dafny.string_of(d_15_valueOrError3_)) - d_16_defaultCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager - d_16_defaultCMM_ = (d_15_valueOrError3_).Extract() - d_17_valueOrError4_: Wrappers.Result = None - out11_: Wrappers.Result - out11_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), d_14_requiredEncryptionContextKeys_)) - d_17_valueOrError4_ = out11_ - if not(not((d_17_valueOrError4_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(264,18): " + _dafny.string_of(d_17_valueOrError4_)) - d_18_reqCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager - d_18_reqCMM_ = (d_17_valueOrError4_).Extract() - d_19_encryptOutput_: Wrappers.Result - out12_: Wrappers.Result - out12_ = (d_3_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_0_asdf_, Wrappers.Option_Some(d_12_encryptionContext_), Wrappers.Option_Some(d_18_reqCMM_), Wrappers.Option_None(), Wrappers.Option_None(), Wrappers.Option_None())) - d_19_encryptOutput_ = out12_ - if not((d_19_encryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(283,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_20_esdkCiphertext_: _dafny.Seq - d_20_esdkCiphertext_ = ((d_19_encryptOutput_).value).ciphertext - d_21_valueOrError5_: Wrappers.Result = None - out13_: Wrappers.Result - out13_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_6_rsaKeyring_)) - d_21_valueOrError5_ = out13_ - if not(not((d_21_valueOrError5_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(287,18): " + _dafny.string_of(d_21_valueOrError5_)) - d_16_defaultCMM_ = (d_21_valueOrError5_).Extract() - d_22_valueOrError6_: Wrappers.Result = None - out14_: Wrappers.Result - out14_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), d_14_requiredEncryptionContextKeys_)) - d_22_valueOrError6_ = out14_ - if not(not((d_22_valueOrError6_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(294,14): " + _dafny.string_of(d_22_valueOrError6_)) - d_18_reqCMM_ = (d_22_valueOrError6_).Extract() - d_23_decryptOutput_: Wrappers.Result - out15_: Wrappers.Result - out15_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_Some(d_18_reqCMM_), Wrappers.Option_None(), Wrappers.Option_Some(d_13_reproducedEncryptionContext_))) - d_23_decryptOutput_ = out15_ - if not((d_23_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(312,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_24_cycledPlaintext_: _dafny.Seq - d_24_cycledPlaintext_ = ((d_23_decryptOutput_).value).plaintext - if not((d_24_cycledPlaintext_) == (d_0_asdf_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(314,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_25_valueOrError7_: Wrappers.Result = None - out16_: Wrappers.Result - out16_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_7_kmsKeyring_)) - d_25_valueOrError7_ = out16_ - if not(not((d_25_valueOrError7_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(318,18): " + _dafny.string_of(d_25_valueOrError7_)) - d_16_defaultCMM_ = (d_25_valueOrError7_).Extract() - d_26_valueOrError8_: Wrappers.Result = None - out17_: Wrappers.Result - out17_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), d_14_requiredEncryptionContextKeys_)) - d_26_valueOrError8_ = out17_ - if not(not((d_26_valueOrError8_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(325,14): " + _dafny.string_of(d_26_valueOrError8_)) - d_18_reqCMM_ = (d_26_valueOrError8_).Extract() - out18_: Wrappers.Result - out18_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_Some(d_18_reqCMM_), Wrappers.Option_None(), Wrappers.Option_Some(d_13_reproducedEncryptionContext_))) - d_23_decryptOutput_ = out18_ - if not((d_23_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(343,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_24_cycledPlaintext_ = ((d_23_decryptOutput_).value).plaintext - if not((d_24_cycledPlaintext_) == (d_0_asdf_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(345,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_27_valueOrError9_: Wrappers.Result = None - out19_: Wrappers.Result - out19_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_8_aesKeyring_)) - d_27_valueOrError9_ = out19_ - if not(not((d_27_valueOrError9_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(349,18): " + _dafny.string_of(d_27_valueOrError9_)) - d_16_defaultCMM_ = (d_27_valueOrError9_).Extract() - d_28_valueOrError10_: Wrappers.Result = None - out20_: Wrappers.Result - out20_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), d_14_requiredEncryptionContextKeys_)) - d_28_valueOrError10_ = out20_ - if not(not((d_28_valueOrError10_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(356,14): " + _dafny.string_of(d_28_valueOrError10_)) - d_18_reqCMM_ = (d_28_valueOrError10_).Extract() - out21_: Wrappers.Result - out21_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_Some(d_18_reqCMM_), Wrappers.Option_None(), Wrappers.Option_Some(d_13_reproducedEncryptionContext_))) - d_23_decryptOutput_ = out21_ - if not((d_23_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(374,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_24_cycledPlaintext_ = ((d_23_decryptOutput_).value).plaintext - if not((d_24_cycledPlaintext_) == (d_0_asdf_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(376,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_29_valueOrError11_: Wrappers.Result = None - out22_: Wrappers.Result - out22_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_9_hKeyring_)) - d_29_valueOrError11_ = out22_ - if not(not((d_29_valueOrError11_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(379,18): " + _dafny.string_of(d_29_valueOrError11_)) - d_16_defaultCMM_ = (d_29_valueOrError11_).Extract() - d_30_valueOrError12_: Wrappers.Result = None - out23_: Wrappers.Result - out23_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), d_14_requiredEncryptionContextKeys_)) - d_30_valueOrError12_ = out23_ - if not(not((d_30_valueOrError12_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(386,14): " + _dafny.string_of(d_30_valueOrError12_)) - d_18_reqCMM_ = (d_30_valueOrError12_).Extract() - out24_: Wrappers.Result - out24_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_Some(d_18_reqCMM_), Wrappers.Option_None(), Wrappers.Option_Some(d_13_reproducedEncryptionContext_))) - d_23_decryptOutput_ = out24_ - if not((d_23_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(404,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_24_cycledPlaintext_ = ((d_23_decryptOutput_).value).plaintext - if not((d_24_cycledPlaintext_) == (d_0_asdf_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(406,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - - @staticmethod - def TestRemoveOnDecryptIsBackwardsCompatibleHappyCase(): - d_0_asdf_: _dafny.Seq - d_0_asdf_ = _dafny.Seq([97, 115, 100, 102]) - d_1_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - d_1_defaultConfig_ = ESDK.default__.DefaultAwsEncryptionSdkConfig() - d_2_valueOrError0_: Wrappers.Result = None - out0_: Wrappers.Result - out0_ = ESDK.default__.ESDK(d_1_defaultConfig_) - d_2_valueOrError0_ = out0_ - if not(not((d_2_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(415,16): " + _dafny.string_of(d_2_valueOrError0_)) - d_3_esdk_: ESDK.ESDKClient - d_3_esdk_ = (d_2_valueOrError0_).Extract() - d_4_valueOrError1_: Wrappers.Result = None - out1_: Wrappers.Result - out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) - d_4_valueOrError1_ = out1_ - if not(not((d_4_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(416,15): " + _dafny.string_of(d_4_valueOrError1_)) - d_5_mpl_: MaterialProviders.MaterialProvidersClient - d_5_mpl_ = (d_4_valueOrError1_).Extract() - d_6_rsaKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - out2_: AwsCryptographyMaterialProvidersTypes.IKeyring - out2_ = default__.GetRsaKeyring() - d_6_rsaKeyring_ = out2_ - d_7_kmsKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - out3_: AwsCryptographyMaterialProvidersTypes.IKeyring - out3_ = default__.GetKmsKeyring() - d_7_kmsKeyring_ = out3_ - d_8_aesKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - out4_: AwsCryptographyMaterialProvidersTypes.IKeyring - out4_ = default__.GetAesKeyring() - d_8_aesKeyring_ = out4_ - d_9_hKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - out5_: AwsCryptographyMaterialProvidersTypes.IKeyring - out5_ = default__.GetHierarchicalKeyring() - d_9_hKeyring_ = out5_ - d_10_valueOrError2_: Wrappers.Result = None - out6_: Wrappers.Result - out6_ = (d_5_mpl_).CreateMultiKeyring(AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput_CreateMultiKeyringInput(Wrappers.Option_Some(d_8_aesKeyring_), _dafny.Seq([d_6_rsaKeyring_, d_7_kmsKeyring_, d_9_hKeyring_]))) - d_10_valueOrError2_ = out6_ - if not(not((d_10_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(424,24): " + _dafny.string_of(d_10_valueOrError2_)) - d_11_multiKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - d_11_multiKeyring_ = (d_10_valueOrError2_).Extract() - d_12_encryptionContext_: _dafny.Map - out7_: _dafny.Map - out7_ = Fixtures.default__.SmallEncryptionContext(Fixtures.SmallEncryptionContextVariation_AB()) - d_12_encryptionContext_ = out7_ - d_13_reproducedEncryptionContext_: _dafny.Map - out8_: _dafny.Map - out8_ = Fixtures.default__.SmallEncryptionContext(Fixtures.SmallEncryptionContextVariation_A()) - d_13_reproducedEncryptionContext_ = out8_ - d_14_requiredEncryptionContextKeys_: _dafny.Seq - out9_: _dafny.Seq - out9_ = Fixtures.default__.SmallEncryptionContextKeys(Fixtures.SmallEncryptionContextVariation_A()) - d_14_requiredEncryptionContextKeys_ = out9_ - d_15_valueOrError3_: Wrappers.Result = None - out10_: Wrappers.Result - out10_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_11_multiKeyring_)) - d_15_valueOrError3_ = out10_ - if not(not((d_15_valueOrError3_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(439,22): " + _dafny.string_of(d_15_valueOrError3_)) - d_16_defaultCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager - d_16_defaultCMM_ = (d_15_valueOrError3_).Extract() - d_17_encryptOutput_: Wrappers.Result - out11_: Wrappers.Result - out11_ = (d_3_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_0_asdf_, Wrappers.Option_Some(d_12_encryptionContext_), Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), Wrappers.Option_None(), Wrappers.Option_None())) - d_17_encryptOutput_ = out11_ - if not((d_17_encryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(455,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_18_esdkCiphertext_: _dafny.Seq - d_18_esdkCiphertext_ = ((d_17_encryptOutput_).value).ciphertext - d_19_valueOrError4_: Wrappers.Result = None - out12_: Wrappers.Result - out12_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_6_rsaKeyring_)) - d_19_valueOrError4_ = out12_ - if not(not((d_19_valueOrError4_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(459,18): " + _dafny.string_of(d_19_valueOrError4_)) - d_16_defaultCMM_ = (d_19_valueOrError4_).Extract() - d_20_valueOrError5_: Wrappers.Result = None - out13_: Wrappers.Result - out13_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), d_14_requiredEncryptionContextKeys_)) - d_20_valueOrError5_ = out13_ - if not(not((d_20_valueOrError5_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(466,18): " + _dafny.string_of(d_20_valueOrError5_)) - d_21_reqCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager - d_21_reqCMM_ = (d_20_valueOrError5_).Extract() - d_22_decryptOutput_: Wrappers.Result - out14_: Wrappers.Result - out14_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_18_esdkCiphertext_, Wrappers.Option_Some(d_21_reqCMM_), Wrappers.Option_None(), Wrappers.Option_Some(d_13_reproducedEncryptionContext_))) - d_22_decryptOutput_ = out14_ - if not((d_22_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(484,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_23_cycledPlaintext_: _dafny.Seq - d_23_cycledPlaintext_ = ((d_22_decryptOutput_).value).plaintext - if not((d_23_cycledPlaintext_) == (d_0_asdf_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(486,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_24_valueOrError6_: Wrappers.Result = None - out15_: Wrappers.Result - out15_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_7_kmsKeyring_)) - d_24_valueOrError6_ = out15_ - if not(not((d_24_valueOrError6_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(490,18): " + _dafny.string_of(d_24_valueOrError6_)) - d_16_defaultCMM_ = (d_24_valueOrError6_).Extract() - d_25_valueOrError7_: Wrappers.Result = None - out16_: Wrappers.Result - out16_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), d_14_requiredEncryptionContextKeys_)) - d_25_valueOrError7_ = out16_ - if not(not((d_25_valueOrError7_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(497,14): " + _dafny.string_of(d_25_valueOrError7_)) - d_21_reqCMM_ = (d_25_valueOrError7_).Extract() - out17_: Wrappers.Result - out17_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_18_esdkCiphertext_, Wrappers.Option_Some(d_21_reqCMM_), Wrappers.Option_None(), Wrappers.Option_Some(d_13_reproducedEncryptionContext_))) - d_22_decryptOutput_ = out17_ - if not((d_22_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(515,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_23_cycledPlaintext_ = ((d_22_decryptOutput_).value).plaintext - if not((d_23_cycledPlaintext_) == (d_0_asdf_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(517,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_26_valueOrError8_: Wrappers.Result = None - out18_: Wrappers.Result - out18_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_8_aesKeyring_)) - d_26_valueOrError8_ = out18_ - if not(not((d_26_valueOrError8_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(521,18): " + _dafny.string_of(d_26_valueOrError8_)) - d_16_defaultCMM_ = (d_26_valueOrError8_).Extract() - d_27_valueOrError9_: Wrappers.Result = None - out19_: Wrappers.Result - out19_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), d_14_requiredEncryptionContextKeys_)) - d_27_valueOrError9_ = out19_ - if not(not((d_27_valueOrError9_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(528,14): " + _dafny.string_of(d_27_valueOrError9_)) - d_21_reqCMM_ = (d_27_valueOrError9_).Extract() - out20_: Wrappers.Result - out20_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_18_esdkCiphertext_, Wrappers.Option_Some(d_21_reqCMM_), Wrappers.Option_None(), Wrappers.Option_Some(d_13_reproducedEncryptionContext_))) - d_22_decryptOutput_ = out20_ - if not((d_22_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(546,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_23_cycledPlaintext_ = ((d_22_decryptOutput_).value).plaintext - if not((d_23_cycledPlaintext_) == (d_0_asdf_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(548,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_28_valueOrError10_: Wrappers.Result = None - out21_: Wrappers.Result - out21_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_9_hKeyring_)) - d_28_valueOrError10_ = out21_ - if not(not((d_28_valueOrError10_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(551,18): " + _dafny.string_of(d_28_valueOrError10_)) - d_16_defaultCMM_ = (d_28_valueOrError10_).Extract() - d_29_valueOrError11_: Wrappers.Result = None - out22_: Wrappers.Result - out22_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), d_14_requiredEncryptionContextKeys_)) - d_29_valueOrError11_ = out22_ - if not(not((d_29_valueOrError11_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(558,14): " + _dafny.string_of(d_29_valueOrError11_)) - d_21_reqCMM_ = (d_29_valueOrError11_).Extract() - out23_: Wrappers.Result - out23_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_18_esdkCiphertext_, Wrappers.Option_Some(d_21_reqCMM_), Wrappers.Option_None(), Wrappers.Option_Some(d_13_reproducedEncryptionContext_))) - d_22_decryptOutput_ = out23_ - if not((d_22_decryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(576,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_23_cycledPlaintext_ = ((d_22_decryptOutput_).value).plaintext - if not((d_23_cycledPlaintext_) == (d_0_asdf_)): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(578,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - - @staticmethod - def TestDifferentECOnDecryptFailure(): - d_0_asdf_: _dafny.Seq - d_0_asdf_ = _dafny.Seq([97, 115, 100, 102]) - d_1_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - d_1_defaultConfig_ = ESDK.default__.DefaultAwsEncryptionSdkConfig() - d_2_valueOrError0_: Wrappers.Result = None - out0_: Wrappers.Result - out0_ = ESDK.default__.ESDK(d_1_defaultConfig_) - d_2_valueOrError0_ = out0_ - if not(not((d_2_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(590,16): " + _dafny.string_of(d_2_valueOrError0_)) - d_3_esdk_: ESDK.ESDKClient - d_3_esdk_ = (d_2_valueOrError0_).Extract() - d_4_valueOrError1_: Wrappers.Result = None - out1_: Wrappers.Result - out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) - d_4_valueOrError1_ = out1_ - if not(not((d_4_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(591,15): " + _dafny.string_of(d_4_valueOrError1_)) - d_5_mpl_: MaterialProviders.MaterialProvidersClient - d_5_mpl_ = (d_4_valueOrError1_).Extract() - d_6_rsaKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - out2_: AwsCryptographyMaterialProvidersTypes.IKeyring - out2_ = default__.GetRsaKeyring() - d_6_rsaKeyring_ = out2_ - d_7_kmsKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - out3_: AwsCryptographyMaterialProvidersTypes.IKeyring - out3_ = default__.GetKmsKeyring() - d_7_kmsKeyring_ = out3_ - d_8_aesKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - out4_: AwsCryptographyMaterialProvidersTypes.IKeyring - out4_ = default__.GetAesKeyring() - d_8_aesKeyring_ = out4_ - d_9_hKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - out5_: AwsCryptographyMaterialProvidersTypes.IKeyring - out5_ = default__.GetHierarchicalKeyring() - d_9_hKeyring_ = out5_ - d_10_valueOrError2_: Wrappers.Result = None - out6_: Wrappers.Result - out6_ = (d_5_mpl_).CreateMultiKeyring(AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput_CreateMultiKeyringInput(Wrappers.Option_Some(d_8_aesKeyring_), _dafny.Seq([d_6_rsaKeyring_, d_7_kmsKeyring_, d_9_hKeyring_]))) - d_10_valueOrError2_ = out6_ - if not(not((d_10_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(599,24): " + _dafny.string_of(d_10_valueOrError2_)) - d_11_multiKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - d_11_multiKeyring_ = (d_10_valueOrError2_).Extract() - d_12_encryptionContext_: _dafny.Map - out7_: _dafny.Map - out7_ = Fixtures.default__.SmallEncryptionContext(Fixtures.SmallEncryptionContextVariation_AB()) - d_12_encryptionContext_ = out7_ - d_13_reproducedAdditionalEncryptionContext_: _dafny.Map - out8_: _dafny.Map - out8_ = Fixtures.default__.SmallEncryptionContext(Fixtures.SmallEncryptionContextVariation_C()) - d_13_reproducedAdditionalEncryptionContext_ = out8_ - d_14_reproducedMismatchedEncryptionContext_: _dafny.Map - out9_: _dafny.Map - out9_ = Fixtures.default__.SmallMismatchedEncryptionContex(Fixtures.SmallEncryptionContextVariation_AB()) - d_14_reproducedMismatchedEncryptionContext_ = out9_ - d_15_encryptOutput_: Wrappers.Result - out10_: Wrappers.Result - out10_ = (d_3_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_0_asdf_, Wrappers.Option_Some(d_12_encryptionContext_), Wrappers.Option_None(), Wrappers.Option_Some(d_11_multiKeyring_), Wrappers.Option_None(), Wrappers.Option_None())) - d_15_encryptOutput_ = out10_ - if not((d_15_encryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(623,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_16_esdkCiphertext_: _dafny.Seq - d_16_esdkCiphertext_ = ((d_15_encryptOutput_).value).ciphertext - d_17_decryptOutput_: Wrappers.Result - out11_: Wrappers.Result - out11_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_16_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_6_rsaKeyring_), Wrappers.Option_Some(d_13_reproducedAdditionalEncryptionContext_))) - d_17_decryptOutput_ = out11_ - if not((d_17_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(634,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - out12_: Wrappers.Result - out12_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_16_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_6_rsaKeyring_), Wrappers.Option_Some(d_14_reproducedMismatchedEncryptionContext_))) - d_17_decryptOutput_ = out12_ - if not((d_17_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(643,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - out13_: Wrappers.Result - out13_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_16_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_7_kmsKeyring_), Wrappers.Option_Some(d_13_reproducedAdditionalEncryptionContext_))) - d_17_decryptOutput_ = out13_ - if not((d_17_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(653,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - out14_: Wrappers.Result - out14_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_16_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_7_kmsKeyring_), Wrappers.Option_Some(d_14_reproducedMismatchedEncryptionContext_))) - d_17_decryptOutput_ = out14_ - if not((d_17_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(662,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - out15_: Wrappers.Result - out15_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_16_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_8_aesKeyring_), Wrappers.Option_Some(d_13_reproducedAdditionalEncryptionContext_))) - d_17_decryptOutput_ = out15_ - if not((d_17_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(672,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - out16_: Wrappers.Result - out16_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_16_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_8_aesKeyring_), Wrappers.Option_Some(d_14_reproducedMismatchedEncryptionContext_))) - d_17_decryptOutput_ = out16_ - if not((d_17_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(681,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - out17_: Wrappers.Result - out17_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_16_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_9_hKeyring_), Wrappers.Option_Some(d_13_reproducedAdditionalEncryptionContext_))) - d_17_decryptOutput_ = out17_ - if not((d_17_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(691,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - out18_: Wrappers.Result - out18_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_16_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_9_hKeyring_), Wrappers.Option_Some(d_14_reproducedMismatchedEncryptionContext_))) - d_17_decryptOutput_ = out18_ - if not((d_17_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(700,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - - @staticmethod - def TestRemoveECAndNotSupplyOnDecryptFailure(): - d_0_asdf_: _dafny.Seq - d_0_asdf_ = _dafny.Seq([97, 115, 100, 102]) - d_1_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - d_1_defaultConfig_ = ESDK.default__.DefaultAwsEncryptionSdkConfig() - d_2_valueOrError0_: Wrappers.Result = None - out0_: Wrappers.Result - out0_ = ESDK.default__.ESDK(d_1_defaultConfig_) - d_2_valueOrError0_ = out0_ - if not(not((d_2_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(715,16): " + _dafny.string_of(d_2_valueOrError0_)) - d_3_esdk_: ESDK.ESDKClient - d_3_esdk_ = (d_2_valueOrError0_).Extract() - d_4_valueOrError1_: Wrappers.Result = None - out1_: Wrappers.Result - out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) - d_4_valueOrError1_ = out1_ - if not(not((d_4_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(716,15): " + _dafny.string_of(d_4_valueOrError1_)) - d_5_mpl_: MaterialProviders.MaterialProvidersClient - d_5_mpl_ = (d_4_valueOrError1_).Extract() - d_6_rsaKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - out2_: AwsCryptographyMaterialProvidersTypes.IKeyring - out2_ = default__.GetRsaKeyring() - d_6_rsaKeyring_ = out2_ - d_7_kmsKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - out3_: AwsCryptographyMaterialProvidersTypes.IKeyring - out3_ = default__.GetKmsKeyring() - d_7_kmsKeyring_ = out3_ - d_8_aesKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - out4_: AwsCryptographyMaterialProvidersTypes.IKeyring - out4_ = default__.GetAesKeyring() - d_8_aesKeyring_ = out4_ - d_9_hKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - out5_: AwsCryptographyMaterialProvidersTypes.IKeyring - out5_ = default__.GetHierarchicalKeyring() - d_9_hKeyring_ = out5_ - d_10_valueOrError2_: Wrappers.Result = None - out6_: Wrappers.Result - out6_ = (d_5_mpl_).CreateMultiKeyring(AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput_CreateMultiKeyringInput(Wrappers.Option_Some(d_8_aesKeyring_), _dafny.Seq([d_6_rsaKeyring_, d_7_kmsKeyring_, d_9_hKeyring_]))) - d_10_valueOrError2_ = out6_ - if not(not((d_10_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(724,24): " + _dafny.string_of(d_10_valueOrError2_)) - d_11_multiKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - d_11_multiKeyring_ = (d_10_valueOrError2_).Extract() - d_12_encryptionContext_: _dafny.Map - out7_: _dafny.Map - out7_ = Fixtures.default__.SmallEncryptionContext(Fixtures.SmallEncryptionContextVariation_AB()) - d_12_encryptionContext_ = out7_ - d_13_requiredECKeys_: _dafny.Seq - out8_: _dafny.Seq - out8_ = Fixtures.default__.SmallEncryptionContextKeys(Fixtures.SmallEncryptionContextVariation_A()) - d_13_requiredECKeys_ = out8_ - d_14_valueOrError3_: Wrappers.Result = None - out9_: Wrappers.Result - out9_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_11_multiKeyring_)) - d_14_valueOrError3_ = out9_ - if not(not((d_14_valueOrError3_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(736,22): " + _dafny.string_of(d_14_valueOrError3_)) - d_15_defaultCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager - d_15_defaultCMM_ = (d_14_valueOrError3_).Extract() - d_16_valueOrError4_: Wrappers.Result = None - out10_: Wrappers.Result - out10_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_15_defaultCMM_), Wrappers.Option_None(), d_13_requiredECKeys_)) - d_16_valueOrError4_ = out10_ - if not(not((d_16_valueOrError4_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(743,18): " + _dafny.string_of(d_16_valueOrError4_)) - d_17_reqCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager - d_17_reqCMM_ = (d_16_valueOrError4_).Extract() - d_18_encryptOutput_: Wrappers.Result - out11_: Wrappers.Result - out11_ = (d_3_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_0_asdf_, Wrappers.Option_Some(d_12_encryptionContext_), Wrappers.Option_Some(d_17_reqCMM_), Wrappers.Option_None(), Wrappers.Option_None(), Wrappers.Option_None())) - d_18_encryptOutput_ = out11_ - if not((d_18_encryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(762,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_19_esdkCiphertext_: _dafny.Seq - d_19_esdkCiphertext_ = ((d_18_encryptOutput_).value).ciphertext - d_20_decryptOutput_: Wrappers.Result - out12_: Wrappers.Result - out12_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_19_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_6_rsaKeyring_), Wrappers.Option_None())) - d_20_decryptOutput_ = out12_ - if not((d_20_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(773,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - out13_: Wrappers.Result - out13_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_19_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_7_kmsKeyring_), Wrappers.Option_None())) - d_20_decryptOutput_ = out13_ - if not((d_20_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(783,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - out14_: Wrappers.Result - out14_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_19_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_8_aesKeyring_), Wrappers.Option_None())) - d_20_decryptOutput_ = out14_ - if not((d_20_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(793,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - out15_: Wrappers.Result - out15_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_19_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_9_hKeyring_), Wrappers.Option_None())) - d_20_decryptOutput_ = out15_ - if not((d_20_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(803,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - - @staticmethod - def TestRemoveECAndSupplyMismatchedReprECFailure(): - d_0_asdf_: _dafny.Seq - d_0_asdf_ = _dafny.Seq([97, 115, 100, 102]) - d_1_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - d_1_defaultConfig_ = ESDK.default__.DefaultAwsEncryptionSdkConfig() - d_2_valueOrError0_: Wrappers.Result = None - out0_: Wrappers.Result - out0_ = ESDK.default__.ESDK(d_1_defaultConfig_) - d_2_valueOrError0_ = out0_ - if not(not((d_2_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(818,16): " + _dafny.string_of(d_2_valueOrError0_)) - d_3_esdk_: ESDK.ESDKClient - d_3_esdk_ = (d_2_valueOrError0_).Extract() - d_4_valueOrError1_: Wrappers.Result = None - out1_: Wrappers.Result - out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) - d_4_valueOrError1_ = out1_ - if not(not((d_4_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(819,15): " + _dafny.string_of(d_4_valueOrError1_)) - d_5_mpl_: MaterialProviders.MaterialProvidersClient - d_5_mpl_ = (d_4_valueOrError1_).Extract() - d_6_rsaKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - out2_: AwsCryptographyMaterialProvidersTypes.IKeyring - out2_ = default__.GetRsaKeyring() - d_6_rsaKeyring_ = out2_ - d_7_kmsKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - out3_: AwsCryptographyMaterialProvidersTypes.IKeyring - out3_ = default__.GetKmsKeyring() - d_7_kmsKeyring_ = out3_ - d_8_aesKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - out4_: AwsCryptographyMaterialProvidersTypes.IKeyring - out4_ = default__.GetAesKeyring() - d_8_aesKeyring_ = out4_ - d_9_hKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - out5_: AwsCryptographyMaterialProvidersTypes.IKeyring - out5_ = default__.GetHierarchicalKeyring() - d_9_hKeyring_ = out5_ - d_10_valueOrError2_: Wrappers.Result = None - out6_: Wrappers.Result - out6_ = (d_5_mpl_).CreateMultiKeyring(AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput_CreateMultiKeyringInput(Wrappers.Option_Some(d_8_aesKeyring_), _dafny.Seq([d_6_rsaKeyring_, d_7_kmsKeyring_, d_9_hKeyring_]))) - d_10_valueOrError2_ = out6_ - if not(not((d_10_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(827,24): " + _dafny.string_of(d_10_valueOrError2_)) - d_11_multiKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - d_11_multiKeyring_ = (d_10_valueOrError2_).Extract() - d_12_encryptionContext_: _dafny.Map - out7_: _dafny.Map - out7_ = Fixtures.default__.SmallEncryptionContext(Fixtures.SmallEncryptionContextVariation_AB()) - d_12_encryptionContext_ = out7_ - d_13_requiredECKeys_: _dafny.Seq - out8_: _dafny.Seq - out8_ = Fixtures.default__.SmallEncryptionContextKeys(Fixtures.SmallEncryptionContextVariation_A()) - d_13_requiredECKeys_ = out8_ - d_14_mismatchedReproducedEncryptionContext_: _dafny.Map - out9_: _dafny.Map - out9_ = Fixtures.default__.SmallMismatchedEncryptionContex(Fixtures.SmallEncryptionContextVariation_A()) - d_14_mismatchedReproducedEncryptionContext_ = out9_ - d_15_valueOrError3_: Wrappers.Result = None - out10_: Wrappers.Result - out10_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_11_multiKeyring_)) - d_15_valueOrError3_ = out10_ - if not(not((d_15_valueOrError3_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(841,22): " + _dafny.string_of(d_15_valueOrError3_)) - d_16_defaultCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager - d_16_defaultCMM_ = (d_15_valueOrError3_).Extract() - d_17_valueOrError4_: Wrappers.Result = None - out11_: Wrappers.Result - out11_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), d_13_requiredECKeys_)) - d_17_valueOrError4_ = out11_ - if not(not((d_17_valueOrError4_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(848,18): " + _dafny.string_of(d_17_valueOrError4_)) - d_18_reqCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager - d_18_reqCMM_ = (d_17_valueOrError4_).Extract() - d_19_encryptOutput_: Wrappers.Result - out12_: Wrappers.Result - out12_ = (d_3_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_0_asdf_, Wrappers.Option_Some(d_12_encryptionContext_), Wrappers.Option_Some(d_18_reqCMM_), Wrappers.Option_None(), Wrappers.Option_None(), Wrappers.Option_None())) - d_19_encryptOutput_ = out12_ - if not((d_19_encryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(867,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_20_esdkCiphertext_: _dafny.Seq - d_20_esdkCiphertext_ = ((d_19_encryptOutput_).value).ciphertext - d_21_decryptOutput_: Wrappers.Result - out13_: Wrappers.Result - out13_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_6_rsaKeyring_), Wrappers.Option_Some(d_14_mismatchedReproducedEncryptionContext_))) - d_21_decryptOutput_ = out13_ - if not((d_21_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(878,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - out14_: Wrappers.Result - out14_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_7_kmsKeyring_), Wrappers.Option_Some(d_14_mismatchedReproducedEncryptionContext_))) - d_21_decryptOutput_ = out14_ - if not((d_21_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(888,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - out15_: Wrappers.Result - out15_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_8_aesKeyring_), Wrappers.Option_Some(d_14_mismatchedReproducedEncryptionContext_))) - d_21_decryptOutput_ = out15_ - if not((d_21_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(898,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - out16_: Wrappers.Result - out16_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_9_hKeyring_), Wrappers.Option_Some(d_14_mismatchedReproducedEncryptionContext_))) - d_21_decryptOutput_ = out16_ - if not((d_21_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(908,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - - @staticmethod - def TestRemoveECAndSupplyWithMissingRequiredValueDecryptFailure(): - d_0_asdf_: _dafny.Seq - d_0_asdf_ = _dafny.Seq([97, 115, 100, 102]) - d_1_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - d_1_defaultConfig_ = ESDK.default__.DefaultAwsEncryptionSdkConfig() - d_2_valueOrError0_: Wrappers.Result = None - out0_: Wrappers.Result - out0_ = ESDK.default__.ESDK(d_1_defaultConfig_) - d_2_valueOrError0_ = out0_ - if not(not((d_2_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(922,16): " + _dafny.string_of(d_2_valueOrError0_)) - d_3_esdk_: ESDK.ESDKClient - d_3_esdk_ = (d_2_valueOrError0_).Extract() - d_4_valueOrError1_: Wrappers.Result = None - out1_: Wrappers.Result - out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) - d_4_valueOrError1_ = out1_ - if not(not((d_4_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(923,15): " + _dafny.string_of(d_4_valueOrError1_)) - d_5_mpl_: MaterialProviders.MaterialProvidersClient - d_5_mpl_ = (d_4_valueOrError1_).Extract() - d_6_rsaKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - out2_: AwsCryptographyMaterialProvidersTypes.IKeyring - out2_ = default__.GetRsaKeyring() - d_6_rsaKeyring_ = out2_ - d_7_kmsKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - out3_: AwsCryptographyMaterialProvidersTypes.IKeyring - out3_ = default__.GetKmsKeyring() - d_7_kmsKeyring_ = out3_ - d_8_aesKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - out4_: AwsCryptographyMaterialProvidersTypes.IKeyring - out4_ = default__.GetAesKeyring() - d_8_aesKeyring_ = out4_ - d_9_hKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - out5_: AwsCryptographyMaterialProvidersTypes.IKeyring - out5_ = default__.GetHierarchicalKeyring() - d_9_hKeyring_ = out5_ - d_10_valueOrError2_: Wrappers.Result = None - out6_: Wrappers.Result - out6_ = (d_5_mpl_).CreateMultiKeyring(AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput_CreateMultiKeyringInput(Wrappers.Option_Some(d_8_aesKeyring_), _dafny.Seq([d_6_rsaKeyring_, d_7_kmsKeyring_, d_9_hKeyring_]))) - d_10_valueOrError2_ = out6_ - if not(not((d_10_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(931,24): " + _dafny.string_of(d_10_valueOrError2_)) - d_11_multiKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - d_11_multiKeyring_ = (d_10_valueOrError2_).Extract() - d_12_encryptionContext_: _dafny.Map - out7_: _dafny.Map - out7_ = Fixtures.default__.SmallEncryptionContext(Fixtures.SmallEncryptionContextVariation_AB()) - d_12_encryptionContext_ = out7_ - d_13_requiredECKeys_: _dafny.Seq - out8_: _dafny.Seq - out8_ = Fixtures.default__.SmallEncryptionContextKeys(Fixtures.SmallEncryptionContextVariation_A()) - d_13_requiredECKeys_ = out8_ - d_14_droppedRequiredKeyEncryptionContext_: _dafny.Map - out9_: _dafny.Map - out9_ = Fixtures.default__.SmallEncryptionContext(Fixtures.SmallEncryptionContextVariation_B()) - d_14_droppedRequiredKeyEncryptionContext_ = out9_ - d_15_valueOrError3_: Wrappers.Result = None - out10_: Wrappers.Result - out10_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_11_multiKeyring_)) - d_15_valueOrError3_ = out10_ - if not(not((d_15_valueOrError3_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(945,22): " + _dafny.string_of(d_15_valueOrError3_)) - d_16_defaultCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager - d_16_defaultCMM_ = (d_15_valueOrError3_).Extract() - d_17_valueOrError4_: Wrappers.Result = None - out11_: Wrappers.Result - out11_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_16_defaultCMM_), Wrappers.Option_None(), d_13_requiredECKeys_)) - d_17_valueOrError4_ = out11_ - if not(not((d_17_valueOrError4_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(952,18): " + _dafny.string_of(d_17_valueOrError4_)) - d_18_reqCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager - d_18_reqCMM_ = (d_17_valueOrError4_).Extract() - d_19_encryptOutput_: Wrappers.Result - out12_: Wrappers.Result - out12_ = (d_3_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_0_asdf_, Wrappers.Option_Some(d_12_encryptionContext_), Wrappers.Option_Some(d_18_reqCMM_), Wrappers.Option_None(), Wrappers.Option_None(), Wrappers.Option_None())) - d_19_encryptOutput_ = out12_ - if not((d_19_encryptOutput_).is_Success): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(971,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_20_esdkCiphertext_: _dafny.Seq - d_20_esdkCiphertext_ = ((d_19_encryptOutput_).value).ciphertext - d_21_decryptOutput_: Wrappers.Result - out13_: Wrappers.Result - out13_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_6_rsaKeyring_), Wrappers.Option_Some(d_14_droppedRequiredKeyEncryptionContext_))) - d_21_decryptOutput_ = out13_ - if not((d_21_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(982,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - out14_: Wrappers.Result - out14_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_7_kmsKeyring_), Wrappers.Option_Some(d_14_droppedRequiredKeyEncryptionContext_))) - d_21_decryptOutput_ = out14_ - if not((d_21_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(992,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - out15_: Wrappers.Result - out15_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_8_aesKeyring_), Wrappers.Option_Some(d_14_droppedRequiredKeyEncryptionContext_))) - d_21_decryptOutput_ = out15_ - if not((d_21_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1002,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - out16_: Wrappers.Result - out16_ = (d_3_esdk_).Decrypt(AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_20_esdkCiphertext_, Wrappers.Option_None(), Wrappers.Option_Some(d_9_hKeyring_), Wrappers.Option_Some(d_14_droppedRequiredKeyEncryptionContext_))) - d_21_decryptOutput_ = out16_ - if not((d_21_decryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1012,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - - @staticmethod - def TestReservedEncryptionContextKeyFailure(): - d_0_asdf_: _dafny.Seq - d_0_asdf_ = _dafny.Seq([97, 115, 100, 102]) - d_1_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - d_1_defaultConfig_ = ESDK.default__.DefaultAwsEncryptionSdkConfig() - d_2_valueOrError0_: Wrappers.Result = None - out0_: Wrappers.Result - out0_ = ESDK.default__.ESDK(d_1_defaultConfig_) - d_2_valueOrError0_ = out0_ - if not(not((d_2_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1022,16): " + _dafny.string_of(d_2_valueOrError0_)) - d_3_esdk_: ESDK.ESDKClient - d_3_esdk_ = (d_2_valueOrError0_).Extract() - d_4_valueOrError1_: Wrappers.Result = None - out1_: Wrappers.Result - out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) - d_4_valueOrError1_ = out1_ - if not(not((d_4_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1023,15): " + _dafny.string_of(d_4_valueOrError1_)) - d_5_mpl_: MaterialProviders.MaterialProvidersClient - d_5_mpl_ = (d_4_valueOrError1_).Extract() - d_6_rsaKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - out2_: AwsCryptographyMaterialProvidersTypes.IKeyring - out2_ = default__.GetRsaKeyring() - d_6_rsaKeyring_ = out2_ - d_7_encryptionContext_: _dafny.Map - out3_: _dafny.Map - out3_ = Fixtures.default__.GetResrvedECMap() - d_7_encryptionContext_ = out3_ - d_8_requiredECKeys_: _dafny.Seq - d_8_requiredECKeys_ = _dafny.Seq([Fixtures.default__.RESERVED__ENCRYPTION__CONTEXT]) - d_9_valueOrError2_: Wrappers.Result = None - out4_: Wrappers.Result - out4_ = (d_5_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput(d_6_rsaKeyring_)) - d_9_valueOrError2_ = out4_ - if not(not((d_9_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1031,22): " + _dafny.string_of(d_9_valueOrError2_)) - d_10_defaultCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager - d_10_defaultCMM_ = (d_9_valueOrError2_).Extract() - d_11_valueOrError3_: Wrappers.Result = None - out5_: Wrappers.Result - out5_ = (d_5_mpl_).CreateRequiredEncryptionContextCMM(AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput(Wrappers.Option_Some(d_10_defaultCMM_), Wrappers.Option_None(), d_8_requiredECKeys_)) - d_11_valueOrError3_ = out5_ - if not(not((d_11_valueOrError3_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1041,18): " + _dafny.string_of(d_11_valueOrError3_)) - d_12_reqCMM_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager - d_12_reqCMM_ = (d_11_valueOrError3_).Extract() - d_13_encryptOutput_: Wrappers.Result - out6_: Wrappers.Result - out6_ = (d_3_esdk_).Encrypt(AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_0_asdf_, Wrappers.Option_Some(d_7_encryptionContext_), Wrappers.Option_Some(d_12_reqCMM_), Wrappers.Option_None(), Wrappers.Option_None(), Wrappers.Option_None())) - d_13_encryptOutput_ = out6_ - if not((d_13_encryptOutput_).is_Failure): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1060,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - - @staticmethod - def GetHierarchicalKeyring(): - output: AwsCryptographyMaterialProvidersTypes.IKeyring = None - d_0_branchKeyId_: _dafny.Seq - d_0_branchKeyId_ = default__.BRANCH__KEY__ID - d_1_ttl_: int - d_1_ttl_ = ((1) * (60000)) * (10) - d_2_valueOrError0_: Wrappers.Result = None - out0_: Wrappers.Result - out0_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) - d_2_valueOrError0_ = out0_ - if not(not((d_2_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1070,15): " + _dafny.string_of(d_2_valueOrError0_)) - d_3_mpl_: MaterialProviders.MaterialProvidersClient - d_3_mpl_ = (d_2_valueOrError0_).Extract() - d_4_valueOrError1_: Wrappers.Result = None - out1_: Wrappers.Result - out1_ = Com_Amazonaws_Kms.default__.KMSClient() - d_4_valueOrError1_ = out1_ - if not(not((d_4_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1072,21): " + _dafny.string_of(d_4_valueOrError1_)) - d_5_kmsClient_: ComAmazonawsKmsTypes.IKMSClient - d_5_kmsClient_ = (d_4_valueOrError1_).Extract() - d_6_valueOrError2_: Wrappers.Result = None - out2_: Wrappers.Result - out2_ = Com_Amazonaws_Dynamodb.default__.DynamoDBClient() - d_6_valueOrError2_ = out2_ - if not(not((d_6_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1073,21): " + _dafny.string_of(d_6_valueOrError2_)) - d_7_ddbClient_: ComAmazonawsDynamodbTypes.IDynamoDBClient - d_7_ddbClient_ = (d_6_valueOrError2_).Extract() - d_8_kmsConfig_: AwsCryptographyKeyStoreTypes.KMSConfiguration - d_8_kmsConfig_ = AwsCryptographyKeyStoreTypes.KMSConfiguration_kmsKeyArn(default__.hierarchyKeyArn) - d_9_keyStoreConfig_: AwsCryptographyKeyStoreTypes.KeyStoreConfig - d_9_keyStoreConfig_ = AwsCryptographyKeyStoreTypes.KeyStoreConfig_KeyStoreConfig(default__.branchKeyStoreName, d_8_kmsConfig_, default__.logicalKeyStoreName, Wrappers.Option_None(), Wrappers.Option_None(), Wrappers.Option_Some(d_7_ddbClient_), Wrappers.Option_Some(d_5_kmsClient_)) - d_10_valueOrError3_: Wrappers.Result = None - out3_: Wrappers.Result - out3_ = KeyStore.default__.KeyStore(d_9_keyStoreConfig_) - d_10_valueOrError3_ = out3_ - if not(not((d_10_valueOrError3_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1086,20): " + _dafny.string_of(d_10_valueOrError3_)) - d_11_keyStore_: KeyStore.KeyStoreClient - d_11_keyStore_ = (d_10_valueOrError3_).Extract() - d_12_valueOrError4_: Wrappers.Result = None - out4_: Wrappers.Result - out4_ = (d_3_mpl_).CreateAwsKmsHierarchicalKeyring(AwsCryptographyMaterialProvidersTypes.CreateAwsKmsHierarchicalKeyringInput_CreateAwsKmsHierarchicalKeyringInput(Wrappers.Option_Some(d_0_branchKeyId_), Wrappers.Option_None(), d_11_keyStore_, d_1_ttl_, Wrappers.Option_None(), Wrappers.Option_None())) - d_12_valueOrError4_ = out4_ - if not(not((d_12_valueOrError4_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1088,14): " + _dafny.string_of(d_12_valueOrError4_)) - output = (d_12_valueOrError4_).Extract() - return output - - @staticmethod - def GetRsaKeyring(): - output: AwsCryptographyMaterialProvidersTypes.IKeyring = None - d_0_valueOrError0_: Wrappers.Result = None - out0_: Wrappers.Result - out0_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) - d_0_valueOrError0_ = out0_ - if not(not((d_0_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1102,15): " + _dafny.string_of(d_0_valueOrError0_)) - d_1_mpl_: MaterialProviders.MaterialProvidersClient - d_1_mpl_ = (d_0_valueOrError0_).Extract() - d_2_namespace_: _dafny.Seq - d_3_name_: _dafny.Seq - out1_: _dafny.Seq - out2_: _dafny.Seq - out1_, out2_ = Fixtures.default__.NamespaceAndName(0) - d_2_namespace_ = out1_ - d_3_name_ = out2_ - d_4_keys_: AwsCryptographyPrimitivesTypes.GenerateRSAKeyPairOutput - out3_: AwsCryptographyPrimitivesTypes.GenerateRSAKeyPairOutput - out3_ = Fixtures.default__.GenerateKeyPair(2048) - d_4_keys_ = out3_ - d_5_valueOrError1_: Wrappers.Result = None - out4_: Wrappers.Result - out4_ = (d_1_mpl_).CreateRawRsaKeyring(AwsCryptographyMaterialProvidersTypes.CreateRawRsaKeyringInput_CreateRawRsaKeyringInput(d_2_namespace_, d_3_name_, AwsCryptographyMaterialProvidersTypes.PaddingScheme_OAEP__SHA1__MGF1(), Wrappers.Option_Some(((d_4_keys_).publicKey).pem), Wrappers.Option_Some(((d_4_keys_).privateKey).pem))) - d_5_valueOrError1_ = out4_ - if not(not((d_5_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1106,14): " + _dafny.string_of(d_5_valueOrError1_)) - output = (d_5_valueOrError1_).Extract() - return output - - @staticmethod - def GetAesKeyring(): - output: AwsCryptographyMaterialProvidersTypes.IKeyring = None - d_0_valueOrError0_: Wrappers.Result = None - out0_: Wrappers.Result - out0_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) - d_0_valueOrError0_ = out0_ - if not(not((d_0_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1120,15): " + _dafny.string_of(d_0_valueOrError0_)) - d_1_mpl_: MaterialProviders.MaterialProvidersClient - d_1_mpl_ = (d_0_valueOrError0_).Extract() - d_2_namespace_: _dafny.Seq - d_3_name_: _dafny.Seq - out1_: _dafny.Seq - out2_: _dafny.Seq - out1_, out2_ = Fixtures.default__.NamespaceAndName(0) - d_2_namespace_ = out1_ - d_3_name_ = out2_ - d_4_valueOrError1_: Wrappers.Result = None - out3_: Wrappers.Result - out3_ = (d_1_mpl_).CreateRawAesKeyring(AwsCryptographyMaterialProvidersTypes.CreateRawAesKeyringInput_CreateRawAesKeyringInput(d_2_namespace_, d_3_name_, _dafny.Seq([0 for d_5_i_ in range(32)]), AwsCryptographyMaterialProvidersTypes.AesWrappingAlg_ALG__AES256__GCM__IV12__TAG16())) - d_4_valueOrError1_ = out3_ - if not(not((d_4_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1123,14): " + _dafny.string_of(d_4_valueOrError1_)) - output = (d_4_valueOrError1_).Extract() - return output - - @staticmethod - def GetKmsKeyring(): - output: AwsCryptographyMaterialProvidersTypes.IKeyring = None - d_0_kmsKey_: _dafny.Seq - d_0_kmsKey_ = Fixtures.default__.keyArn - d_1_defaultConfig_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - d_1_defaultConfig_ = ESDK.default__.DefaultAwsEncryptionSdkConfig() - d_2_valueOrError0_: Wrappers.Result = None - out0_: Wrappers.Result - out0_ = ESDK.default__.ESDK(d_1_defaultConfig_) - d_2_valueOrError0_ = out0_ - if not(not((d_2_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1137,16): " + _dafny.string_of(d_2_valueOrError0_)) - d_3_esdk_: ESDK.ESDKClient - d_3_esdk_ = (d_2_valueOrError0_).Extract() - d_4_valueOrError1_: Wrappers.Result = None - out1_: Wrappers.Result - out1_ = MaterialProviders.default__.MaterialProviders(MaterialProviders.default__.DefaultMaterialProvidersConfig()) - d_4_valueOrError1_ = out1_ - if not(not((d_4_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1138,15): " + _dafny.string_of(d_4_valueOrError1_)) - d_5_mpl_: MaterialProviders.MaterialProvidersClient - d_5_mpl_ = (d_4_valueOrError1_).Extract() - d_6_valueOrError2_: Wrappers.Result = None - out2_: Wrappers.Result - out2_ = (d_5_mpl_).CreateDefaultClientSupplier(AwsCryptographyMaterialProvidersTypes.CreateDefaultClientSupplierInput_CreateDefaultClientSupplierInput()) - d_6_valueOrError2_ = out2_ - if not(not((d_6_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1139,26): " + _dafny.string_of(d_6_valueOrError2_)) - d_7_clientSupplier_: AwsCryptographyMaterialProvidersTypes.IClientSupplier - d_7_clientSupplier_ = (d_6_valueOrError2_).Extract() - d_8_valueOrError3_: Wrappers.Result = None - out3_: Wrappers.Result - out3_ = (d_7_clientSupplier_).GetClient(AwsCryptographyMaterialProvidersTypes.GetClientInput_GetClientInput(_dafny.Seq("us-west-2"))) - d_8_valueOrError3_ = out3_ - if not(not((d_8_valueOrError3_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1140,21): " + _dafny.string_of(d_8_valueOrError3_)) - d_9_kmsClient_: ComAmazonawsKmsTypes.IKMSClient - d_9_kmsClient_ = (d_8_valueOrError3_).Extract() - d_10_valueOrError4_: Wrappers.Result = None - out4_: Wrappers.Result - out4_ = (d_5_mpl_).CreateAwsKmsKeyring(AwsCryptographyMaterialProvidersTypes.CreateAwsKmsKeyringInput_CreateAwsKmsKeyringInput(d_0_kmsKey_, d_9_kmsClient_, Wrappers.Option_None())) - d_10_valueOrError4_ = out4_ - if not(not((d_10_valueOrError4_).IsFailure())): - raise _dafny.HaltException("dafny/AwsEncryptionSdk/test/TestRequiredEncryptionContext.dfy(1142,14): " + _dafny.string_of(d_10_valueOrError4_)) - output = (d_10_valueOrError4_).Extract() - return output - - @_dafny.classproperty - def branchKeyStoreName(instance): - return Fixtures.default__.branchKeyStoreName - @_dafny.classproperty - def logicalKeyStoreName(instance): - return default__.branchKeyStoreName - @_dafny.classproperty - def BRANCH__KEY__ID(instance): - return Fixtures.default__.branchKeyId - @_dafny.classproperty - def hierarchyKeyArn(instance): - return Fixtures.default__.hierarchyKeyArn - @_dafny.classproperty - def keyArn(instance): - return Fixtures.default__.keyArn diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__main__.py b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__main__.py deleted file mode 100644 index 55186ebe6..000000000 --- a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/__main__.py +++ /dev/null @@ -1,15 +0,0 @@ -# Dafny program the_program compiled into Python -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import module_ as module_ -import _dafny as _dafny - -try: - dafnyArgs = [_dafny.Seq(a) for a in sys.argv] - module_.default__.Test____Main____(dafnyArgs) -except _dafny.HaltException as e: - _dafny.print("[Program halted] " + e.message + "\n") - sys.exit(1) diff --git a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/module_.py b/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/module_.py deleted file mode 100644 index d9d080c19..000000000 --- a/AwsEncryptionSDK/runtimes/python/test/internaldafny/generated/module_.py +++ /dev/null @@ -1,394 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import module_ as module_ -import _dafny as _dafny -import System_ as System_ -import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary -import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 -import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom -import aws_cryptography_primitives.internaldafny.generated.Random as Random -import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption -import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest -import aws_cryptography_primitives.internaldafny.generated.Digest as Digest -import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC -import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC -import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF -import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF -import aws_cryptography_primitives.internaldafny.generated.Signature as Signature -import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr -import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption -import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives -import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 -import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites -import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials -import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring -import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations -import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort -import smithy_dafny_standard_library.internaldafny.generated.Math as Math -import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq -import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils -import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants -import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID -import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping -import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets -import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext -import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping -import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring -import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms -import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries -import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang -import smithy_dafny_standard_library.internaldafny.generated.Time as Time -import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker -import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC -import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring -import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring -import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM -import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults -import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment -import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM -import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier -import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils -import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders -import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header -import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames -import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK -import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr -import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn -import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure -import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable -import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore -import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode -import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions -import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings -import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO -import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals -import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals -import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul -import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals -import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals -import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod -import smithy_dafny_standard_library.internaldafny.generated.Power as Power -import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm -import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop -import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting -import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings -import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt -import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare -import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall -import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import Fixtures as Fixtures -import TestRequiredEncryptionContext as TestRequiredEncryptionContext -import TestReproducedEncryptionContext as TestReproducedEncryptionContext -import TestEncryptDecrypt as TestEncryptDecrypt -import TestCreateEsdkClient as TestCreateEsdkClient -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Core as JSON_Utils_Views_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Writers as JSON_Utils_Views_Writers -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Cursors as JSON_Utils_Cursors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Parsers as JSON_Utils_Parsers -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str as JSON_Utils_Str -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Seq as JSON_Utils_Seq -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Vectors as JSON_Utils_Vectors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Errors as JSON_Errors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Values as JSON_Values -import smithy_dafny_standard_library.internaldafny.generated.JSON_Spec as JSON_Spec -import smithy_dafny_standard_library.internaldafny.generated.JSON_Grammar as JSON_Grammar -import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer as JSON_Serializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer as JSON_Deserializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec -import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_API as JSON_ZeroCopy_API -import smithy_dafny_standard_library.internaldafny.generated.JSON_API as JSON_API - -# Module: module_ - -class default__: - def __init__(self): - pass - - @staticmethod - def Test____Main____(noArgsParameter__): - d_0_success_: bool - d_0_success_ = True - _dafny.print(_dafny.string_of(_dafny.Seq("TestRequiredEncryptionContext.TestReprEncryptionContextWithSameECHappyCase: "))) - try: - if True: - TestRequiredEncryptionContext.default__.TestReprEncryptionContextWithSameECHappyCase() - if True: - _dafny.print(_dafny.string_of(_dafny.Seq("PASSED\n"))) - except _dafny.HaltException as e: - d_1_haltMessage_ = e.message - if True: - _dafny.print(_dafny.string_of(_dafny.Seq("FAILED\n "))) - _dafny.print(_dafny.string_of(d_1_haltMessage_)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - d_0_success_ = False - _dafny.print(_dafny.string_of(_dafny.Seq("TestRequiredEncryptionContext.TestRemoveOnEncryptAndSupplyOnDecryptHappyCase: "))) - try: - if True: - TestRequiredEncryptionContext.default__.TestRemoveOnEncryptAndSupplyOnDecryptHappyCase() - if True: - _dafny.print(_dafny.string_of(_dafny.Seq("PASSED\n"))) - except _dafny.HaltException as e: - d_2_haltMessage_ = e.message - if True: - _dafny.print(_dafny.string_of(_dafny.Seq("FAILED\n "))) - _dafny.print(_dafny.string_of(d_2_haltMessage_)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - d_0_success_ = False - _dafny.print(_dafny.string_of(_dafny.Seq("TestRequiredEncryptionContext.TestRemoveOnEncryptRemoveAndSupplyOnDecryptHappyCase: "))) - try: - if True: - TestRequiredEncryptionContext.default__.TestRemoveOnEncryptRemoveAndSupplyOnDecryptHappyCase() - if True: - _dafny.print(_dafny.string_of(_dafny.Seq("PASSED\n"))) - except _dafny.HaltException as e: - d_3_haltMessage_ = e.message - if True: - _dafny.print(_dafny.string_of(_dafny.Seq("FAILED\n "))) - _dafny.print(_dafny.string_of(d_3_haltMessage_)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - d_0_success_ = False - _dafny.print(_dafny.string_of(_dafny.Seq("TestRequiredEncryptionContext.TestRemoveOnDecryptIsBackwardsCompatibleHappyCase: "))) - try: - if True: - TestRequiredEncryptionContext.default__.TestRemoveOnDecryptIsBackwardsCompatibleHappyCase() - if True: - _dafny.print(_dafny.string_of(_dafny.Seq("PASSED\n"))) - except _dafny.HaltException as e: - d_4_haltMessage_ = e.message - if True: - _dafny.print(_dafny.string_of(_dafny.Seq("FAILED\n "))) - _dafny.print(_dafny.string_of(d_4_haltMessage_)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - d_0_success_ = False - _dafny.print(_dafny.string_of(_dafny.Seq("TestRequiredEncryptionContext.TestDifferentECOnDecryptFailure: "))) - try: - if True: - TestRequiredEncryptionContext.default__.TestDifferentECOnDecryptFailure() - if True: - _dafny.print(_dafny.string_of(_dafny.Seq("PASSED\n"))) - except _dafny.HaltException as e: - d_5_haltMessage_ = e.message - if True: - _dafny.print(_dafny.string_of(_dafny.Seq("FAILED\n "))) - _dafny.print(_dafny.string_of(d_5_haltMessage_)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - d_0_success_ = False - _dafny.print(_dafny.string_of(_dafny.Seq("TestRequiredEncryptionContext.TestRemoveECAndNotSupplyOnDecryptFailure: "))) - try: - if True: - TestRequiredEncryptionContext.default__.TestRemoveECAndNotSupplyOnDecryptFailure() - if True: - _dafny.print(_dafny.string_of(_dafny.Seq("PASSED\n"))) - except _dafny.HaltException as e: - d_6_haltMessage_ = e.message - if True: - _dafny.print(_dafny.string_of(_dafny.Seq("FAILED\n "))) - _dafny.print(_dafny.string_of(d_6_haltMessage_)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - d_0_success_ = False - _dafny.print(_dafny.string_of(_dafny.Seq("TestRequiredEncryptionContext.TestRemoveECAndSupplyMismatchedReprECFailure: "))) - try: - if True: - TestRequiredEncryptionContext.default__.TestRemoveECAndSupplyMismatchedReprECFailure() - if True: - _dafny.print(_dafny.string_of(_dafny.Seq("PASSED\n"))) - except _dafny.HaltException as e: - d_7_haltMessage_ = e.message - if True: - _dafny.print(_dafny.string_of(_dafny.Seq("FAILED\n "))) - _dafny.print(_dafny.string_of(d_7_haltMessage_)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - d_0_success_ = False - _dafny.print(_dafny.string_of(_dafny.Seq("TestRequiredEncryptionContext.TestRemoveECAndSupplyWithMissingRequiredValueDecryptFailure: "))) - try: - if True: - TestRequiredEncryptionContext.default__.TestRemoveECAndSupplyWithMissingRequiredValueDecryptFailure() - if True: - _dafny.print(_dafny.string_of(_dafny.Seq("PASSED\n"))) - except _dafny.HaltException as e: - d_8_haltMessage_ = e.message - if True: - _dafny.print(_dafny.string_of(_dafny.Seq("FAILED\n "))) - _dafny.print(_dafny.string_of(d_8_haltMessage_)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - d_0_success_ = False - _dafny.print(_dafny.string_of(_dafny.Seq("TestRequiredEncryptionContext.TestReservedEncryptionContextKeyFailure: "))) - try: - if True: - TestRequiredEncryptionContext.default__.TestReservedEncryptionContextKeyFailure() - if True: - _dafny.print(_dafny.string_of(_dafny.Seq("PASSED\n"))) - except _dafny.HaltException as e: - d_9_haltMessage_ = e.message - if True: - _dafny.print(_dafny.string_of(_dafny.Seq("FAILED\n "))) - _dafny.print(_dafny.string_of(d_9_haltMessage_)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - d_0_success_ = False - _dafny.print(_dafny.string_of(_dafny.Seq("TestReproducedEncryptionContext.TestEncryptionContextOnDecrypt: "))) - try: - if True: - TestReproducedEncryptionContext.default__.TestEncryptionContextOnDecrypt() - if True: - _dafny.print(_dafny.string_of(_dafny.Seq("PASSED\n"))) - except _dafny.HaltException as e: - d_10_haltMessage_ = e.message - if True: - _dafny.print(_dafny.string_of(_dafny.Seq("FAILED\n "))) - _dafny.print(_dafny.string_of(d_10_haltMessage_)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - d_0_success_ = False - _dafny.print(_dafny.string_of(_dafny.Seq("TestReproducedEncryptionContext.TestEncryptionContextOnDecryptFailure: "))) - try: - if True: - TestReproducedEncryptionContext.default__.TestEncryptionContextOnDecryptFailure() - if True: - _dafny.print(_dafny.string_of(_dafny.Seq("PASSED\n"))) - except _dafny.HaltException as e: - d_11_haltMessage_ = e.message - if True: - _dafny.print(_dafny.string_of(_dafny.Seq("FAILED\n "))) - _dafny.print(_dafny.string_of(d_11_haltMessage_)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - d_0_success_ = False - _dafny.print(_dafny.string_of(_dafny.Seq("TestReproducedEncryptionContext.TestMismatchedEncryptionContextOnDecrypt: "))) - try: - if True: - TestReproducedEncryptionContext.default__.TestMismatchedEncryptionContextOnDecrypt() - if True: - _dafny.print(_dafny.string_of(_dafny.Seq("PASSED\n"))) - except _dafny.HaltException as e: - d_12_haltMessage_ = e.message - if True: - _dafny.print(_dafny.string_of(_dafny.Seq("FAILED\n "))) - _dafny.print(_dafny.string_of(d_12_haltMessage_)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - d_0_success_ = False - _dafny.print(_dafny.string_of(_dafny.Seq("TestEncryptDecrypt.TestEncryptDecrypt: "))) - try: - if True: - TestEncryptDecrypt.default__.TestEncryptDecrypt() - if True: - _dafny.print(_dafny.string_of(_dafny.Seq("PASSED\n"))) - except _dafny.HaltException as e: - d_13_haltMessage_ = e.message - if True: - _dafny.print(_dafny.string_of(_dafny.Seq("FAILED\n "))) - _dafny.print(_dafny.string_of(d_13_haltMessage_)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - d_0_success_ = False - _dafny.print(_dafny.string_of(_dafny.Seq("TestCreateEsdkClient.TestClientCreation: "))) - try: - if True: - TestCreateEsdkClient.default__.TestClientCreation() - if True: - _dafny.print(_dafny.string_of(_dafny.Seq("PASSED\n"))) - except _dafny.HaltException as e: - d_14_haltMessage_ = e.message - if True: - _dafny.print(_dafny.string_of(_dafny.Seq("FAILED\n "))) - _dafny.print(_dafny.string_of(d_14_haltMessage_)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - d_0_success_ = False - _dafny.print(_dafny.string_of(_dafny.Seq("TestCreateEsdkClient.TestNetRetryFlag: "))) - try: - if True: - TestCreateEsdkClient.default__.TestNetRetryFlag() - if True: - _dafny.print(_dafny.string_of(_dafny.Seq("PASSED\n"))) - except _dafny.HaltException as e: - d_15_haltMessage_ = e.message - if True: - _dafny.print(_dafny.string_of(_dafny.Seq("FAILED\n "))) - _dafny.print(_dafny.string_of(d_15_haltMessage_)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - d_0_success_ = False - if not(d_0_success_): - raise _dafny.HaltException("(1,0): " + _dafny.string_of(_dafny.Seq("Test failures occurred: see above.\n"))) - From a1d864b59a37058230c06508410f4117ac2f5eec Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Mon, 17 Feb 2025 11:05:41 -0800 Subject: [PATCH 41/50] m --- TestVectors/runtimes/python/poetry.lock | 462 ---------- .../__pycache__/__init__.cpython-311.pyc | Bin 368 -> 0 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 330 -> 0 bytes .../__pycache__/__init__.cpython-311.pyc | Bin 364 -> 0 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 286 -> 0 bytes .../__pycache__/wrapped_esdk.cpython-311.pyc | Bin 1982 -> 0 bytes .../__pycache__/wrapped_esdk.cpython-312.pyc | Bin 1845 -> 0 bytes .../generated/AllEsdkV4NoReqEc.py | 278 ------ .../generated/AllEsdkV4WithReqEc.py | 247 ------ .../generated/EsdkManifestOptions.py | 267 ------ .../generated/EsdkTestManifests.py | 649 -------------- .../generated/EsdkTestVectors.py | 799 ------------------ .../generated/ParseEsdkJsonManifest.py | 699 --------------- .../internaldafny/generated/WrappedESDK.py | 234 ----- .../generated/WrappedESDKMain.py | 353 -------- .../generated/WriteEsdkJsonManifests.py | 370 -------- .../internaldafny/generated/WriteVectors.py | 374 -------- .../internaldafny/generated/__main__.py | 15 - .../internaldafny/generated/module_.py | 235 ------ .../__pycache__/__init__.cpython-311.pyc | Bin 282 -> 0 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 270 -> 0 bytes .../__pycache__/shim.cpython-311.pyc | Bin 3959 -> 0 bytes .../__pycache__/shim.cpython-312.pyc | Bin 3701 -> 0 bytes .../__pycache__/__init__.cpython-311.pyc | Bin 218 -> 0 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 206 -> 0 bytes ...dafny_wrapper.cpython-311-pytest-7.4.4.pyc | Bin 1345 -> 0 bytes ...dafny_wrapper.cpython-312-pytest-7.4.4.pyc | Bin 1214 -> 0 bytes ...TestWrappedESDKMain_extern.cpython-311.pyc | Bin 943 -> 0 bytes ...TestWrappedESDKMain_extern.cpython-312.pyc | Bin 861 -> 0 bytes .../__pycache__/__init__.cpython-311.pyc | Bin 306 -> 0 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 269 -> 0 bytes .../generated/TestWrappedESDKMain.py | 340 -------- .../test/internaldafny/generated/__main__.py | 15 - .../test/internaldafny/generated/module_.py | 301 ------- 34 files changed, 5638 deletions(-) delete mode 100644 TestVectors/runtimes/python/poetry.lock delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/__pycache__/__init__.cpython-311.pyc delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/__pycache__/__init__.cpython-312.pyc delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__pycache__/__init__.cpython-311.pyc delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__pycache__/__init__.cpython-312.pyc delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__pycache__/wrapped_esdk.cpython-311.pyc delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__pycache__/wrapped_esdk.cpython-312.pyc delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/AllEsdkV4NoReqEc.py delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/AllEsdkV4WithReqEc.py delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkManifestOptions.py delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkTestManifests.py delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkTestVectors.py delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/ParseEsdkJsonManifest.py delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WrappedESDK.py delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WrappedESDKMain.py delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WriteEsdkJsonManifests.py delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WriteVectors.py delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__main__.py delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/module_.py delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/smithygenerated/aws_cryptography_encryptionsdk/__pycache__/__init__.cpython-311.pyc delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/smithygenerated/aws_cryptography_encryptionsdk/__pycache__/__init__.cpython-312.pyc delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/smithygenerated/aws_cryptography_encryptionsdk/__pycache__/shim.cpython-311.pyc delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/smithygenerated/aws_cryptography_encryptionsdk/__pycache__/shim.cpython-312.pyc delete mode 100644 TestVectors/runtimes/python/test/internaldafny/__pycache__/__init__.cpython-311.pyc delete mode 100644 TestVectors/runtimes/python/test/internaldafny/__pycache__/__init__.cpython-312.pyc delete mode 100644 TestVectors/runtimes/python/test/internaldafny/__pycache__/test_dafny_wrapper.cpython-311-pytest-7.4.4.pyc delete mode 100644 TestVectors/runtimes/python/test/internaldafny/__pycache__/test_dafny_wrapper.cpython-312-pytest-7.4.4.pyc delete mode 100644 TestVectors/runtimes/python/test/internaldafny/extern/__pycache__/TestWrappedESDKMain_extern.cpython-311.pyc delete mode 100644 TestVectors/runtimes/python/test/internaldafny/extern/__pycache__/TestWrappedESDKMain_extern.cpython-312.pyc delete mode 100644 TestVectors/runtimes/python/test/internaldafny/extern/__pycache__/__init__.cpython-311.pyc delete mode 100644 TestVectors/runtimes/python/test/internaldafny/extern/__pycache__/__init__.cpython-312.pyc delete mode 100644 TestVectors/runtimes/python/test/internaldafny/generated/TestWrappedESDKMain.py delete mode 100644 TestVectors/runtimes/python/test/internaldafny/generated/__main__.py delete mode 100644 TestVectors/runtimes/python/test/internaldafny/generated/module_.py diff --git a/TestVectors/runtimes/python/poetry.lock b/TestVectors/runtimes/python/poetry.lock deleted file mode 100644 index 765b15188..000000000 --- a/TestVectors/runtimes/python/poetry.lock +++ /dev/null @@ -1,462 +0,0 @@ -# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. - -[[package]] -name = "aws-cryptographic-material-providers" -version = "1.8.0" -description = "AWS Cryptographic Material Providers Library for Python" -optional = false -python-versions = "^3.11.0" -files = [] -develop = false - -[package.dependencies] -aws-cryptography-internal-dynamodb = {path = "../../../ComAmazonawsDynamodb/runtimes/python"} -aws-cryptography-internal-kms = {path = "../../../ComAmazonawsKms/runtimes/python"} -aws-cryptography-internal-primitives = {path = "../../../AwsCryptographyPrimitives/runtimes/python"} -aws-cryptography-internal-standard-library = {path = "../../../StandardLibrary/runtimes/python"} - -[package.source] -type = "directory" -url = "../../../mpl/AwsCryptographicMaterialProviders/runtimes/python" - -[[package]] -name = "aws-cryptography-internal-dynamodb" -version = "1.8.0" -description = "" -optional = false -python-versions = "^3.11.0" -files = [] -develop = false - -[package.dependencies] -aws-cryptography-internal-standard-library = {path = "../../../StandardLibrary/runtimes/python"} -boto3 = "^1.35.42" - -[package.source] -type = "directory" -url = "../../../mpl/ComAmazonawsDynamodb/runtimes/python" - -[[package]] -name = "aws-cryptography-internal-kms" -version = "1.8.0" -description = "" -optional = false -python-versions = "^3.11.0" -files = [] -develop = false - -[package.dependencies] -aws-cryptography-internal-standard-library = {path = "../../../StandardLibrary/runtimes/python"} -boto3 = "^1.35.42" - -[package.source] -type = "directory" -url = "../../../mpl/ComAmazonawsKms/runtimes/python" - -[[package]] -name = "aws-cryptography-internal-mpl-testvectors" -version = "0.1.0" -description = "" -optional = false -python-versions = "^3.11.0" -files = [] -develop = false - -[package.dependencies] -aws-cryptographic-material-providers = {path = "../../../AwsCryptographicMaterialProviders/runtimes/python"} - -[package.source] -type = "directory" -url = "../../../mpl/TestVectorsAwsCryptographicMaterialProviders/runtimes/python" - -[[package]] -name = "aws-cryptography-internal-primitives" -version = "1.8.0" -description = "" -optional = false -python-versions = "^3.11.0" -files = [] -develop = false - -[package.dependencies] -aws-cryptography-internal-standard-library = {path = "../../../StandardLibrary/runtimes/python"} -cryptography = "^43.0.1" - -[package.source] -type = "directory" -url = "../../../mpl/AwsCryptographyPrimitives/runtimes/python" - -[[package]] -name = "aws-cryptography-internal-standard-library" -version = "1.8.0" -description = "" -optional = false -python-versions = "^3.11.0" -files = [] -develop = false - -[package.dependencies] -DafnyRuntimePython = "4.8.1.post1" -pytz = "^2023.3.post1" - -[package.source] -type = "directory" -url = "../../../mpl/StandardLibrary/runtimes/python" - -[[package]] -name = "aws-encryption-sdk" -version = "0.1.0" -description = "" -optional = false -python-versions = "^3.11.0" -files = [] -develop = false - -[package.dependencies] -aws-cryptographic-material-providers = {path = "../../../mpl/AwsCryptographicMaterialProviders/runtimes/python"} - -[package.source] -type = "directory" -url = "../../../AwsEncryptionSDK/runtimes/python" - -[[package]] -name = "boto3" -version = "1.35.80" -description = "The AWS SDK for Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "boto3-1.35.80-py3-none-any.whl", hash = "sha256:21a3b18c3a7fd20e463708fe3fa035983105dc7f3a1c274e1903e1583ab91159"}, - {file = "boto3-1.35.80.tar.gz", hash = "sha256:50dae461ab5fbedfb81b690895d48a918fed0d5fdff37be1c4232770c0dc9712"}, -] - -[package.dependencies] -botocore = ">=1.35.80,<1.36.0" -jmespath = ">=0.7.1,<2.0.0" -s3transfer = ">=0.10.0,<0.11.0" - -[package.extras] -crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] - -[[package]] -name = "botocore" -version = "1.35.80" -description = "Low-level, data-driven core of boto 3." -optional = false -python-versions = ">=3.8" -files = [ - {file = "botocore-1.35.80-py3-none-any.whl", hash = "sha256:36e589dccb62380abd628b08fecfa2f7c89b99f41ec9fc42c467c94008c0be4a"}, - {file = "botocore-1.35.80.tar.gz", hash = "sha256:b8dfceca58891cb2711bd6455ec4f7159051f3796e0f64adef9bb334f19d8a92"}, -] - -[package.dependencies] -jmespath = ">=0.7.1,<2.0.0" -python-dateutil = ">=2.1,<3.0.0" -urllib3 = {version = ">=1.25.4,<2.2.0 || >2.2.0,<3", markers = "python_version >= \"3.10\""} - -[package.extras] -crt = ["awscrt (==0.22.0)"] - -[[package]] -name = "cffi" -version = "1.17.1" -description = "Foreign Function Interface for Python calling C code." -optional = false -python-versions = ">=3.8" -files = [ - {file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"}, - {file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"}, - {file = "cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382"}, - {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702"}, - {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3"}, - {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6"}, - {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17"}, - {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8"}, - {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e"}, - {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be"}, - {file = "cffi-1.17.1-cp310-cp310-win32.whl", hash = "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c"}, - {file = "cffi-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15"}, - {file = "cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401"}, - {file = "cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf"}, - {file = "cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4"}, - {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41"}, - {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1"}, - {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6"}, - {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d"}, - {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6"}, - {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f"}, - {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"}, - {file = "cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655"}, - {file = "cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0"}, - {file = "cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4"}, - {file = "cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c"}, - {file = "cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36"}, - {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5"}, - {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff"}, - {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99"}, - {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93"}, - {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3"}, - {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8"}, - {file = "cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65"}, - {file = "cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903"}, - {file = "cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e"}, - {file = "cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2"}, - {file = "cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3"}, - {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683"}, - {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5"}, - {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4"}, - {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd"}, - {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed"}, - {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9"}, - {file = "cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d"}, - {file = "cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a"}, - {file = "cffi-1.17.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b"}, - {file = "cffi-1.17.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964"}, - {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9"}, - {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc"}, - {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c"}, - {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1"}, - {file = "cffi-1.17.1-cp38-cp38-win32.whl", hash = "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8"}, - {file = "cffi-1.17.1-cp38-cp38-win_amd64.whl", hash = "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1"}, - {file = "cffi-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16"}, - {file = "cffi-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36"}, - {file = "cffi-1.17.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8"}, - {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576"}, - {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87"}, - {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0"}, - {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3"}, - {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595"}, - {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a"}, - {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e"}, - {file = "cffi-1.17.1-cp39-cp39-win32.whl", hash = "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7"}, - {file = "cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662"}, - {file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"}, -] - -[package.dependencies] -pycparser = "*" - -[[package]] -name = "colorama" -version = "0.4.6" -description = "Cross-platform colored terminal text." -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" -files = [ - {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, - {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, -] - -[[package]] -name = "cryptography" -version = "43.0.3" -description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." -optional = false -python-versions = ">=3.7" -files = [ - {file = "cryptography-43.0.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:bf7a1932ac4176486eab36a19ed4c0492da5d97123f1406cf15e41b05e787d2e"}, - {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63efa177ff54aec6e1c0aefaa1a241232dcd37413835a9b674b6e3f0ae2bfd3e"}, - {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e1ce50266f4f70bf41a2c6dc4358afadae90e2a1e5342d3c08883df1675374f"}, - {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:443c4a81bb10daed9a8f334365fe52542771f25aedaf889fd323a853ce7377d6"}, - {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:74f57f24754fe349223792466a709f8e0c093205ff0dca557af51072ff47ab18"}, - {file = "cryptography-43.0.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9762ea51a8fc2a88b70cf2995e5675b38d93bf36bd67d91721c309df184f49bd"}, - {file = "cryptography-43.0.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:81ef806b1fef6b06dcebad789f988d3b37ccaee225695cf3e07648eee0fc6b73"}, - {file = "cryptography-43.0.3-cp37-abi3-win32.whl", hash = "sha256:cbeb489927bd7af4aa98d4b261af9a5bc025bd87f0e3547e11584be9e9427be2"}, - {file = "cryptography-43.0.3-cp37-abi3-win_amd64.whl", hash = "sha256:f46304d6f0c6ab8e52770addfa2fc41e6629495548862279641972b6215451cd"}, - {file = "cryptography-43.0.3-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:8ac43ae87929a5982f5948ceda07001ee5e83227fd69cf55b109144938d96984"}, - {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:846da004a5804145a5f441b8530b4bf35afbf7da70f82409f151695b127213d5"}, - {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f996e7268af62598f2fc1204afa98a3b5712313a55c4c9d434aef49cadc91d4"}, - {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:f7b178f11ed3664fd0e995a47ed2b5ff0a12d893e41dd0494f406d1cf555cab7"}, - {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:c2e6fc39c4ab499049df3bdf567f768a723a5e8464816e8f009f121a5a9f4405"}, - {file = "cryptography-43.0.3-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e1be4655c7ef6e1bbe6b5d0403526601323420bcf414598955968c9ef3eb7d16"}, - {file = "cryptography-43.0.3-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:df6b6c6d742395dd77a23ea3728ab62f98379eff8fb61be2744d4679ab678f73"}, - {file = "cryptography-43.0.3-cp39-abi3-win32.whl", hash = "sha256:d56e96520b1020449bbace2b78b603442e7e378a9b3bd68de65c782db1507995"}, - {file = "cryptography-43.0.3-cp39-abi3-win_amd64.whl", hash = "sha256:0c580952eef9bf68c4747774cde7ec1d85a6e61de97281f2dba83c7d2c806362"}, - {file = "cryptography-43.0.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d03b5621a135bffecad2c73e9f4deb1a0f977b9a8ffe6f8e002bf6c9d07b918c"}, - {file = "cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:a2a431ee15799d6db9fe80c82b055bae5a752bef645bba795e8e52687c69efe3"}, - {file = "cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:281c945d0e28c92ca5e5930664c1cefd85efe80e5c0d2bc58dd63383fda29f83"}, - {file = "cryptography-43.0.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:f18c716be16bc1fea8e95def49edf46b82fccaa88587a45f8dc0ff6ab5d8e0a7"}, - {file = "cryptography-43.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:4a02ded6cd4f0a5562a8887df8b3bd14e822a90f97ac5e544c162899bc467664"}, - {file = "cryptography-43.0.3-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:53a583b6637ab4c4e3591a15bc9db855b8d9dee9a669b550f311480acab6eb08"}, - {file = "cryptography-43.0.3-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1ec0bcf7e17c0c5669d881b1cd38c4972fade441b27bda1051665faaa89bdcaa"}, - {file = "cryptography-43.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2ce6fae5bdad59577b44e4dfed356944fbf1d925269114c28be377692643b4ff"}, - {file = "cryptography-43.0.3.tar.gz", hash = "sha256:315b9001266a492a6ff443b61238f956b214dbec9910a081ba5b6646a055a805"}, -] - -[package.dependencies] -cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""} - -[package.extras] -docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"] -docstest = ["pyenchant (>=1.6.11)", "readme-renderer", "sphinxcontrib-spelling (>=4.0.1)"] -nox = ["nox"] -pep8test = ["check-sdist", "click", "mypy", "ruff"] -sdist = ["build"] -ssh = ["bcrypt (>=3.1.5)"] -test = ["certifi", "cryptography-vectors (==43.0.3)", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] -test-randomorder = ["pytest-randomly"] - -[[package]] -name = "dafnyruntimepython" -version = "4.8.1.post1" -description = "Dafny runtime for Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "DafnyRuntimePython-4.8.1.post1-py3-none-any.whl", hash = "sha256:72e5d9e27413301b2ca5fb0be304bca96e63e6ea4e1dbcc5ee5b4bd68a5a415f"}, - {file = "dafnyruntimepython-4.8.1.post1.tar.gz", hash = "sha256:71a4983ae4a55272c7edfef012a5ff36e2db02441f3a3ac0c2bd02cf57324c4c"}, -] - -[[package]] -name = "iniconfig" -version = "2.0.0" -description = "brain-dead simple config-ini parsing" -optional = false -python-versions = ">=3.7" -files = [ - {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, - {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, -] - -[[package]] -name = "jmespath" -version = "1.0.1" -description = "JSON Matching Expressions" -optional = false -python-versions = ">=3.7" -files = [ - {file = "jmespath-1.0.1-py3-none-any.whl", hash = "sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980"}, - {file = "jmespath-1.0.1.tar.gz", hash = "sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe"}, -] - -[[package]] -name = "packaging" -version = "24.2" -description = "Core utilities for Python packages" -optional = false -python-versions = ">=3.8" -files = [ - {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, - {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, -] - -[[package]] -name = "pluggy" -version = "1.5.0" -description = "plugin and hook calling mechanisms for python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, - {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, -] - -[package.extras] -dev = ["pre-commit", "tox"] -testing = ["pytest", "pytest-benchmark"] - -[[package]] -name = "pycparser" -version = "2.22" -description = "C parser in Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, - {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, -] - -[[package]] -name = "pytest" -version = "7.4.4" -description = "pytest: simple powerful testing with Python" -optional = false -python-versions = ">=3.7" -files = [ - {file = "pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8"}, - {file = "pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280"}, -] - -[package.dependencies] -colorama = {version = "*", markers = "sys_platform == \"win32\""} -iniconfig = "*" -packaging = "*" -pluggy = ">=0.12,<2.0" - -[package.extras] -testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] - -[[package]] -name = "python-dateutil" -version = "2.9.0.post0" -description = "Extensions to the standard Python datetime module" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" -files = [ - {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, - {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, -] - -[package.dependencies] -six = ">=1.5" - -[[package]] -name = "pytz" -version = "2023.4" -description = "World timezone definitions, modern and historical" -optional = false -python-versions = "*" -files = [ - {file = "pytz-2023.4-py2.py3-none-any.whl", hash = "sha256:f90ef520d95e7c46951105338d918664ebfd6f1d995bd7d153127ce90efafa6a"}, - {file = "pytz-2023.4.tar.gz", hash = "sha256:31d4583c4ed539cd037956140d695e42c033a19e984bfce9964a3f7d59bc2b40"}, -] - -[[package]] -name = "s3transfer" -version = "0.10.4" -description = "An Amazon S3 Transfer Manager" -optional = false -python-versions = ">=3.8" -files = [ - {file = "s3transfer-0.10.4-py3-none-any.whl", hash = "sha256:244a76a24355363a68164241438de1b72f8781664920260c48465896b712a41e"}, - {file = "s3transfer-0.10.4.tar.gz", hash = "sha256:29edc09801743c21eb5ecbc617a152df41d3c287f67b615f73e5f750583666a7"}, -] - -[package.dependencies] -botocore = ">=1.33.2,<2.0a.0" - -[package.extras] -crt = ["botocore[crt] (>=1.33.2,<2.0a.0)"] - -[[package]] -name = "six" -version = "1.17.0" -description = "Python 2 and 3 compatibility utilities" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" -files = [ - {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, - {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, -] - -[[package]] -name = "urllib3" -version = "2.2.3" -description = "HTTP library with thread-safe connection pooling, file post, and more." -optional = false -python-versions = ">=3.8" -files = [ - {file = "urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac"}, - {file = "urllib3-2.2.3.tar.gz", hash = "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9"}, -] - -[package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] -h2 = ["h2 (>=4,<5)"] -socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] -zstd = ["zstandard (>=0.18.0)"] - -[metadata] -lock-version = "2.0" -python-versions = "^3.11.0" -content-hash = "381f995f8cf538eccb77844811a375e3693c76060a7e7066767e7aaf835e3405" diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/__pycache__/__init__.cpython-311.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index c3c02684fe61624aac29db6292ea4932df57b89f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmZXQy-ve05P;7~RH{mu*^pq1MCySR@dzyZ3}vt)`zTQzC$b$%7G8r#KuA1H=d4T& zNRhgA>KTdvaXOtp`}|otKd0#gC|>o={DaoFu=$Q?2kQfZCs3f6hKkJ?3moaFif1u# zd;wYV&gfFc`n{@FtwupO!UvDmoM%bDUz&i0R>iI9rgJoC3y;diWcBHvu1)Cd1=dty z^T@9pTE}%OE2(P3m$h9qx{%0=rOVMs+cmzdP43hp|9qWaqVv}%eNCQijV~*7yy^TM z>CVa^iXTysC_E|Re&+~Ln$im~ZMx0)^lP3o8~!QG=uW5%F=K3)0Lxc!{5yvcu%i_m J{!cq5ZwpFGZmIwP diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/__pycache__/__init__.cpython-312.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 1b73b3e2305a7db9ee64f2cb8a2ccee501477a03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 330 zcmY+Au};G<5I}uNRH{l5BMTE-hSWcR_yi_kD1#N**AmrnqO(KE!f)^mNc;(Zkd=u6 z38{ji6K5zw+;Dz(_Oo>NoaZya@no-8Z+yPQ;y02#Y>ycpgb@a;XkY;lIk8ETE>aLf zT4b-lPYM_hn%49d72^c&0+Kr~vhk>P5i4t|r5olebVyY|Ln&Kh{_mDD?mdbvXR*7N zmmbMW+v`S~*2zsv>&{jhWwr4oI!!|t>eiLstjq7;1F%wXJP6V9LlzU$s=VI~z diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__pycache__/__init__.cpython-311.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index 0153eb4a73ed76b379fc07462825da1fabf93c39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 364 zcmb7dE)&o>CuosR~=4YX?ciKEDv2&`hBI12uu$B6{CM)jk9I vs@bK%YTA_6wXd_*7qQGd2v>*g#l`Ibk@O*LudkfFtS-iovR(2+v zSZuXJT;nv%5BVm*$8vehs9xOt!x^ogE<fG}}{Z-k4zq92?;dfK}diUqIVEY)>ur(pJl5UfVhm<- Xc$pS-$M%ri{^7d=fFI6*rz47c)d5vl diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__pycache__/wrapped_esdk.cpython-311.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__pycache__/wrapped_esdk.cpython-311.pyc deleted file mode 100644 index 966145ac0d9e4201486c9259b871a0e29021529d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1982 zcmb^xO=}xR^zDZf*{iQsQbJ29CNu^eED2S}1jC)wERoST;LjdzIalItTLSY&B zGJgDOYexh4LmZNoiHWmcIdK38km7=;*s21aDzVnll!&j-@iU!F%+Gc%NxNLUFU{#K zca~#4!^=yL1&NEDq5>+s4@lhyq+zXFN`gA%Q6BMsv^phR!kU>%k z)cA1r7AFn>Lq|c-QL%=UeK_R2qgVl;qa&4j(by8go7TV$Ow(3UDS#-82;l5*jt(H0 z5p`3&ZgL@X(_qK?jA}{-@&Te_H=D4>N%0eg-1p#+-*9w(%cVs8n=&u?K?z<-WB}cz zgx-5mPYr5`jO!T*y{FFm;{{PS>I%yvYttW^w(DR&sOQhEKgCqMR(oLEm{R_LS-a0@p9(bk z=vfvnzy9!>@$KW<^{{q*wDH8KgvQlz>)2QijrEDXe#UQrje3UVOw+eKY?^G@G`$`g zxPs1`=63_jjU{;+Sb<}Em{$Xl%iQu8AXoTCM9axnl_P?H2qk46D*NDKpp6&Cr6E*aJ}r%CScn+?|HWN2BmdH=FHK1fWnSFhzL?HjfB)Cq z#BdYQ4@7*iNKqj1#N-Wu(%yNVyA}0Zi(KOZ@jayCYdqByMLB^lCyU?&KA9|n6Zm+N tz&zcWzydgddy_>l)pH7O@QdgtBP?G#6@sVd(ki@mb!3E4n@Etg_y-#_I931v diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__pycache__/wrapped_esdk.cpython-312.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__pycache__/wrapped_esdk.cpython-312.pyc deleted file mode 100644 index b5192d0eaa16ca4a24b610586fd50ea435a41872..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1845 zcmb_c&1>976o2~I&Dy)`-9*~-gEkmL0vqs(CXn_JyOcJxQ0gY#xFu?WkfpILMbd6( zv~g5i@WFpTbJ}aJ#X0o<=%r#Qf@#2o_R^cn`jk^=^sygxN+?u_dGGz+$GrFE&HPla zF9Q2c{I7SONC3Zcq4-KUGk(UHA=qFG9{7SK3gC(M%(7V3k|~(at$ZEA$-$ujiEybIhKBI z5xf8xb>$f$XWjBku!XZ&m>vqp-P&2LJ1KRl+lQk(Q@1%q3+|avXulIer9fS^;HGqc zYAJ@V6}bC)!ALfnfUp@Nn_l8ZsY!1KoBiEr#)CVQvv9Qe!5+CaiPdGA`kaV)yQzGu`_ZSg^vLuE zh{|Nw@o9xa-IV)^ZO})U(4{XB;m6w@SQa9Lop{;m1>4RJt!Me=MbM?a)Wyza!cTvB zdHKaq+axTI<_#?0vU`EH*TWC{o@pVC)w4P+dX?3%n)XGzi%9q-vcewo!-F7nd_=T< z6z(#2f-UYiQ#b0NcYh$(%Y_v8aaTIrY_9!QV#mK3h&CK@g7N-U#j;!<`Y_ t`4v8A|1sPi!R=$%8o}17ToJB+Urm~q$_te}PuI!QZyD|5E?} diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/AllEsdkV4NoReqEc.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/AllEsdkV4NoReqEc.py deleted file mode 100644 index 5dba3c398..000000000 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/AllEsdkV4NoReqEc.py +++ /dev/null @@ -1,278 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import aws_encryption_sdk_test_vectors.internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary -import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom -import aws_cryptography_primitives.internaldafny.generated.Random as Random -import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption -import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest -import aws_cryptography_primitives.internaldafny.generated.Digest as Digest -import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC -import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC -import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF -import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF -import aws_cryptography_primitives.internaldafny.generated.Signature as Signature -import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr -import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption -import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives -import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 -import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites -import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials -import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring -import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations -import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort -import smithy_dafny_standard_library.internaldafny.generated.Math as Math -import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq -import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils -import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants -import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID -import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping -import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets -import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext -import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping -import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring -import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms -import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries -import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang -import smithy_dafny_standard_library.internaldafny.generated.Time as Time -import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker -import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC -import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring -import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring -import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM -import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults -import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment -import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM -import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier -import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils -import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders -import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn -import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure -import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable -import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Core as JSON_Utils_Views_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Writers as JSON_Utils_Views_Writers -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Cursors as JSON_Utils_Cursors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Parsers as JSON_Utils_Parsers -import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals -import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals -import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul -import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals -import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals -import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod -import smithy_dafny_standard_library.internaldafny.generated.Power as Power -import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str as JSON_Utils_Str -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Seq as JSON_Utils_Seq -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Vectors as JSON_Utils_Vectors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Errors as JSON_Errors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Values as JSON_Values -import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode -import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions -import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings -import smithy_dafny_standard_library.internaldafny.generated.JSON_Spec as JSON_Spec -import smithy_dafny_standard_library.internaldafny.generated.JSON_Grammar as JSON_Grammar -import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer as JSON_Serializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer as JSON_Deserializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec -import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_API as JSON_ZeroCopy_API -import smithy_dafny_standard_library.internaldafny.generated.JSON_API as JSON_API -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.JSONHelpers as JSONHelpers -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyDescription as KeyDescription -import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyMaterial as KeyMaterial -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyrings as CreateStaticKeyrings -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyStores as CreateStaticKeyStores -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyringFromKeyDescription as KeyringFromKeyDescription -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CmmFromKeyDescription as CmmFromKeyDescription -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProviders as WrappedMaterialProviders -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeysVectorOperations as KeysVectorOperations -import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyVectors as KeyVectors -import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header -import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames -import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions -import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestVectors as TestVectors -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllHierarchy as AllHierarchy -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKms as AllKms -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAware as AllKmsMrkAware -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsRsa as AllKmsRsa -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsEcdh as AllKmsEcdh -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawAES as AllRawAES -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawRSA as AllRawRSA -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawECDH as AllRawECDH -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllDefaultCmm as AllDefaultCmm -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllMulti as AllMulti -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WriteJsonManifests as WriteJsonManifests -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CompleteVectors as CompleteVectors -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.ParseJsonManifests as ParseJsonManifests -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestManifests as TestManifests -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProvidersMain as WrappedMaterialProvidersMain -import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr -import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop -import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting -import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare -import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall -import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk_test_vectors.internaldafny.generated.WrappedESDK as WrappedESDK -import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkManifestOptions as EsdkManifestOptions -import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkTestVectors as EsdkTestVectors - -# Module: AllEsdkV4NoReqEc - -class default__: - def __init__(self): - pass - - @_dafny.classproperty - def AllPositiveKeyringTestsNoReqCmmNoKmsRsa(instance): - return ((((((((((_dafny.Set({})) | (AllDefaultCmm.default__.SuccessTestingRequiredEncryptionContextKeysReproducedEncryptionContext)) | (AllHierarchy.default__.Tests)) | (AllKms.default__.Tests)) | (AllKmsMrkAware.default__.Tests)) | (AllKmsMrkAwareDiscovery.default__.Tests)) | (AllRawAES.default__.Tests)) | (AllRawRSA.default__.Tests)) | (AllMulti.default__.Tests)) | (AllRawECDH.default__.Tests)) | (AllKmsEcdh.default__.Tests) - @_dafny.classproperty - def frameSize(instance): - return 512 - @_dafny.classproperty - def AllPostiveKeyringTestsNoDBESuiteNoReqEC(instance): - def iife0_(): - coll0_ = _dafny.Set() - compr_0_: TestVectors.EncryptTestVector - for compr_0_ in (default__.AllPositiveKeyringTestsNoReqCmmNoKmsRsa).Elements: - d_0_keyringConfig_: TestVectors.EncryptTestVector = compr_0_ - if ((d_0_keyringConfig_) in (default__.AllPositiveKeyringTestsNoReqCmmNoKmsRsa)) and (not((d_0_keyringConfig_).is_NegativeEncryptKeyringVector)): - compr_1_: AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo - for compr_1_ in (AllAlgorithmSuites.default__.ESDKAlgorithmSuites).Elements: - d_1_algorithmSuite_: AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo = compr_1_ - if (d_1_algorithmSuite_) in (AllAlgorithmSuites.default__.ESDKAlgorithmSuites): - coll0_ = coll0_.union(_dafny.Set([EsdkTestVectors.EsdkEncryptTestVector_PositiveEncryptTestVector(Wrappers.Option_None(), 4, _dafny.Seq(""), _dafny.Seq(""), _dafny.Seq(""), (d_0_keyringConfig_).encryptDescription, (d_0_keyringConfig_).decryptDescription, Wrappers.Option_None(), Wrappers.Option_None(), AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT(), Wrappers.Option_Some(default__.frameSize), Wrappers.Option_Some(d_1_algorithmSuite_), (d_0_keyringConfig_).name, Wrappers.Option_Some(1))])) - return _dafny.Set(coll0_) - return iife0_() - - @_dafny.classproperty - def AwsKmsRsaTests(instance): - return AllKmsRsa.default__.Tests - @_dafny.classproperty - def esdkAlgorithmSuitesKmsRsa(instance): - def iife0_(): - coll0_ = _dafny.Set() - compr_0_: AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo - for compr_0_ in (AllAlgorithmSuites.default__.AllAlgorithmSuites).Elements: - d_0_suite_: AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo = compr_0_ - if AlgorithmSuites.AlgorithmSuite._Is(d_0_suite_): - if (((d_0_suite_) in (AllAlgorithmSuites.default__.AllAlgorithmSuites)) and (not(((d_0_suite_).signature).is_ECDSA))) and (((d_0_suite_).id).is_ESDK): - coll0_ = coll0_.union(_dafny.Set([d_0_suite_])) - return _dafny.Set(coll0_) - return iife0_() - - @_dafny.classproperty - def AllPositiveKeyringTestsNoDBEKmsRsa(instance): - def iife0_(): - coll0_ = _dafny.Set() - compr_0_: TestVectors.EncryptTestVector - for compr_0_ in (default__.AwsKmsRsaTests).Elements: - d_0_keyringConfig_: TestVectors.EncryptTestVector = compr_0_ - if ((d_0_keyringConfig_) in (default__.AwsKmsRsaTests)) and (not((d_0_keyringConfig_).is_NegativeEncryptKeyringVector)): - compr_1_: AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo - for compr_1_ in (default__.esdkAlgorithmSuitesKmsRsa).Elements: - d_1_algorithmSuite_: AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo = compr_1_ - if (d_1_algorithmSuite_) in (default__.esdkAlgorithmSuitesKmsRsa): - coll0_ = coll0_.union(_dafny.Set([EsdkTestVectors.EsdkEncryptTestVector_PositiveEncryptTestVector(Wrappers.Option_None(), 4, _dafny.Seq(""), _dafny.Seq(""), _dafny.Seq(""), (d_0_keyringConfig_).encryptDescription, (d_0_keyringConfig_).decryptDescription, Wrappers.Option_None(), Wrappers.Option_None(), AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT(), Wrappers.Option_Some(default__.frameSize), Wrappers.Option_Some(d_1_algorithmSuite_), (d_0_keyringConfig_).name, Wrappers.Option_Some(1))])) - return _dafny.Set(coll0_) - return iife0_() - - @_dafny.classproperty - def Tests(instance): - return (default__.AllPostiveKeyringTestsNoDBESuiteNoReqEC) | (default__.AllPositiveKeyringTestsNoDBEKmsRsa) diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/AllEsdkV4WithReqEc.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/AllEsdkV4WithReqEc.py deleted file mode 100644 index 8eea81f8b..000000000 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/AllEsdkV4WithReqEc.py +++ /dev/null @@ -1,247 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import aws_encryption_sdk_test_vectors.internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary -import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom -import aws_cryptography_primitives.internaldafny.generated.Random as Random -import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption -import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest -import aws_cryptography_primitives.internaldafny.generated.Digest as Digest -import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC -import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC -import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF -import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF -import aws_cryptography_primitives.internaldafny.generated.Signature as Signature -import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr -import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption -import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives -import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 -import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites -import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials -import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring -import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations -import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort -import smithy_dafny_standard_library.internaldafny.generated.Math as Math -import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq -import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils -import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants -import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID -import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping -import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets -import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext -import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping -import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring -import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms -import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries -import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang -import smithy_dafny_standard_library.internaldafny.generated.Time as Time -import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker -import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC -import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring -import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring -import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM -import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults -import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment -import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM -import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier -import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils -import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders -import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn -import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure -import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable -import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Core as JSON_Utils_Views_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Writers as JSON_Utils_Views_Writers -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Cursors as JSON_Utils_Cursors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Parsers as JSON_Utils_Parsers -import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals -import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals -import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul -import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals -import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals -import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod -import smithy_dafny_standard_library.internaldafny.generated.Power as Power -import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str as JSON_Utils_Str -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Seq as JSON_Utils_Seq -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Vectors as JSON_Utils_Vectors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Errors as JSON_Errors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Values as JSON_Values -import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode -import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions -import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings -import smithy_dafny_standard_library.internaldafny.generated.JSON_Spec as JSON_Spec -import smithy_dafny_standard_library.internaldafny.generated.JSON_Grammar as JSON_Grammar -import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer as JSON_Serializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer as JSON_Deserializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec -import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_API as JSON_ZeroCopy_API -import smithy_dafny_standard_library.internaldafny.generated.JSON_API as JSON_API -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.JSONHelpers as JSONHelpers -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyDescription as KeyDescription -import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyMaterial as KeyMaterial -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyrings as CreateStaticKeyrings -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyStores as CreateStaticKeyStores -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyringFromKeyDescription as KeyringFromKeyDescription -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CmmFromKeyDescription as CmmFromKeyDescription -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProviders as WrappedMaterialProviders -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeysVectorOperations as KeysVectorOperations -import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyVectors as KeyVectors -import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header -import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames -import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions -import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestVectors as TestVectors -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllHierarchy as AllHierarchy -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKms as AllKms -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAware as AllKmsMrkAware -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsRsa as AllKmsRsa -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsEcdh as AllKmsEcdh -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawAES as AllRawAES -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawRSA as AllRawRSA -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawECDH as AllRawECDH -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllDefaultCmm as AllDefaultCmm -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllMulti as AllMulti -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WriteJsonManifests as WriteJsonManifests -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CompleteVectors as CompleteVectors -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.ParseJsonManifests as ParseJsonManifests -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestManifests as TestManifests -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProvidersMain as WrappedMaterialProvidersMain -import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr -import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop -import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting -import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare -import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall -import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk_test_vectors.internaldafny.generated.WrappedESDK as WrappedESDK -import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkManifestOptions as EsdkManifestOptions -import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkTestVectors as EsdkTestVectors -import aws_encryption_sdk_test_vectors.internaldafny.generated.AllEsdkV4NoReqEc as AllEsdkV4NoReqEc - -# Module: AllEsdkV4WithReqEc - -class default__: - def __init__(self): - pass - - @_dafny.classproperty - def AllPositiveReqEcTests(instance): - return AllRequiredEncryptionContextCmm.default__.SuccessTestingRequiredEncryptionContextKeysReproducedEncryptionContext - @_dafny.classproperty - def frameSize(instance): - return 512 - @_dafny.classproperty - def AllPositiveReqEcEsdkTests(instance): - def iife0_(): - coll0_ = _dafny.Set() - compr_0_: TestVectors.EncryptTestVector - for compr_0_ in (default__.AllPositiveReqEcTests).Elements: - d_0_config_: TestVectors.EncryptTestVector = compr_0_ - if (d_0_config_) in (default__.AllPositiveReqEcTests): - compr_1_: AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo - for compr_1_ in (AllAlgorithmSuites.default__.ESDKAlgorithmSuites).Elements: - d_1_algorithmSuite_: AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo = compr_1_ - if (d_1_algorithmSuite_) in (AllAlgorithmSuites.default__.ESDKAlgorithmSuites): - coll0_ = coll0_.union(_dafny.Set([EsdkTestVectors.EsdkEncryptTestVector_PositiveEncryptTestVector(Wrappers.Option_None(), 4, _dafny.Seq(""), _dafny.Seq(""), _dafny.Seq(""), (d_0_config_).encryptDescription, (d_0_config_).decryptDescription, Wrappers.Option_Some((d_0_config_).encryptionContext), (d_0_config_).reproducedEncryptionContext, AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT(), Wrappers.Option_Some(default__.frameSize), Wrappers.Option_Some(d_1_algorithmSuite_), (d_0_config_).name, Wrappers.Option_Some(1))])) - return _dafny.Set(coll0_) - return iife0_() - - @_dafny.classproperty - def Tests(instance): - return default__.AllPositiveReqEcEsdkTests diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkManifestOptions.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkManifestOptions.py deleted file mode 100644 index 453aefa9b..000000000 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkManifestOptions.py +++ /dev/null @@ -1,267 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import aws_encryption_sdk_test_vectors.internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary -import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom -import aws_cryptography_primitives.internaldafny.generated.Random as Random -import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption -import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest -import aws_cryptography_primitives.internaldafny.generated.Digest as Digest -import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC -import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC -import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF -import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF -import aws_cryptography_primitives.internaldafny.generated.Signature as Signature -import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr -import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption -import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives -import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 -import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites -import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials -import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring -import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations -import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort -import smithy_dafny_standard_library.internaldafny.generated.Math as Math -import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq -import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils -import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants -import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID -import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping -import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets -import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext -import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping -import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring -import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms -import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries -import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang -import smithy_dafny_standard_library.internaldafny.generated.Time as Time -import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker -import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC -import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring -import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring -import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM -import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults -import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment -import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM -import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier -import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils -import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders -import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn -import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure -import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable -import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Core as JSON_Utils_Views_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Writers as JSON_Utils_Views_Writers -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Cursors as JSON_Utils_Cursors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Parsers as JSON_Utils_Parsers -import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals -import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals -import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul -import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals -import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals -import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod -import smithy_dafny_standard_library.internaldafny.generated.Power as Power -import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str as JSON_Utils_Str -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Seq as JSON_Utils_Seq -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Vectors as JSON_Utils_Vectors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Errors as JSON_Errors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Values as JSON_Values -import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode -import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions -import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings -import smithy_dafny_standard_library.internaldafny.generated.JSON_Spec as JSON_Spec -import smithy_dafny_standard_library.internaldafny.generated.JSON_Grammar as JSON_Grammar -import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer as JSON_Serializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer as JSON_Deserializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec -import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_API as JSON_ZeroCopy_API -import smithy_dafny_standard_library.internaldafny.generated.JSON_API as JSON_API -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.JSONHelpers as JSONHelpers -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyDescription as KeyDescription -import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyMaterial as KeyMaterial -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyrings as CreateStaticKeyrings -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyStores as CreateStaticKeyStores -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyringFromKeyDescription as KeyringFromKeyDescription -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CmmFromKeyDescription as CmmFromKeyDescription -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProviders as WrappedMaterialProviders -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeysVectorOperations as KeysVectorOperations -import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyVectors as KeyVectors -import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header -import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames -import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions -import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestVectors as TestVectors -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllHierarchy as AllHierarchy -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKms as AllKms -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAware as AllKmsMrkAware -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsRsa as AllKmsRsa -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsEcdh as AllKmsEcdh -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawAES as AllRawAES -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawRSA as AllRawRSA -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawECDH as AllRawECDH -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllDefaultCmm as AllDefaultCmm -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllMulti as AllMulti -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WriteJsonManifests as WriteJsonManifests -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CompleteVectors as CompleteVectors -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.ParseJsonManifests as ParseJsonManifests -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestManifests as TestManifests -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProvidersMain as WrappedMaterialProvidersMain -import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr -import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop -import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting -import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare -import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall -import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk_test_vectors.internaldafny.generated.WrappedESDK as WrappedESDK - -# Module: EsdkManifestOptions - - -class ManifestOptions: - @classmethod - def default(cls, ): - return lambda: ManifestOptions_Decrypt(_dafny.Seq(""), _dafny.Seq(""), AwsCryptographyEncryptionSdkTypes.NetV4__0__0__RetryPolicy.default()(), Wrappers.Option.default()()) - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_Decrypt(self) -> bool: - return isinstance(self, ManifestOptions_Decrypt) - @property - def is_Encrypt(self) -> bool: - return isinstance(self, ManifestOptions_Encrypt) - @property - def is_DecryptSingle(self) -> bool: - return isinstance(self, ManifestOptions_DecryptSingle) - @property - def is_EncryptManifest(self) -> bool: - return isinstance(self, ManifestOptions_EncryptManifest) - -class ManifestOptions_Decrypt(ManifestOptions, NamedTuple('Decrypt', [('manifestPath', Any), ('manifestFileName', Any), ('retryPolicy', Any), ('testName', Any)])): - def __dafnystr__(self) -> str: - return f'EsdkManifestOptions.ManifestOptions.Decrypt({_dafny.string_of(self.manifestPath)}, {_dafny.string_of(self.manifestFileName)}, {_dafny.string_of(self.retryPolicy)}, {_dafny.string_of(self.testName)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, ManifestOptions_Decrypt) and self.manifestPath == __o.manifestPath and self.manifestFileName == __o.manifestFileName and self.retryPolicy == __o.retryPolicy and self.testName == __o.testName - def __hash__(self) -> int: - return super().__hash__() - -class ManifestOptions_Encrypt(ManifestOptions, NamedTuple('Encrypt', [('manifestPath', Any), ('manifest', Any), ('decryptManifestOutput', Any), ('testName', Any)])): - def __dafnystr__(self) -> str: - return f'EsdkManifestOptions.ManifestOptions.Encrypt({_dafny.string_of(self.manifestPath)}, {_dafny.string_of(self.manifest)}, {_dafny.string_of(self.decryptManifestOutput)}, {_dafny.string_of(self.testName)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, ManifestOptions_Encrypt) and self.manifestPath == __o.manifestPath and self.manifest == __o.manifest and self.decryptManifestOutput == __o.decryptManifestOutput and self.testName == __o.testName - def __hash__(self) -> int: - return super().__hash__() - -class ManifestOptions_DecryptSingle(ManifestOptions, NamedTuple('DecryptSingle', [('keysPath', Any), ('keyDescription', Any), ('base64Bytes', Any)])): - def __dafnystr__(self) -> str: - return f'EsdkManifestOptions.ManifestOptions.DecryptSingle({_dafny.string_of(self.keysPath)}, {_dafny.string_of(self.keyDescription)}, {_dafny.string_of(self.base64Bytes)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, ManifestOptions_DecryptSingle) and self.keysPath == __o.keysPath and self.keyDescription == __o.keyDescription and self.base64Bytes == __o.base64Bytes - def __hash__(self) -> int: - return super().__hash__() - -class ManifestOptions_EncryptManifest(ManifestOptions, NamedTuple('EncryptManifest', [('encryptManifestOutput', Any), ('version', Any)])): - def __dafnystr__(self) -> str: - return f'EsdkManifestOptions.ManifestOptions.EncryptManifest({_dafny.string_of(self.encryptManifestOutput)}, {_dafny.string_of(self.version)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, ManifestOptions_EncryptManifest) and self.encryptManifestOutput == __o.encryptManifestOutput and self.version == __o.version - def __hash__(self) -> int: - return super().__hash__() - diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkTestManifests.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkTestManifests.py deleted file mode 100644 index d7d350791..000000000 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkTestManifests.py +++ /dev/null @@ -1,649 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import aws_encryption_sdk_test_vectors.internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary -import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom -import aws_cryptography_primitives.internaldafny.generated.Random as Random -import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption -import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest -import aws_cryptography_primitives.internaldafny.generated.Digest as Digest -import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC -import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC -import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF -import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF -import aws_cryptography_primitives.internaldafny.generated.Signature as Signature -import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr -import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption -import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives -import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 -import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites -import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials -import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring -import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations -import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort -import smithy_dafny_standard_library.internaldafny.generated.Math as Math -import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq -import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils -import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants -import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID -import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping -import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets -import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext -import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping -import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring -import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms -import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries -import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang -import smithy_dafny_standard_library.internaldafny.generated.Time as Time -import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker -import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC -import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring -import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring -import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM -import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults -import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment -import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM -import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier -import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils -import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders -import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn -import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure -import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable -import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Core as JSON_Utils_Views_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Writers as JSON_Utils_Views_Writers -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Cursors as JSON_Utils_Cursors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Parsers as JSON_Utils_Parsers -import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals -import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals -import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul -import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals -import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals -import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod -import smithy_dafny_standard_library.internaldafny.generated.Power as Power -import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str as JSON_Utils_Str -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Seq as JSON_Utils_Seq -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Vectors as JSON_Utils_Vectors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Errors as JSON_Errors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Values as JSON_Values -import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode -import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions -import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings -import smithy_dafny_standard_library.internaldafny.generated.JSON_Spec as JSON_Spec -import smithy_dafny_standard_library.internaldafny.generated.JSON_Grammar as JSON_Grammar -import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer as JSON_Serializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer as JSON_Deserializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec -import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_API as JSON_ZeroCopy_API -import smithy_dafny_standard_library.internaldafny.generated.JSON_API as JSON_API -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.JSONHelpers as JSONHelpers -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyDescription as KeyDescription -import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyMaterial as KeyMaterial -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyrings as CreateStaticKeyrings -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyStores as CreateStaticKeyStores -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyringFromKeyDescription as KeyringFromKeyDescription -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CmmFromKeyDescription as CmmFromKeyDescription -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProviders as WrappedMaterialProviders -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeysVectorOperations as KeysVectorOperations -import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyVectors as KeyVectors -import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header -import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames -import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions -import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestVectors as TestVectors -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllHierarchy as AllHierarchy -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKms as AllKms -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAware as AllKmsMrkAware -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsRsa as AllKmsRsa -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsEcdh as AllKmsEcdh -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawAES as AllRawAES -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawRSA as AllRawRSA -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawECDH as AllRawECDH -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllDefaultCmm as AllDefaultCmm -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllMulti as AllMulti -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WriteJsonManifests as WriteJsonManifests -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CompleteVectors as CompleteVectors -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.ParseJsonManifests as ParseJsonManifests -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestManifests as TestManifests -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProvidersMain as WrappedMaterialProvidersMain -import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr -import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop -import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting -import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare -import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall -import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk_test_vectors.internaldafny.generated.WrappedESDK as WrappedESDK -import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkManifestOptions as EsdkManifestOptions -import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkTestVectors as EsdkTestVectors -import aws_encryption_sdk_test_vectors.internaldafny.generated.AllEsdkV4NoReqEc as AllEsdkV4NoReqEc -import aws_encryption_sdk_test_vectors.internaldafny.generated.AllEsdkV4WithReqEc as AllEsdkV4WithReqEc -import aws_encryption_sdk_test_vectors.internaldafny.generated.WriteEsdkJsonManifests as WriteEsdkJsonManifests -import aws_encryption_sdk_test_vectors.internaldafny.generated.WriteVectors as WriteVectors -import aws_encryption_sdk_test_vectors.internaldafny.generated.ParseEsdkJsonManifest as ParseEsdkJsonManifest - -# Module: EsdkTestManifests - -class default__: - def __init__(self): - pass - - @staticmethod - def StartDecryptVectors(op): - output: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_0_valueOrError0_: Wrappers.Result = None - out0_: Wrappers.Result - out0_ = default__.GetManifest((op).manifestPath, (op).manifestFileName) - d_0_valueOrError0_ = out0_ - if not(not((d_0_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestManifests.dfy(40,27): " + _dafny.string_of(d_0_valueOrError0_)) - d_1_decryptManifest_: ManifestData - d_1_decryptManifest_ = (d_0_valueOrError0_).Extract() - d_2_valueOrError1_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_2_valueOrError1_ = Wrappers.default__.Need((d_1_decryptManifest_).is_DecryptManifest, _dafny.Seq("Not a decrypt manifest")) - if (d_2_valueOrError1_).IsFailure(): - output = (d_2_valueOrError1_).PropagateFailure() - return output - d_3_valueOrError2_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_3_valueOrError2_ = ParseEsdkJsonManifest.default__.BuildDecryptTestVector(op, (d_1_decryptManifest_).clientName, (d_1_decryptManifest_).clientVersion, (d_1_decryptManifest_).version, (d_1_decryptManifest_).keys, (d_1_decryptManifest_).jsonTests) - if (d_3_valueOrError2_).IsFailure(): - output = (d_3_valueOrError2_).PropagateFailure() - return output - d_4_decryptVectors_: _dafny.Seq - d_4_decryptVectors_ = (d_3_valueOrError2_).Extract() - out1_: Wrappers.Result - out1_ = default__.TestDecrypts((d_1_decryptManifest_).keys, d_4_decryptVectors_) - output = out1_ - return output - - @staticmethod - def TestDecryptVector_q(v): - return (True) and (((v).decryptionMethod).is_OneShot) - - @staticmethod - def TestDecrypts(keys, vectors): - manifest: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - _dafny.print(_dafny.string_of(_dafny.Seq("\n=================== Starting "))) - _dafny.print(_dafny.string_of(len(vectors))) - _dafny.print(_dafny.string_of(_dafny.Seq(" Decrypt Tests =================== \n\n"))) - d_0_hasFailure_: bool - d_0_hasFailure_ = False - d_1_skipped_: int - d_1_skipped_ = 0 - hi0_ = len(vectors) - for d_2_i_ in range(0, hi0_): - d_3_vector_: EsdkTestVectors.EsdkDecryptTestVector - d_3_vector_ = (vectors)[d_2_i_] - if default__.TestDecryptVector_q(d_3_vector_): - d_4_pass_: bool - out0_: bool - out0_ = EsdkTestVectors.default__.TestDecrypt(keys, d_3_vector_) - d_4_pass_ = out0_ - if not(d_4_pass_): - d_0_hasFailure_ = True - elif True: - d_1_skipped_ = (d_1_skipped_) + (1) - _dafny.print(_dafny.string_of(_dafny.Seq("\nSKIP===> "))) - _dafny.print(_dafny.string_of((d_3_vector_).id)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - _dafny.print(_dafny.string_of(_dafny.Seq("\n=================== Completed "))) - _dafny.print(_dafny.string_of(len(vectors))) - _dafny.print(_dafny.string_of(_dafny.Seq(" Decrypt Tests =================== \n\n"))) - if (0) < (d_1_skipped_): - _dafny.print(_dafny.string_of(_dafny.Seq("Skipped: "))) - _dafny.print(_dafny.string_of(d_1_skipped_)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - if not(d_0_hasFailure_): - manifest = Wrappers.Result_Success(_dafny.Seq([])) - elif True: - manifest = Wrappers.Result_Failure(_dafny.Seq("Test Vectors failed, see errors above.\n")) - return manifest - - @staticmethod - def StartEncryptVectors(op): - output: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() - d_0_valueOrError0_: Wrappers.Result = None - out0_: Wrappers.Result - out0_ = default__.GetManifest((op).manifestPath, (op).manifest) - d_0_valueOrError0_ = out0_ - if (d_0_valueOrError0_).IsFailure(): - output = (d_0_valueOrError0_).PropagateFailure() - return output - d_1_encryptManifest_: ManifestData - d_1_encryptManifest_ = (d_0_valueOrError0_).Extract() - d_2_valueOrError1_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_2_valueOrError1_ = Wrappers.default__.Need((d_1_encryptManifest_).is_EncryptManifest, _dafny.Seq("Not a encrypt manifest")) - if (d_2_valueOrError1_).IsFailure(): - output = (d_2_valueOrError1_).PropagateFailure() - return output - d_3_valueOrError2_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_3_valueOrError2_ = ParseEsdkJsonManifest.default__.BuildEncryptTestVector(op, (d_1_encryptManifest_).version, (d_1_encryptManifest_).keys, (d_1_encryptManifest_).jsonTests) - if (d_3_valueOrError2_).IsFailure(): - output = (d_3_valueOrError2_).PropagateFailure() - return output - d_4_encryptVectors_: _dafny.Seq - d_4_encryptVectors_ = (d_3_valueOrError2_).Extract() - d_5_valueOrError3_: Wrappers.Result = None - out1_: Wrappers.Result - out1_ = AtomicPrimitives.default__.AtomicPrimitives(AtomicPrimitives.default__.DefaultCryptoConfig()) - d_5_valueOrError3_ = out1_ - if not(not((d_5_valueOrError3_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestManifests.dfy(114,13): " + _dafny.string_of(d_5_valueOrError3_)) - d_6_p_: AtomicPrimitives.AtomicPrimitivesClient - d_6_p_ = (d_5_valueOrError3_).Extract() - d_7_plaintext_: _dafny.Map - d_7_plaintext_ = _dafny.Map({}) - hi0_ = len((d_1_encryptManifest_).plaintext) - for d_8_i_ in range(0, hi0_): - let_tmp_rhs0_ = ((d_1_encryptManifest_).plaintext)[d_8_i_] - d_9_name_ = let_tmp_rhs0_[0] - d_10_length_ = let_tmp_rhs0_[1] - d_11_valueOrError4_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - out2_: Wrappers.Result - out2_ = (d_6_p_).GenerateRandomBytes(AwsCryptographyPrimitivesTypes.GenerateRandomBytesInput_GenerateRandomBytesInput(d_10_length_)) - d_11_valueOrError4_ = out2_ - if not(not((d_11_valueOrError4_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestManifests.dfy(119,18): " + _dafny.string_of(d_11_valueOrError4_)) - d_12_data_: _dafny.Seq - d_12_data_ = (d_11_valueOrError4_).Extract() - _dafny.print(_dafny.string_of((((op).decryptManifestOutput) + (EsdkTestVectors.default__.plaintextPathRoot)) + (d_9_name_))) - _dafny.print(_dafny.string_of(_dafny.Seq("\n\n"))) - d_13_valueOrError5_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() - out3_: Wrappers.Result - out3_ = EsdkTestVectors.default__.WriteVectorsFile((((op).decryptManifestOutput) + (EsdkTestVectors.default__.plaintextPathRoot)) + (d_9_name_), d_12_data_) - d_13_valueOrError5_ = out3_ - if (d_13_valueOrError5_).IsFailure(): - output = (d_13_valueOrError5_).PropagateFailure() - return output - d_14___v0_: tuple - d_14___v0_ = (d_13_valueOrError5_).Extract() - d_7_plaintext_ = (d_7_plaintext_) | (_dafny.Map({d_9_name_: d_12_data_})) - d_15_encryptTests_q_: Wrappers.Result - out4_: Wrappers.Result - out4_ = default__.ToEncryptTests((d_1_encryptManifest_).keys, d_4_encryptVectors_) - d_15_encryptTests_q_ = out4_ - d_16_valueOrError6_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - def lambda0_(d_17_e_): - def iife0_(_pat_let6_0): - def iife1_(d_18___v1_): - return _dafny.Seq("Cmm failure") - return iife1_(_pat_let6_0) - return iife0_(EsdkTestVectors.default__.MplVectorPrintErr(d_17_e_)) - - d_16_valueOrError6_ = (d_15_encryptTests_q_).MapFailure(lambda0_) - if (d_16_valueOrError6_).IsFailure(): - output = (d_16_valueOrError6_).PropagateFailure() - return output - d_19_encryptTests_: _dafny.Seq - d_19_encryptTests_ = (d_16_valueOrError6_).Extract() - d_20_valueOrError7_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - out5_: Wrappers.Result - out5_ = default__.TestEncrypts(d_7_plaintext_, (d_1_encryptManifest_).keys, d_19_encryptTests_) - d_20_valueOrError7_ = out5_ - if (d_20_valueOrError7_).IsFailure(): - output = (d_20_valueOrError7_).PropagateFailure() - return output - d_21_decryptVectors_: _dafny.Seq - d_21_decryptVectors_ = (d_20_valueOrError7_).Extract() - d_22_valueOrError8_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() - out6_: Wrappers.Result - out6_ = WriteVectors.default__.WriteDecryptManifest(op, (d_1_encryptManifest_).keys, d_21_decryptVectors_) - d_22_valueOrError8_ = out6_ - if (d_22_valueOrError8_).IsFailure(): - output = (d_22_valueOrError8_).PropagateFailure() - return output - d_23___v2_: tuple - d_23___v2_ = (d_22_valueOrError8_).Extract() - output = Wrappers.Result_Success(()) - return output - - @staticmethod - def TestEncryptVector_q(vector): - return (True) and (not (((vector).frameLength).is_Some) or (AwsCryptographyEncryptionSdkTypes.default__.IsValid__FrameLength(((vector).frameLength).value))) - - @staticmethod - def ToEncryptTests(keys, vectors): - output: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_0_encryptTests_: _dafny.Seq - d_0_encryptTests_ = _dafny.Seq([]) - hi0_ = len(vectors) - for d_1_i_ in range(0, hi0_): - d_2_valueOrError0_: Wrappers.Result = None - out0_: Wrappers.Result - out0_ = EsdkTestVectors.default__.EncryptVectorToEncryptTest(keys, (vectors)[d_1_i_]) - d_2_valueOrError0_ = out0_ - if (d_2_valueOrError0_).IsFailure(): - output = (d_2_valueOrError0_).PropagateFailure() - return output - d_3_test_: EsdkTestVectors.EncryptTest - d_3_test_ = (d_2_valueOrError0_).Extract() - d_0_encryptTests_ = (d_0_encryptTests_) + (_dafny.Seq([d_3_test_])) - output = Wrappers.Result_Success(d_0_encryptTests_) - return output - return output - - @staticmethod - def TestEncrypts(plaintexts, keys, tests): - manifest: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - _dafny.print(_dafny.string_of(_dafny.Seq("\n=================== Starting "))) - _dafny.print(_dafny.string_of(len(tests))) - _dafny.print(_dafny.string_of(_dafny.Seq(" Encrypt Tests =================== \n\n"))) - d_0_hasFailure_: bool - d_0_hasFailure_ = False - d_1_decryptVectors_: _dafny.Seq - d_1_decryptVectors_ = _dafny.Seq([]) - d_2_skipped_: _dafny.Seq - d_2_skipped_ = _dafny.Seq([]) - hi0_ = len(tests) - for d_3_i_ in range(0, hi0_): - d_4_test_: EsdkTestVectors.EncryptTest - d_4_test_ = (tests)[d_3_i_] - d_5_valueOrError0_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_5_valueOrError0_ = Wrappers.default__.Need((((d_4_test_).vector).id).is_Some, _dafny.Seq("Vector is missing uuid")) - if (d_5_valueOrError0_).IsFailure(): - manifest = (d_5_valueOrError0_).PropagateFailure() - return manifest - if default__.TestEncryptVector_q((d_4_test_).vector): - d_6_valueOrError1_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_6_valueOrError1_ = Wrappers.default__.Need(((((d_4_test_).vector).algorithmSuiteId).is_Some) and ((((((d_4_test_).vector).algorithmSuiteId).value).id).is_ESDK), _dafny.Seq("Vector is using an algorithm suite other than ESDK")) - if (d_6_valueOrError1_).IsFailure(): - manifest = (d_6_valueOrError1_).PropagateFailure() - return manifest - d_7_valueOrError2_: Wrappers.Result = Wrappers.Result.default(EsdkTestVectors.EncryptTestOutput.default())() - out0_: Wrappers.Result - out0_ = EsdkTestVectors.default__.TestEncrypt(plaintexts, keys, d_4_test_) - d_7_valueOrError2_ = out0_ - if (d_7_valueOrError2_).IsFailure(): - manifest = (d_7_valueOrError2_).PropagateFailure() - return manifest - d_8_pass_: EsdkTestVectors.EncryptTestOutput - d_8_pass_ = (d_7_valueOrError2_).Extract() - if not((d_8_pass_).output): - d_0_hasFailure_ = True - elif ((d_8_pass_).vector).is_Some: - d_1_decryptVectors_ = (d_1_decryptVectors_) + (_dafny.Seq([((d_8_pass_).vector).value])) - elif True: - d_2_skipped_ = (d_2_skipped_) + (_dafny.Seq([((((d_4_test_).vector).id).value) + (_dafny.Seq("\n"))])) - _dafny.print(_dafny.string_of(_dafny.Seq("\nSKIP===> "))) - _dafny.print(_dafny.string_of((((d_4_test_).vector).id).value)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - _dafny.print(_dafny.string_of(_dafny.Seq("\n=================== Completed "))) - _dafny.print(_dafny.string_of(len(tests))) - _dafny.print(_dafny.string_of(_dafny.Seq(" Encrypt Tests =================== \n\n"))) - if not(not(d_0_hasFailure_)): - raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestManifests.dfy(215,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - manifest = Wrappers.Result_Success(d_1_decryptVectors_) - return manifest - - @staticmethod - def GetManifest(manifestPath, manifestFileName): - manifestData: Wrappers.Result = None - d_0_valueOrError0_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - out0_: Wrappers.Result - out0_ = FileIO.default__.ReadBytesFromFile((manifestPath) + (manifestFileName)) - d_0_valueOrError0_ = out0_ - if (d_0_valueOrError0_).IsFailure(): - manifestData = (d_0_valueOrError0_).PropagateFailure() - return manifestData - d_1_decryptManifestBv_: _dafny.Seq - d_1_decryptManifestBv_ = (d_0_valueOrError0_).Extract() - d_2_decryptManifestBytes_: _dafny.Seq - d_2_decryptManifestBytes_ = JSONHelpers.default__.BvToBytes(d_1_decryptManifestBv_) - d_3_valueOrError1_: Wrappers.Result = Wrappers.Result.default(JSON_Values.JSON.default())() - def lambda0_(d_4_e_): - return (d_4_e_).ToString() - - d_3_valueOrError1_ = (JSON_API.default__.Deserialize(d_2_decryptManifestBytes_)).MapFailure(lambda0_) - if (d_3_valueOrError1_).IsFailure(): - manifestData = (d_3_valueOrError1_).PropagateFailure() - return manifestData - d_5_manifestJson_: JSON_Values.JSON - d_5_manifestJson_ = (d_3_valueOrError1_).Extract() - d_6_valueOrError2_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_6_valueOrError2_ = Wrappers.default__.Need((d_5_manifestJson_).is_Object, _dafny.Seq("Not a JSON object")) - if (d_6_valueOrError2_).IsFailure(): - manifestData = (d_6_valueOrError2_).PropagateFailure() - return manifestData - d_7_valueOrError3_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_7_valueOrError3_ = JSONHelpers.default__.GetObject(_dafny.Seq("manifest"), (d_5_manifestJson_).obj) - if (d_7_valueOrError3_).IsFailure(): - manifestData = (d_7_valueOrError3_).PropagateFailure() - return manifestData - d_8_manifest_: _dafny.Seq - d_8_manifest_ = (d_7_valueOrError3_).Extract() - d_9_valueOrError4_: Wrappers.Result = Wrappers.Result.default(System_.nat.default)() - d_9_valueOrError4_ = JSONHelpers.default__.GetNat(_dafny.Seq("version"), d_8_manifest_) - if (d_9_valueOrError4_).IsFailure(): - manifestData = (d_9_valueOrError4_).PropagateFailure() - return manifestData - d_10_version_: int - d_10_version_ = (d_9_valueOrError4_).Extract() - d_11_valueOrError5_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_11_valueOrError5_ = JSONHelpers.default__.GetString(_dafny.Seq("type"), d_8_manifest_) - if (d_11_valueOrError5_).IsFailure(): - manifestData = (d_11_valueOrError5_).PropagateFailure() - return manifestData - d_12_typ_: _dafny.Seq - d_12_typ_ = (d_11_valueOrError5_).Extract() - d_13_valueOrError6_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_13_valueOrError6_ = JSONHelpers.default__.GetObject(_dafny.Seq("client"), (d_5_manifestJson_).obj) - if (d_13_valueOrError6_).IsFailure(): - manifestData = (d_13_valueOrError6_).PropagateFailure() - return manifestData - d_14_client_: _dafny.Seq - d_14_client_ = (d_13_valueOrError6_).Extract() - d_15_valueOrError7_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_15_valueOrError7_ = JSONHelpers.default__.GetString(_dafny.Seq("name"), d_14_client_) - if (d_15_valueOrError7_).IsFailure(): - manifestData = (d_15_valueOrError7_).PropagateFailure() - return manifestData - d_16_clientName_: _dafny.Seq - d_16_clientName_ = (d_15_valueOrError7_).Extract() - d_17_valueOrError8_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_17_valueOrError8_ = JSONHelpers.default__.GetString(_dafny.Seq("version"), d_14_client_) - if (d_17_valueOrError8_).IsFailure(): - manifestData = (d_17_valueOrError8_).PropagateFailure() - return manifestData - d_18_clientVersion_: _dafny.Seq - d_18_clientVersion_ = (d_17_valueOrError8_).Extract() - d_19_valueOrError9_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_19_valueOrError9_ = JSONHelpers.default__.GetString(_dafny.Seq("keys"), (d_5_manifestJson_).obj) - if (d_19_valueOrError9_).IsFailure(): - manifestData = (d_19_valueOrError9_).PropagateFailure() - return manifestData - d_20_keyManifestUri_: _dafny.Seq - d_20_keyManifestUri_ = (d_19_valueOrError9_).Extract() - d_21_valueOrError10_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_21_valueOrError10_ = Wrappers.default__.Need((_dafny.Seq("file://")) < (d_20_keyManifestUri_), _dafny.Seq("Unexpected URI prefix")) - if (d_21_valueOrError10_).IsFailure(): - manifestData = (d_21_valueOrError10_).PropagateFailure() - return manifestData - d_22_keyManifestPath_: _dafny.Seq - d_22_keyManifestPath_ = (manifestPath) + (_dafny.Seq((d_20_keyManifestUri_)[7::])) - d_23_valueOrError11_: Wrappers.Result = None - out1_: Wrappers.Result - out1_ = KeyVectors.default__.KeyVectors(AwsCryptographyMaterialProvidersTestVectorKeysTypes.KeyVectorsConfig_KeyVectorsConfig(d_22_keyManifestPath_)) - d_23_valueOrError11_ = out1_ - if not(not((d_23_valueOrError11_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestManifests.dfy(268,16): " + _dafny.string_of(d_23_valueOrError11_)) - d_24_keys_: KeyVectors.KeyVectorsClient - d_24_keys_ = (d_23_valueOrError11_).Extract() - d_25_valueOrError12_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_25_valueOrError12_ = JSONHelpers.default__.GetObject(_dafny.Seq("tests"), (d_5_manifestJson_).obj) - if (d_25_valueOrError12_).IsFailure(): - manifestData = (d_25_valueOrError12_).PropagateFailure() - return manifestData - d_26_jsonTests_: _dafny.Seq - d_26_jsonTests_ = (d_25_valueOrError12_).Extract() - source0_ = d_12_typ_ - with _dafny.label("match0"): - if True: - if (source0_) == (_dafny.Seq("awses-decrypt")): - d_27_valueOrError13_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_27_valueOrError13_ = Wrappers.default__.Need(EsdkTestVectors.default__.SupportedDecryptVersion_q(d_10_version_), _dafny.Seq("Unsupported manifest version")) - if (d_27_valueOrError13_).IsFailure(): - manifestData = (d_27_valueOrError13_).PropagateFailure() - return manifestData - manifestData = Wrappers.Result_Success(ManifestData_DecryptManifest(d_10_version_, d_24_keys_, d_16_clientName_, d_18_clientVersion_, d_26_jsonTests_)) - raise _dafny.Break("match0") - if True: - if (source0_) == (_dafny.Seq("awses-encrypt")): - d_28_valueOrError14_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_28_valueOrError14_ = Wrappers.default__.Need(EsdkTestVectors.default__.SupportedEncryptVersion_q(d_10_version_), _dafny.Seq("Unsupported manifest version")) - if (d_28_valueOrError14_).IsFailure(): - manifestData = (d_28_valueOrError14_).PropagateFailure() - return manifestData - d_29_valueOrError15_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_29_valueOrError15_ = JSONHelpers.default__.GetObject(_dafny.Seq("plaintexts"), (d_5_manifestJson_).obj) - if (d_29_valueOrError15_).IsFailure(): - manifestData = (d_29_valueOrError15_).PropagateFailure() - return manifestData - d_30_plaintextsJson_: _dafny.Seq - d_30_plaintextsJson_ = (d_29_valueOrError15_).Extract() - d_31_valueOrError17_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - def lambda1_(d_32_obj_): - def iife0_(_pat_let7_0): - def iife1_(d_33_valueOrError16_): - return ((d_33_valueOrError16_).PropagateFailure() if (d_33_valueOrError16_).IsFailure() else Wrappers.Result_Success(((d_32_obj_)[0], (((d_32_obj_)[1]).num).n))) - return iife1_(_pat_let7_0) - return iife0_(Wrappers.default__.Need((((d_32_obj_)[1]).is_Number) and (((0) < ((((d_32_obj_)[1]).num).n)) and (((((d_32_obj_)[1]).num).n) <= (BoundedInts.default__.INT32__MAX))), _dafny.Seq("Size is not a natural number."))) - - d_31_valueOrError17_ = Seq.default__.MapWithResult(lambda1_, d_30_plaintextsJson_) - if (d_31_valueOrError17_).IsFailure(): - manifestData = (d_31_valueOrError17_).PropagateFailure() - return manifestData - d_34_plaintextsLength_: _dafny.Seq - d_34_plaintextsLength_ = (d_31_valueOrError17_).Extract() - manifestData = Wrappers.Result_Success(ManifestData_EncryptManifest(d_10_version_, d_24_keys_, d_34_plaintextsLength_, d_26_jsonTests_)) - raise _dafny.Break("match0") - if True: - manifestData = Wrappers.Result_Failure((_dafny.Seq("Unsupported manifest type:")) + (d_12_typ_)) - pass - return manifestData - - -class ManifestData: - @classmethod - def default(cls, ): - return lambda: ManifestData_DecryptManifest(int(0), None, _dafny.Seq(""), _dafny.Seq(""), _dafny.Seq({})) - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_DecryptManifest(self) -> bool: - return isinstance(self, ManifestData_DecryptManifest) - @property - def is_EncryptManifest(self) -> bool: - return isinstance(self, ManifestData_EncryptManifest) - -class ManifestData_DecryptManifest(ManifestData, NamedTuple('DecryptManifest', [('version', Any), ('keys', Any), ('clientName', Any), ('clientVersion', Any), ('jsonTests', Any)])): - def __dafnystr__(self) -> str: - return f'EsdkTestManifests.ManifestData.DecryptManifest({_dafny.string_of(self.version)}, {_dafny.string_of(self.keys)}, {_dafny.string_of(self.clientName)}, {_dafny.string_of(self.clientVersion)}, {_dafny.string_of(self.jsonTests)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, ManifestData_DecryptManifest) and self.version == __o.version and self.keys == __o.keys and self.clientName == __o.clientName and self.clientVersion == __o.clientVersion and self.jsonTests == __o.jsonTests - def __hash__(self) -> int: - return super().__hash__() - -class ManifestData_EncryptManifest(ManifestData, NamedTuple('EncryptManifest', [('version', Any), ('keys', Any), ('plaintext', Any), ('jsonTests', Any)])): - def __dafnystr__(self) -> str: - return f'EsdkTestManifests.ManifestData.EncryptManifest({_dafny.string_of(self.version)}, {_dafny.string_of(self.keys)}, {_dafny.string_of(self.plaintext)}, {_dafny.string_of(self.jsonTests)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, ManifestData_EncryptManifest) and self.version == __o.version and self.keys == __o.keys and self.plaintext == __o.plaintext and self.jsonTests == __o.jsonTests - def __hash__(self) -> int: - return super().__hash__() - diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkTestVectors.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkTestVectors.py deleted file mode 100644 index 2140889b7..000000000 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/EsdkTestVectors.py +++ /dev/null @@ -1,799 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import aws_encryption_sdk_test_vectors.internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary -import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom -import aws_cryptography_primitives.internaldafny.generated.Random as Random -import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption -import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest -import aws_cryptography_primitives.internaldafny.generated.Digest as Digest -import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC -import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC -import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF -import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF -import aws_cryptography_primitives.internaldafny.generated.Signature as Signature -import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr -import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption -import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives -import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 -import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites -import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials -import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring -import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations -import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort -import smithy_dafny_standard_library.internaldafny.generated.Math as Math -import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq -import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils -import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants -import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID -import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping -import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets -import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext -import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping -import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring -import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms -import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries -import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang -import smithy_dafny_standard_library.internaldafny.generated.Time as Time -import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker -import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC -import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring -import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring -import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM -import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults -import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment -import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM -import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier -import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils -import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders -import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn -import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure -import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable -import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Core as JSON_Utils_Views_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Writers as JSON_Utils_Views_Writers -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Cursors as JSON_Utils_Cursors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Parsers as JSON_Utils_Parsers -import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals -import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals -import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul -import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals -import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals -import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod -import smithy_dafny_standard_library.internaldafny.generated.Power as Power -import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str as JSON_Utils_Str -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Seq as JSON_Utils_Seq -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Vectors as JSON_Utils_Vectors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Errors as JSON_Errors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Values as JSON_Values -import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode -import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions -import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings -import smithy_dafny_standard_library.internaldafny.generated.JSON_Spec as JSON_Spec -import smithy_dafny_standard_library.internaldafny.generated.JSON_Grammar as JSON_Grammar -import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer as JSON_Serializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer as JSON_Deserializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec -import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_API as JSON_ZeroCopy_API -import smithy_dafny_standard_library.internaldafny.generated.JSON_API as JSON_API -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.JSONHelpers as JSONHelpers -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyDescription as KeyDescription -import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyMaterial as KeyMaterial -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyrings as CreateStaticKeyrings -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyStores as CreateStaticKeyStores -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyringFromKeyDescription as KeyringFromKeyDescription -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CmmFromKeyDescription as CmmFromKeyDescription -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProviders as WrappedMaterialProviders -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeysVectorOperations as KeysVectorOperations -import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyVectors as KeyVectors -import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header -import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames -import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions -import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestVectors as TestVectors -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllHierarchy as AllHierarchy -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKms as AllKms -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAware as AllKmsMrkAware -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsRsa as AllKmsRsa -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsEcdh as AllKmsEcdh -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawAES as AllRawAES -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawRSA as AllRawRSA -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawECDH as AllRawECDH -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllDefaultCmm as AllDefaultCmm -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllMulti as AllMulti -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WriteJsonManifests as WriteJsonManifests -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CompleteVectors as CompleteVectors -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.ParseJsonManifests as ParseJsonManifests -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestManifests as TestManifests -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProvidersMain as WrappedMaterialProvidersMain -import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr -import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop -import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting -import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare -import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall -import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk_test_vectors.internaldafny.generated.WrappedESDK as WrappedESDK -import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkManifestOptions as EsdkManifestOptions - -# Module: EsdkTestVectors - -class default__: - def __init__(self): - pass - - @staticmethod - def SupportedGenerateManifestVersion_q(v): - return (False) or ((v) == (4)) - - @staticmethod - def SupportedEncryptVersion_q(v): - return (((v) == (1)) or ((v) == (4))) or ((v) == (5)) - - @staticmethod - def SupportedDecryptVersion_q(v): - return (((((v) == (1)) or ((v) == (2))) or ((v) == (3))) or ((v) == (4))) or ((v) == (5)) - - @staticmethod - def TestDecrypt(keys, vector): - output: bool = False - if ((vector).algorithmSuiteId).is_Some: - d_0_id_: _dafny.Seq - d_0_id_ = AllAlgorithmSuites.default__.ToHex(((vector).algorithmSuiteId).value) - _dafny.print(_dafny.string_of(_dafny.Seq("\nTEST-DECRYPT===> "))) - _dafny.print(_dafny.string_of((vector).id)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - _dafny.print(_dafny.string_of(d_0_id_)) - _dafny.print(_dafny.string_of(_dafny.Seq(" "))) - _dafny.print(_dafny.string_of((vector).description)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - elif True: - _dafny.print(_dafny.string_of(_dafny.Seq("\nTEST-DECRYPT===> "))) - _dafny.print(_dafny.string_of((vector).id)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - _dafny.print(_dafny.string_of((vector).description)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - d_1_test_q_: Wrappers.Result - out0_: Wrappers.Result - out0_ = default__.DecryptVectorToDecryptTest(keys, vector) - d_1_test_q_ = out0_ - if (d_1_test_q_).is_Failure: - _dafny.print(_dafny.string_of((d_1_test_q_).error)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - _dafny.print(_dafny.string_of(_dafny.Seq("\nFAILED! <-----------\n"))) - output = False - return output - d_2_test_: DecryptTest - d_2_test_ = (d_1_test_q_).value - d_3_valueOrError0_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - out1_: Wrappers.Result - out1_ = default__.ReadVectorsFile((((d_2_test_).vector).manifestPath) + (((d_2_test_).vector).ciphertextPath)) - d_3_valueOrError0_ = out1_ - if not(not((d_3_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(221,22): " + _dafny.string_of(d_3_valueOrError0_)) - d_4_ciphertext_: _dafny.Seq - d_4_ciphertext_ = (d_3_valueOrError0_).Extract() - d_5_plaintext_: _dafny.Seq = _dafny.Seq({}) - if ((((d_2_test_).vector).is_PositiveDecryptTestVector) or (((d_2_test_).vector).is_PositiveV1OrV2DecryptTestVector)) or (((d_2_test_).vector).is_PositiveV4DecryptTestVector): - d_6_valueOrError1_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - out2_: Wrappers.Result - out2_ = default__.ReadVectorsFile((((d_2_test_).vector).manifestPath) + (((d_2_test_).vector).plaintextPath)) - d_6_valueOrError1_ = out2_ - if not(not((d_6_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(227,19): " + _dafny.string_of(d_6_valueOrError1_)) - d_5_plaintext_ = (d_6_valueOrError1_).Extract() - d_7_input_: AwsCryptographyEncryptionSdkTypes.DecryptInput - d_7_input_ = AwsCryptographyEncryptionSdkTypes.DecryptInput_DecryptInput(d_4_ciphertext_, Wrappers.Option_Some((d_2_test_).cmm), Wrappers.Option_None(), ((d_2_test_).vector).reproducedEncryptionContext) - d_8_result_: Wrappers.Result - out3_: Wrappers.Result - out3_ = ((d_2_test_).client).Decrypt(d_7_input_) - d_8_result_ = out3_ - source0_ = (d_2_test_).vector - with _dafny.label("match0"): - if True: - if source0_.is_PositiveDecryptTestVector: - output = ((d_8_result_).is_Success) and ((((d_8_result_).value).plaintext) == (d_5_plaintext_)) - raise _dafny.Break("match0") - if True: - if source0_.is_NegativeDecryptTestVector: - output = (True) and ((d_8_result_).is_Failure) - raise _dafny.Break("match0") - if True: - if source0_.is_PositiveV1OrV2DecryptTestVector: - output = ((d_8_result_).is_Success) and ((((d_8_result_).value).plaintext) == (d_5_plaintext_)) - raise _dafny.Break("match0") - if True: - output = ((d_8_result_).is_Success) and ((((d_8_result_).value).plaintext) == (d_5_plaintext_)) - pass - if not(output): - if (((((d_2_test_).vector).is_PositiveDecryptTestVector) or (((d_2_test_).vector).is_PositiveV1OrV2DecryptTestVector)) or (((d_2_test_).vector).is_PositiveV4DecryptTestVector)) and ((d_8_result_).is_Failure): - _dafny.print(_dafny.string_of((d_8_result_).error)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - if (((d_8_result_).error).is_AwsCryptographyMaterialProviders) and ((((d_8_result_).error).AwsCryptographyMaterialProviders).is_CollectionOfErrors): - _dafny.print(_dafny.string_of(_dafny.Seq("list:"))) - _dafny.print(_dafny.string_of((((d_8_result_).error).AwsCryptographyMaterialProviders).list)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - _dafny.print(_dafny.string_of(_dafny.Seq("\nFAILED! <-----------\n"))) - return output - - @staticmethod - def DecryptVectorToDecryptTest(keys, vector): - output: Wrappers.Result = None - d_0_valueOrError0_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_0_valueOrError0_ = Wrappers.default__.Need(not((vector).is_NegativeDecryptTestVector), AwsCryptographyMaterialProvidersTestVectorKeysTypes.Error_KeyVectorException(_dafny.Seq("Negative Test Vectors not supported at this time"))) - if (d_0_valueOrError0_).IsFailure(): - output = (d_0_valueOrError0_).PropagateFailure() - return output - d_1_valueOrError1_: Wrappers.Result = None - out0_: Wrappers.Result - out0_ = (keys).CreateWrappedTestVectorCmm(AwsCryptographyMaterialProvidersTestVectorKeysTypes.TestVectorCmmInput_TestVectorCmmInput((vector).decryptDescriptions, AwsCryptographyMaterialProvidersTestVectorKeysTypes.CmmOperation_DECRYPT())) - d_1_valueOrError1_ = out0_ - if (d_1_valueOrError1_).IsFailure(): - output = (d_1_valueOrError1_).PropagateFailure() - return output - d_2_cmm_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager - d_2_cmm_ = (d_1_valueOrError1_).Extract() - d_3_commitmentPolicy_: AwsCryptographyMaterialProvidersTypes.CommitmentPolicy - if ((vector).algorithmSuiteId).is_Some: - d_3_commitmentPolicy_ = AllAlgorithmSuites.default__.GetCompatibleCommitmentPolicy(((vector).algorithmSuiteId).value) - elif True: - d_3_commitmentPolicy_ = AwsCryptographyMaterialProvidersTypes.CommitmentPolicy_ESDK(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT()) - d_4_valueOrError2_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_4_valueOrError2_ = Wrappers.default__.Need((d_3_commitmentPolicy_).is_ESDK, AwsCryptographyMaterialProvidersTestVectorKeysTypes.Error_KeyVectorException(_dafny.Seq("Compatible commitment policy is not for ESDK"))) - if (d_4_valueOrError2_).IsFailure(): - output = (d_4_valueOrError2_).PropagateFailure() - return output - d_5_config_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - if (vector).is_PositiveV4DecryptTestVector: - d_5_config_ = WrappedESDK.default__.WrappedAwsEncryptionSdkConfigWithSuppliedCommitmentRetryPolicy((d_3_commitmentPolicy_).ESDK, (vector).retryPolicy) - elif True: - d_5_config_ = WrappedESDK.default__.WrappedAwsEncryptionSdkConfigWithSuppliedCommitment((d_3_commitmentPolicy_).ESDK) - d_6_valueOrError3_: Wrappers.Result = None - out1_: Wrappers.Result - out1_ = WrappedESDK.default__.WrappedESDK(d_5_config_) - d_6_valueOrError3_ = out1_ - if not(not((d_6_valueOrError3_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(312,18): " + _dafny.string_of(d_6_valueOrError3_)) - d_7_client_: AwsCryptographyEncryptionSdkTypes.IAwsEncryptionSdkClient - d_7_client_ = (d_6_valueOrError3_).Extract() - d_8_test_: DecryptTest - d_8_test_ = DecryptTest_DecryptTest(d_2_cmm_, d_7_client_, vector) - output = Wrappers.Result_Success(d_8_test_) - return output - - @staticmethod - def TestEncrypt(plaintexts, keys, test): - output: Wrappers.Result = Wrappers.Result.default(EncryptTestOutput.default())() - d_0_id_: _dafny.Seq - d_0_id_ = AllAlgorithmSuites.default__.ToHex((((test).vector).algorithmSuiteId).value) - _dafny.print(_dafny.string_of(_dafny.Seq("\nTEST-ENCRYPT===> "))) - _dafny.print(_dafny.string_of((((test).vector).id).value)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - _dafny.print(_dafny.string_of(d_0_id_)) - _dafny.print(_dafny.string_of(_dafny.Seq(" "))) - _dafny.print(_dafny.string_of(((test).vector).description)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - d_1_vector_: EsdkEncryptTestVector - d_1_vector_ = (test).vector - if not((((test).vector).plaintextPath) in (plaintexts)): - raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(355,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_2_plaintext_: _dafny.Seq - d_2_plaintext_ = (plaintexts)[((test).vector).plaintextPath] - d_3_frameLength_: Wrappers.Option - d_3_frameLength_ = (d_1_vector_).frameLength - d_4_input_: AwsCryptographyEncryptionSdkTypes.EncryptInput - d_4_input_ = AwsCryptographyEncryptionSdkTypes.EncryptInput_EncryptInput(d_2_plaintext_, ((test).vector).encryptionContext, Wrappers.Option_Some((test).cmm), Wrappers.Option_None(), Wrappers.Option_Some((((((test).vector).algorithmSuiteId).value).id).ESDK), d_3_frameLength_) - d_5_result_: Wrappers.Result - out0_: Wrappers.Result - out0_ = ((test).client).Encrypt(d_4_input_) - d_5_result_ = out0_ - if ((d_5_result_).is_Success) and ((((test).vector).is_PositiveEncryptTestVector) or (((test).vector).is_PositiveEncryptNegativeDecryptTestVector)): - d_6_valueOrError0_: Wrappers.Result = Wrappers.Result.default(EsdkDecryptTestVector.default())() - out1_: Wrappers.Result - out1_ = default__.EncryptTestToDecryptVector(test, (d_5_result_).value) - d_6_valueOrError0_ = out1_ - if (d_6_valueOrError0_).IsFailure(): - output = (d_6_valueOrError0_).PropagateFailure() - return output - d_7_decryptVector_: EsdkDecryptTestVector - d_7_decryptVector_ = (d_6_valueOrError0_).Extract() - output = Wrappers.Result_Success(EncryptTestOutput_EncryptTestOutput(True, Wrappers.Option_Some(d_7_decryptVector_))) - elif ((d_5_result_).is_Failure) and (((test).vector).is_NegativeEncryptTestVector): - output = Wrappers.Result_Success(EncryptTestOutput_EncryptTestOutput(True, Wrappers.Option_None())) - elif True: - output = Wrappers.Result_Success(EncryptTestOutput_EncryptTestOutput(False, Wrappers.Option_None())) - if (not(((test).vector).is_NegativeEncryptTestVector)) and ((d_5_result_).is_Failure): - _dafny.print(_dafny.string_of((d_5_result_).error)) - _dafny.print(_dafny.string_of(_dafny.Seq("\nFAILED! <-----------\n"))) - return output - - @staticmethod - def EncryptVectorToEncryptTest(keys, vector): - output: Wrappers.Result = None - d_0_valueOrError0_: Wrappers.Result = None - out0_: Wrappers.Result - out0_ = (keys).CreateWrappedTestVectorCmm(AwsCryptographyMaterialProvidersTestVectorKeysTypes.TestVectorCmmInput_TestVectorCmmInput(((vector).encryptDescriptions if (vector).is_PositiveEncryptTestVector else ((vector).encryptDescriptions if (vector).is_PositiveEncryptNegativeDecryptTestVector else (vector).encryptDescriptions)), AwsCryptographyMaterialProvidersTestVectorKeysTypes.CmmOperation_ENCRYPT())) - d_0_valueOrError0_ = out0_ - if (d_0_valueOrError0_).IsFailure(): - output = (d_0_valueOrError0_).PropagateFailure() - return output - d_1_cmm_: AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager - d_1_cmm_ = (d_0_valueOrError0_).Extract() - d_2_valueOrError1_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_2_valueOrError1_ = Wrappers.default__.Need(((vector).algorithmSuiteId).is_Some, AwsCryptographyMaterialProvidersTestVectorKeysTypes.Error_KeyVectorException(_dafny.Seq("Missing AlgorithmSuiteId in test vector"))) - if (d_2_valueOrError1_).IsFailure(): - output = (d_2_valueOrError1_).PropagateFailure() - return output - d_3_commitmentPolicy_: AwsCryptographyMaterialProvidersTypes.CommitmentPolicy - d_3_commitmentPolicy_ = AllAlgorithmSuites.default__.GetCompatibleCommitmentPolicy(((vector).algorithmSuiteId).value) - d_4_valueOrError2_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_4_valueOrError2_ = Wrappers.default__.Need((d_3_commitmentPolicy_).is_ESDK, AwsCryptographyMaterialProvidersTestVectorKeysTypes.Error_KeyVectorException(_dafny.Seq("Compatible commitment policy is not for ESDK"))) - if (d_4_valueOrError2_).IsFailure(): - output = (d_4_valueOrError2_).PropagateFailure() - return output - d_5_config_: AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig - d_5_config_ = WrappedESDK.default__.WrappedAwsEncryptionSdkConfigWithSuppliedCommitment((d_3_commitmentPolicy_).ESDK) - d_6_valueOrError3_: Wrappers.Result = None - out1_: Wrappers.Result - out1_ = WrappedESDK.default__.WrappedESDK(d_5_config_) - d_6_valueOrError3_ = out1_ - if not(not((d_6_valueOrError3_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(428,18): " + _dafny.string_of(d_6_valueOrError3_)) - d_7_client_: AwsCryptographyEncryptionSdkTypes.IAwsEncryptionSdkClient - d_7_client_ = (d_6_valueOrError3_).Extract() - d_8_test_: EncryptTest - d_8_test_ = EncryptTest_EncryptTest(d_1_cmm_, d_7_client_, vector) - output = Wrappers.Result_Success(d_8_test_) - return output - - @staticmethod - def EncryptTestToDecryptVector(test, result): - output: Wrappers.Result = Wrappers.Result.default(EsdkDecryptTestVector.default())() - source0_ = (test).vector - with _dafny.label("match0"): - if True: - if source0_.is_PositiveEncryptTestVector: - output = Wrappers.Result_Success(EsdkDecryptTestVector_PositiveDecryptTestVector((((test).vector).id).value, 3, ((test).vector).decryptManifestPath, default__.ciphertextPathPathRoot, (default__.plaintextPathRoot) + (((test).vector).plaintextPath), ((test).vector).reproducedEncryptionContext, ((test).vector).decryptDescriptions, ((test).vector).commitmentPolicy, ((test).vector).frameLength, ((test).vector).algorithmSuiteId, ((test).vector).description, DecryptionMethod_OneShot())) - raise _dafny.Break("match0") - if True: - output = Wrappers.Result_Failure(_dafny.Seq("Only postive tests supported")) - pass - d_0_decryptManifestCiphertext_: _dafny.Seq - d_0_decryptManifestCiphertext_ = ((((test).vector).decryptManifestPath) + (default__.ciphertextPathPathRoot)) + ((((test).vector).id).value) - d_1_valueOrError0_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() - out0_: Wrappers.Result - out0_ = default__.WriteVectorsFile(d_0_decryptManifestCiphertext_, (result).ciphertext) - d_1_valueOrError0_ = out0_ - if not(not((d_1_valueOrError0_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(470,13): " + _dafny.string_of(d_1_valueOrError0_)) - d_2___v67_: tuple - d_2___v67_ = (d_1_valueOrError0_).Extract() - return output - - @staticmethod - def MplPrintErr(e): - hresult_: tuple = () - _dafny.print(_dafny.string_of(e)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - hresult_ = () - return hresult_ - return hresult_ - - @staticmethod - def MplVectorPrintErr(e): - hresult_: tuple = () - _dafny.print(_dafny.string_of(e)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - hresult_ = () - return hresult_ - return hresult_ - - @staticmethod - def KeyDescriptionToCmm(keys, keyDescriptions): - output: Wrappers.Result = None - d_0_keyringList_: _dafny.Seq - d_0_keyringList_ = _dafny.Seq([]) - hi0_ = len(keyDescriptions) - for d_1_i_ in range(0, hi0_): - d_2_keyDescription_: AwsCryptographyMaterialProvidersTestVectorKeysTypes.KeyDescription - d_2_keyDescription_ = (keyDescriptions)[d_1_i_] - d_3_valueOrError0_: Wrappers.Result = None - out0_: Wrappers.Result - out0_ = (keys).CreateWrappedTestVectorKeyring(AwsCryptographyMaterialProvidersTestVectorKeysTypes.TestVectorKeyringInput_TestVectorKeyringInput(d_2_keyDescription_)) - d_3_valueOrError0_ = out0_ - if (d_3_valueOrError0_).IsFailure(): - output = (d_3_valueOrError0_).PropagateFailure() - return output - d_4_keyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - d_4_keyring_ = (d_3_valueOrError0_).Extract() - d_0_keyringList_ = (d_0_keyringList_) + (_dafny.Seq([d_4_keyring_])) - d_5_valueOrError1_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_5_valueOrError1_ = Wrappers.default__.Need((len(d_0_keyringList_)) == (1), AwsCryptographyMaterialProvidersTestVectorKeysTypes.Error_KeyVectorException(_dafny.Seq("Failed to create any keyrings"))) - if (d_5_valueOrError1_).IsFailure(): - output = (d_5_valueOrError1_).PropagateFailure() - return output - d_6_valueOrError2_: Wrappers.Result = None - out1_: Wrappers.Result - out1_ = WrappedMaterialProviders.default__.WrappedMaterialProviders(WrappedMaterialProviders.default__.WrappedDefaultMaterialProvidersConfig()) - d_6_valueOrError2_ = out1_ - if not(not((d_6_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/EsdkTestVectors.dfy(513,15): " + _dafny.string_of(d_6_valueOrError2_)) - d_7_mpl_: AwsCryptographyMaterialProvidersTypes.IAwsCryptographicMaterialProvidersClient - d_7_mpl_ = (d_6_valueOrError2_).Extract() - d_8_generatorKeyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - d_8_generatorKeyring_ = (d_0_keyringList_)[0] - d_9_maybeMultiKeyring_: Wrappers.Result - out2_: Wrappers.Result - out2_ = (d_7_mpl_).CreateMultiKeyring(AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput_CreateMultiKeyringInput(Wrappers.Option_Some(d_8_generatorKeyring_), _dafny.Seq((d_0_keyringList_)[1::]))) - d_9_maybeMultiKeyring_ = out2_ - d_10_valueOrError3_: Wrappers.Result = None - def lambda0_(d_11_e_): - return AwsCryptographyMaterialProvidersTestVectorKeysTypes.Error_AwsCryptographyMaterialProviders(d_11_e_) - - d_10_valueOrError3_ = (d_9_maybeMultiKeyring_).MapFailure(lambda0_) - if (d_10_valueOrError3_).IsFailure(): - output = (d_10_valueOrError3_).PropagateFailure() - return output - d_12_keyring_: AwsCryptographyMaterialProvidersTypes.IKeyring - d_12_keyring_ = (d_10_valueOrError3_).Extract() - d_13_maybeCmm_: Wrappers.Result - out3_: Wrappers.Result - out3_ = (d_7_mpl_).CreateDefaultCryptographicMaterialsManager(AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput((d_9_maybeMultiKeyring_).value)) - d_13_maybeCmm_ = out3_ - def lambda1_(d_14_e_): - return AwsCryptographyMaterialProvidersTestVectorKeysTypes.Error_AwsCryptographyMaterialProviders(d_14_e_) - - output = (d_13_maybeCmm_).MapFailure(lambda1_) - return output - - @staticmethod - def ReadVectorsFile(location): - output: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_0_valueOrError0_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - out0_: Wrappers.Result - out0_ = FileIO.default__.ReadBytesFromFile(location) - d_0_valueOrError0_ = out0_ - if (d_0_valueOrError0_).IsFailure(): - output = (d_0_valueOrError0_).PropagateFailure() - return output - d_1_fileBv_: _dafny.Seq - d_1_fileBv_ = (d_0_valueOrError0_).Extract() - output = Wrappers.Result_Success(JSONHelpers.default__.BvToBytes(d_1_fileBv_)) - return output - - @staticmethod - def WriteVectorsFile(location, bytes): - output: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() - d_0_bv_: _dafny.Seq - d_0_bv_ = JSONHelpers.default__.BytesBv(bytes) - out0_: Wrappers.Result - out0_ = FileIO.default__.WriteBytesToFile(location, d_0_bv_) - output = out0_ - return output - - @_dafny.classproperty - def ciphertextPathPathRoot(instance): - return _dafny.Seq("ciphertexts/") - @_dafny.classproperty - def plaintextPathRoot(instance): - return _dafny.Seq("plaintexts/") - -class EncryptTest: - @classmethod - def default(cls, ): - return lambda: EncryptTest_EncryptTest(None, None, EsdkEncryptTestVector.default()()) - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_EncryptTest(self) -> bool: - return isinstance(self, EncryptTest_EncryptTest) - -class EncryptTest_EncryptTest(EncryptTest, NamedTuple('EncryptTest', [('cmm', Any), ('client', Any), ('vector', Any)])): - def __dafnystr__(self) -> str: - return f'EsdkTestVectors.EncryptTest.EncryptTest({_dafny.string_of(self.cmm)}, {_dafny.string_of(self.client)}, {_dafny.string_of(self.vector)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, EncryptTest_EncryptTest) and self.cmm == __o.cmm and self.client == __o.client and self.vector == __o.vector - def __hash__(self) -> int: - return super().__hash__() - - -class DecryptTest: - @classmethod - def default(cls, ): - return lambda: DecryptTest_DecryptTest(None, None, EsdkDecryptTestVector.default()()) - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_DecryptTest(self) -> bool: - return isinstance(self, DecryptTest_DecryptTest) - -class DecryptTest_DecryptTest(DecryptTest, NamedTuple('DecryptTest', [('cmm', Any), ('client', Any), ('vector', Any)])): - def __dafnystr__(self) -> str: - return f'EsdkTestVectors.DecryptTest.DecryptTest({_dafny.string_of(self.cmm)}, {_dafny.string_of(self.client)}, {_dafny.string_of(self.vector)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, DecryptTest_DecryptTest) and self.cmm == __o.cmm and self.client == __o.client and self.vector == __o.vector - def __hash__(self) -> int: - return super().__hash__() - - -class SupportedGenerateManifestVersion: - def __init__(self): - pass - - @staticmethod - def default(): - return 4 - def _Is(source__): - d_0_v_: int = source__ - if System_.nat._Is(d_0_v_): - return default__.SupportedGenerateManifestVersion_q(d_0_v_) - return False - -class SupportedEncryptVersion: - def __init__(self): - pass - - @staticmethod - def default(): - return 1 - def _Is(source__): - d_1_v_: int = source__ - if System_.nat._Is(d_1_v_): - return default__.SupportedEncryptVersion_q(d_1_v_) - return False - -class EsdkEncryptTestVector: - @classmethod - def default(cls, ): - return lambda: EsdkEncryptTestVector_PositiveEncryptTestVector(Wrappers.Option.default()(), SupportedEncryptVersion.default(), _dafny.Seq(""), _dafny.Seq(""), _dafny.Seq(""), AwsCryptographyMaterialProvidersTestVectorKeysTypes.KeyDescription.default()(), AwsCryptographyMaterialProvidersTestVectorKeysTypes.KeyDescription.default()(), Wrappers.Option.default()(), Wrappers.Option.default()(), AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy.default()(), Wrappers.Option.default()(), Wrappers.Option.default()(), _dafny.Seq(""), Wrappers.Option.default()()) - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_PositiveEncryptTestVector(self) -> bool: - return isinstance(self, EsdkEncryptTestVector_PositiveEncryptTestVector) - @property - def is_PositiveEncryptNegativeDecryptTestVector(self) -> bool: - return isinstance(self, EsdkEncryptTestVector_PositiveEncryptNegativeDecryptTestVector) - @property - def is_NegativeEncryptTestVector(self) -> bool: - return isinstance(self, EsdkEncryptTestVector_NegativeEncryptTestVector) - -class EsdkEncryptTestVector_PositiveEncryptTestVector(EsdkEncryptTestVector, NamedTuple('PositiveEncryptTestVector', [('id', Any), ('version', Any), ('manifestPath', Any), ('decryptManifestPath', Any), ('plaintextPath', Any), ('encryptDescriptions', Any), ('decryptDescriptions', Any), ('encryptionContext', Any), ('reproducedEncryptionContext', Any), ('commitmentPolicy', Any), ('frameLength', Any), ('algorithmSuiteId', Any), ('description', Any), ('maxEncryptedDataKeys', Any)])): - def __dafnystr__(self) -> str: - return f'EsdkTestVectors.EsdkEncryptTestVector.PositiveEncryptTestVector({_dafny.string_of(self.id)}, {_dafny.string_of(self.version)}, {_dafny.string_of(self.manifestPath)}, {_dafny.string_of(self.decryptManifestPath)}, {_dafny.string_of(self.plaintextPath)}, {_dafny.string_of(self.encryptDescriptions)}, {_dafny.string_of(self.decryptDescriptions)}, {_dafny.string_of(self.encryptionContext)}, {_dafny.string_of(self.reproducedEncryptionContext)}, {_dafny.string_of(self.commitmentPolicy)}, {_dafny.string_of(self.frameLength)}, {_dafny.string_of(self.algorithmSuiteId)}, {_dafny.string_of(self.description)}, {_dafny.string_of(self.maxEncryptedDataKeys)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, EsdkEncryptTestVector_PositiveEncryptTestVector) and self.id == __o.id and self.version == __o.version and self.manifestPath == __o.manifestPath and self.decryptManifestPath == __o.decryptManifestPath and self.plaintextPath == __o.plaintextPath and self.encryptDescriptions == __o.encryptDescriptions and self.decryptDescriptions == __o.decryptDescriptions and self.encryptionContext == __o.encryptionContext and self.reproducedEncryptionContext == __o.reproducedEncryptionContext and self.commitmentPolicy == __o.commitmentPolicy and self.frameLength == __o.frameLength and self.algorithmSuiteId == __o.algorithmSuiteId and self.description == __o.description and self.maxEncryptedDataKeys == __o.maxEncryptedDataKeys - def __hash__(self) -> int: - return super().__hash__() - -class EsdkEncryptTestVector_PositiveEncryptNegativeDecryptTestVector(EsdkEncryptTestVector, NamedTuple('PositiveEncryptNegativeDecryptTestVector', [('id', Any), ('version', Any), ('manifestPath', Any), ('decryptManifestPath', Any), ('plaintextPath', Any), ('encryptDescriptions', Any), ('decryptDescriptions', Any), ('encryptionContext', Any), ('reproducedEncryptionContext', Any), ('commitmentPolicy', Any), ('frameLength', Any), ('algorithmSuiteId', Any), ('decryptErrorDescription', Any), ('description', Any), ('maxEncryptedDataKeys', Any)])): - def __dafnystr__(self) -> str: - return f'EsdkTestVectors.EsdkEncryptTestVector.PositiveEncryptNegativeDecryptTestVector({_dafny.string_of(self.id)}, {_dafny.string_of(self.version)}, {_dafny.string_of(self.manifestPath)}, {_dafny.string_of(self.decryptManifestPath)}, {_dafny.string_of(self.plaintextPath)}, {_dafny.string_of(self.encryptDescriptions)}, {_dafny.string_of(self.decryptDescriptions)}, {_dafny.string_of(self.encryptionContext)}, {_dafny.string_of(self.reproducedEncryptionContext)}, {_dafny.string_of(self.commitmentPolicy)}, {_dafny.string_of(self.frameLength)}, {_dafny.string_of(self.algorithmSuiteId)}, {_dafny.string_of(self.decryptErrorDescription)}, {_dafny.string_of(self.description)}, {_dafny.string_of(self.maxEncryptedDataKeys)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, EsdkEncryptTestVector_PositiveEncryptNegativeDecryptTestVector) and self.id == __o.id and self.version == __o.version and self.manifestPath == __o.manifestPath and self.decryptManifestPath == __o.decryptManifestPath and self.plaintextPath == __o.plaintextPath and self.encryptDescriptions == __o.encryptDescriptions and self.decryptDescriptions == __o.decryptDescriptions and self.encryptionContext == __o.encryptionContext and self.reproducedEncryptionContext == __o.reproducedEncryptionContext and self.commitmentPolicy == __o.commitmentPolicy and self.frameLength == __o.frameLength and self.algorithmSuiteId == __o.algorithmSuiteId and self.decryptErrorDescription == __o.decryptErrorDescription and self.description == __o.description and self.maxEncryptedDataKeys == __o.maxEncryptedDataKeys - def __hash__(self) -> int: - return super().__hash__() - -class EsdkEncryptTestVector_NegativeEncryptTestVector(EsdkEncryptTestVector, NamedTuple('NegativeEncryptTestVector', [('id', Any), ('version', Any), ('manifestPath', Any), ('plaintextPath', Any), ('encryptDescriptions', Any), ('encryptionContext', Any), ('reproducedEncryptionContext', Any), ('commitmentPolicy', Any), ('frameLength', Any), ('algorithmSuiteId', Any), ('errorDescription', Any), ('description', Any), ('maxEncryptedDataKeys', Any)])): - def __dafnystr__(self) -> str: - return f'EsdkTestVectors.EsdkEncryptTestVector.NegativeEncryptTestVector({_dafny.string_of(self.id)}, {_dafny.string_of(self.version)}, {_dafny.string_of(self.manifestPath)}, {_dafny.string_of(self.plaintextPath)}, {_dafny.string_of(self.encryptDescriptions)}, {_dafny.string_of(self.encryptionContext)}, {_dafny.string_of(self.reproducedEncryptionContext)}, {_dafny.string_of(self.commitmentPolicy)}, {_dafny.string_of(self.frameLength)}, {_dafny.string_of(self.algorithmSuiteId)}, {_dafny.string_of(self.errorDescription)}, {_dafny.string_of(self.description)}, {_dafny.string_of(self.maxEncryptedDataKeys)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, EsdkEncryptTestVector_NegativeEncryptTestVector) and self.id == __o.id and self.version == __o.version and self.manifestPath == __o.manifestPath and self.plaintextPath == __o.plaintextPath and self.encryptDescriptions == __o.encryptDescriptions and self.encryptionContext == __o.encryptionContext and self.reproducedEncryptionContext == __o.reproducedEncryptionContext and self.commitmentPolicy == __o.commitmentPolicy and self.frameLength == __o.frameLength and self.algorithmSuiteId == __o.algorithmSuiteId and self.errorDescription == __o.errorDescription and self.description == __o.description and self.maxEncryptedDataKeys == __o.maxEncryptedDataKeys - def __hash__(self) -> int: - return super().__hash__() - - -class SupportedDecryptVersion: - def __init__(self): - pass - - @staticmethod - def default(): - return 1 - def _Is(source__): - d_2_v_: int = source__ - if System_.nat._Is(d_2_v_): - return default__.SupportedDecryptVersion_q(d_2_v_) - return False - -class EsdkDecryptTestVector: - @classmethod - def default(cls, ): - return lambda: EsdkDecryptTestVector_PositiveDecryptTestVector(_dafny.Seq(""), SupportedDecryptVersion.default(), _dafny.Seq(""), _dafny.Seq(""), _dafny.Seq(""), Wrappers.Option.default()(), AwsCryptographyMaterialProvidersTestVectorKeysTypes.KeyDescription.default()(), AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy.default()(), Wrappers.Option.default()(), Wrappers.Option.default()(), _dafny.Seq(""), DecryptionMethod.default()()) - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_PositiveDecryptTestVector(self) -> bool: - return isinstance(self, EsdkDecryptTestVector_PositiveDecryptTestVector) - @property - def is_NegativeDecryptTestVector(self) -> bool: - return isinstance(self, EsdkDecryptTestVector_NegativeDecryptTestVector) - @property - def is_PositiveV1OrV2DecryptTestVector(self) -> bool: - return isinstance(self, EsdkDecryptTestVector_PositiveV1OrV2DecryptTestVector) - @property - def is_PositiveV4DecryptTestVector(self) -> bool: - return isinstance(self, EsdkDecryptTestVector_PositiveV4DecryptTestVector) - -class EsdkDecryptTestVector_PositiveDecryptTestVector(EsdkDecryptTestVector, NamedTuple('PositiveDecryptTestVector', [('id', Any), ('version', Any), ('manifestPath', Any), ('ciphertextPath', Any), ('plaintextPath', Any), ('reproducedEncryptionContext', Any), ('decryptDescriptions', Any), ('commitmentPolicy', Any), ('frameLength', Any), ('algorithmSuiteId', Any), ('description', Any), ('decryptionMethod', Any)])): - def __dafnystr__(self) -> str: - return f'EsdkTestVectors.EsdkDecryptTestVector.PositiveDecryptTestVector({_dafny.string_of(self.id)}, {_dafny.string_of(self.version)}, {_dafny.string_of(self.manifestPath)}, {_dafny.string_of(self.ciphertextPath)}, {_dafny.string_of(self.plaintextPath)}, {_dafny.string_of(self.reproducedEncryptionContext)}, {_dafny.string_of(self.decryptDescriptions)}, {_dafny.string_of(self.commitmentPolicy)}, {_dafny.string_of(self.frameLength)}, {_dafny.string_of(self.algorithmSuiteId)}, {_dafny.string_of(self.description)}, {_dafny.string_of(self.decryptionMethod)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, EsdkDecryptTestVector_PositiveDecryptTestVector) and self.id == __o.id and self.version == __o.version and self.manifestPath == __o.manifestPath and self.ciphertextPath == __o.ciphertextPath and self.plaintextPath == __o.plaintextPath and self.reproducedEncryptionContext == __o.reproducedEncryptionContext and self.decryptDescriptions == __o.decryptDescriptions and self.commitmentPolicy == __o.commitmentPolicy and self.frameLength == __o.frameLength and self.algorithmSuiteId == __o.algorithmSuiteId and self.description == __o.description and self.decryptionMethod == __o.decryptionMethod - def __hash__(self) -> int: - return super().__hash__() - -class EsdkDecryptTestVector_NegativeDecryptTestVector(EsdkDecryptTestVector, NamedTuple('NegativeDecryptTestVector', [('id', Any), ('version', Any), ('manifestPath', Any), ('ciphertextPath', Any), ('errorDescription', Any), ('reproducedEncryptionContext', Any), ('decryptDescriptions', Any), ('commitmentPolicy', Any), ('frameLength', Any), ('algorithmSuiteId', Any), ('description', Any), ('decryptionMethod', Any)])): - def __dafnystr__(self) -> str: - return f'EsdkTestVectors.EsdkDecryptTestVector.NegativeDecryptTestVector({_dafny.string_of(self.id)}, {_dafny.string_of(self.version)}, {_dafny.string_of(self.manifestPath)}, {_dafny.string_of(self.ciphertextPath)}, {_dafny.string_of(self.errorDescription)}, {_dafny.string_of(self.reproducedEncryptionContext)}, {_dafny.string_of(self.decryptDescriptions)}, {_dafny.string_of(self.commitmentPolicy)}, {_dafny.string_of(self.frameLength)}, {_dafny.string_of(self.algorithmSuiteId)}, {_dafny.string_of(self.description)}, {_dafny.string_of(self.decryptionMethod)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, EsdkDecryptTestVector_NegativeDecryptTestVector) and self.id == __o.id and self.version == __o.version and self.manifestPath == __o.manifestPath and self.ciphertextPath == __o.ciphertextPath and self.errorDescription == __o.errorDescription and self.reproducedEncryptionContext == __o.reproducedEncryptionContext and self.decryptDescriptions == __o.decryptDescriptions and self.commitmentPolicy == __o.commitmentPolicy and self.frameLength == __o.frameLength and self.algorithmSuiteId == __o.algorithmSuiteId and self.description == __o.description and self.decryptionMethod == __o.decryptionMethod - def __hash__(self) -> int: - return super().__hash__() - -class EsdkDecryptTestVector_PositiveV1OrV2DecryptTestVector(EsdkDecryptTestVector, NamedTuple('PositiveV1OrV2DecryptTestVector', [('id', Any), ('version', Any), ('manifestPath', Any), ('ciphertextPath', Any), ('plaintextPath', Any), ('reproducedEncryptionContext', Any), ('requiredEncryptionContextKeys', Any), ('decryptDescriptions', Any), ('commitmentPolicy', Any), ('frameLength', Any), ('algorithmSuiteId', Any), ('description', Any), ('decryptionMethod', Any)])): - def __dafnystr__(self) -> str: - return f'EsdkTestVectors.EsdkDecryptTestVector.PositiveV1OrV2DecryptTestVector({_dafny.string_of(self.id)}, {_dafny.string_of(self.version)}, {_dafny.string_of(self.manifestPath)}, {_dafny.string_of(self.ciphertextPath)}, {_dafny.string_of(self.plaintextPath)}, {_dafny.string_of(self.reproducedEncryptionContext)}, {_dafny.string_of(self.requiredEncryptionContextKeys)}, {_dafny.string_of(self.decryptDescriptions)}, {_dafny.string_of(self.commitmentPolicy)}, {_dafny.string_of(self.frameLength)}, {_dafny.string_of(self.algorithmSuiteId)}, {_dafny.string_of(self.description)}, {_dafny.string_of(self.decryptionMethod)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, EsdkDecryptTestVector_PositiveV1OrV2DecryptTestVector) and self.id == __o.id and self.version == __o.version and self.manifestPath == __o.manifestPath and self.ciphertextPath == __o.ciphertextPath and self.plaintextPath == __o.plaintextPath and self.reproducedEncryptionContext == __o.reproducedEncryptionContext and self.requiredEncryptionContextKeys == __o.requiredEncryptionContextKeys and self.decryptDescriptions == __o.decryptDescriptions and self.commitmentPolicy == __o.commitmentPolicy and self.frameLength == __o.frameLength and self.algorithmSuiteId == __o.algorithmSuiteId and self.description == __o.description and self.decryptionMethod == __o.decryptionMethod - def __hash__(self) -> int: - return super().__hash__() - -class EsdkDecryptTestVector_PositiveV4DecryptTestVector(EsdkDecryptTestVector, NamedTuple('PositiveV4DecryptTestVector', [('id', Any), ('version', Any), ('manifestPath', Any), ('ciphertextPath', Any), ('plaintextPath', Any), ('reproducedEncryptionContext', Any), ('requiredEncryptionContextKeys', Any), ('decryptDescriptions', Any), ('commitmentPolicy', Any), ('frameLength', Any), ('algorithmSuiteId', Any), ('description', Any), ('decryptionMethod', Any), ('cmm', Any), ('retryPolicy', Any)])): - def __dafnystr__(self) -> str: - return f'EsdkTestVectors.EsdkDecryptTestVector.PositiveV4DecryptTestVector({_dafny.string_of(self.id)}, {_dafny.string_of(self.version)}, {_dafny.string_of(self.manifestPath)}, {_dafny.string_of(self.ciphertextPath)}, {_dafny.string_of(self.plaintextPath)}, {_dafny.string_of(self.reproducedEncryptionContext)}, {_dafny.string_of(self.requiredEncryptionContextKeys)}, {_dafny.string_of(self.decryptDescriptions)}, {_dafny.string_of(self.commitmentPolicy)}, {_dafny.string_of(self.frameLength)}, {_dafny.string_of(self.algorithmSuiteId)}, {_dafny.string_of(self.description)}, {_dafny.string_of(self.decryptionMethod)}, {_dafny.string_of(self.cmm)}, {_dafny.string_of(self.retryPolicy)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, EsdkDecryptTestVector_PositiveV4DecryptTestVector) and self.id == __o.id and self.version == __o.version and self.manifestPath == __o.manifestPath and self.ciphertextPath == __o.ciphertextPath and self.plaintextPath == __o.plaintextPath and self.reproducedEncryptionContext == __o.reproducedEncryptionContext and self.requiredEncryptionContextKeys == __o.requiredEncryptionContextKeys and self.decryptDescriptions == __o.decryptDescriptions and self.commitmentPolicy == __o.commitmentPolicy and self.frameLength == __o.frameLength and self.algorithmSuiteId == __o.algorithmSuiteId and self.description == __o.description and self.decryptionMethod == __o.decryptionMethod and self.cmm == __o.cmm and self.retryPolicy == __o.retryPolicy - def __hash__(self) -> int: - return super().__hash__() - - -class DecryptionMethod: - @_dafny.classproperty - def AllSingletonConstructors(cls): - return [DecryptionMethod_StreamingUnsignedOnly(), DecryptionMethod_OneShot()] - @classmethod - def default(cls, ): - return lambda: DecryptionMethod_StreamingUnsignedOnly() - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_StreamingUnsignedOnly(self) -> bool: - return isinstance(self, DecryptionMethod_StreamingUnsignedOnly) - @property - def is_OneShot(self) -> bool: - return isinstance(self, DecryptionMethod_OneShot) - -class DecryptionMethod_StreamingUnsignedOnly(DecryptionMethod, NamedTuple('StreamingUnsignedOnly', [])): - def __dafnystr__(self) -> str: - return f'EsdkTestVectors.DecryptionMethod.StreamingUnsignedOnly' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, DecryptionMethod_StreamingUnsignedOnly) - def __hash__(self) -> int: - return super().__hash__() - -class DecryptionMethod_OneShot(DecryptionMethod, NamedTuple('OneShot', [])): - def __dafnystr__(self) -> str: - return f'EsdkTestVectors.DecryptionMethod.OneShot' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, DecryptionMethod_OneShot) - def __hash__(self) -> int: - return super().__hash__() - - -class EncryptTestOutput: - @classmethod - def default(cls, ): - return lambda: EncryptTestOutput_EncryptTestOutput(False, Wrappers.Option.default()()) - def __ne__(self, __o: object) -> bool: - return not self.__eq__(__o) - @property - def is_EncryptTestOutput(self) -> bool: - return isinstance(self, EncryptTestOutput_EncryptTestOutput) - -class EncryptTestOutput_EncryptTestOutput(EncryptTestOutput, NamedTuple('EncryptTestOutput', [('output', Any), ('vector', Any)])): - def __dafnystr__(self) -> str: - return f'EsdkTestVectors.EncryptTestOutput.EncryptTestOutput({_dafny.string_of(self.output)}, {_dafny.string_of(self.vector)})' - def __eq__(self, __o: object) -> bool: - return isinstance(__o, EncryptTestOutput_EncryptTestOutput) and self.output == __o.output and self.vector == __o.vector - def __hash__(self) -> int: - return super().__hash__() - diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/ParseEsdkJsonManifest.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/ParseEsdkJsonManifest.py deleted file mode 100644 index ee5ae0928..000000000 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/ParseEsdkJsonManifest.py +++ /dev/null @@ -1,699 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import aws_encryption_sdk_test_vectors.internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary -import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom -import aws_cryptography_primitives.internaldafny.generated.Random as Random -import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption -import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest -import aws_cryptography_primitives.internaldafny.generated.Digest as Digest -import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC -import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC -import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF -import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF -import aws_cryptography_primitives.internaldafny.generated.Signature as Signature -import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr -import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption -import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives -import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 -import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites -import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials -import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring -import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations -import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort -import smithy_dafny_standard_library.internaldafny.generated.Math as Math -import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq -import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils -import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants -import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID -import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping -import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets -import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext -import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping -import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring -import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms -import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries -import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang -import smithy_dafny_standard_library.internaldafny.generated.Time as Time -import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker -import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC -import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring -import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring -import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM -import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults -import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment -import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM -import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier -import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils -import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders -import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn -import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure -import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable -import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Core as JSON_Utils_Views_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Writers as JSON_Utils_Views_Writers -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Cursors as JSON_Utils_Cursors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Parsers as JSON_Utils_Parsers -import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals -import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals -import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul -import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals -import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals -import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod -import smithy_dafny_standard_library.internaldafny.generated.Power as Power -import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str as JSON_Utils_Str -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Seq as JSON_Utils_Seq -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Vectors as JSON_Utils_Vectors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Errors as JSON_Errors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Values as JSON_Values -import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode -import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions -import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings -import smithy_dafny_standard_library.internaldafny.generated.JSON_Spec as JSON_Spec -import smithy_dafny_standard_library.internaldafny.generated.JSON_Grammar as JSON_Grammar -import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer as JSON_Serializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer as JSON_Deserializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec -import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_API as JSON_ZeroCopy_API -import smithy_dafny_standard_library.internaldafny.generated.JSON_API as JSON_API -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.JSONHelpers as JSONHelpers -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyDescription as KeyDescription -import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyMaterial as KeyMaterial -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyrings as CreateStaticKeyrings -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyStores as CreateStaticKeyStores -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyringFromKeyDescription as KeyringFromKeyDescription -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CmmFromKeyDescription as CmmFromKeyDescription -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProviders as WrappedMaterialProviders -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeysVectorOperations as KeysVectorOperations -import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyVectors as KeyVectors -import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header -import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames -import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions -import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestVectors as TestVectors -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllHierarchy as AllHierarchy -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKms as AllKms -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAware as AllKmsMrkAware -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsRsa as AllKmsRsa -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsEcdh as AllKmsEcdh -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawAES as AllRawAES -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawRSA as AllRawRSA -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawECDH as AllRawECDH -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllDefaultCmm as AllDefaultCmm -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllMulti as AllMulti -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WriteJsonManifests as WriteJsonManifests -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CompleteVectors as CompleteVectors -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.ParseJsonManifests as ParseJsonManifests -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestManifests as TestManifests -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProvidersMain as WrappedMaterialProvidersMain -import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr -import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop -import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting -import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare -import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall -import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk_test_vectors.internaldafny.generated.WrappedESDK as WrappedESDK -import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkManifestOptions as EsdkManifestOptions -import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkTestVectors as EsdkTestVectors -import aws_encryption_sdk_test_vectors.internaldafny.generated.AllEsdkV4NoReqEc as AllEsdkV4NoReqEc -import aws_encryption_sdk_test_vectors.internaldafny.generated.AllEsdkV4WithReqEc as AllEsdkV4WithReqEc -import aws_encryption_sdk_test_vectors.internaldafny.generated.WriteEsdkJsonManifests as WriteEsdkJsonManifests -import aws_encryption_sdk_test_vectors.internaldafny.generated.WriteVectors as WriteVectors - -# Module: ParseEsdkJsonManifest - -class default__: - def __init__(self): - pass - - @staticmethod - def BuildDecryptTestVector(op, clientName, clientVersion, version, keys, obj): - hresult_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_0_i_: int - d_0_i_ = len(obj) - d_1_vectors_: _dafny.Seq - d_1_vectors_ = _dafny.Seq([]) - while (d_0_i_) != (0): - d_0_i_ = (d_0_i_) - (1) - d_2_test_: Wrappers.Result - d_2_test_ = default__.ToDecryptTestVectors(op, clientName, clientVersion, version, keys, ((obj)[d_0_i_])[0], ((obj)[d_0_i_])[1]) - if ((d_2_test_).is_Failure) and (((d_2_test_).error) != (default__.negativeTestVectorFound)): - hresult_ = Wrappers.Result_Failure(default__.buildTestVectorError) - return hresult_ - if (d_2_test_).is_Success: - d_1_vectors_ = (_dafny.Seq([(d_2_test_).value])) + (d_1_vectors_) - if ((d_2_test_).is_Failure) and (((d_2_test_).error) == (default__.negativeTestVectorFound)): - d_1_vectors_ = d_1_vectors_ - hresult_ = Wrappers.Result_Success(d_1_vectors_) - return hresult_ - return hresult_ - - @staticmethod - def ToDecryptTestVectors(op, clientName, clientVersion, version, keys, name, json): - d_0_valueOrError0_ = Wrappers.default__.Need((json).is_Object, _dafny.Seq("Vector is not an object")) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - d_1_obj_ = (json).obj - source0_ = version - if True: - if (source0_) == (5): - d_2_valueOrError1_ = Wrappers.default__.Need((op).is_Decrypt, _dafny.Seq("Err parsing manifest expected Decrypt")) - if (d_2_valueOrError1_).IsFailure(): - return (d_2_valueOrError1_).PropagateFailure() - elif True: - return default__.V5ToDecryptTestVector(op, keys, name, d_1_obj_, version) - if True: - if (source0_) == (4): - d_3_valueOrError2_ = Wrappers.default__.Need((op).is_Decrypt, _dafny.Seq("Err parsing manifest; expected Decrypt")) - if (d_3_valueOrError2_).IsFailure(): - return (d_3_valueOrError2_).PropagateFailure() - elif True: - d_4_valueOrError3_ = Wrappers.default__.Need((clientName) == (_dafny.Seq("ESDK-NET")), _dafny.Seq("Err; Version 4 manifest only supported for NET")) - if (d_4_valueOrError3_).IsFailure(): - return (d_4_valueOrError3_).PropagateFailure() - elif True: - return default__.V4ToDecryptTestVector(op, keys, name, d_1_obj_, version) - if True: - if (source0_) == (2): - d_5_valueOrError4_ = Wrappers.default__.Need((op).is_Decrypt, _dafny.Seq("Err parsing manifest expected Decrypt")) - if (d_5_valueOrError4_).IsFailure(): - return (d_5_valueOrError4_).PropagateFailure() - elif True: - return default__.V2ToDecryptTestVector(op, keys, name, d_1_obj_, version) - if True: - if (source0_) == (1): - d_6_valueOrError5_ = Wrappers.default__.Need((op).is_Decrypt, _dafny.Seq("Err parsing manifest expected Decrypt")) - if (d_6_valueOrError5_).IsFailure(): - return (d_6_valueOrError5_).PropagateFailure() - elif True: - return default__.V1ToDecryptTestVector(op, keys, name, d_1_obj_, version) - if True: - return Wrappers.Result_Failure(_dafny.Seq("Version not supported\n")) - - @staticmethod - def BuildEncryptTestVector(op, version, keys, obj): - hresult_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_0_i_: int - d_0_i_ = len(obj) - d_1_vectors_: _dafny.Seq - d_1_vectors_ = _dafny.Seq([]) - while (d_0_i_) != (0): - d_0_i_ = (d_0_i_) - (1) - d_2_test_: Wrappers.Result - d_2_test_ = default__.ToEncryptTestVector(op, version, keys, ((obj)[d_0_i_])[0], ((obj)[d_0_i_])[1]) - if (d_2_test_).is_Failure: - hresult_ = Wrappers.Result_Failure((d_2_test_).error) - return hresult_ - d_1_vectors_ = (_dafny.Seq([(d_2_test_).value])) + (d_1_vectors_) - hresult_ = Wrappers.Result_Success(d_1_vectors_) - return hresult_ - return hresult_ - - @staticmethod - def ToEncryptTestVector(op, version, keys, name, json): - d_0_valueOrError0_ = Wrappers.default__.Need((json).is_Object, _dafny.Seq("EncryptTestVector not an object")) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - d_1_obj_ = (json).obj - source0_ = version - if True: - if (source0_) == (5): - return default__.V5ToEncryptTestVector(op, keys, name, d_1_obj_, version) - if True: - return Wrappers.Result_Failure(_dafny.Seq("Version not supported")) - - @staticmethod - def V5ToEncryptTestVector(op, keys, name, obj, version): - d_0_scenarioString_ = _dafny.Seq("encryption-scenario") - d_1_valueOrError0_ = JSONHelpers.default__.GetObject(d_0_scenarioString_, obj) - if (d_1_valueOrError0_).IsFailure(): - return (d_1_valueOrError0_).PropagateFailure() - elif True: - d_2_scenario_ = (d_1_valueOrError0_).Extract() - d_3_typeString_ = _dafny.Seq("type") - d_4_valueOrError1_ = JSONHelpers.default__.GetString(d_3_typeString_, d_2_scenario_) - if (d_4_valueOrError1_).IsFailure(): - return (d_4_valueOrError1_).PropagateFailure() - elif True: - d_5_typ_ = (d_4_valueOrError1_).Extract() - d_6_valueOrError2_ = JSONHelpers.default__.GetString(default__.plaintextJsonKey, d_2_scenario_) - if (d_6_valueOrError2_).IsFailure(): - return (d_6_valueOrError2_).PropagateFailure() - elif True: - d_7_plaintextLoc_ = (d_6_valueOrError2_).Extract() - d_8_valueOrError3_ = ParseJsonManifests.default__.GetAlgorithmSuiteInfo(d_2_scenario_) - if (d_8_valueOrError3_).IsFailure(): - return (d_8_valueOrError3_).PropagateFailure() - elif True: - d_9_algorithmSuite_ = (d_8_valueOrError3_).Extract() - d_10_valueOrError4_ = Wrappers.default__.Need(((d_9_algorithmSuite_).id).is_ESDK, _dafny.Seq("Unsupported algorithmSuiteId")) - if (d_10_valueOrError4_).IsFailure(): - return (d_10_valueOrError4_).PropagateFailure() - elif True: - d_11_valueOrError5_ = JSONHelpers.default__.GetOptionalPositiveLong(default__.frameSizeJsonKey, d_2_scenario_) - if (d_11_valueOrError5_).IsFailure(): - return (d_11_valueOrError5_).PropagateFailure() - elif True: - d_12_frameLength_ = (d_11_valueOrError5_).Extract() - d_13_valueOrError6_ = JSONHelpers.default__.SmallObjectToStringStringMap(default__.encryptionContextJsonKey, d_2_scenario_) - if (d_13_valueOrError6_).IsFailure(): - return (d_13_valueOrError6_).PropagateFailure() - elif True: - d_14_encryptionContextStrings_ = (d_13_valueOrError6_).Extract() - d_15_valueOrError7_ = JSONHelpers.default__.utf8EncodeMap(d_14_encryptionContextStrings_) - if (d_15_valueOrError7_).IsFailure(): - return (d_15_valueOrError7_).PropagateFailure() - elif True: - d_16_encryptionContext_ = (d_15_valueOrError7_).Extract() - d_17_valueOrError8_ = JSONHelpers.default__.SmallObjectToStringStringMap(default__.reproducedEncryptionContextJsonKey, d_2_scenario_) - if (d_17_valueOrError8_).IsFailure(): - return (d_17_valueOrError8_).PropagateFailure() - elif True: - d_18_reproducedEncryptionContextString_ = (d_17_valueOrError8_).Extract() - d_19_valueOrError9_ = JSONHelpers.default__.utf8EncodeMap(d_18_reproducedEncryptionContextString_) - if (d_19_valueOrError9_).IsFailure(): - return (d_19_valueOrError9_).PropagateFailure() - elif True: - d_20_reproducedEncryptionContext_ = (d_19_valueOrError9_).Extract() - d_21_valueOrError10_ = JSONHelpers.default__.GetString(_dafny.Seq("description"), d_2_scenario_) - if (d_21_valueOrError10_).IsFailure(): - return (d_21_valueOrError10_).PropagateFailure() - elif True: - d_22_description_ = (d_21_valueOrError10_).Extract() - source0_ = d_5_typ_ - if True: - if (source0_) == (_dafny.Seq("positive-esdk")): - d_23_valueOrError11_ = ParseJsonManifests.default__.GetKeyDescription(keys, default__.encryptKeyDescription, d_2_scenario_) - if (d_23_valueOrError11_).IsFailure(): - return (d_23_valueOrError11_).PropagateFailure() - elif True: - d_24_encryptKeyDescription_ = (d_23_valueOrError11_).Extract() - d_25_valueOrError12_ = ParseJsonManifests.default__.GetKeyDescription(keys, default__.decryptKeyDescription, d_2_scenario_) - if (d_25_valueOrError12_).IsFailure(): - return (d_25_valueOrError12_).PropagateFailure() - elif True: - d_26_decryptKeyDescription_ = (d_25_valueOrError12_).Extract() - return Wrappers.Result_Success(EsdkTestVectors.EsdkEncryptTestVector_PositiveEncryptTestVector(Wrappers.Option_Some(name), version, (op).manifestPath, (op).decryptManifestOutput, d_7_plaintextLoc_, d_24_encryptKeyDescription_, d_26_decryptKeyDescription_, Wrappers.Option_Some(d_16_encryptionContext_), Wrappers.Option_Some(d_20_reproducedEncryptionContext_), AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT(), d_12_frameLength_, Wrappers.Option_Some(d_9_algorithmSuite_), d_22_description_, Wrappers.Option_Some(1))) - if True: - return Wrappers.Result_Failure((_dafny.Seq("Unsupported ESDK TestVector type: ")) + (d_5_typ_)) - - @staticmethod - def V1ToDecryptTestVector(op, keys, name, obj, version): - d_0_valueOrError0_ = JSONHelpers.default__.GetString(_dafny.Seq("plaintext"), obj) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - d_1_plaintextLoc_ = (d_0_valueOrError0_).Extract() - d_2_valueOrError1_ = JSONHelpers.default__.GetString(_dafny.Seq("ciphertext"), obj) - if (d_2_valueOrError1_).IsFailure(): - return (d_2_valueOrError1_).PropagateFailure() - elif True: - d_3_ciphertextLoc_ = (d_2_valueOrError1_).Extract() - d_4_valueOrError2_ = Wrappers.default__.Need(((_dafny.Seq("file://")) < (d_3_ciphertextLoc_)) and ((_dafny.Seq("file://")) < (d_1_plaintextLoc_)), _dafny.Seq("Invalid file prefix in test vector")) - if (d_4_valueOrError2_).IsFailure(): - return (d_4_valueOrError2_).PropagateFailure() - elif True: - d_5_valueOrError3_ = JSONHelpers.default__.GetArray(_dafny.Seq("master-keys"), obj) - if (d_5_valueOrError3_).IsFailure(): - return (d_5_valueOrError3_).PropagateFailure() - elif True: - d_6_masterKeys_ = (d_5_valueOrError3_).Extract() - d_7_valueOrError4_ = default__.GetKeyDescriptions(d_6_masterKeys_, keys) - if (d_7_valueOrError4_).IsFailure(): - return (d_7_valueOrError4_).PropagateFailure() - elif True: - d_8_keyDescriptions_ = (d_7_valueOrError4_).Extract() - d_9_valueOrError5_ = default__.ToMultiKeyDescription(d_8_keyDescriptions_) - if (d_9_valueOrError5_).IsFailure(): - return (d_9_valueOrError5_).PropagateFailure() - elif True: - d_10_keyDescription_ = (d_9_valueOrError5_).Extract() - return Wrappers.Result_Success(EsdkTestVectors.EsdkDecryptTestVector_PositiveV1OrV2DecryptTestVector(name, version, (op).manifestPath, _dafny.Seq((d_3_ciphertextLoc_)[len(default__.FILE__PREPEND)::]), _dafny.Seq((d_1_plaintextLoc_)[len(default__.FILE__PREPEND)::]), Wrappers.Option_None(), Wrappers.Option_None(), d_10_keyDescription_, AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT(), Wrappers.Option_None(), Wrappers.Option_None(), name, EsdkTestVectors.DecryptionMethod_OneShot())) - - @staticmethod - def V2ToDecryptTestVector(op, keys, name, obj, version): - d_0_valueOrError0_ = JSONHelpers.default__.GetObject(_dafny.Seq("result"), obj) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - d_1_resultLoc_ = (d_0_valueOrError0_).Extract() - d_2_errorLoc_q_ = JSONHelpers.default__.GetObject(_dafny.Seq("error"), d_1_resultLoc_) - if (d_2_errorLoc_q_).is_Success: - return Wrappers.Result_Failure(default__.negativeTestVectorFound) - elif True: - d_3_valueOrError1_ = JSONHelpers.default__.GetObject(_dafny.Seq("output"), d_1_resultLoc_) - if (d_3_valueOrError1_).IsFailure(): - return (d_3_valueOrError1_).PropagateFailure() - elif True: - d_4_outputLoc_ = (d_3_valueOrError1_).Extract() - d_5_valueOrError2_ = JSONHelpers.default__.GetString(_dafny.Seq("plaintext"), d_4_outputLoc_) - if (d_5_valueOrError2_).IsFailure(): - return (d_5_valueOrError2_).PropagateFailure() - elif True: - d_6_plaintextLoc_ = (d_5_valueOrError2_).Extract() - d_7_valueOrError3_ = JSONHelpers.default__.GetString(_dafny.Seq("ciphertext"), obj) - if (d_7_valueOrError3_).IsFailure(): - return (d_7_valueOrError3_).PropagateFailure() - elif True: - d_8_ciphertextLoc_ = (d_7_valueOrError3_).Extract() - d_9_valueOrError4_ = Wrappers.default__.Need(((_dafny.Seq("file://")) < (d_8_ciphertextLoc_)) and ((_dafny.Seq("file://")) < (d_6_plaintextLoc_)), _dafny.Seq("Invalid file prefix in test vector")) - if (d_9_valueOrError4_).IsFailure(): - return (d_9_valueOrError4_).PropagateFailure() - elif True: - d_10_valueOrError5_ = JSONHelpers.default__.GetArray(_dafny.Seq("master-keys"), obj) - if (d_10_valueOrError5_).IsFailure(): - return (d_10_valueOrError5_).PropagateFailure() - elif True: - d_11_masterKeys_ = (d_10_valueOrError5_).Extract() - d_12_valueOrError6_ = default__.GetKeyDescriptions(d_11_masterKeys_, keys) - if (d_12_valueOrError6_).IsFailure(): - return (d_12_valueOrError6_).PropagateFailure() - elif True: - d_13_keyDescriptions_ = (d_12_valueOrError6_).Extract() - d_14_valueOrError7_ = default__.ToMultiKeyDescription(d_13_keyDescriptions_) - if (d_14_valueOrError7_).IsFailure(): - return (d_14_valueOrError7_).PropagateFailure() - elif True: - d_15_keyDescription_ = (d_14_valueOrError7_).Extract() - return Wrappers.Result_Success(EsdkTestVectors.EsdkDecryptTestVector_PositiveV1OrV2DecryptTestVector(name, version, (op).manifestPath, _dafny.Seq((d_8_ciphertextLoc_)[len(default__.FILE__PREPEND)::]), _dafny.Seq((d_6_plaintextLoc_)[len(default__.FILE__PREPEND)::]), Wrappers.Option_None(), Wrappers.Option_None(), d_15_keyDescription_, AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT(), Wrappers.Option_None(), Wrappers.Option_None(), name, EsdkTestVectors.DecryptionMethod_OneShot())) - - @staticmethod - def V5ToDecryptTestVector(op, keys, name, obj, version): - d_0_scenarioString_ = _dafny.Seq("decryption-scenario") - d_1_valueOrError0_ = JSONHelpers.default__.GetObject(d_0_scenarioString_, obj) - if (d_1_valueOrError0_).IsFailure(): - return (d_1_valueOrError0_).PropagateFailure() - elif True: - d_2_scenario_ = (d_1_valueOrError0_).Extract() - d_3_typeString_ = _dafny.Seq("type") - d_4_valueOrError1_ = JSONHelpers.default__.GetString(d_3_typeString_, d_2_scenario_) - if (d_4_valueOrError1_).IsFailure(): - return (d_4_valueOrError1_).PropagateFailure() - elif True: - d_5_typ_ = (d_4_valueOrError1_).Extract() - d_6_valueOrError2_ = JSONHelpers.default__.GetString(default__.ciphertextJsonKey, d_2_scenario_) - if (d_6_valueOrError2_).IsFailure(): - return (d_6_valueOrError2_).PropagateFailure() - elif True: - d_7_ciphertextLoc_ = (d_6_valueOrError2_).Extract() - d_8_valueOrError3_ = ParseJsonManifests.default__.GetAlgorithmSuiteInfo(d_2_scenario_) - if (d_8_valueOrError3_).IsFailure(): - return (d_8_valueOrError3_).PropagateFailure() - elif True: - d_9_algorithmSuite_ = (d_8_valueOrError3_).Extract() - d_10_valueOrError4_ = Wrappers.default__.Need(((d_9_algorithmSuite_).id).is_ESDK, _dafny.Seq("Unsupported algorithmSuiteId")) - if (d_10_valueOrError4_).IsFailure(): - return (d_10_valueOrError4_).PropagateFailure() - elif True: - d_11_valueOrError5_ = JSONHelpers.default__.GetOptionalPositiveLong(default__.frameSizeJsonKey, d_2_scenario_) - if (d_11_valueOrError5_).IsFailure(): - return (d_11_valueOrError5_).PropagateFailure() - elif True: - d_12_frameLength_ = (d_11_valueOrError5_).Extract() - d_13_valueOrError6_ = JSONHelpers.default__.SmallObjectToStringStringMap(default__.reproducedEncryptionContextJsonKey, d_2_scenario_) - if (d_13_valueOrError6_).IsFailure(): - return (d_13_valueOrError6_).PropagateFailure() - elif True: - d_14_reproducedEncryptionContextStrings_ = (d_13_valueOrError6_).Extract() - d_15_valueOrError7_ = JSONHelpers.default__.utf8EncodeMap(d_14_reproducedEncryptionContextStrings_) - if (d_15_valueOrError7_).IsFailure(): - return (d_15_valueOrError7_).PropagateFailure() - elif True: - d_16_reproducedEncryptionContext_ = (d_15_valueOrError7_).Extract() - d_17_valueOrError8_ = JSONHelpers.default__.GetString(_dafny.Seq("description"), d_2_scenario_) - if (d_17_valueOrError8_).IsFailure(): - return (d_17_valueOrError8_).PropagateFailure() - elif True: - d_18_description_ = (d_17_valueOrError8_).Extract() - d_19_valueOrError9_ = JSONHelpers.default__.GetString(_dafny.Seq("result"), d_2_scenario_) - if (d_19_valueOrError9_).IsFailure(): - return (d_19_valueOrError9_).PropagateFailure() - elif True: - d_20_result_ = (d_19_valueOrError9_).Extract() - d_21_valueOrError10_ = Wrappers.default__.Need(((_dafny.Seq("file://")) < (d_7_ciphertextLoc_)) and ((_dafny.Seq("file://")) < (d_20_result_)), _dafny.Seq("Invalid file prefix in test vector")) - if (d_21_valueOrError10_).IsFailure(): - return (d_21_valueOrError10_).PropagateFailure() - elif True: - source0_ = d_5_typ_ - if True: - if (source0_) == (_dafny.Seq("positive-esdk")): - d_22_valueOrError11_ = ParseJsonManifests.default__.GetKeyDescription(keys, default__.decryptKeyDescription, d_2_scenario_) - if (d_22_valueOrError11_).IsFailure(): - return (d_22_valueOrError11_).PropagateFailure() - elif True: - d_23_decryptKeyDescription_ = (d_22_valueOrError11_).Extract() - return Wrappers.Result_Success(EsdkTestVectors.EsdkDecryptTestVector_PositiveDecryptTestVector(name, version, (op).manifestPath, _dafny.Seq((d_7_ciphertextLoc_)[len(default__.FILE__PREPEND)::]), _dafny.Seq((d_20_result_)[len(default__.FILE__PREPEND)::]), Wrappers.Option_Some(d_16_reproducedEncryptionContext_), d_23_decryptKeyDescription_, AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT(), d_12_frameLength_, Wrappers.Option_Some(d_9_algorithmSuite_), d_18_description_, EsdkTestVectors.DecryptionMethod_OneShot())) - if True: - return Wrappers.Result_Failure((_dafny.Seq("Unsupported ESDK TestVector type: ")) + (d_5_typ_)) - - @staticmethod - def V4ToDecryptTestVector(op, keys, name, obj, version): - d_0_valueOrError0_ = JSONHelpers.default__.GetObject(_dafny.Seq("result"), obj) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - d_1_resultLoc_ = (d_0_valueOrError0_).Extract() - d_2_valueOrError1_ = JSONHelpers.default__.GetObject(_dafny.Seq("output"), d_1_resultLoc_) - if (d_2_valueOrError1_).IsFailure(): - return (d_2_valueOrError1_).PropagateFailure() - elif True: - d_3_outputLoc_ = (d_2_valueOrError1_).Extract() - d_4_valueOrError2_ = JSONHelpers.default__.GetString(_dafny.Seq("plaintext"), d_3_outputLoc_) - if (d_4_valueOrError2_).IsFailure(): - return (d_4_valueOrError2_).PropagateFailure() - elif True: - d_5_plaintextLoc_ = (d_4_valueOrError2_).Extract() - d_6_valueOrError3_ = JSONHelpers.default__.GetString(_dafny.Seq("ciphertext"), obj) - if (d_6_valueOrError3_).IsFailure(): - return (d_6_valueOrError3_).PropagateFailure() - elif True: - d_7_ciphertextLoc_ = (d_6_valueOrError3_).Extract() - d_8_valueOrError4_ = Wrappers.default__.Need(((_dafny.Seq("file://")) < (d_7_ciphertextLoc_)) and ((_dafny.Seq("file://")) < (d_5_plaintextLoc_)), _dafny.Seq("Invalid file prefix in test vector")) - if (d_8_valueOrError4_).IsFailure(): - return (d_8_valueOrError4_).PropagateFailure() - elif True: - d_9_valueOrError5_ = JSONHelpers.default__.GetArray(_dafny.Seq("master-keys"), obj) - if (d_9_valueOrError5_).IsFailure(): - return (d_9_valueOrError5_).PropagateFailure() - elif True: - d_10_masterKeys_ = (d_9_valueOrError5_).Extract() - d_11_valueOrError6_ = default__.GetKeyDescriptions(d_10_masterKeys_, keys) - if (d_11_valueOrError6_).IsFailure(): - return (d_11_valueOrError6_).PropagateFailure() - elif True: - d_12_keyDescriptions_ = (d_11_valueOrError6_).Extract() - d_13_valueOrError7_ = default__.ToMultiKeyDescription(d_12_keyDescriptions_) - if (d_13_valueOrError7_).IsFailure(): - return (d_13_valueOrError7_).PropagateFailure() - elif True: - d_14_keyDescription_ = (d_13_valueOrError7_).Extract() - d_15_valueOrError8_ = JSONHelpers.default__.GetString(_dafny.Seq("cmm"), obj) - if (d_15_valueOrError8_).IsFailure(): - return (d_15_valueOrError8_).PropagateFailure() - elif True: - d_16_cmm_ = (d_15_valueOrError8_).Extract() - d_17_valueOrError9_ = JSONHelpers.default__.SmallObjectToStringStringMap(_dafny.Seq("encryption-context"), obj) - if (d_17_valueOrError9_).IsFailure(): - return (d_17_valueOrError9_).PropagateFailure() - elif True: - d_18_encryptionContextStrings_ = (d_17_valueOrError9_).Extract() - d_19_valueOrError10_ = JSONHelpers.default__.utf8EncodeMap(d_18_encryptionContextStrings_) - if (d_19_valueOrError10_).IsFailure(): - return (d_19_valueOrError10_).PropagateFailure() - elif True: - d_20_encryptionContext_ = (d_19_valueOrError10_).Extract() - return Wrappers.Result_Success(EsdkTestVectors.EsdkDecryptTestVector_PositiveV4DecryptTestVector(name, version, (op).manifestPath, _dafny.Seq((d_7_ciphertextLoc_)[len(default__.FILE__PREPEND)::]), _dafny.Seq((d_5_plaintextLoc_)[len(default__.FILE__PREPEND)::]), Wrappers.Option_Some(d_20_encryptionContext_), Wrappers.Option_None(), d_14_keyDescription_, AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT(), Wrappers.Option_None(), Wrappers.Option_None(), name, EsdkTestVectors.DecryptionMethod_OneShot(), d_16_cmm_, (op).retryPolicy)) - - @staticmethod - def GetKeyDescriptions(keyArray, keys): - if (len(keyArray)) == (0): - return Wrappers.Result_Success(_dafny.Seq([])) - elif True: - d_0_currKey_ = (keyArray)[0] - d_1_valueOrError0_ = Wrappers.default__.Need((d_0_currKey_).is_Object, _dafny.Seq("Not an object")) - if (d_1_valueOrError0_).IsFailure(): - return (d_1_valueOrError0_).PropagateFailure() - elif True: - def lambda0_(d_3_e_): - return (d_3_e_).ToString() - - d_2_valueOrError1_ = (JSON_API.default__.Serialize(d_0_currKey_)).MapFailure(lambda0_) - if (d_2_valueOrError1_).IsFailure(): - return (d_2_valueOrError1_).PropagateFailure() - elif True: - d_4_encryptStr_ = (d_2_valueOrError1_).Extract() - d_5_valueOrError2_ = ((keys).GetKeyDescription(AwsCryptographyMaterialProvidersTestVectorKeysTypes.GetKeyDescriptionInput_GetKeyDescriptionInput(d_4_encryptStr_))).MapFailure(ParseJsonManifests.default__.ErrorToString) - if (d_5_valueOrError2_).IsFailure(): - return (d_5_valueOrError2_).PropagateFailure() - elif True: - d_6_encryptDecryptKeyDescription_ = (d_5_valueOrError2_).Extract() - d_7_valueOrError3_ = default__.GetKeyDescriptions(_dafny.Seq((keyArray)[1::]), keys) - if (d_7_valueOrError3_).IsFailure(): - return (d_7_valueOrError3_).PropagateFailure() - elif True: - d_8_tail_ = (d_7_valueOrError3_).Extract() - return Wrappers.Result_Success((_dafny.Seq([(d_6_encryptDecryptKeyDescription_).keyDescription])) + (d_8_tail_)) - - @staticmethod - def ToMultiKeyDescription(keyDescriptions): - if (len(keyDescriptions)) == (1): - return Wrappers.Result_Success((keyDescriptions)[0]) - elif True: - d_0_valueOrError0_ = Wrappers.default__.Need((len(keyDescriptions)) > (1), _dafny.Seq("Received invalid key description length")) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - return Wrappers.Result_Success(AwsCryptographyMaterialProvidersTestVectorKeysTypes.KeyDescription_Multi(AwsCryptographyMaterialProvidersTestVectorKeysTypes.MultiKeyring_MultiKeyring(Wrappers.Option_Some((keyDescriptions)[0]), _dafny.Seq((keyDescriptions)[1::])))) - - @staticmethod - def GetPath(key, obj): - d_0_valueOrError0_ = JSONHelpers.default__.GetString(key, obj) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - d_1_path_ = (d_0_valueOrError0_).Extract() - d_2_valueOrError1_ = Wrappers.default__.Need((default__.FILE__PREPEND) < (d_1_path_), _dafny.Seq("Received Invalid location for plaintext or ciphertext.")) - if (d_2_valueOrError1_).IsFailure(): - return (d_2_valueOrError1_).PropagateFailure() - elif True: - return Wrappers.Result_Success(_dafny.Seq((d_1_path_)[len(default__.FILE__PREPEND)::])) - - @staticmethod - def Result_q(key): - return ((key) == (_dafny.Seq("output"))) or ((key) == (_dafny.Seq("error"))) - - @_dafny.classproperty - def ciphertextJsonKey(instance): - return _dafny.Seq("ciphertext") - @_dafny.classproperty - def frameSizeJsonKey(instance): - return _dafny.Seq("frame-size") - @_dafny.classproperty - def reproducedEncryptionContextJsonKey(instance): - return _dafny.Seq("reproduced-encryption-context") - @_dafny.classproperty - def decryptKeyDescription(instance): - return _dafny.Seq("decryptKeyDescription") - @_dafny.classproperty - def FILE__PREPEND(instance): - return _dafny.Seq("file://") - @_dafny.classproperty - def negativeTestVectorFound(instance): - return _dafny.Seq("Negative test vector found; not supported yet.") - @_dafny.classproperty - def buildTestVectorError(instance): - return _dafny.Seq("Error other than negative test vector found thrown") - @_dafny.classproperty - def plaintextJsonKey(instance): - return _dafny.Seq("plaintext") - @_dafny.classproperty - def encryptionContextJsonKey(instance): - return _dafny.Seq("encryption-context") - @_dafny.classproperty - def encryptKeyDescription(instance): - return _dafny.Seq("encryptKeyDescription") - @_dafny.classproperty - def masterKeysJsonKey(instance): - return _dafny.Seq("master-keys") - @_dafny.classproperty - def decryptionMethodJsonKey(instance): - return _dafny.Seq("decryption-method") diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WrappedESDK.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WrappedESDK.py deleted file mode 100644 index 100bd6670..000000000 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WrappedESDK.py +++ /dev/null @@ -1,234 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import aws_encryption_sdk_test_vectors.internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary -import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom -import aws_cryptography_primitives.internaldafny.generated.Random as Random -import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption -import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest -import aws_cryptography_primitives.internaldafny.generated.Digest as Digest -import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC -import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC -import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF -import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF -import aws_cryptography_primitives.internaldafny.generated.Signature as Signature -import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr -import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption -import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives -import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 -import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites -import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials -import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring -import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations -import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort -import smithy_dafny_standard_library.internaldafny.generated.Math as Math -import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq -import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils -import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants -import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID -import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping -import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets -import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext -import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping -import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring -import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms -import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries -import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang -import smithy_dafny_standard_library.internaldafny.generated.Time as Time -import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker -import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC -import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring -import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring -import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM -import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults -import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment -import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM -import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier -import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils -import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders -import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn -import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure -import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable -import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Core as JSON_Utils_Views_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Writers as JSON_Utils_Views_Writers -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Cursors as JSON_Utils_Cursors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Parsers as JSON_Utils_Parsers -import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals -import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals -import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul -import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals -import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals -import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod -import smithy_dafny_standard_library.internaldafny.generated.Power as Power -import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str as JSON_Utils_Str -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Seq as JSON_Utils_Seq -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Vectors as JSON_Utils_Vectors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Errors as JSON_Errors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Values as JSON_Values -import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode -import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions -import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings -import smithy_dafny_standard_library.internaldafny.generated.JSON_Spec as JSON_Spec -import smithy_dafny_standard_library.internaldafny.generated.JSON_Grammar as JSON_Grammar -import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer as JSON_Serializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer as JSON_Deserializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec -import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_API as JSON_ZeroCopy_API -import smithy_dafny_standard_library.internaldafny.generated.JSON_API as JSON_API -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.JSONHelpers as JSONHelpers -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyDescription as KeyDescription -import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyMaterial as KeyMaterial -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyrings as CreateStaticKeyrings -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyStores as CreateStaticKeyStores -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyringFromKeyDescription as KeyringFromKeyDescription -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CmmFromKeyDescription as CmmFromKeyDescription -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProviders as WrappedMaterialProviders -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeysVectorOperations as KeysVectorOperations -import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyVectors as KeyVectors -import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header -import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames -import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions -import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestVectors as TestVectors -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllHierarchy as AllHierarchy -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKms as AllKms -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAware as AllKmsMrkAware -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsRsa as AllKmsRsa -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsEcdh as AllKmsEcdh -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawAES as AllRawAES -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawRSA as AllRawRSA -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawECDH as AllRawECDH -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllDefaultCmm as AllDefaultCmm -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllMulti as AllMulti -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WriteJsonManifests as WriteJsonManifests -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CompleteVectors as CompleteVectors -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.ParseJsonManifests as ParseJsonManifests -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestManifests as TestManifests -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProvidersMain as WrappedMaterialProvidersMain -import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr -import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop -import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting -import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare -import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall -import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas - -# Module: WrappedESDK - -class default__: - def __init__(self): - pass - - @staticmethod - def WrappedDefaultAwsEncryptionSdkConfig(): - return AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig_AwsEncryptionSdkConfig(Wrappers.Option_Some(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT()), Wrappers.Option_None(), Wrappers.Option_None()) - - @staticmethod - def WrappedAwsEncryptionSdkConfigWithSuppliedCommitment(commitmentPolicy): - return AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig_AwsEncryptionSdkConfig(Wrappers.Option_Some(commitmentPolicy), Wrappers.Option_None(), Wrappers.Option_None()) - - @staticmethod - def WrappedAwsEncryptionSdkConfigWithSuppliedCommitmentRetryPolicy(commitmentPolicy, netV4__0__0__RetryPolicy): - return AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig_AwsEncryptionSdkConfig(Wrappers.Option_Some(commitmentPolicy), Wrappers.Option_None(), Wrappers.Option_Some(netV4__0__0__RetryPolicy)) - - @staticmethod - def WrappedAwsEncryptionSdkConfig(commitmentPolicy, maxEncryptedDataKeys, netV4__0__0__RetryPolicy): - return AwsCryptographyEncryptionSdkTypes.AwsEncryptionSdkConfig_AwsEncryptionSdkConfig(Wrappers.Option_Some(commitmentPolicy), Wrappers.Option_Some(maxEncryptedDataKeys), Wrappers.Option_Some(netV4__0__0__RetryPolicy)) - diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WrappedESDKMain.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WrappedESDKMain.py deleted file mode 100644 index e6ac54342..000000000 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WrappedESDKMain.py +++ /dev/null @@ -1,353 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import aws_encryption_sdk_test_vectors.internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary -import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom -import aws_cryptography_primitives.internaldafny.generated.Random as Random -import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption -import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest -import aws_cryptography_primitives.internaldafny.generated.Digest as Digest -import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC -import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC -import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF -import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF -import aws_cryptography_primitives.internaldafny.generated.Signature as Signature -import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr -import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption -import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives -import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 -import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites -import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials -import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring -import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations -import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort -import smithy_dafny_standard_library.internaldafny.generated.Math as Math -import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq -import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils -import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants -import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID -import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping -import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets -import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext -import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping -import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring -import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms -import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries -import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang -import smithy_dafny_standard_library.internaldafny.generated.Time as Time -import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker -import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC -import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring -import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring -import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM -import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults -import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment -import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM -import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier -import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils -import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders -import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn -import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure -import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable -import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Core as JSON_Utils_Views_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Writers as JSON_Utils_Views_Writers -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Cursors as JSON_Utils_Cursors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Parsers as JSON_Utils_Parsers -import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals -import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals -import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul -import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals -import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals -import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod -import smithy_dafny_standard_library.internaldafny.generated.Power as Power -import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str as JSON_Utils_Str -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Seq as JSON_Utils_Seq -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Vectors as JSON_Utils_Vectors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Errors as JSON_Errors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Values as JSON_Values -import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode -import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions -import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings -import smithy_dafny_standard_library.internaldafny.generated.JSON_Spec as JSON_Spec -import smithy_dafny_standard_library.internaldafny.generated.JSON_Grammar as JSON_Grammar -import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer as JSON_Serializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer as JSON_Deserializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec -import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_API as JSON_ZeroCopy_API -import smithy_dafny_standard_library.internaldafny.generated.JSON_API as JSON_API -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.JSONHelpers as JSONHelpers -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyDescription as KeyDescription -import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyMaterial as KeyMaterial -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyrings as CreateStaticKeyrings -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyStores as CreateStaticKeyStores -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyringFromKeyDescription as KeyringFromKeyDescription -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CmmFromKeyDescription as CmmFromKeyDescription -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProviders as WrappedMaterialProviders -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeysVectorOperations as KeysVectorOperations -import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyVectors as KeyVectors -import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header -import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames -import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions -import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestVectors as TestVectors -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllHierarchy as AllHierarchy -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKms as AllKms -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAware as AllKmsMrkAware -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsRsa as AllKmsRsa -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsEcdh as AllKmsEcdh -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawAES as AllRawAES -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawRSA as AllRawRSA -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawECDH as AllRawECDH -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllDefaultCmm as AllDefaultCmm -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllMulti as AllMulti -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WriteJsonManifests as WriteJsonManifests -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CompleteVectors as CompleteVectors -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.ParseJsonManifests as ParseJsonManifests -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestManifests as TestManifests -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProvidersMain as WrappedMaterialProvidersMain -import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr -import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop -import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting -import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare -import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall -import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk_test_vectors.internaldafny.generated.WrappedESDK as WrappedESDK -import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkManifestOptions as EsdkManifestOptions -import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkTestVectors as EsdkTestVectors -import aws_encryption_sdk_test_vectors.internaldafny.generated.AllEsdkV4NoReqEc as AllEsdkV4NoReqEc -import aws_encryption_sdk_test_vectors.internaldafny.generated.AllEsdkV4WithReqEc as AllEsdkV4WithReqEc -import aws_encryption_sdk_test_vectors.internaldafny.generated.WriteEsdkJsonManifests as WriteEsdkJsonManifests -import aws_encryption_sdk_test_vectors.internaldafny.generated.WriteVectors as WriteVectors -import aws_encryption_sdk_test_vectors.internaldafny.generated.ParseEsdkJsonManifest as ParseEsdkJsonManifest -import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkTestManifests as EsdkTestManifests - -# Module: WrappedESDKMain - -class default__: - def __init__(self): - pass - - @staticmethod - def Main2(args): - d_0_vectorOptions_: GetOpt.Options - d_0_vectorOptions_ = GetOpt.Options_Options(_dafny.Seq("test-vectors"), _dafny.Seq("?"), _dafny.Seq([GetOpt.Param_Command(GetOpt.Options_Options(_dafny.Seq("decrypt"), _dafny.Seq("decrypt command for test-vectors"), _dafny.Seq([GetOpt.Param_Opt(_dafny.Seq("manifest-path"), _dafny.Seq("relative path to the location of the manifest"), _dafny.Seq("arg"), GetOpt.default__.NullChar, GetOpt.Unused_Required(), False, GetOpt.Visibility_Normal(), _dafny.Seq([]), _dafny.Seq([]), GetOpt.Tri_No()), GetOpt.Param_Opt(_dafny.Seq("manifest-name"), _dafny.Seq("name of file that contains the decrypt vectors file"), _dafny.Seq("arg"), GetOpt.default__.NullChar, GetOpt.Unused_Required(), False, GetOpt.Visibility_Normal(), _dafny.Seq([]), _dafny.Seq([]), GetOpt.Tri_No()), GetOpt.Param_Opt(_dafny.Seq("test-name"), _dafny.Seq("id of the test to run"), _dafny.Seq("arg"), GetOpt.default__.NullChar, GetOpt.Unused_UnusedOk(), False, GetOpt.Visibility_Normal(), _dafny.Seq([]), _dafny.Seq([]), GetOpt.Tri_No())]))), GetOpt.Param_Command(GetOpt.Options_Options(_dafny.Seq("encrypt"), _dafny.Seq("encrypt command for test-vectors"), _dafny.Seq([GetOpt.Param_Opt(_dafny.Seq("manifest-path"), _dafny.Seq("relative path to the location of the manifest"), _dafny.Seq("arg"), GetOpt.default__.NullChar, GetOpt.Unused_Required(), False, GetOpt.Visibility_Normal(), _dafny.Seq([]), _dafny.Seq([]), GetOpt.Tri_No()), GetOpt.Param_Opt(_dafny.Seq("decrypt-manifest-path"), _dafny.Seq("relative path to the location where the decrypted manifest will be written to."), _dafny.Seq("arg"), GetOpt.default__.NullChar, GetOpt.Unused_Required(), False, GetOpt.Visibility_Normal(), _dafny.Seq([]), _dafny.Seq([]), GetOpt.Tri_No()), GetOpt.Param_Opt(_dafny.Seq("test-name"), _dafny.Seq("id of the test to run"), _dafny.Seq("arg"), GetOpt.default__.NullChar, GetOpt.Unused_UnusedOk(), False, GetOpt.Visibility_Normal(), _dafny.Seq([]), _dafny.Seq([]), GetOpt.Tri_No())]))), GetOpt.Param_Command(GetOpt.Options_Options(_dafny.Seq("encrypt-manifest"), _dafny.Seq("encryp manifest command for test-vectors"), _dafny.Seq([GetOpt.Param_Opt(_dafny.Seq("encrypt-manifest-output"), _dafny.Seq("relative path of where to store the encrypt-manifest produced"), _dafny.Seq("arg"), GetOpt.default__.NullChar, GetOpt.Unused_Required(), False, GetOpt.Visibility_Normal(), _dafny.Seq([]), _dafny.Seq([]), GetOpt.Tri_No())])))])) - if not((0) < (len(args))): - raise _dafny.HaltException("dafny/TestVectors/src/Index.dfy(41,4): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - d_1_parsedOptions_q_: Wrappers.Result - d_1_parsedOptions_q_ = GetOpt.default__.GetOptions(d_0_vectorOptions_, args) - if (d_1_parsedOptions_q_).is_Success: - d_2_h_: Wrappers.Option - d_2_h_ = GetOpt.default__.NeedsHelp(d_0_vectorOptions_, (d_1_parsedOptions_q_).value, _dafny.Seq("")) - if (d_2_h_).is_Some: - _dafny.print(_dafny.string_of((d_2_h_).value)) - return - d_3_op_q_: Wrappers.Result - d_3_op_q_ = default__.ParseCommandLineOptions((d_1_parsedOptions_q_).value) - if (d_3_op_q_).is_Success: - d_4_op_: EsdkManifestOptions.ManifestOptions - d_4_op_ = (d_3_op_q_).value - source0_ = d_4_op_ - with _dafny.label("match0"): - if True: - if source0_.is_Decrypt: - d_5_result_: Wrappers.Result - out0_: Wrappers.Result - out0_ = EsdkTestManifests.default__.StartDecryptVectors(d_4_op_) - d_5_result_ = out0_ - if (d_5_result_).is_Failure: - _dafny.print(_dafny.string_of((d_5_result_).error)) - if not((d_5_result_).is_Success): - raise _dafny.HaltException("dafny/TestVectors/src/Index.dfy(60,10): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - raise _dafny.Break("match0") - if True: - if source0_.is_Encrypt: - d_6_result_: Wrappers.Result - out1_: Wrappers.Result - out1_ = EsdkTestManifests.default__.StartEncryptVectors(d_4_op_) - d_6_result_ = out1_ - if (d_6_result_).is_Failure: - _dafny.print(_dafny.string_of((d_6_result_).error)) - if not((d_6_result_).is_Success): - raise _dafny.HaltException("dafny/TestVectors/src/Index.dfy(66,10): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - raise _dafny.Break("match0") - if True: - d_7_result_: Wrappers.Result - out2_: Wrappers.Result - out2_ = WriteVectors.default__.WriteTestVectors(d_4_op_) - d_7_result_ = out2_ - if (d_7_result_).is_Failure: - _dafny.print(_dafny.string_of((d_7_result_).error)) - if not((d_7_result_).is_Success): - raise _dafny.HaltException("dafny/TestVectors/src/Index.dfy(72,10): " + _dafny.string_of(_dafny.Seq("expectation violation"))) - pass - elif True: - _dafny.print(_dafny.string_of(((d_3_op_q_).error) + (_dafny.Seq("\n")))) - _dafny.print(_dafny.string_of(_dafny.Seq("help\n"))) - elif True: - _dafny.print(_dafny.string_of(((d_1_parsedOptions_q_).error) + (_dafny.Seq("\n")))) - - @staticmethod - def ParseCommandLineOptions(parsedOptions): - d_0_valueOrError0_ = Wrappers.default__.Need(((parsedOptions).subcommand).is_Some, _dafny.Seq("Must supply subcommand\n")) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - source0_ = (((parsedOptions).subcommand).value).command - if True: - if (source0_) == (_dafny.Seq("decrypt")): - return default__.ParseDecryptCmd((((parsedOptions).subcommand).value).params) - if True: - if (source0_) == (_dafny.Seq("encrypt")): - return default__.ParseEncryptCmd((((parsedOptions).subcommand).value).params) - if True: - if (source0_) == (_dafny.Seq("encrypt-manifest")): - return default__.ParseEncryptManifestCmd((((parsedOptions).subcommand).value).params) - if True: - return Wrappers.Result_Failure(_dafny.Seq("Received unknown subcommand")) - - @staticmethod - def ParseDecryptCmd(params): - d_0_manifestPath_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("manifest-path")) - d_1_testName_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("test-name")) - d_2_retryPolicy_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("retry")) - d_3_manifestFileName_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("manifest-name")) - d_4_retryPolicy_ = ((d_2_retryPolicy_q_).value if (d_2_retryPolicy_q_).is_Some else _dafny.Seq("forbid")) - d_5_valueOrError0_ = Wrappers.default__.Need(((d_4_retryPolicy_) == (_dafny.Seq("allow"))) or ((d_4_retryPolicy_) == (_dafny.Seq("forbid"))), _dafny.Seq("Invalid retryPolicy. Valid options are allow/forbid. Default is forbid.")) - if (d_5_valueOrError0_).IsFailure(): - return (d_5_valueOrError0_).PropagateFailure() - elif True: - d_6_manifestPath_ = ((d_0_manifestPath_q_).value if (d_0_manifestPath_q_).is_Some else _dafny.Seq(".")) - d_7_valueOrError1_ = Wrappers.default__.Need((0) < (len(d_6_manifestPath_)), _dafny.Seq("Invalid manifest path length\n")) - if (d_7_valueOrError1_).IsFailure(): - return (d_7_valueOrError1_).PropagateFailure() - elif True: - d_8_valueOrError2_ = Wrappers.default__.Need((d_3_manifestFileName_q_).is_Some, _dafny.Seq("Must supply manifest file name")) - if (d_8_valueOrError2_).IsFailure(): - return (d_8_valueOrError2_).PropagateFailure() - elif True: - d_9_manifestFileName_ = (d_3_manifestFileName_q_).value - return Wrappers.Result_Success(EsdkManifestOptions.ManifestOptions_Decrypt((d_6_manifestPath_ if (Seq.default__.Last(d_6_manifestPath_)) == ('/') else (d_6_manifestPath_) + (_dafny.Seq("/"))), d_9_manifestFileName_, (AwsCryptographyEncryptionSdkTypes.NetV4__0__0__RetryPolicy_ALLOW__RETRY() if (d_4_retryPolicy_) == (_dafny.Seq("allow")) else AwsCryptographyEncryptionSdkTypes.NetV4__0__0__RetryPolicy_FORBID__RETRY()), (d_1_testName_q_ if (d_1_testName_q_).is_Some else Wrappers.Option_None()))) - - @staticmethod - def ParseEncryptCmd(params): - d_0_manifestPath_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("manifest-path")) - d_1_manifestName_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("manifest")) - d_2_decryptManifestPath_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("decrypt-manifest-path")) - d_3_testName_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("test-name")) - d_4_manifestPath_ = ((d_0_manifestPath_q_).value if (d_0_manifestPath_q_).is_Some else _dafny.Seq(".")) - d_5_manifestName_ = ((d_1_manifestName_q_).value if (d_1_manifestName_q_).is_Some else _dafny.Seq("encrypt-manifest.json")) - d_6_decryptManifestPath_ = ((d_2_decryptManifestPath_q_).value if (d_2_decryptManifestPath_q_).is_Some else _dafny.Seq(".")) - d_7_valueOrError0_ = Wrappers.default__.Need(((0) < (len(d_4_manifestPath_))) and ((0) < (len(d_6_decryptManifestPath_))), _dafny.Seq("Invalid manifest or decrypt manifest path length\n")) - if (d_7_valueOrError0_).IsFailure(): - return (d_7_valueOrError0_).PropagateFailure() - elif True: - return Wrappers.Result_Success(EsdkManifestOptions.ManifestOptions_Encrypt((d_4_manifestPath_ if (Seq.default__.Last(d_4_manifestPath_)) == ('/') else (d_4_manifestPath_) + (_dafny.Seq("/"))), d_5_manifestName_, (d_6_decryptManifestPath_ if (Seq.default__.Last(d_6_decryptManifestPath_)) == ('/') else (d_6_decryptManifestPath_) + (_dafny.Seq("/"))), (d_3_testName_q_ if (d_3_testName_q_).is_Some else Wrappers.Option_None()))) - - @staticmethod - def ParseEncryptManifestCmd(params): - d_0_encryptManifestOutput_q_ = GetOpt.default__.OptValue(params, _dafny.Seq("encrypt-manifest-output")) - d_1_encryptManifestOutput_ = ((d_0_encryptManifestOutput_q_).value if (d_0_encryptManifestOutput_q_).is_Some else _dafny.Seq(".")) - d_2_valueOrError0_ = Wrappers.default__.Need((0) < (len(d_1_encryptManifestOutput_)), _dafny.Seq("Invalid encrypt manifest output length")) - if (d_2_valueOrError0_).IsFailure(): - return (d_2_valueOrError0_).PropagateFailure() - elif True: - return Wrappers.Result_Success(EsdkManifestOptions.ManifestOptions_EncryptManifest((d_1_encryptManifestOutput_ if (Seq.default__.Last(d_1_encryptManifestOutput_)) == ('/') else (d_1_encryptManifestOutput_) + (_dafny.Seq("/"))), 5)) - diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WriteEsdkJsonManifests.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WriteEsdkJsonManifests.py deleted file mode 100644 index 16ef270bc..000000000 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WriteEsdkJsonManifests.py +++ /dev/null @@ -1,370 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import aws_encryption_sdk_test_vectors.internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary -import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom -import aws_cryptography_primitives.internaldafny.generated.Random as Random -import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption -import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest -import aws_cryptography_primitives.internaldafny.generated.Digest as Digest -import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC -import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC -import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF -import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF -import aws_cryptography_primitives.internaldafny.generated.Signature as Signature -import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr -import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption -import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives -import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 -import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites -import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials -import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring -import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations -import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort -import smithy_dafny_standard_library.internaldafny.generated.Math as Math -import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq -import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils -import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants -import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID -import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping -import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets -import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext -import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping -import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring -import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms -import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries -import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang -import smithy_dafny_standard_library.internaldafny.generated.Time as Time -import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker -import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC -import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring -import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring -import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM -import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults -import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment -import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM -import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier -import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils -import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders -import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn -import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure -import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable -import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Core as JSON_Utils_Views_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Writers as JSON_Utils_Views_Writers -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Cursors as JSON_Utils_Cursors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Parsers as JSON_Utils_Parsers -import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals -import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals -import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul -import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals -import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals -import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod -import smithy_dafny_standard_library.internaldafny.generated.Power as Power -import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str as JSON_Utils_Str -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Seq as JSON_Utils_Seq -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Vectors as JSON_Utils_Vectors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Errors as JSON_Errors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Values as JSON_Values -import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode -import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions -import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings -import smithy_dafny_standard_library.internaldafny.generated.JSON_Spec as JSON_Spec -import smithy_dafny_standard_library.internaldafny.generated.JSON_Grammar as JSON_Grammar -import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer as JSON_Serializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer as JSON_Deserializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec -import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_API as JSON_ZeroCopy_API -import smithy_dafny_standard_library.internaldafny.generated.JSON_API as JSON_API -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.JSONHelpers as JSONHelpers -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyDescription as KeyDescription -import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyMaterial as KeyMaterial -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyrings as CreateStaticKeyrings -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyStores as CreateStaticKeyStores -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyringFromKeyDescription as KeyringFromKeyDescription -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CmmFromKeyDescription as CmmFromKeyDescription -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProviders as WrappedMaterialProviders -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeysVectorOperations as KeysVectorOperations -import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyVectors as KeyVectors -import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header -import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames -import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions -import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestVectors as TestVectors -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllHierarchy as AllHierarchy -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKms as AllKms -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAware as AllKmsMrkAware -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsRsa as AllKmsRsa -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsEcdh as AllKmsEcdh -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawAES as AllRawAES -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawRSA as AllRawRSA -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawECDH as AllRawECDH -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllDefaultCmm as AllDefaultCmm -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllMulti as AllMulti -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WriteJsonManifests as WriteJsonManifests -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CompleteVectors as CompleteVectors -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.ParseJsonManifests as ParseJsonManifests -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestManifests as TestManifests -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProvidersMain as WrappedMaterialProvidersMain -import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr -import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop -import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting -import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare -import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall -import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk_test_vectors.internaldafny.generated.WrappedESDK as WrappedESDK -import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkManifestOptions as EsdkManifestOptions -import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkTestVectors as EsdkTestVectors -import aws_encryption_sdk_test_vectors.internaldafny.generated.AllEsdkV4NoReqEc as AllEsdkV4NoReqEc -import aws_encryption_sdk_test_vectors.internaldafny.generated.AllEsdkV4WithReqEc as AllEsdkV4WithReqEc - -# Module: WriteEsdkJsonManifests - -class default__: - def __init__(self): - pass - - @staticmethod - def EncryptionContextKeysToJson(keys): - if (keys).is_Some: - def lambda0_(d_1_bytes_): - def iife0_(_pat_let0_0): - def iife1_(d_2_valueOrError1_): - def iife2_(_pat_let1_0): - def iife3_(d_3_key_): - return Wrappers.Result_Success(JSON_Values.JSON_String(d_3_key_)) - return iife3_(_pat_let1_0) - return ((d_2_valueOrError1_).PropagateFailure() if (d_2_valueOrError1_).IsFailure() else iife2_((d_2_valueOrError1_).Extract())) - return iife1_(_pat_let0_0) - return iife0_(UTF8.default__.Decode(d_1_bytes_)) - - d_0_valueOrError0_ = Seq.default__.MapWithResult(lambda0_, (keys).value) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - d_4_tmp_ = (d_0_valueOrError0_).Extract() - return Wrappers.Result_Success(_dafny.Seq([(_dafny.Seq("requiredEncryptionContextKeys"), JSON_Values.JSON_Array(d_4_tmp_))])) - elif True: - return Wrappers.Result_Success(_dafny.Seq([])) - - @staticmethod - def EncryptionContextToJson(key, m): - def lambda0_(d_1_a_, d_2_b_): - return (d_1_a_) < (d_2_b_) - - d_0_keys_ = SortedSets.default__.SetToOrderedSequence2((m).keys, lambda0_) - def lambda1_(d_4_m_): - def lambda2_(d_5_k_): - def iife0_(_pat_let2_0): - def iife1_(d_6_valueOrError1_): - def iife2_(_pat_let3_0): - def iife3_(d_7_key_): - def iife4_(_pat_let4_0): - def iife5_(d_8_valueOrError2_): - def iife6_(_pat_let5_0): - def iife7_(d_9_value_): - return Wrappers.Result_Success((d_7_key_, JSON_Values.JSON_String(d_9_value_))) - return iife7_(_pat_let5_0) - return ((d_8_valueOrError2_).PropagateFailure() if (d_8_valueOrError2_).IsFailure() else iife6_((d_8_valueOrError2_).Extract())) - return iife5_(_pat_let4_0) - return iife4_(UTF8.default__.Decode((d_4_m_)[d_5_k_])) - return iife3_(_pat_let3_0) - return ((d_6_valueOrError1_).PropagateFailure() if (d_6_valueOrError1_).IsFailure() else iife2_((d_6_valueOrError1_).Extract())) - return iife1_(_pat_let2_0) - return iife0_(UTF8.default__.Decode(d_5_k_)) - - return lambda2_ - - d_3_valueOrError0_ = Seq.default__.MapWithResult(lambda1_(m), d_0_keys_) - if (d_3_valueOrError0_).IsFailure(): - return (d_3_valueOrError0_).PropagateFailure() - elif True: - d_10_pairsBytes_ = (d_3_valueOrError0_).Extract() - return Wrappers.Result_Success(_dafny.Seq([(key, JSON_Values.JSON_Object(d_10_pairsBytes_))])) - - @staticmethod - def printJson(j): - hresult_: tuple = () - _dafny.print(_dafny.string_of(j)) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - _dafny.print(_dafny.string_of(_dafny.Seq("\n"))) - hresult_ = () - return hresult_ - return hresult_ - - @staticmethod - def EncryptTestVectorToJson(test): - d_0_valueOrError0_ = Wrappers.default__.Need((((test).algorithmSuiteId).is_Some) and (((test).frameLength).is_Some), _dafny.Seq("test is missing algorithmSuite ID, or frameLength")) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - d_1_id_ = AllAlgorithmSuites.default__.ToHex(((test).algorithmSuiteId).value) - d_2_valueOrError1_ = (default__.EncryptionContextToJson(_dafny.Seq("encryption-context"), ((test).encryptionContext).value) if ((test).encryptionContext).is_Some else default__.EncryptionContextToJson(_dafny.Seq("encryption-context"), _dafny.Map({}))) - if (d_2_valueOrError1_).IsFailure(): - return (d_2_valueOrError1_).PropagateFailure() - elif True: - d_3_encryptionContext_ = (d_2_valueOrError1_).Extract() - d_4_valueOrError2_ = Wrappers.default__.Need((len(d_3_encryptionContext_)) == (1), _dafny.Seq("Error parsing encryption context")) - if (d_4_valueOrError2_).IsFailure(): - return (d_4_valueOrError2_).PropagateFailure() - elif True: - d_5_valueOrError3_ = (default__.EncryptionContextToJson(_dafny.Seq("reproduced-encryption-context"), ((test).reproducedEncryptionContext).value) if ((test).reproducedEncryptionContext).is_Some else default__.EncryptionContextToJson(_dafny.Seq("reproduced-encryption-context"), _dafny.Map({}))) - if (d_5_valueOrError3_).IsFailure(): - return (d_5_valueOrError3_).PropagateFailure() - elif True: - d_6_reproducedEncryptionContext_ = (d_5_valueOrError3_).Extract() - d_7_optionalValues_ = (d_3_encryptionContext_) + (d_6_reproducedEncryptionContext_) - source0_ = test - if True: - if source0_.is_PositiveEncryptTestVector: - d_8_valueOrError4_ = KeyDescription.default__.ToJson((test).encryptDescriptions, 3) - if (d_8_valueOrError4_).IsFailure(): - return (d_8_valueOrError4_).PropagateFailure() - elif True: - d_9_encrypt_ = (d_8_valueOrError4_).Extract() - d_10_valueOrError5_ = KeyDescription.default__.ToJson((test).decryptDescriptions, 3) - if (d_10_valueOrError5_).IsFailure(): - return (d_10_valueOrError5_).PropagateFailure() - elif True: - d_11_decrypt_ = (d_10_valueOrError5_).Extract() - d_12_scenario_ = JSON_Values.JSON_Object((_dafny.Seq([(_dafny.Seq("type"), JSON_Values.JSON_String(_dafny.Seq("positive-esdk"))), (_dafny.Seq("plaintext"), JSON_Values.JSON_String(_dafny.Seq("small"))), (_dafny.Seq("description"), JSON_Values.JSON_String((test).description)), (_dafny.Seq("algorithmSuiteId"), JSON_Values.JSON_String(d_1_id_)), (_dafny.Seq("frame-size"), JSON_Values.JSON_Number(JSON_Values.default__.Int(((test).frameLength).value))), (_dafny.Seq("encryptKeyDescription"), d_9_encrypt_), (_dafny.Seq("decryptKeyDescription"), d_11_decrypt_)])) + (d_7_optionalValues_)) - return Wrappers.Result_Success(JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("encryption-scenario"), d_12_scenario_)]))) - if True: - return Wrappers.Result_Failure(_dafny.Seq("Only Positive Tests supported :(")) - - @staticmethod - def OptionalBytes(key, secret): - if (secret).is_Some: - d_0_base64_ = Base64.default__.Encode((secret).value) - return _dafny.Seq([(key, JSON_Values.JSON_String(d_0_base64_))]) - elif True: - return _dafny.Seq([]) - - @staticmethod - def DecryptTestVectorToJson(test): - d_0_valueOrError0_ = Wrappers.default__.Need((((test).algorithmSuiteId).is_Some) and (((test).frameLength).is_Some), _dafny.Seq("test is missing algorithmSuite ID, or frameLength")) - if (d_0_valueOrError0_).IsFailure(): - return (d_0_valueOrError0_).PropagateFailure() - elif True: - d_1_id_ = AllAlgorithmSuites.default__.ToHex(((test).algorithmSuiteId).value) - d_2_description_ = (((test).description) + (_dafny.Seq(" "))) + (d_1_id_) - d_3_valueOrError1_ = (default__.EncryptionContextToJson(_dafny.Seq("reproduced-encryption-context"), ((test).reproducedEncryptionContext).value) if ((test).reproducedEncryptionContext).is_Some else default__.EncryptionContextToJson(_dafny.Seq("reproduced-encryption-context"), _dafny.Map({}))) - if (d_3_valueOrError1_).IsFailure(): - return (d_3_valueOrError1_).PropagateFailure() - elif True: - d_4_reproducedEncryptionContext_ = (d_3_valueOrError1_).Extract() - d_5_valueOrError2_ = Wrappers.default__.Need((len(d_4_reproducedEncryptionContext_)) == (1), _dafny.Seq("Error parsing encryption context")) - if (d_5_valueOrError2_).IsFailure(): - return (d_5_valueOrError2_).PropagateFailure() - elif True: - d_6_optionalValues_ = d_4_reproducedEncryptionContext_ - source0_ = test - if True: - if source0_.is_PositiveDecryptTestVector: - d_7_valueOrError3_ = KeyDescription.default__.ToJson((test).decryptDescriptions, 3) - if (d_7_valueOrError3_).IsFailure(): - return (d_7_valueOrError3_).PropagateFailure() - elif True: - d_8_decrypt_ = (d_7_valueOrError3_).Extract() - d_9_scenario_ = JSON_Values.JSON_Object((_dafny.Seq([(_dafny.Seq("type"), JSON_Values.JSON_String(_dafny.Seq("positive-esdk"))), (_dafny.Seq("ciphertext"), JSON_Values.JSON_String((_dafny.Seq("file://ciphertexts/")) + ((test).id))), (_dafny.Seq("result"), JSON_Values.JSON_String((_dafny.Seq("file://")) + ((test).plaintextPath))), (_dafny.Seq("algorithmSuiteId"), JSON_Values.JSON_String(d_1_id_)), (_dafny.Seq("frame-size"), JSON_Values.JSON_Number(JSON_Values.default__.Int(((test).frameLength).value))), (_dafny.Seq("description"), JSON_Values.JSON_String((test).description)), (_dafny.Seq("decryptKeyDescription"), d_8_decrypt_)])) + (d_6_optionalValues_)) - return Wrappers.Result_Success(JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("decryption-scenario"), d_9_scenario_)]))) - if True: - return Wrappers.Result_Failure(_dafny.Seq("Only Positive Tests supported :(")) - diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WriteVectors.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WriteVectors.py deleted file mode 100644 index 8c220a302..000000000 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/WriteVectors.py +++ /dev/null @@ -1,374 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import aws_encryption_sdk_test_vectors.internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary -import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom -import aws_cryptography_primitives.internaldafny.generated.Random as Random -import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption -import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest -import aws_cryptography_primitives.internaldafny.generated.Digest as Digest -import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC -import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC -import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF -import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF -import aws_cryptography_primitives.internaldafny.generated.Signature as Signature -import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr -import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption -import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives -import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 -import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites -import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials -import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring -import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations -import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort -import smithy_dafny_standard_library.internaldafny.generated.Math as Math -import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq -import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils -import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants -import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID -import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping -import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets -import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext -import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping -import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring -import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms -import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries -import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang -import smithy_dafny_standard_library.internaldafny.generated.Time as Time -import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker -import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC -import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring -import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring -import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM -import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults -import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment -import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM -import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier -import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils -import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders -import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn -import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure -import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable -import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Core as JSON_Utils_Views_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Writers as JSON_Utils_Views_Writers -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Cursors as JSON_Utils_Cursors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Parsers as JSON_Utils_Parsers -import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals -import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals -import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul -import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals -import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals -import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod -import smithy_dafny_standard_library.internaldafny.generated.Power as Power -import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str as JSON_Utils_Str -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Seq as JSON_Utils_Seq -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Vectors as JSON_Utils_Vectors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Errors as JSON_Errors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Values as JSON_Values -import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode -import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions -import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings -import smithy_dafny_standard_library.internaldafny.generated.JSON_Spec as JSON_Spec -import smithy_dafny_standard_library.internaldafny.generated.JSON_Grammar as JSON_Grammar -import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer as JSON_Serializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer as JSON_Deserializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec -import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_API as JSON_ZeroCopy_API -import smithy_dafny_standard_library.internaldafny.generated.JSON_API as JSON_API -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.JSONHelpers as JSONHelpers -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyDescription as KeyDescription -import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyMaterial as KeyMaterial -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyrings as CreateStaticKeyrings -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyStores as CreateStaticKeyStores -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyringFromKeyDescription as KeyringFromKeyDescription -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CmmFromKeyDescription as CmmFromKeyDescription -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProviders as WrappedMaterialProviders -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeysVectorOperations as KeysVectorOperations -import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyVectors as KeyVectors -import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header -import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames -import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions -import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestVectors as TestVectors -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllHierarchy as AllHierarchy -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKms as AllKms -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAware as AllKmsMrkAware -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsRsa as AllKmsRsa -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsEcdh as AllKmsEcdh -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawAES as AllRawAES -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawRSA as AllRawRSA -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawECDH as AllRawECDH -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllDefaultCmm as AllDefaultCmm -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllMulti as AllMulti -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WriteJsonManifests as WriteJsonManifests -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CompleteVectors as CompleteVectors -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.ParseJsonManifests as ParseJsonManifests -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestManifests as TestManifests -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProvidersMain as WrappedMaterialProvidersMain -import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr -import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop -import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting -import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare -import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall -import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk_test_vectors.internaldafny.generated.WrappedESDK as WrappedESDK -import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkManifestOptions as EsdkManifestOptions -import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkTestVectors as EsdkTestVectors -import aws_encryption_sdk_test_vectors.internaldafny.generated.AllEsdkV4NoReqEc as AllEsdkV4NoReqEc -import aws_encryption_sdk_test_vectors.internaldafny.generated.AllEsdkV4WithReqEc as AllEsdkV4WithReqEc -import aws_encryption_sdk_test_vectors.internaldafny.generated.WriteEsdkJsonManifests as WriteEsdkJsonManifests - -# Module: WriteVectors - -class default__: - def __init__(self): - pass - - @staticmethod - def GetCommitmentPolicyString(algorithmSuite): - source0_ = (algorithmSuite).id - if True: - if source0_.is_ESDK: - if ((algorithmSuite).commitment).is_None: - return _dafny.Seq("FORBID_ENCRYPT_ALLOW_DECRYPT") - elif True: - return _dafny.Seq("REQUIRE_ENCRYPT_REQUIRE_DECRYPT") - if True: - return _dafny.Seq("NOT SUPPORTED FOR UNSTRUCTURED ENCRYPTION") - - @staticmethod - def GetCommitmentPolicyType(commitmentPolicy): - if (commitmentPolicy) == (_dafny.Seq("FORBID_ENCRYPT_ALLOW_DECRYPT")): - return AwsCryptographyMaterialProvidersTypes.CommitmentPolicy_ESDK(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT()) - elif True: - return AwsCryptographyMaterialProvidersTypes.CommitmentPolicy_ESDK(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT()) - - @staticmethod - def WriteTestVectors(op): - output: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() - d_0_version_: int - d_0_version_ = (op).version - d_1_valueOrError0_: Wrappers.Result = Wrappers.Result.default(_dafny.Set)() - d_1_valueOrError0_ = default__.getVersionTests(d_0_version_) - if (d_1_valueOrError0_).IsFailure(): - output = (d_1_valueOrError0_).PropagateFailure() - return output - d_2_allTests_: _dafny.Set - d_2_allTests_ = (d_1_valueOrError0_).Extract() - d_3_tests_: _dafny.Seq - out0_: _dafny.Seq - out0_ = SortedSets.default__.SetToSequence(d_2_allTests_) - d_3_tests_ = out0_ - d_4_sortedTests_: _dafny.Seq - d_4_sortedTests_ = Seq_MergeSort.default__.MergeSortBy(d_3_tests_, default__.DescriptionLessThan) - d_5_testsJSON_: _dafny.Seq - d_5_testsJSON_ = _dafny.Seq([]) - hi0_ = len(d_4_sortedTests_) - for d_6_i_ in range(0, hi0_): - d_7_valueOrError1_: Wrappers.Outcome = Wrappers.Outcome.default()() - d_7_valueOrError1_ = Wrappers.default__.Need((True) and ((((d_4_sortedTests_)[d_6_i_]).algorithmSuiteId).is_Some), _dafny.Seq("No algorithm suite defined in test")) - if (d_7_valueOrError1_).IsFailure(): - output = (d_7_valueOrError1_).PropagateFailure() - return output - d_8_id_: _dafny.Seq - d_8_id_ = AllAlgorithmSuites.default__.ToHex((((d_4_sortedTests_)[d_6_i_]).algorithmSuiteId).value) - d_9_valueOrError2_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - out1_: Wrappers.Result - out1_ = UUID.default__.GenerateUUID() - d_9_valueOrError2_ = out1_ - if not(not((d_9_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/WriteVectors.dfy(82,18): " + _dafny.string_of(d_9_valueOrError2_)) - d_10_uuid_: _dafny.Seq - d_10_uuid_ = (d_9_valueOrError2_).Extract() - d_11_valueOrError3_: Wrappers.Result = Wrappers.Result.default(JSON_Values.JSON.default())() - d_11_valueOrError3_ = WriteEsdkJsonManifests.default__.EncryptTestVectorToJson((d_4_sortedTests_)[d_6_i_]) - if (d_11_valueOrError3_).IsFailure(): - output = (d_11_valueOrError3_).PropagateFailure() - return output - d_12_test_: JSON_Values.JSON - d_12_test_ = (d_11_valueOrError3_).Extract() - d_5_testsJSON_ = (d_5_testsJSON_) + (_dafny.Seq([(d_10_uuid_, d_12_test_)])) - d_13_manifestJson_: JSON_Values.JSON - d_13_manifestJson_ = JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("type"), JSON_Values.JSON_String(_dafny.Seq("awses-encrypt"))), (_dafny.Seq("version"), JSON_Values.JSON_Number(JSON_Values.default__.Int(5)))])) - d_14_clientJson_: JSON_Values.JSON - d_14_clientJson_ = JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("name"), JSON_Values.JSON_String(_dafny.Seq("aws-encryption-sdk-dafny"))), (_dafny.Seq("version"), JSON_Values.JSON_String(_dafny.Seq("4.1.0")))])) - d_15_plaintexts_: JSON_Values.JSON - d_15_plaintexts_ = JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("small"), JSON_Values.JSON_Number(JSON_Values.default__.Int(10240)))])) - d_16_esdkEncryptManifests_: JSON_Values.JSON - d_16_esdkEncryptManifests_ = JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("manifest"), d_13_manifestJson_), (_dafny.Seq("client"), d_14_clientJson_), (_dafny.Seq("keys"), JSON_Values.JSON_String(_dafny.Seq("file://keys.json"))), (_dafny.Seq("plaintexts"), d_15_plaintexts_), (_dafny.Seq("tests"), JSON_Values.JSON_Object(d_5_testsJSON_))])) - d_17_valueOrError4_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_17_valueOrError4_ = JSON_API.default__.Serialize(d_16_esdkEncryptManifests_) - if not(not((d_17_valueOrError4_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/WriteVectors.dfy(107,36): " + _dafny.string_of(d_17_valueOrError4_)) - d_18_esdkEncryptManifestBytes_: _dafny.Seq - d_18_esdkEncryptManifestBytes_ = (d_17_valueOrError4_).Extract() - d_19_esdkEncryptManifestBv_: _dafny.Seq - d_19_esdkEncryptManifestBv_ = JSONHelpers.default__.BytesBv(d_18_esdkEncryptManifestBytes_) - d_20_valueOrError5_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() - out2_: Wrappers.Result - out2_ = FileIO.default__.WriteBytesToFile(((op).encryptManifestOutput) + (_dafny.Seq("encrypt-manifest.json")), d_19_esdkEncryptManifestBv_) - d_20_valueOrError5_ = out2_ - if not(not((d_20_valueOrError5_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/WriteVectors.dfy(110,13): " + _dafny.string_of(d_20_valueOrError5_)) - d_21___v2_: tuple - d_21___v2_ = (d_20_valueOrError5_).Extract() - output = Wrappers.Result_Success(()) - return output - - @staticmethod - def WriteDecryptManifest(op, keys, tests): - output: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() - d_0_testsJSON_: _dafny.Seq - d_0_testsJSON_ = _dafny.Seq([]) - hi0_ = len(tests) - for d_1_i_ in range(0, hi0_): - d_2_name_: _dafny.Seq - d_2_name_ = ((tests)[d_1_i_]).id - d_3_valueOrError0_: Wrappers.Result = Wrappers.Result.default(JSON_Values.JSON.default())() - d_3_valueOrError0_ = WriteEsdkJsonManifests.default__.DecryptTestVectorToJson((tests)[d_1_i_]) - if (d_3_valueOrError0_).IsFailure(): - output = (d_3_valueOrError0_).PropagateFailure() - return output - d_4_test_: JSON_Values.JSON - d_4_test_ = (d_3_valueOrError0_).Extract() - d_0_testsJSON_ = (d_0_testsJSON_) + (_dafny.Seq([(d_2_name_, d_4_test_)])) - d_5_manifestJson_: JSON_Values.JSON - d_5_manifestJson_ = JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("type"), JSON_Values.JSON_String(_dafny.Seq("awses-decrypt"))), (_dafny.Seq("version"), JSON_Values.JSON_Number(JSON_Values.default__.Int(5)))])) - d_6_clientJson_: JSON_Values.JSON - d_6_clientJson_ = JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("name"), JSON_Values.JSON_String(_dafny.Seq("aws-encryption-sdk-dafny"))), (_dafny.Seq("version"), JSON_Values.JSON_String(_dafny.Seq("4.1.0")))])) - d_7_esdkDecryptManifest_: JSON_Values.JSON - d_7_esdkDecryptManifest_ = JSON_Values.JSON_Object(_dafny.Seq([(_dafny.Seq("manifest"), d_5_manifestJson_), (_dafny.Seq("client"), d_6_clientJson_), (_dafny.Seq("keys"), JSON_Values.JSON_String(_dafny.Seq("file://keys.json"))), (_dafny.Seq("tests"), JSON_Values.JSON_Object(d_0_testsJSON_))])) - d_8_valueOrError1_: Wrappers.Result = Wrappers.Result.default(_dafny.Seq)() - d_8_valueOrError1_ = JSON_API.default__.Serialize(d_7_esdkDecryptManifest_) - if not(not((d_8_valueOrError1_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/WriteVectors.dfy(154,36): " + _dafny.string_of(d_8_valueOrError1_)) - d_9_esdkDecryptManifestBytes_: _dafny.Seq - d_9_esdkDecryptManifestBytes_ = (d_8_valueOrError1_).Extract() - d_10_esdkDecryptManifestBv_: _dafny.Seq - d_10_esdkDecryptManifestBv_ = JSONHelpers.default__.BytesBv(d_9_esdkDecryptManifestBytes_) - d_11_valueOrError2_: Wrappers.Result = Wrappers.Result.default(_dafny.defaults.tuple())() - out0_: Wrappers.Result - out0_ = FileIO.default__.WriteBytesToFile(((op).decryptManifestOutput) + (_dafny.Seq("decrypt-manifest.json")), d_10_esdkDecryptManifestBv_) - d_11_valueOrError2_ = out0_ - if not(not((d_11_valueOrError2_).IsFailure())): - raise _dafny.HaltException("dafny/TestVectors/src/WriteVectors.dfy(157,13): " + _dafny.string_of(d_11_valueOrError2_)) - d_12___v3_: tuple - d_12___v3_ = (d_11_valueOrError2_).Extract() - output = Wrappers.Result_Success(()) - return output - - @staticmethod - def getVersionTests(version): - source0_ = version - if True: - if (source0_) == (5): - return Wrappers.Result_Success((AllEsdkV4NoReqEc.default__.Tests) | (AllEsdkV4WithReqEc.default__.Tests)) - if True: - return Wrappers.Result_Failure(_dafny.Seq("Only version 4 of generate manifest is supported\n")) - - @staticmethod - def DescriptionLessThan(x, y): - return default__.Below((x).description, (y).description) - - @staticmethod - def Below(x, y): - return not ((len(x)) != (0)) or ((((len(y)) != (0)) and (((x)[0]) <= ((y)[0]))) and (not (((x)[0]) == ((y)[0])) or (default__.Below(_dafny.Seq((x)[1::]), _dafny.Seq((y)[1::]))))) - diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__main__.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__main__.py deleted file mode 100644 index 7303208b4..000000000 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/__main__.py +++ /dev/null @@ -1,15 +0,0 @@ -# Dafny program the_program compiled into Python -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import aws_encryption_sdk_test_vectors.internaldafny.generated.module_ as module_ -import _dafny as _dafny - -try: - dafnyArgs = [_dafny.Seq(a) for a in sys.argv] - module_.default__.Test____Main____(dafnyArgs) -except _dafny.HaltException as e: - _dafny.print("[Program halted] " + e.message + "\n") - sys.exit(1) diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/module_.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/module_.py deleted file mode 100644 index 4a63a5ac5..000000000 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/generated/module_.py +++ /dev/null @@ -1,235 +0,0 @@ -import sys -from typing import Callable, Any, TypeVar, NamedTuple -from math import floor -from itertools import count - -import aws_encryption_sdk_test_vectors.internaldafny.generated.module_ as module_ -import _dafny as _dafny -import System_ as System_ -import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers -import smithy_dafny_standard_library.internaldafny.generated.BoundedInts as BoundedInts -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_UInt as StandardLibrary_UInt -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_Sequence as StandardLibrary_Sequence -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary_String as StandardLibrary_String -import smithy_dafny_standard_library.internaldafny.generated.StandardLibrary as StandardLibrary -import smithy_dafny_standard_library.internaldafny.generated.UTF8 as UTF8 -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesTypes as AwsCryptographyPrimitivesTypes -import aws_cryptography_primitives.internaldafny.generated.ExternRandom as ExternRandom -import aws_cryptography_primitives.internaldafny.generated.Random as Random -import aws_cryptography_primitives.internaldafny.generated.AESEncryption as AESEncryption -import aws_cryptography_primitives.internaldafny.generated.ExternDigest as ExternDigest -import aws_cryptography_primitives.internaldafny.generated.Digest as Digest -import aws_cryptography_primitives.internaldafny.generated.HMAC as HMAC -import aws_cryptography_primitives.internaldafny.generated.WrappedHMAC as WrappedHMAC -import aws_cryptography_primitives.internaldafny.generated.HKDF as HKDF -import aws_cryptography_primitives.internaldafny.generated.WrappedHKDF as WrappedHKDF -import aws_cryptography_primitives.internaldafny.generated.Signature as Signature -import aws_cryptography_primitives.internaldafny.generated.KdfCtr as KdfCtr -import aws_cryptography_primitives.internaldafny.generated.RSAEncryption as RSAEncryption -import aws_cryptography_primitives.internaldafny.generated.ECDH as ECDH -import aws_cryptography_primitives.internaldafny.generated.AwsCryptographyPrimitivesOperations as AwsCryptographyPrimitivesOperations -import aws_cryptography_primitives.internaldafny.generated.AtomicPrimitives as AtomicPrimitives -import aws_cryptography_internal_dynamodb.internaldafny.generated.ComAmazonawsDynamodbTypes as ComAmazonawsDynamodbTypes -import aws_cryptography_internal_kms.internaldafny.generated.ComAmazonawsKmsTypes as ComAmazonawsKmsTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreTypes as AwsCryptographyKeyStoreTypes -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersTypes as AwsCryptographyMaterialProvidersTypes -import smithy_dafny_standard_library.internaldafny.generated.Base64 as Base64 -import aws_cryptographic_material_providers.internaldafny.generated.AlgorithmSuites as AlgorithmSuites -import aws_cryptographic_material_providers.internaldafny.generated.Materials as Materials -import aws_cryptographic_material_providers.internaldafny.generated.Keyring as Keyring -import smithy_dafny_standard_library.internaldafny.generated.Relations as Relations -import smithy_dafny_standard_library.internaldafny.generated.Seq_MergeSort as Seq_MergeSort -import smithy_dafny_standard_library.internaldafny.generated.Math as Math -import smithy_dafny_standard_library.internaldafny.generated.Seq as Seq -import aws_cryptographic_material_providers.internaldafny.generated.MultiKeyring as MultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsArnParsing as AwsArnParsing -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkAreUnique as AwsKmsMrkAreUnique -import smithy_dafny_standard_library.internaldafny.generated.Actions as Actions -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkMatchForDecrypt as AwsKmsMrkMatchForDecrypt -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsUtils as AwsKmsUtils -import aws_cryptographic_material_providers.internaldafny.generated.Constants as Constants -import smithy_dafny_standard_library.internaldafny.generated.UUID as UUID -import aws_cryptographic_material_providers.internaldafny.generated.MaterialWrapping as MaterialWrapping -import smithy_dafny_standard_library.internaldafny.generated.SortedSets as SortedSets -import aws_cryptographic_material_providers.internaldafny.generated.CanonicalEncryptionContext as CanonicalEncryptionContext -import aws_cryptographic_material_providers.internaldafny.generated.IntermediateKeyWrapping as IntermediateKeyWrapping -import aws_cryptographic_material_providers.internaldafny.generated.EdkWrapping as EdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.ErrorMessages as ErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsKeyring as AwsKmsKeyring -import aws_cryptographic_material_providers.internaldafny.generated.StrictMultiKeyring as StrictMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsDiscoveryKeyring as AwsKmsDiscoveryKeyring -import aws_cryptography_internal_kms.internaldafny.generated.Com_Amazonaws_Kms as Com_Amazonaws_Kms -import aws_cryptography_internal_dynamodb.internaldafny.generated.Com_Amazonaws_Dynamodb as Com_Amazonaws_Dynamodb -import aws_cryptographic_material_providers.internaldafny.generated.DiscoveryMultiKeyring as DiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkDiscoveryKeyring as AwsKmsMrkDiscoveryKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareDiscoveryMultiKeyring as MrkAwareDiscoveryMultiKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsMrkKeyring as AwsKmsMrkKeyring -import aws_cryptographic_material_providers.internaldafny.generated.MrkAwareStrictMultiKeyring as MrkAwareStrictMultiKeyring -import smithy_dafny_standard_library.internaldafny.generated.DafnyLibraries as DafnyLibraries -import smithy_dafny_standard_library.internaldafny.generated.OsLang as OsLang -import smithy_dafny_standard_library.internaldafny.generated.Time as Time -import aws_cryptographic_material_providers.internaldafny.generated.LocalCMC as LocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.SynchronizedLocalCMC as SynchronizedLocalCMC -import aws_cryptographic_material_providers.internaldafny.generated.StormTracker as StormTracker -import aws_cryptographic_material_providers.internaldafny.generated.StormTrackingCMC as StormTrackingCMC -import aws_cryptographic_material_providers.internaldafny.generated.CacheConstants as CacheConstants -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsHierarchicalKeyring as AwsKmsHierarchicalKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsRsaKeyring as AwsKmsRsaKeyring -import aws_cryptographic_material_providers.internaldafny.generated.EcdhEdkWrapping as EcdhEdkWrapping -import aws_cryptographic_material_providers.internaldafny.generated.RawECDHKeyring as RawECDHKeyring -import aws_cryptographic_material_providers.internaldafny.generated.AwsKmsEcdhKeyring as AwsKmsEcdhKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawAESKeyring as RawAESKeyring -import aws_cryptographic_material_providers.internaldafny.generated.RawRSAKeyring as RawRSAKeyring -import aws_cryptographic_material_providers.internaldafny.generated.CMM as CMM -import aws_cryptographic_material_providers.internaldafny.generated.Defaults as Defaults -import aws_cryptographic_material_providers.internaldafny.generated.Commitment as Commitment -import aws_cryptographic_material_providers.internaldafny.generated.DefaultCMM as DefaultCMM -import aws_cryptographic_material_providers.internaldafny.generated.DefaultClientSupplier as DefaultClientSupplier -import aws_cryptographic_material_providers.internaldafny.generated.Utils as Utils -import aws_cryptographic_material_providers.internaldafny.generated.RequiredEncryptionContextCMM as RequiredEncryptionContextCMM -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyMaterialProvidersOperations as AwsCryptographyMaterialProvidersOperations -import aws_cryptographic_material_providers.internaldafny.generated.MaterialProviders as MaterialProviders -import aws_cryptographic_material_providers.internaldafny.generated.KeyStoreErrorMessages as KeyStoreErrorMessages -import aws_cryptographic_material_providers.internaldafny.generated.KmsArn as KmsArn -import aws_cryptographic_material_providers.internaldafny.generated.Structure as Structure -import aws_cryptographic_material_providers.internaldafny.generated.KMSKeystoreOperations as KMSKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.DDBKeystoreOperations as DDBKeystoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeys as CreateKeys -import aws_cryptographic_material_providers.internaldafny.generated.CreateKeyStoreTable as CreateKeyStoreTable -import aws_cryptographic_material_providers.internaldafny.generated.GetKeys as GetKeys -import aws_cryptographic_material_providers.internaldafny.generated.AwsCryptographyKeyStoreOperations as AwsCryptographyKeyStoreOperations -import aws_cryptographic_material_providers.internaldafny.generated.KeyStore as KeyStore -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AwsCryptographyMaterialProvidersTestVectorKeysTypes as AwsCryptographyMaterialProvidersTestVectorKeysTypes -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Core as JSON_Utils_Views_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Views_Writers as JSON_Utils_Views_Writers -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Core as JSON_Utils_Lexers_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Lexers_Strings as JSON_Utils_Lexers_Strings -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Cursors as JSON_Utils_Cursors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Parsers as JSON_Utils_Parsers -import smithy_dafny_standard_library.internaldafny.generated.GeneralInternals as GeneralInternals -import smithy_dafny_standard_library.internaldafny.generated.MulInternalsNonlinear as MulInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.MulInternals as MulInternals -import smithy_dafny_standard_library.internaldafny.generated.Mul as Mul -import smithy_dafny_standard_library.internaldafny.generated.ModInternalsNonlinear as ModInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.DivInternalsNonlinear as DivInternalsNonlinear -import smithy_dafny_standard_library.internaldafny.generated.ModInternals as ModInternals -import smithy_dafny_standard_library.internaldafny.generated.DivInternals as DivInternals -import smithy_dafny_standard_library.internaldafny.generated.DivMod as DivMod -import smithy_dafny_standard_library.internaldafny.generated.Power as Power -import smithy_dafny_standard_library.internaldafny.generated.Logarithm as Logarithm -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrConversion as JSON_Utils_Str_CharStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str_CharStrEscaping as JSON_Utils_Str_CharStrEscaping -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Str as JSON_Utils_Str -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Seq as JSON_Utils_Seq -import smithy_dafny_standard_library.internaldafny.generated.JSON_Utils_Vectors as JSON_Utils_Vectors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Errors as JSON_Errors -import smithy_dafny_standard_library.internaldafny.generated.JSON_Values as JSON_Values -import smithy_dafny_standard_library.internaldafny.generated.Unicode as Unicode -import smithy_dafny_standard_library.internaldafny.generated.Functions as Functions -import smithy_dafny_standard_library.internaldafny.generated.Utf8EncodingForm as Utf8EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.Utf16EncodingForm as Utf16EncodingForm -import smithy_dafny_standard_library.internaldafny.generated.UnicodeStrings as UnicodeStrings -import smithy_dafny_standard_library.internaldafny.generated.JSON_Spec as JSON_Spec -import smithy_dafny_standard_library.internaldafny.generated.JSON_Grammar as JSON_Grammar -import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer_ByteStrConversion as JSON_Serializer_ByteStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Serializer as JSON_Serializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_Uint16StrConversion as JSON_Deserializer_Uint16StrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer_ByteStrConversion as JSON_Deserializer_ByteStrConversion -import smithy_dafny_standard_library.internaldafny.generated.JSON_Deserializer as JSON_Deserializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_Spec as JSON_ConcreteSyntax_Spec -import smithy_dafny_standard_library.internaldafny.generated.JSON_ConcreteSyntax_SpecProperties as JSON_ConcreteSyntax_SpecProperties -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Serializer as JSON_ZeroCopy_Serializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Core as JSON_ZeroCopy_Deserializer_Core -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Strings as JSON_ZeroCopy_Deserializer_Strings -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Numbers as JSON_ZeroCopy_Deserializer_Numbers -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ObjectParams as JSON_ZeroCopy_Deserializer_ObjectParams -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Objects as JSON_ZeroCopy_Deserializer_Objects -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_ArrayParams as JSON_ZeroCopy_Deserializer_ArrayParams -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Arrays as JSON_ZeroCopy_Deserializer_Arrays -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Constants as JSON_ZeroCopy_Deserializer_Constants -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_Values as JSON_ZeroCopy_Deserializer_Values -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer_API as JSON_ZeroCopy_Deserializer_API -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_Deserializer as JSON_ZeroCopy_Deserializer -import smithy_dafny_standard_library.internaldafny.generated.JSON_ZeroCopy_API as JSON_ZeroCopy_API -import smithy_dafny_standard_library.internaldafny.generated.JSON_API as JSON_API -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.JSONHelpers as JSONHelpers -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyDescription as KeyDescription -import smithy_dafny_standard_library.internaldafny.generated.HexStrings as HexStrings -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyMaterial as KeyMaterial -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyrings as CreateStaticKeyrings -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CreateStaticKeyStores as CreateStaticKeyStores -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyringFromKeyDescription as KeyringFromKeyDescription -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CmmFromKeyDescription as CmmFromKeyDescription -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProviders as WrappedMaterialProviders -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeysVectorOperations as KeysVectorOperations -import smithy_dafny_standard_library.internaldafny.generated.FileIO as FileIO -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.KeyVectors as KeyVectors -import aws_encryption_sdk_dafny.internaldafny.generated.AwsCryptographyEncryptionSdkTypes as AwsCryptographyEncryptionSdkTypes -import smithy_dafny_standard_library.internaldafny.generated.Streams as Streams -import aws_encryption_sdk_dafny.internaldafny.generated.SerializableTypes as SerializableTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SerializeFunctions as SerializeFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptionContext as EncryptionContext -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderTypes as HeaderTypes -import aws_encryption_sdk_dafny.internaldafny.generated.SharedHeaderFunctions as SharedHeaderFunctions -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptedDataKeys as EncryptedDataKeys -import aws_encryption_sdk_dafny.internaldafny.generated.V1HeaderBody as V1HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.V2HeaderBody as V2HeaderBody -import aws_encryption_sdk_dafny.internaldafny.generated.HeaderAuth as HeaderAuth -import aws_encryption_sdk_dafny.internaldafny.generated.Header as Header -import aws_encryption_sdk_dafny.internaldafny.generated.Frames as Frames -import aws_encryption_sdk_dafny.internaldafny.generated.MessageBody as MessageBody -import aws_encryption_sdk_dafny.internaldafny.generated.KeyDerivation as KeyDerivation -import aws_encryption_sdk_dafny.internaldafny.generated.EncryptDecryptHelpers as EncryptDecryptHelpers -import aws_encryption_sdk_dafny.internaldafny.generated.AwsEncryptionSdkOperations as AwsEncryptionSdkOperations -import aws_encryption_sdk_dafny.internaldafny.generated.ESDK as ESDK -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.MplManifestOptions as MplManifestOptions -import smithy_dafny_standard_library.internaldafny.generated.GetOpt as GetOpt -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllAlgorithmSuites as AllAlgorithmSuites -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestVectors as TestVectors -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllHierarchy as AllHierarchy -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKms as AllKms -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAware as AllKmsMrkAware -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsMrkAwareDiscovery as AllKmsMrkAwareDiscovery -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsRsa as AllKmsRsa -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllKmsEcdh as AllKmsEcdh -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawAES as AllRawAES -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawRSA as AllRawRSA -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRawECDH as AllRawECDH -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllDefaultCmm as AllDefaultCmm -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllRequiredEncryptionContextCmm as AllRequiredEncryptionContextCmm -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.AllMulti as AllMulti -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WriteJsonManifests as WriteJsonManifests -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.CompleteVectors as CompleteVectors -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.ParseJsonManifests as ParseJsonManifests -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.TestManifests as TestManifests -import aws_cryptography_materialproviders_test_vectors.internaldafny.generated.WrappedMaterialProvidersMain as WrappedMaterialProvidersMain -import aws_cryptography_primitives.internaldafny.generated.AesKdfCtr as AesKdfCtr -import smithy_dafny_standard_library.internaldafny.generated.StandardLibraryInterop as StandardLibraryInterop -import smithy_dafny_standard_library.internaldafny.generated.Sorting as Sorting -import smithy_dafny_standard_library.internaldafny.generated.FloatCompare as FloatCompare -import smithy_dafny_standard_library.internaldafny.generated.ConcurrentCall as ConcurrentCall -import smithy_dafny_standard_library.internaldafny.generated.Base64Lemmas as Base64Lemmas -import aws_encryption_sdk_test_vectors.internaldafny.generated.WrappedESDK as WrappedESDK -import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkManifestOptions as EsdkManifestOptions -import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkTestVectors as EsdkTestVectors -import aws_encryption_sdk_test_vectors.internaldafny.generated.AllEsdkV4NoReqEc as AllEsdkV4NoReqEc -import aws_encryption_sdk_test_vectors.internaldafny.generated.AllEsdkV4WithReqEc as AllEsdkV4WithReqEc -import aws_encryption_sdk_test_vectors.internaldafny.generated.WriteEsdkJsonManifests as WriteEsdkJsonManifests -import aws_encryption_sdk_test_vectors.internaldafny.generated.WriteVectors as WriteVectors -import aws_encryption_sdk_test_vectors.internaldafny.generated.ParseEsdkJsonManifest as ParseEsdkJsonManifest -import aws_encryption_sdk_test_vectors.internaldafny.generated.EsdkTestManifests as EsdkTestManifests -import aws_encryption_sdk_test_vectors.internaldafny.generated.WrappedESDKMain as WrappedESDKMain - -# Module: module_ - -class default__: - def __init__(self): - pass - - @staticmethod - def Test____Main____(noArgsParameter__): - d_0_success_: bool - d_0_success_ = True - if not(d_0_success_): - raise _dafny.HaltException("(1,0): " + _dafny.string_of(_dafny.Seq("Test failures occurred: see above.\n"))) - diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/smithygenerated/aws_cryptography_encryptionsdk/__pycache__/__init__.cpython-311.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/smithygenerated/aws_cryptography_encryptionsdk/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index 6e3de545550874ff905bd6cf8a1a74178515cd64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 282 zcmYk%K}th05CG7`qKHsDhl_76ARfVu+EpQhWc)w$|0K-JZ^=nKLUG|;1drea3f*<( z{L-Scn9L;eNV1*JZX{~qa IoNy+4zpLt4cK`qY diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/smithygenerated/aws_cryptography_encryptionsdk/__pycache__/__init__.cpython-312.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/smithygenerated/aws_cryptography_encryptionsdk/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 239a759b69941689af6346dc21f2a66fdd49b0ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 270 zcmZ9`L23gr3;@7&(?AL2AuVkDfs!ZW)b`SYF}AX6vTGYj+u)bv4LRf`x#SOdLCGzr zYD1u<0%6H$kdE{Dtde+1pUp|$^Vs~4%cK14s!~0x)xN?9=`Q2U^`PGgkaRb=-uV>u zHsL0B)`7NLsv$ZonL~;-`AzNZIu`u~#2?@|iNhgs=z(-D+zKajBQ(Fz2sA9jeBBN8 zf!oqR1hfqPHh)`_8nn4Bf3R3>Oo)MvS>$qkdhL@RI#}XVu2+&Y7T*)46i%f20b|}( Ay#N3J diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/smithygenerated/aws_cryptography_encryptionsdk/__pycache__/shim.cpython-311.pyc b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/smithygenerated/aws_cryptography_encryptionsdk/__pycache__/shim.cpython-311.pyc deleted file mode 100644 index 3c14e4f2b1a5ee4db559b21414488e91463a1f54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3959 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 bzA3G&HEi7!uMhwEB~qJEN?S6LOK|oDkk35& diff --git a/TestVectors/runtimes/python/test/internaldafny/__pycache__/__init__.cpython-312.pyc b/TestVectors/runtimes/python/test/internaldafny/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 9400f60078d734d05555fd90a8dd23c3d609a5d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206 zcmZ8aOA5j;6ilpw2tA04nhS_WaHVcsgpfQnnjc9@$w@qecodJ}38cHOe8rsuk2mw) z4D+h%1wlOFc)sF(kK!Nw6fbvD$dYa!Bu-HEqi3*epCBe?T4|;7j&(lXf)Ns!=u!ht z#uBpju1V_FC~;Ua#dCM?U&KnM2AnQcl*Oo+jF z_X6=^Pb%@k!IOVQoAf~TMB<5C6K-7e%`QbsI5@lWX5M@IzJL2|WJE)-e)2b~y9tDT zE2h8Fr_EGwLlZkQAsoJLE73YVfsE3WQE&|tayU34QAB??yiz2=8D@S0h56wE5dV#-&9OR zTc~kKOxyMvlGG&$Ji;B{69I8NTDO@bg1xPC!6;d7#$L*+%w@t1Kot4YmKnri7lU2= ztfIvsNrT%qr07y&!j4m9B&ad6r2H9FrMg5M7Sue5${@A7TBF9TT5LLC!QFrf*R&%e zBeIY6o~ZcXC29qCWA~??DU@Rco@iFIBQ>u16RaQofwh^{*@p7Bsp)4$9w|VSaF~fz zma^zCz$r??J{|`GxKx-#4t|GVItb>HoEHkZdpOJ)hGTNqFiMFqf96}{K`RtWrHVpM z8u|;#gw*Z23@xt3`90r%Xpr0eCV9(@6t_A)9+>Z0xj++k9O zUe~}}HAEliQ6!3cY&2rLK%+wKU+aZJ^;MPAbs$^lAa%Qa*?SCHR2mDjhCw~cFv8q& zo!fvm84f@4o5mS8X`F)1lu(??z9Lvd@PLK+Gf|lB%QP^KvN1)Nlua3?);#X24ys{7 zoV4_99)x29br~?#Fy)&;EzGFDz@;G)8OSgyXAcSWhl(K}C%FePwjYWcz^cZ}UqE_E zjBziQ!Kofnq<}Eqg8DCgw5{klEMD80`!u)v`pe?y#qWHUfQTl*8;sr#Mc zY_~YuMq`I4xt;qs`hK)sxY>HzDU>^?(nXavsvMlxJnIyuJ7}hhX4+`x5Ea{lZ!d-M MogQR$kwmrq1$oSP>;M1& diff --git a/TestVectors/runtimes/python/test/internaldafny/__pycache__/test_dafny_wrapper.cpython-312-pytest-7.4.4.pyc b/TestVectors/runtimes/python/test/internaldafny/__pycache__/test_dafny_wrapper.cpython-312-pytest-7.4.4.pyc deleted file mode 100644 index 15c03764e3dde217362d03528469e36a9ef3f668..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1214 zcmb7Dy=xRf6rZ{8+a%_K5x}Kz{bPnvydo%Oi`@P@%_UqV~hG2Z*FPFA5 z2>nn_I`St*?--0tL{S4#OfxoaWa2gJ)15E9?Fnym1(&RQHO-~TE!mLif-6itKY`P%{m<%Lo3eO>asGPbs*W!|xw(WH# z=|~cIggd?`0^)eIV>3wvd)48BQL-2&S!zqnWx@<#E6%4aGN{E)7dw5et|cW&m)kZ# zbSW|6OCT~5v=~`X`3$O{E)a(WEf1swz$ON$N zso-vs{vk1yQsNCO*is_yP!Es?zL|GZiDA)G5tH@HX26gh%w|Njv47Fgu^F=w| z3|dh^$=#(95(PjQBi}}1OxYta9hdGUBEB!KfU7u`O_+XVF~+}31)Td+K^U*2x7y+4 z`OTSkGg~h{%)g)i^l*P_dgtuUwcV*Z`;&Kf(ZnIjZj{za8{=!^yOpaSAMaIa2dMsS Wc=yR(W%>Z!`iUlcIgD?_IQ{|2UsvY< diff --git a/TestVectors/runtimes/python/test/internaldafny/extern/__pycache__/TestWrappedESDKMain_extern.cpython-311.pyc b/TestVectors/runtimes/python/test/internaldafny/extern/__pycache__/TestWrappedESDKMain_extern.cpython-311.pyc deleted file mode 100644 index 49d1ed40b90fd98f3b1fb7cc41ad9500604136c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 943 zcmah{J8u&~5T3oWjcsftV9`X15Rb-0_6gG>szfOeE-(-2Kw2HQn{dhb&e_|OV^=OL zD*6a1v6c4lY3`DS+aQ?Zx_9ABMR`@eAiri|rC zFO=C+R8D{aBQBWpotPxHHB-}I7ns%urgJ#Zm*4?v!^ARmj$WGBj5MH}`k{jB_7b9Y zZDGvrqH+Qp6pyKKosm8a@NBpU05DTb!z_A~V|>pFT}kPsR4I&9gp2YeNsw@m=yKU4 zI{zphtrZa?U9<;?874R+*6Q6WMzyL|ITd9nv-Z4Bq&N6cr1?RV+2_)3voA1Hych3` z=KΞf8k8X1-^%eR0@wEt?xwJE(Ba7M+%Ke6JF)!%CdXc*XTCHf4t{KRrRI(JoDo#^H+m#e%x$J`DT>$W3e zqE5G*+-CJZp&9He*hJBT?`t>ScR$`fEq~ZL-TIt6+qi$WRvWL?M%kLUiV^j4I?7V& zSxru9l&7@mv(Qy~fzqSUau=RLAT8QADIr|1-`Z3QAM28VmJsK?OxGnUnOj zsYcQdrhwvHhs^c<>(xPgI?tq%;G31yMf`PDLUkpwO2kx`=`XSm=aoMaB@9vDA$Wsg zsuMycurXS$2^4$roItJ@&uL00SlPc~w0>v2UO88upDTABZrvL}X$+gAc*TYP27~kD Ap8x;= diff --git a/TestVectors/runtimes/python/test/internaldafny/extern/__pycache__/TestWrappedESDKMain_extern.cpython-312.pyc b/TestVectors/runtimes/python/test/internaldafny/extern/__pycache__/TestWrappedESDKMain_extern.cpython-312.pyc deleted file mode 100644 index 90f591a54de416108ecf6af97d33d64cc198c980..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 861 zcmah{zi-n(6n~_^_l+p?&_I8k@dY|s6TFBGN4i(OTyoZ?*IDKwD;*@dI ziyhw~VPFnIwikJ}Lrr_YJ2Y@u5(zg9I-KlvGA(nHa4A!}s>jTZB1+c#YY!gUZh-StH%iiL8&oWG*AJ)@tFCJ<%Niv^jj{_zS)xEfw8K z=~A&)NX-_rv)Y;2{g}@W8P%74dO4;3U59<~Ke9O@^3Du1;8+ij0L<_OYnvaSMGNcW zTg>GlsTk2*E-tRFmGu(e3MPNk@-<5h=|0(}=533(%b2oogYLBnUaUe|MyE6iwaOiO zoyJ&f@Le{`&ZuWUikg3qx&-p2!57L>phAMF`2LVRMs^t=Q`1~WN4 WO*1;8-JRRpKOF%4at=K05&Z+gR87(1,0): " + _dafny.string_of(_dafny.Seq("Test failures occurred: see above.\n"))) - From 6dcf5eca2f07fd89cd30a8c83feba6c95d9f93d8 Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Mon, 17 Feb 2025 11:41:20 -0800 Subject: [PATCH 42/50] m --- TestVectors/runtimes/python/pyproject.toml | 5 +- .../extern/replace_dafny_main_method.py | 16 ++ .../extern/use_esdk_testvectors.py | 9 - .../internaldafny/extern/wrapped_esdk.py | 205 +++++++++++------- 4 files changed, 146 insertions(+), 89 deletions(-) create mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/replace_dafny_main_method.py delete mode 100644 TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/use_esdk_testvectors.py diff --git a/TestVectors/runtimes/python/pyproject.toml b/TestVectors/runtimes/python/pyproject.toml index 27acf3312..99b6bc67e 100644 --- a/TestVectors/runtimes/python/pyproject.toml +++ b/TestVectors/runtimes/python/pyproject.toml @@ -14,9 +14,12 @@ include = ["**/internaldafny/generated/*.py"] python = "^3.11.0" aws-cryptographic-material-providers = { path = "../../../mpl/AwsCryptographicMaterialProviders/runtimes/python", develop = false} aws-cryptography-internal-mpl-testvectors = { path = "../../../mpl/TestVectorsAwsCryptographicMaterialProviders/runtimes/python", develop = false} + +# Use the Dafny ESDK Python for type conversions to/from Dafny TestVectors code aws-encryption-sdk-dafny = { path = "../../../AwsEncryptionSDK/runtimes/python", develop = false} -aws-encryption-sdk = "4.0.0" +# Run TestVectors against the released native ESDK-Python +aws-encryption-sdk = "4.0.0" [tool.poetry.group.test.dependencies] pytest = "^7.4.0" diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/replace_dafny_main_method.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/replace_dafny_main_method.py new file mode 100644 index 000000000..c17188b4e --- /dev/null +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/replace_dafny_main_method.py @@ -0,0 +1,16 @@ +# Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + +# ESDK TestVectors have 2 main methods; one in ESDK TestVectors, another in MPL TestVectors. +# This isn't really supported, and results in running the MPL TestVectors' main method. +# Other languages use sed on Dafny-generated code to replace the generated call to the main method. +# It's (arguably) less hacky to override the function that is called in Python. +import aws_encryption_sdk_test_vectors.internaldafny.generated.module_ as module_ +import aws_encryption_sdk_test_vectors.internaldafny.generated.WrappedESDKMain as WrappedESDKMain + + +def new_test_main(args): + WrappedESDKMain.default__.Main2(args) + + +module_.default__.Test____Main____ = new_test_main diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/use_esdk_testvectors.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/use_esdk_testvectors.py deleted file mode 100644 index 029fb61a4..000000000 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/use_esdk_testvectors.py +++ /dev/null @@ -1,9 +0,0 @@ -import aws_encryption_sdk_test_vectors.internaldafny.generated.module_ as module_ -import aws_encryption_sdk_test_vectors.internaldafny.generated.WrappedESDKMain as WrappedESDKMain - - -def new_test_main(args): - WrappedESDKMain.default__.Main2(args) - - -module_.default__.Test____Main____ = new_test_main diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/wrapped_esdk.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/wrapped_esdk.py index 58b8f6bca..061c9d80e 100644 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/wrapped_esdk.py +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/wrapped_esdk.py @@ -1,3 +1,5 @@ +# Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 import aws_encryption_sdk.streaming_client import aws_encryption_sdk_test_vectors.internaldafny.generated.WrappedESDK as WrappedESDK import smithy_dafny_standard_library.internaldafny.generated.Wrappers as Wrappers @@ -29,7 +31,9 @@ _smithy_error_to_dafny_error, ) from aws_encryption_sdk.materials_managers.mpl.cmm import CryptoMaterialsManagerFromMPL -from aws_encryption_sdk.materials_managers.mpl.materials import _mpl_algorithm_id_to_native_algorithm_id +from aws_encryption_sdk.materials_managers.mpl.materials import ( + _mpl_algorithm_id_to_native_algorithm_id, +) from aws_encryption_sdk.identifiers import AlgorithmSuite @@ -51,96 +55,141 @@ def __init__(self, native_esdk): def Encrypt(self, dafny_encrypt_input): try: - native_encrypt_input = dafny_to_smithy_EncryptInput(dafny_encrypt_input) - - if native_encrypt_input.algorithm_suite_id is None: + native_encrypt_input = dafny_to_smithy_EncryptInput(dafny_encrypt_input) + + # Manual conversion of ESDK-Dafny EncryptInput to unmodelled native ESDK-Python encrypt parameters + native_esdk_input = { + "source": native_encrypt_input.plaintext, + "encryption_context": native_encrypt_input.encryption_context, + } + if native_encrypt_input.keyring is not None: + native_esdk_input["keyring"] = native_encrypt_input.keyring if native_encrypt_input.materials_manager is not None: - native_esdk_ciphertext, native_esdk_header = self.native_esdk.encrypt( - source=native_encrypt_input.plaintext, - materials_manager=native_encrypt_input.materials_manager, - encryption_context=native_encrypt_input.encryption_context, - ) - else: - native_esdk_ciphertext, native_esdk_header = self.native_esdk.encrypt( - source=native_encrypt_input.plaintext, - materials_manager=native_encrypt_input.keyring, - encryption_context=native_encrypt_input.encryption_context, - ) - else: - if native_encrypt_input.materials_manager is not None: - native_esdk_ciphertext, native_esdk_header = self.native_esdk.encrypt( - source=native_encrypt_input.plaintext, - materials_manager=native_encrypt_input.materials_manager, - encryption_context=native_encrypt_input.encryption_context, - algorithm = AlgorithmSuite.get_by_id( - _mpl_algorithm_id_to_native_algorithm_id(native_encrypt_input.algorithm_suite_id) - ) - ) - else: - native_esdk_ciphertext, native_esdk_header = self.native_esdk.encrypt( - source=native_encrypt_input.plaintext, - materials_manager=native_encrypt_input.keyring, - encryption_context=native_encrypt_input.encryption_context, - algorithm = AlgorithmSuite.get_by_id( - _mpl_algorithm_id_to_native_algorithm_id(native_encrypt_input.algorithm_suite_id) - ) + native_esdk_input["materials_manager"] = native_encrypt_input.materials_manager + if native_encrypt_input.algorithm_suite_id is not None: + native_esdk_input["algorithm"] = AlgorithmSuite.get_by_id( + _mpl_algorithm_id_to_native_algorithm_id(native_encrypt_input.algorithm_suite_id) ) - dafny_esdk_native_encrypt_output = EncryptOutput( - ciphertext=native_esdk_ciphertext, - encryption_context=native_esdk_header.encryption_context, - algorithm_suite_id=CryptoMaterialsManagerFromMPL._native_algorithm_id_to_mpl_algorithm_id( - native_esdk_header.algorithm.algorithm_id - ).value, - ) - - dafny_esdk_dafny_encrypt_output = smithy_to_dafny_EncryptOutput( - dafny_esdk_native_encrypt_output - ) - - return Wrappers.Result_Success(dafny_esdk_dafny_encrypt_output) + native_esdk_ciphertext, native_esdk_header = ( + self.native_esdk.encrypt(**native_encrypt_input) + ) + + # if native_encrypt_input.algorithm_suite_id is None: + # if native_encrypt_input.materials_manager is not None: + # native_esdk_ciphertext, native_esdk_header = ( + # self.native_esdk.encrypt( + # source=native_encrypt_input.plaintext, + # materials_manager=native_encrypt_input.materials_manager, + # encryption_context=native_encrypt_input.encryption_context, + # ) + # ) + # else: + # native_esdk_ciphertext, native_esdk_header = ( + # self.native_esdk.encrypt( + # source=native_encrypt_input.plaintext, + # materials_manager=native_encrypt_input.keyring, + # encryption_context=native_encrypt_input.encryption_context, + # ) + # ) + # else: + # if native_encrypt_input.materials_manager is not None: + # native_esdk_ciphertext, native_esdk_header = ( + # self.native_esdk.encrypt( + # source=native_encrypt_input.plaintext, + # materials_manager=native_encrypt_input.materials_manager, + # encryption_context=native_encrypt_input.encryption_context, + # algorithm=AlgorithmSuite.get_by_id( + # _mpl_algorithm_id_to_native_algorithm_id( + # native_encrypt_input.algorithm_suite_id + # ) + # ), + # ) + # ) + # else: + # native_esdk_ciphertext, native_esdk_header = ( + # self.native_esdk.encrypt( + # source=native_encrypt_input.plaintext, + # materials_manager=native_encrypt_input.keyring, + # encryption_context=native_encrypt_input.encryption_context, + # algorithm=AlgorithmSuite.get_by_id( + # _mpl_algorithm_id_to_native_algorithm_id( + # native_encrypt_input.algorithm_suite_id + # ) + # ), + # ) + # ) + + dafny_esdk_native_encrypt_output = EncryptOutput( + ciphertext=native_esdk_ciphertext, + encryption_context=native_esdk_header.encryption_context, + algorithm_suite_id=CryptoMaterialsManagerFromMPL._native_algorithm_id_to_mpl_algorithm_id( + native_esdk_header.algorithm.algorithm_id + ).value, + ) + + dafny_esdk_dafny_encrypt_output = smithy_to_dafny_EncryptOutput( + dafny_esdk_native_encrypt_output + ) + + return Wrappers.Result_Success(dafny_esdk_dafny_encrypt_output) except Exception as e: - return Wrappers.Result_Failure(_smithy_error_to_dafny_error(e)) + return Wrappers.Result_Failure(_smithy_error_to_dafny_error(e)) def Decrypt(self, dafny_decrypt_input): - + try: - native_decrypt_input = dafny_to_smithy_DecryptInput(dafny_decrypt_input) - - if native_decrypt_input.materials_manager is not None: - native_esdk_plaintext, native_esdk_header = self.native_esdk.decrypt( - source=native_decrypt_input.ciphertext, - materials_manager=native_decrypt_input.materials_manager, - encryption_context=native_decrypt_input.encryption_context, - ) - else: - native_esdk_plaintext, native_esdk_header = self.native_esdk.decrypt( - source=native_decrypt_input.ciphertext, - materials_manager=native_decrypt_input.keyring, - encryption_context=native_decrypt_input.encryption_context, - ) - - dafny_esdk_native_decrypt_output = DecryptOutput( - plaintext=native_esdk_plaintext, - encryption_context=native_esdk_header.encryption_context, - algorithm_suite_id=CryptoMaterialsManagerFromMPL._native_algorithm_id_to_mpl_algorithm_id( - native_esdk_header.algorithm.algorithm_id - ).value, - ) - - dafny_esdk_dafny_decrypt_output = smithy_to_dafny_DecryptOutput( - dafny_esdk_native_decrypt_output - ) - - return Wrappers.Result_Success(dafny_esdk_dafny_decrypt_output) + native_decrypt_input = dafny_to_smithy_DecryptInput(dafny_decrypt_input) + + # Manual conversion of ESDK-Dafny DecryptInput to unmodelled native ESDK-Python decrypt parameters + native_esdk_input = { + "source": native_decrypt_input.ciphertext, + "encryption_context": native_decrypt_input.encryption_context, + } + if native_decrypt_input.keyring is not None: + native_esdk_input["keyring"] = native_decrypt_input.keyring + if native_decrypt_input.materials_manager is not None: + native_esdk_input["materials_manager"] = native_decrypt_input.materials_manager + + native_esdk_plaintext, native_esdk_header = ( + self.native_esdk.encrypt(**native_esdk_input) + ) + + # if native_decrypt_input.materials_manager is not None: + # native_esdk_plaintext, native_esdk_header = self.native_esdk.decrypt( + # source=native_decrypt_input.ciphertext, + # materials_manager=native_decrypt_input.materials_manager, + # encryption_context=native_decrypt_input.encryption_context, + # ) + # else: + # native_esdk_plaintext, native_esdk_header = self.native_esdk.decrypt( + # source=native_decrypt_input.ciphertext, + # materials_manager=native_decrypt_input.keyring, + # encryption_context=native_decrypt_input.encryption_context, + # ) + + dafny_esdk_native_decrypt_output = DecryptOutput( + plaintext=native_esdk_plaintext, + encryption_context=native_esdk_header.encryption_context, + algorithm_suite_id=CryptoMaterialsManagerFromMPL._native_algorithm_id_to_mpl_algorithm_id( + native_esdk_header.algorithm.algorithm_id + ).value, + ) + + dafny_esdk_dafny_decrypt_output = smithy_to_dafny_DecryptOutput( + dafny_esdk_native_decrypt_output + ) + + return Wrappers.Result_Success(dafny_esdk_dafny_decrypt_output) except Exception as e: return Wrappers.Result_Failure(_smithy_error_to_dafny_error(e)) class default__(WrappedESDK.default__): - # Dafny-generated ESDK. Not launched right now. + # This commented-out method wraps the Dafny-generated ESDK. + # Not testing right now. # @staticmethod # def WrappedESDK(config): # smithy_client = aws_encryption_sdk.smithygenerated.aws_cryptography_encryptionsdk.client.AwsEncryptionSdk( @@ -154,8 +203,6 @@ class default__(WrappedESDK.default__): def WrappedESDK(dafny_config): native_config = dafny_config_to_smithy_config(dafny_config) - # TODO deny net 4.0.0 allow retry - if native_config.net_v4_0_0_retry_policy == NetV4_0_0_RetryPolicy.ALLOW_RETRY: raise ValueError("net 4.0.0 retry policy is not supported") From 6b70388224652b2138ff5e2f70cac50d559e36be Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Mon, 17 Feb 2025 11:58:10 -0800 Subject: [PATCH 43/50] mpl main --- mpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mpl b/mpl index 1a4358492..70e580991 160000 --- a/mpl +++ b/mpl @@ -1 +1 @@ -Subproject commit 1a4358492ae17a9249b2c52fffe56ef72b02fc1d +Subproject commit 70e580991678387ce897a286c4f7f449aa616785 From 25053a51bdc1ec7e7f7266625d162897820bd3e3 Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Mon, 17 Feb 2025 12:10:57 -0800 Subject: [PATCH 44/50] m --- .../src/aws_encryption_sdk_dafny/internaldafny/__init__.py | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/__init__.py diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/__init__.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/__init__.py new file mode 100644 index 000000000..f94fd12a2 --- /dev/null +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/internaldafny/__init__.py @@ -0,0 +1,2 @@ +# Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 From b473d7021cd0db778d3c5e1d5935883851c72ee5 Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Mon, 17 Feb 2025 12:15:34 -0800 Subject: [PATCH 45/50] m --- AwsEncryptionSDK/Makefile | 2 +- AwsEncryptionSDK/runtimes/python/pyproject.toml | 2 +- .../runtimes/python/src/aws_encryption_sdk_dafny/__init__.py | 1 - TestVectors/.gitignore | 1 - TestVectors/runtimes/python/pyproject.toml | 2 +- 5 files changed, 3 insertions(+), 5 deletions(-) diff --git a/AwsEncryptionSDK/Makefile b/AwsEncryptionSDK/Makefile index 57d6e495c..129a13001 100644 --- a/AwsEncryptionSDK/Makefile +++ b/AwsEncryptionSDK/Makefile @@ -115,7 +115,7 @@ TRANSLATION_RECORD_PYTHON := \ --translation-record ../mpl/ComAmazonawsKms/runtimes/python/src/aws_cryptography_internal_kms/internaldafny/generated/dafny_src-py.dtr \ --translation-record ../mpl/ComAmazonawsDynamodb/runtimes/python/src/aws_cryptography_internal_dynamodb/internaldafny/generated/dafny_src-py.dtr \ --translation-record ../mpl/AwsCryptographyPrimitives/runtimes/python/src/aws_cryptography_primitives/internaldafny/generated/dafny_src-py.dtr \ - --translation-record ../mpl/AwsCryptographicMaterialProviders/runtimes/python/src/aws_cryptographic_material_providers/internaldafny/generated/dafny_src-py.dtr + --translation-record ../mpl/AwsCryptographicMaterialProviders/runtimes/python/src/aws_cryptographic_material_providers/internaldafny/generated/dafny_src-py.dtr PYTHON_DEPENDENCY_MODULE_NAMES := \ --dependency-library-name=aws.cryptography.primitives=aws_cryptography_primitives \ diff --git a/AwsEncryptionSDK/runtimes/python/pyproject.toml b/AwsEncryptionSDK/runtimes/python/pyproject.toml index 8184ad6f9..857cc9480 100644 --- a/AwsEncryptionSDK/runtimes/python/pyproject.toml +++ b/AwsEncryptionSDK/runtimes/python/pyproject.toml @@ -32,5 +32,5 @@ aws-cryptographic-material-providers = { path = "../../../mpl/AwsCryptographicMa pytest = "^7.4.0" [build-system] -requires = ["poetry-core"] +requires = ["poetry-core<2.0.0"] build-backend = "poetry.core.masonry.api" diff --git a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/__init__.py b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/__init__.py index 203a67fb7..67a3d57bd 100644 --- a/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/__init__.py +++ b/AwsEncryptionSDK/runtimes/python/src/aws_encryption_sdk_dafny/__init__.py @@ -3,4 +3,3 @@ # Initialize generated Dafny from .internaldafny.generated import module_ - diff --git a/TestVectors/.gitignore b/TestVectors/.gitignore index d9f35c2f4..36fa45628 100644 --- a/TestVectors/.gitignore +++ b/TestVectors/.gitignore @@ -5,7 +5,6 @@ ImplementationFromDafny-cs.dtr TestsFromDafny-cs.dtr **/bin **/obj -*.pyc runtimes/java/dafny runtimes/**/encrypt-manifest.json runtimes/**/decrypt-manifest.json diff --git a/TestVectors/runtimes/python/pyproject.toml b/TestVectors/runtimes/python/pyproject.toml index 99b6bc67e..7867d9ea3 100644 --- a/TestVectors/runtimes/python/pyproject.toml +++ b/TestVectors/runtimes/python/pyproject.toml @@ -25,5 +25,5 @@ aws-encryption-sdk = "4.0.0" pytest = "^7.4.0" [build-system] -requires = ["poetry-core"] +requires = ["poetry-core<2.0.0"] build-backend = "poetry.core.masonry.api" From dadb63346b93f52a955e66a6f5dc20cba04d054c Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Mon, 17 Feb 2025 12:23:58 -0800 Subject: [PATCH 46/50] m --- .../internaldafny/extern/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__init__.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__init__.py index 7c5bd8871..c8c57bb1b 100644 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__init__.py +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/__init__.py @@ -1,4 +1,4 @@ from . import ( + replace_dafny_main_method, wrapped_esdk, - use_esdk_testvectors, ) From 6d679770262415d7ab9012e780adb3668c60128f Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Mon, 17 Feb 2025 12:27:35 -0800 Subject: [PATCH 47/50] m --- AwsEncryptionSDK/runtimes/java/README.md | 6 +++--- AwsEncryptionSDK/runtimes/python/README.md | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/AwsEncryptionSDK/runtimes/java/README.md b/AwsEncryptionSDK/runtimes/java/README.md index e1f9c0bb1..07ec46496 100644 --- a/AwsEncryptionSDK/runtimes/java/README.md +++ b/AwsEncryptionSDK/runtimes/java/README.md @@ -4,7 +4,7 @@ This is NOT the released version of the AWS Encryption SDK for Java. You can access the AWS Encryption SDK for Java at: -* Github: https://github.com/aws/aws-encryption-sdk-java -* Maven: https://mvnrepository.com/artifact/com.amazonaws/aws-encryption-sdk-java +- Github: https://github.com/aws/aws-encryption-sdk-java +- Maven: https://mvnrepository.com/artifact/com.amazonaws/aws-encryption-sdk-java -This is an in-development rewrite of the AWS Encryption SDK for Java and should not be used until development is complete. \ No newline at end of file +This is an in-development rewrite of the AWS Encryption SDK for Java and should not be used until development is complete. diff --git a/AwsEncryptionSDK/runtimes/python/README.md b/AwsEncryptionSDK/runtimes/python/README.md index 997ef66ce..004925c3d 100644 --- a/AwsEncryptionSDK/runtimes/python/README.md +++ b/AwsEncryptionSDK/runtimes/python/README.md @@ -4,7 +4,7 @@ This is NOT the released version of the AWS Encryption SDK for Python. You can access the AWS Encryption SDK for Python at: -* Github: https://github.com/aws/aws-encryption-sdk-python -* PyPI: https://pypi.org/project/aws-encryption-sdk/ +- Github: https://github.com/aws/aws-encryption-sdk-python +- PyPI: https://pypi.org/project/aws-encryption-sdk/ -This is an in-development rewrite of the AWS Encryption SDK for Python and should not be used until development is complete. \ No newline at end of file +This is an in-development rewrite of the AWS Encryption SDK for Python and should not be used until development is complete. From 822e30e4470d8bf0015685ef17262246f4f8560c Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Mon, 17 Feb 2025 13:10:29 -0800 Subject: [PATCH 48/50] m --- .../internaldafny/extern/wrapped_esdk.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/wrapped_esdk.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/wrapped_esdk.py index 061c9d80e..c65152bdf 100644 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/wrapped_esdk.py +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/wrapped_esdk.py @@ -72,7 +72,7 @@ def Encrypt(self, dafny_encrypt_input): ) native_esdk_ciphertext, native_esdk_header = ( - self.native_esdk.encrypt(**native_encrypt_input) + self.native_esdk.encrypt(**native_esdk_input) ) # if native_encrypt_input.algorithm_suite_id is None: From bbb1c56ea0ed7b0fe38f7d0549561b0473eaab5c Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Mon, 17 Feb 2025 14:12:05 -0800 Subject: [PATCH 49/50] m --- .../internaldafny/extern/wrapped_esdk.py | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/wrapped_esdk.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/wrapped_esdk.py index c65152bdf..f55b11220 100644 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/wrapped_esdk.py +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/wrapped_esdk.py @@ -65,14 +65,18 @@ def Encrypt(self, dafny_encrypt_input): if native_encrypt_input.keyring is not None: native_esdk_input["keyring"] = native_encrypt_input.keyring if native_encrypt_input.materials_manager is not None: - native_esdk_input["materials_manager"] = native_encrypt_input.materials_manager + native_esdk_input["materials_manager"] = ( + native_encrypt_input.materials_manager + ) if native_encrypt_input.algorithm_suite_id is not None: native_esdk_input["algorithm"] = AlgorithmSuite.get_by_id( - _mpl_algorithm_id_to_native_algorithm_id(native_encrypt_input.algorithm_suite_id) + _mpl_algorithm_id_to_native_algorithm_id( + native_encrypt_input.algorithm_suite_id + ) ) - native_esdk_ciphertext, native_esdk_header = ( - self.native_esdk.encrypt(**native_esdk_input) + native_esdk_ciphertext, native_esdk_header = self.native_esdk.encrypt( + **native_esdk_input ) # if native_encrypt_input.algorithm_suite_id is None: @@ -150,10 +154,12 @@ def Decrypt(self, dafny_decrypt_input): if native_decrypt_input.keyring is not None: native_esdk_input["keyring"] = native_decrypt_input.keyring if native_decrypt_input.materials_manager is not None: - native_esdk_input["materials_manager"] = native_decrypt_input.materials_manager + native_esdk_input["materials_manager"] = ( + native_decrypt_input.materials_manager + ) - native_esdk_plaintext, native_esdk_header = ( - self.native_esdk.encrypt(**native_esdk_input) + native_esdk_plaintext, native_esdk_header = self.native_esdk.decrypt( + **native_esdk_input ) # if native_decrypt_input.materials_manager is not None: From 2ca85fabbd9a5e1af93ba3557398fe8e6b09514d Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Tue, 18 Feb 2025 15:15:23 -0800 Subject: [PATCH 50/50] m --- .../internaldafny/extern/wrapped_esdk.py | 59 +------------------ 1 file changed, 1 insertion(+), 58 deletions(-) diff --git a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/wrapped_esdk.py b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/wrapped_esdk.py index f55b11220..531f63956 100644 --- a/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/wrapped_esdk.py +++ b/TestVectors/runtimes/python/src/aws_encryption_sdk_test_vectors/internaldafny/extern/wrapped_esdk.py @@ -62,6 +62,7 @@ def Encrypt(self, dafny_encrypt_input): "source": native_encrypt_input.plaintext, "encryption_context": native_encrypt_input.encryption_context, } + if native_encrypt_input.keyring is not None: native_esdk_input["keyring"] = native_encrypt_input.keyring if native_encrypt_input.materials_manager is not None: @@ -79,51 +80,6 @@ def Encrypt(self, dafny_encrypt_input): **native_esdk_input ) - # if native_encrypt_input.algorithm_suite_id is None: - # if native_encrypt_input.materials_manager is not None: - # native_esdk_ciphertext, native_esdk_header = ( - # self.native_esdk.encrypt( - # source=native_encrypt_input.plaintext, - # materials_manager=native_encrypt_input.materials_manager, - # encryption_context=native_encrypt_input.encryption_context, - # ) - # ) - # else: - # native_esdk_ciphertext, native_esdk_header = ( - # self.native_esdk.encrypt( - # source=native_encrypt_input.plaintext, - # materials_manager=native_encrypt_input.keyring, - # encryption_context=native_encrypt_input.encryption_context, - # ) - # ) - # else: - # if native_encrypt_input.materials_manager is not None: - # native_esdk_ciphertext, native_esdk_header = ( - # self.native_esdk.encrypt( - # source=native_encrypt_input.plaintext, - # materials_manager=native_encrypt_input.materials_manager, - # encryption_context=native_encrypt_input.encryption_context, - # algorithm=AlgorithmSuite.get_by_id( - # _mpl_algorithm_id_to_native_algorithm_id( - # native_encrypt_input.algorithm_suite_id - # ) - # ), - # ) - # ) - # else: - # native_esdk_ciphertext, native_esdk_header = ( - # self.native_esdk.encrypt( - # source=native_encrypt_input.plaintext, - # materials_manager=native_encrypt_input.keyring, - # encryption_context=native_encrypt_input.encryption_context, - # algorithm=AlgorithmSuite.get_by_id( - # _mpl_algorithm_id_to_native_algorithm_id( - # native_encrypt_input.algorithm_suite_id - # ) - # ), - # ) - # ) - dafny_esdk_native_encrypt_output = EncryptOutput( ciphertext=native_esdk_ciphertext, encryption_context=native_esdk_header.encryption_context, @@ -162,19 +118,6 @@ def Decrypt(self, dafny_decrypt_input): **native_esdk_input ) - # if native_decrypt_input.materials_manager is not None: - # native_esdk_plaintext, native_esdk_header = self.native_esdk.decrypt( - # source=native_decrypt_input.ciphertext, - # materials_manager=native_decrypt_input.materials_manager, - # encryption_context=native_decrypt_input.encryption_context, - # ) - # else: - # native_esdk_plaintext, native_esdk_header = self.native_esdk.decrypt( - # source=native_decrypt_input.ciphertext, - # materials_manager=native_decrypt_input.keyring, - # encryption_context=native_decrypt_input.encryption_context, - # ) - dafny_esdk_native_decrypt_output = DecryptOutput( plaintext=native_esdk_plaintext, encryption_context=native_esdk_header.encryption_context,