From 6db9ace81db1046b2fec4dc211ac2920b6e2cba6 Mon Sep 17 00:00:00 2001 From: Rishav karanjit Date: Mon, 2 Dec 2024 14:25:34 -0800 Subject: [PATCH] chore: merge Golang/dev branch with mainline (#704) --- .../action.yml | 4 +- .github/actions/polymorph_codegen/action.yml | 7 + .github/workflows/dafny_interop_test_net.yml | 2 +- .../dafny_interop_test_vector_net.yml | 7 +- .github/workflows/daily_ci.yml | 13 +- .github/workflows/library_codegen.yml | 1 - .../workflows/library_dafny_verification.yml | 13 +- .../library_interop_test_vectors.yml | 216 + .github/workflows/library_interop_tests.yml | 11 +- .github/workflows/library_java_tests.yml | 3 +- .../library_legacy_interop_test_vectors.yml | 135 + .github/workflows/library_net_tests.yml | 3 +- .github/workflows/library_rust_tests.yml | 142 + .github/workflows/manual.yml | 5 + .github/workflows/nighly_dafny.yml | 6 + .github/workflows/pull.yml | 16 +- .github/workflows/push.yml | 12 +- .github/workflows/sem_ver.yml | 2 +- .github/workflows/semantic_release.yml | 2 +- .gitmodules | 9 +- AwsEncryptionSDK/.gitignore | 4 +- .../AwsEncryptionSdk/java/dafny-4.8.1.patch | 371 + .../AwsCryptographyEncryptionSdkTypes.dfy | 2 +- .../AwsEncryptionSdk/src/MessageBody.dfy | 81 +- .../runtimes/java/build.gradle.kts | 22 +- .../internaldafny/types/__default.java | 4 + .../cryptography/encryptionsdk/ToDafny.java | 167 +- .../encryptionsdk/model/EncryptInput.java | 2 +- .../encryptionsdk/model/OpaqueError.java | 34 + .../AwsEncryptionSdk/TypeConversion.cs | 6 +- SharedMakefileV2.mk | 5 +- TestVectors/.gitignore | 18 + TestVectors/Makefile | 118 + TestVectors/README.md | 31 + TestVectors/aws-encryption-sdk-test-vectors | 1 + .../TestVectors/dafny/dafny-4.8.1.patch | 15 + .../TestVectors/dotnet/dafny-4.8.1.patch | 59 + .../TestVectors/java/dafny-4.8.1.patch | 169 + .../codegen-patches/dotnet/dafny-4.2.0.patch | 69 + .../codegen-patches/dotnet/dafny-4.8.0.patch | 59 + ...sCryptographyEncryptionSdkTypesWrapped.dfy | 24 + .../TestVectors/src/EsdkManifestOptions.dfy | 31 + .../TestVectors/src/EsdkTestManifests.dfy | 300 + .../dafny/TestVectors/src/EsdkTestVectors.dfy | 515 + TestVectors/dafny/TestVectors/src/Index.dfy | 156 + .../dafny/TestVectors/src/LibraryIndex.dfy | 43 + .../TestVectors/src/ParseEsdkJsonManifest.dfy | 463 + .../VectorsComposition/AllEsdkV4NoReqEc.dfy | 103 + .../VectorsComposition/AllEsdkV4WithReqEc.dfy | 59 + .../src/WriteEsdkJsonManifests.dfy | 189 + .../dafny/TestVectors/src/WriteVectors.dfy | 274 + .../dafny/TestVectors/test/RunMain.dfy | 71 + .../TestVectors/test/encrypt-manifest.json | 15123 ++++++++++++++++ TestVectors/dafny/TestVectors/test/keys.json | 220 + TestVectors/project.properties | 4 + TestVectors/runtimes/java/.gitattributes | 9 + TestVectors/runtimes/java/.gitignore | 21 + TestVectors/runtimes/java/build.gradle.kts | 64 + .../gradle/wrapper/gradle-wrapper.properties | 6 + TestVectors/runtimes/java/settings.gradle.kts | 11 + .../internaldafny/wrapped/__default.java | 54 + .../encryptionsdk/wrapped/TestESDK.java | 191 + .../java/TestWrappedESDKMain/__default.java | 12 + .../runtimes/net/ESDKTestVectors.csproj | 42 + .../runtimes/net/Extern/WrappedESDK.cs | 25 + .../TestVectors/AwsEncryptionSdkShim.cs | 76 + .../Generated/TestVectors/TypeConversion.cs | 471 + .../tests/Extern/GetTestDirectoryExtern.cs | 9 + .../net/tests/TestVectors-Tests.csproj | 36 + cfn/CI.yaml | 1 + mpl | 2 +- smithy-dafny | 1 - 72 files changed, 20302 insertions(+), 150 deletions(-) create mode 100644 .github/workflows/library_interop_test_vectors.yml create mode 100644 .github/workflows/library_legacy_interop_test_vectors.yml create mode 100644 .github/workflows/library_rust_tests.yml create mode 100644 AwsEncryptionSDK/codegen-patches/AwsEncryptionSdk/java/dafny-4.8.1.patch create mode 100644 AwsEncryptionSDK/runtimes/java/src/main/java/software/amazon/cryptography/encryptionsdk/internaldafny/types/__default.java create mode 100644 TestVectors/.gitignore create mode 100644 TestVectors/Makefile create mode 100644 TestVectors/README.md create mode 160000 TestVectors/aws-encryption-sdk-test-vectors create mode 100644 TestVectors/codegen-patches/TestVectors/dafny/dafny-4.8.1.patch create mode 100644 TestVectors/codegen-patches/TestVectors/dotnet/dafny-4.8.1.patch create mode 100644 TestVectors/codegen-patches/TestVectors/java/dafny-4.8.1.patch create mode 100644 TestVectors/codegen-patches/dotnet/dafny-4.2.0.patch create mode 100644 TestVectors/codegen-patches/dotnet/dafny-4.8.0.patch create mode 100644 TestVectors/dafny/TestVectors/Model/AwsCryptographyEncryptionSdkTypesWrapped.dfy create mode 100644 TestVectors/dafny/TestVectors/src/EsdkManifestOptions.dfy create mode 100644 TestVectors/dafny/TestVectors/src/EsdkTestManifests.dfy create mode 100644 TestVectors/dafny/TestVectors/src/EsdkTestVectors.dfy create mode 100644 TestVectors/dafny/TestVectors/src/Index.dfy create mode 100644 TestVectors/dafny/TestVectors/src/LibraryIndex.dfy create mode 100644 TestVectors/dafny/TestVectors/src/ParseEsdkJsonManifest.dfy create mode 100644 TestVectors/dafny/TestVectors/src/VectorsComposition/AllEsdkV4NoReqEc.dfy create mode 100644 TestVectors/dafny/TestVectors/src/VectorsComposition/AllEsdkV4WithReqEc.dfy create mode 100644 TestVectors/dafny/TestVectors/src/WriteEsdkJsonManifests.dfy create mode 100644 TestVectors/dafny/TestVectors/src/WriteVectors.dfy create mode 100644 TestVectors/dafny/TestVectors/test/RunMain.dfy create mode 100644 TestVectors/dafny/TestVectors/test/encrypt-manifest.json create mode 100644 TestVectors/dafny/TestVectors/test/keys.json create mode 100644 TestVectors/project.properties create mode 100644 TestVectors/runtimes/java/.gitattributes create mode 100644 TestVectors/runtimes/java/.gitignore create mode 100644 TestVectors/runtimes/java/build.gradle.kts create mode 100644 TestVectors/runtimes/java/gradle/wrapper/gradle-wrapper.properties create mode 100644 TestVectors/runtimes/java/settings.gradle.kts create mode 100644 TestVectors/runtimes/java/src/main/java/software/amazon/cryptography/encryptionsdk/internaldafny/wrapped/__default.java create mode 100644 TestVectors/runtimes/java/src/main/smithy-generated/software/amazon/cryptography/encryptionsdk/wrapped/TestESDK.java create mode 100644 TestVectors/runtimes/java/src/test/java/TestWrappedESDKMain/__default.java create mode 100644 TestVectors/runtimes/net/ESDKTestVectors.csproj create mode 100644 TestVectors/runtimes/net/Extern/WrappedESDK.cs create mode 100644 TestVectors/runtimes/net/Generated/TestVectors/AwsEncryptionSdkShim.cs create mode 100644 TestVectors/runtimes/net/Generated/TestVectors/TypeConversion.cs create mode 100644 TestVectors/runtimes/net/tests/Extern/GetTestDirectoryExtern.cs create mode 100644 TestVectors/runtimes/net/tests/TestVectors-Tests.csproj delete mode 160000 smithy-dafny diff --git a/.github/actions/install_smithy_dafny_codegen_dependencies/action.yml b/.github/actions/install_smithy_dafny_codegen_dependencies/action.yml index da00a4c70..89971fdf7 100644 --- a/.github/actions/install_smithy_dafny_codegen_dependencies/action.yml +++ b/.github/actions/install_smithy_dafny_codegen_dependencies/action.yml @@ -12,10 +12,10 @@ runs: uses: gradle/gradle-build-action@v2 with: arguments: :codegen-client:pTML :codegen-core:pTML :rust-runtime:pTML - build-root-directory: smithy-dafny/smithy-dafny-codegen-modules/smithy-rs + build-root-directory: mpl/smithy-dafny/smithy-dafny-codegen-modules/smithy-rs - name: Install smithy-dafny-codegen Python dependencies locally uses: gradle/gradle-build-action@v2 with: arguments: :smithy-python-codegen:pTML - build-root-directory: smithy-dafny/codegen/smithy-dafny-codegen-modules/smithy-python/codegen + build-root-directory: mpl/smithy-dafny/codegen/smithy-dafny-codegen-modules/smithy-python/codegen diff --git a/.github/actions/polymorph_codegen/action.yml b/.github/actions/polymorph_codegen/action.yml index 7f6b4f29b..66d0f7566 100644 --- a/.github/actions/polymorph_codegen/action.yml +++ b/.github/actions/polymorph_codegen/action.yml @@ -109,6 +109,13 @@ runs: run: | make polymorph_dotnet ${{ steps.dependencies.outputs.PROJECT_DEPENDENCIES }} + # TODO: Uncomment when checking in polymorph_rust code + # - name: Regenerate Rust code using smithy-dafny + # working-directory: ./${{ inputs.library }} + # shell: bash + # run: | + # make polymorph_rust ${{ steps.dependencies.outputs.PROJECT_DEPENDENCIES }} + - name: Check regenerated code against commited code # Composite action inputs seem to not actually support booleans properly for some reason if: inputs.diff-generated-code == 'true' diff --git a/.github/workflows/dafny_interop_test_net.yml b/.github/workflows/dafny_interop_test_net.yml index fd56e893e..d7c83596f 100644 --- a/.github/workflows/dafny_interop_test_net.yml +++ b/.github/workflows/dafny_interop_test_net.yml @@ -37,7 +37,7 @@ jobs: os: [ windows-latest, ubuntu-latest, - macos-12, + macos-13, ] runs-on: ${{ matrix.os }} permissions: diff --git a/.github/workflows/dafny_interop_test_vector_net.yml b/.github/workflows/dafny_interop_test_vector_net.yml index 2940a1a67..66e9438a1 100644 --- a/.github/workflows/dafny_interop_test_vector_net.yml +++ b/.github/workflows/dafny_interop_test_vector_net.yml @@ -36,7 +36,7 @@ jobs: os: [ windows-latest, ubuntu-latest, - macos-12, + macos-13, ] runs-on: ${{matrix.os}} permissions: @@ -146,7 +146,7 @@ jobs: matrix: os: [ ubuntu-latest, - macos-12, + macos-13, ] runs-on: ${{ matrix.os }} permissions: @@ -251,7 +251,7 @@ jobs: matrix: os: [ ubuntu-latest, - macos-12, + macos-13, ] runs-on: ${{ matrix.os }} permissions: @@ -267,7 +267,6 @@ jobs: run: | git submodule update --init libraries git submodule update --init --recursive mpl - git submodule update --init smithy-dafny - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v4 diff --git a/.github/workflows/daily_ci.yml b/.github/workflows/daily_ci.yml index 1bfb902aa..c1655cbc6 100644 --- a/.github/workflows/daily_ci.yml +++ b/.github/workflows/daily_ci.yml @@ -11,13 +11,13 @@ jobs: if: github.event_name != 'schedule' || github.repository_owner == 'aws' uses: ./.github/workflows/library_codegen.yml with: - dafny: '4.8.0' + dafny: '4.8.1' daily-ci-verification: # Don't run the cron builds on forks if: github.event_name != 'schedule' || github.repository_owner == 'aws' uses: ./.github/workflows/library_dafny_verification.yml with: - dafny: '4.8.0' + dafny: '4.8.1' # daily-ci-java: # if: github.event_name != 'schedule' || github.repository_owner == 'aws' # uses: ./.github/workflows/library_java_tests.yml @@ -27,10 +27,15 @@ jobs: if: github.event_name != 'schedule' || github.repository_owner == 'aws' uses: ./.github/workflows/library_net_tests.yml with: - dafny: '4.8.0' + dafny: '4.8.1' + daily-ci-rust: + if: github.event_name != 'schedule' || github.repository_owner == 'aws' + uses: ./.github/workflows/library_rust_tests.yml + with: + dafny: '4.8.1' daily-ci-interop-tests: if: github.event_name != 'schedule' || github.repository_owner == 'aws' uses: ./.github/workflows/library_interop_tests.yml with: - dafny: '4.8.0' + dafny: '4.8.1' diff --git a/.github/workflows/library_codegen.yml b/.github/workflows/library_codegen.yml index e11e71685..90922d0fe 100644 --- a/.github/workflows/library_codegen.yml +++ b/.github/workflows/library_codegen.yml @@ -38,7 +38,6 @@ jobs: # it to verify the Dafny code. Instead we manually pull the submodules we DO need. - run: git submodule update --init libraries - run: git submodule update --init --recursive mpl - - run: git submodule update --init --recursive smithy-dafny # Only used to format generated code # and to translate version strings such as "nightly-latest" diff --git a/.github/workflows/library_dafny_verification.yml b/.github/workflows/library_dafny_verification.yml index f36a30347..c97c33fd0 100644 --- a/.github/workflows/library_dafny_verification.yml +++ b/.github/workflows/library_dafny_verification.yml @@ -19,9 +19,10 @@ jobs: strategy: matrix: library: [ - AwsEncryptionSDK + AwsEncryptionSDK, + TestVectors ] - os: [ macos-12 ] + os: [ macos-13 ] runs-on: ${{ matrix.os }} env: DOTNET_CLI_TELEMETRY_OPTOUT: 1 @@ -36,7 +37,13 @@ jobs: run: | git submodule update --init libraries git submodule update --init --recursive mpl - git submodule update --init smithy-dafny + + # dafny-reportgenerator requires next6 + # but only 7.0 is installed on macos-13-large + - name: Setup .NET Core SDK '6.0.x' + uses: actions/setup-dotnet@v3 + with: + dotnet-version: "6.0.x" - name: Setup Dafny uses: dafny-lang/setup-dafny-action@v1.7.0 diff --git a/.github/workflows/library_interop_test_vectors.yml b/.github/workflows/library_interop_test_vectors.yml new file mode 100644 index 000000000..87c98ad5f --- /dev/null +++ b/.github/workflows/library_interop_test_vectors.yml @@ -0,0 +1,216 @@ +# This workflow performs interoperability tests across the supported runtimes of the ESDK Dafny +name: Library Interoperability Dafny TestVectors + +on: + workflow_call: + inputs: + dafny: + description: "The Dafny version to use" + required: true + type: string + regenerate-code: + description: "Regenerate code using smithy-dafny" + required: false + default: false + type: boolean + +jobs: + generateEncryptVectors: + strategy: + matrix: + library: [TestVectors] + os: [ + # https://taskei.amazon.dev/tasks/CrypTool-5283 + # windows-latest, + ubuntu-latest, + macos-13, + ] + language: [java, net] + # 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 + + - 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 }} + + - name: Setup Java 17 + if: matrix.language == 'java' + uses: actions/setup-java@v3 + with: + distribution: "corretto" + java-version: 17 + + - name: Setup Dafny + uses: dafny-lang/setup-dafny-action@v1.6.1 + 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: Setup gradle + if: matrix.language == 'java' + uses: gradle/gradle-build-action@v2 + with: + gradle-version: 7.2 + + # 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 + + - 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] + decrypting_language: [java, net] + # 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. + - run: git submodule update --init libraries + - run: git submodule update --init --recursive mpl + + - name: Setup .NET Core SDK ${{ matrix.dotnet-version }} + if: matrix.decrypting_language == 'net' + uses: actions/setup-dotnet@v3 + with: + dotnet-version: ${{ matrix.dotnet-version }} + + - name: Setup Java 17 + if: matrix.decrypting_language == 'java' + uses: actions/setup-java@v3 + with: + distribution: "corretto" + java-version: 17 + + - name: Setup Dafny + uses: dafny-lang/setup-dafny-action@v1.6.1 + 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.decrypting_language == 'java' + working-directory: ./${{ matrix.library }} + shell: bash + 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.decrypting_language == 'net' + working-directory: ./${{ matrix.library }} + shell: bash + run: | + # This works because `node` is installed by default on GHA runners + CORES=$(node -e 'console.log(os.cpus().length)') + make transpile_net + + - name: Download Encrypt Manifest Artifact + uses: actions/download-artifact@v4 + with: + name: ${{matrix.os}}_vector_artifact_${{matrix.encrypting_language}}_${{github.sha}} + path: ./${{matrix.library}}/runtimes/${{matrix.decrypting_language}} + + - name: Decrypt Encrypt Manifest + working-directory: ./${{ matrix.library }} + run: make test_decrypt_encrypt_vectors_${{matrix.decrypting_language}} + diff --git a/.github/workflows/library_interop_tests.yml b/.github/workflows/library_interop_tests.yml index 112b6825a..a2e162743 100644 --- a/.github/workflows/library_interop_tests.yml +++ b/.github/workflows/library_interop_tests.yml @@ -27,7 +27,7 @@ jobs: os: [ windows-latest, ubuntu-latest, - macos-12, + macos-13, ] runs-on: ${{ matrix.os }} permissions: @@ -46,7 +46,6 @@ jobs: run: | git submodule update --init libraries git submodule update --init --recursive mpl - git submodule update --init smithy-dafny - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v4 @@ -125,7 +124,7 @@ jobs: matrix: os: [ ubuntu-latest, - macos-12, + macos-13, ] runs-on: ${{ matrix.os }} permissions: @@ -144,7 +143,7 @@ jobs: run: | git submodule update --init libraries git submodule update --init --recursive mpl - git submodule update --init smithy-dafny + - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v4 @@ -230,7 +229,7 @@ jobs: matrix: os: [ ubuntu-latest, - macos-12, + macos-13, ] runs-on: ${{ matrix.os }} permissions: @@ -246,7 +245,7 @@ jobs: run: | git submodule update --init libraries git submodule update --init --recursive mpl - git submodule update --init smithy-dafny + - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v4 diff --git a/.github/workflows/library_java_tests.yml b/.github/workflows/library_java_tests.yml index 101a6223a..cfba10bc0 100644 --- a/.github/workflows/library_java_tests.yml +++ b/.github/workflows/library_java_tests.yml @@ -25,7 +25,7 @@ jobs: # TODO just test on mac for now #windows-latest, #ubuntu-latest, - macos-12 + macos-13 ] runs-on: ${{ matrix.os }} permissions: @@ -41,7 +41,6 @@ jobs: run: | git submodule update --init libraries git submodule update --init --recursive mpl - git submodule update --init smithy-dafny - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v2 diff --git a/.github/workflows/library_legacy_interop_test_vectors.yml b/.github/workflows/library_legacy_interop_test_vectors.yml new file mode 100644 index 000000000..75257db64 --- /dev/null +++ b/.github/workflows/library_legacy_interop_test_vectors.yml @@ -0,0 +1,135 @@ +# This workflow performs legacy test vector tests across the supported runtimes of the ESDK Dafny +name: Library Interoperability Dafny TestVectors + +on: + workflow_call: + inputs: + dafny: + description: "The Dafny version to use" + required: true + type: string + regenerate-code: + description: "Regenerate code using smithy-dafny" + required: false + default: false + type: boolean + +jobs: + decryptEncryptVectors: + strategy: + matrix: + library: [TestVectors] + os: [ + # https://taskei.amazon.dev/tasks/CrypTool-5283 + # windows-latest, + ubuntu-latest, + macos-13, + ] + # java struggles with the json parsing + # however; the native java esdk already runs a subset of these decrypt + # vectors. More important for the dafny-x implementations to be able + # to decrypt these + language: [net] + legacy_zips: [ + aws-encryption-sdk-test-vectors/vectors/awses-decrypt/python-1.3.5, + aws-encryption-sdk-test-vectors/vectors/awses-decrypt/python-1.3.7, + aws-encryption-sdk-test-vectors/vectors/awses-decrypt/python-1.3.8, + aws-encryption-sdk-test-vectors/vectors/awses-decrypt/python-2.0.0, + aws-encryption-sdk-test-vectors/vectors/awses-decrypt/python-2.2.0, + aws-encryption-sdk-test-vectors/vectors/awses-decrypt/python-2.3.0 + ] + # 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 + + - uses: actions/checkout@v3 + with: + submodules: true + # 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 }} + + - name: Setup Java 17 + if: matrix.language == 'java' + uses: actions/setup-java@v3 + with: + distribution: "corretto" + java-version: 17 + + - name: Setup Dafny + uses: dafny-lang/setup-dafny-action@v1.6.1 + 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: Setup gradle + if: matrix.language == 'java' + uses: gradle/gradle-build-action@v2 + with: + gradle-version: 7.2 + + # 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: LegacyInterOpTests + + # Extract test vector zips + - name: Unzip legacy test vectors + working-directory: ./${{matrix.library}} + run: | + unzip ${{matrix.legacy_zips}}.zip -d ${{matrix.legacy_zips}} + + # Test Legacy Vectors + - name: Test legacy vectors via CLI + working-directory: ./${{matrix.library}} + env: + MANIFEST_PATH: ${{matrix.legacy_zips}}/ + MANIFEST_NAME: ${{ matrix.legacy_zips == 'aws-encryption-sdk-test-vectors/vectors/awses-decrypt/python-1.3.5' && 'decrypt_message.json' || 'manifest.json'}} + run: | + make test_decrypt_encrypt_vectors_net_legacy + diff --git a/.github/workflows/library_net_tests.yml b/.github/workflows/library_net_tests.yml index 910f5200f..52cc2f3aa 100644 --- a/.github/workflows/library_net_tests.yml +++ b/.github/workflows/library_net_tests.yml @@ -33,7 +33,7 @@ jobs: os: [ windows-latest, ubuntu-latest, - macos-12, + macos-13, ] runs-on: ${{ matrix.os }} permissions: @@ -52,7 +52,6 @@ jobs: run: | git submodule update --init libraries git submodule update --init --recursive mpl - git submodule update --init smithy-dafny - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v2 diff --git a/.github/workflows/library_rust_tests.yml b/.github/workflows/library_rust_tests.yml new file mode 100644 index 000000000..48506fc6d --- /dev/null +++ b/.github/workflows/library_rust_tests.yml @@ -0,0 +1,142 @@ +# This workflow performs tests in Rust. +name: Library Rust tests + +on: + workflow_call: + inputs: + dafny: + description: 'The Dafny version to run' + required: true + type: string + regenerate-code: + description: "Regenerate code using smithy-dafny" + required: false + default: false + type: boolean + +jobs: + testRust: + strategy: + fail-fast: false + matrix: + os: [ + windows-latest, + ubuntu-latest, + macos-12, + ] + runs-on: ${{ matrix.os }} + permissions: + id-token: write + contents: read + env: + # TODO: do we need this here? + DOTNET_CLI_TELEMETRY_OPTOUT: 1 + DOTNET_NOLOGO: 1 + steps: + - name: Support longpaths on Git checkout + run: | + git config --global core.longpaths true + - uses: actions/checkout@v2 + - name: Init Submodules + shell: bash + run: | + git submodule update --init libraries + git submodule update --init --recursive mpl + + - 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: RustTests + + - name: Setup Rust Toolchain for GitHub CI + 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: Use setup-dafny-actions with correct version when Dafny releases 4.8.2 + - name: Setup Dafny + uses: dafny-lang/setup-dafny-action@v1.7.0 + with: + dafny-version: nightly-latest + + # TODO: Remove this after the formatting in Rust starts working + - name: smithy-dafny Rust hacks + 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 Java 17 for codegen + uses: actions/setup-java@v3 + with: + distribution: "corretto" + java-version: "17" + + - name: Setup NASM for Windows (aws-lc-sys) + uses: ilammy/setup-nasm@v1 + + - name: Install Smithy-Dafny codegen dependencies + uses: ./.github/actions/install_smithy_dafny_codegen_dependencies + + - name: Regenerate code using smithy-dafny if necessary + if: ${{ inputs.regenerate-code }} + uses: ./.github/actions/polymorph_codegen + with: + dafny: ${{ env.DAFNY_VERSION }} + library: AwsEncryptionSDK + diff-generated-code: false + update-and-regenerate-mpl: true + + # TODO: Remove this after checking in Rust polymorph code + - name: Run make polymorph_rust + shell: bash + working-directory: ./AwsEncryptionSDK + run: | + make polymorph_rust + + - name: Compile AwsEncryptionSDK implementation + shell: bash + working-directory: ./AwsEncryptionSDK + run: | + # This works because `node` is installed by default on GHA runners + CORES=$(node -e 'console.log(os.cpus().length)') + make transpile_rust TRANSPILE_TESTS_IN_RUST=1 CORES=$CORES + + # Remove Rust hacks once Dafny fixes this + - name: Update implementation_from_dafny.rs to add deps + shell: bash + working-directory: ./AwsEncryptionSDK/runtimes/rust/src + run: | + if [ "$RUNNER_OS" == "macOS" ]; then + sed -i '' '/pub use types::aws_encryption_sdk_config::AwsEncryptionSdkConfig;/a\ + pub use crate::deps::aws_cryptography_materialProviders;\ + pub use crate::deps::aws_cryptography_keyStore;\ + pub use crate::deps::com_amazonaws_kms; + ' implementation_from_dafny.rs + else + sed -i '/pub use types::aws_encryption_sdk_config::AwsEncryptionSdkConfig;/a\ + pub use crate::deps::aws_cryptography_materialProviders;\ + pub use crate::deps::aws_cryptography_keyStore;\ + pub use crate::deps::com_amazonaws_kms; + ' implementation_from_dafny.rs + fi + + - name: Test Rust + working-directory: ./AwsEncryptionSDK + shell: bash + run: | + make test_rust + + - name: Test Examples for Rust + working-directory: ./AwsEncryptionSDK/runtimes/rust + shell: bash + run: | + cargo test --examples \ No newline at end of file diff --git a/.github/workflows/manual.yml b/.github/workflows/manual.yml index 74029c97d..3d4dec075 100644 --- a/.github/workflows/manual.yml +++ b/.github/workflows/manual.yml @@ -32,3 +32,8 @@ jobs: with: dafny: ${{ inputs.dafny }} regenerate-code: ${{ inputs.regenerate-code }} + manual-ci-rust: + uses: ./.github/workflows/library_rust_tests.yml + with: + dafny: ${{ inputs.dafny }} + regenerate-code: ${{ inputs.regenerate-code }} diff --git a/.github/workflows/nighly_dafny.yml b/.github/workflows/nighly_dafny.yml index 88b30fecf..de10f6510 100644 --- a/.github/workflows/nighly_dafny.yml +++ b/.github/workflows/nighly_dafny.yml @@ -31,6 +31,12 @@ jobs: with: dafny: 'nightly-latest' regenerate-code: true + dafny-nightly-rust: + if: github.event_name != 'schedule' || github.repository_owner == 'aws' + uses: ./.github/workflows/library_rust_tests.yml + with: + dafny: 'nightly-latest' + regenerate-code: true cut-issue-on-failure: runs-on: ubuntu-latest diff --git a/.github/workflows/pull.yml b/.github/workflows/pull.yml index 655eea31c..da68f7fa4 100644 --- a/.github/workflows/pull.yml +++ b/.github/workflows/pull.yml @@ -8,11 +8,11 @@ jobs: pr-ci-codegen: uses: ./.github/workflows/library_codegen.yml with: - dafny: '4.8.0' + dafny: '4.8.1' pr-ci-verification: uses: ./.github/workflows/library_dafny_verification.yml with: - dafny: '4.8.0' + dafny: '4.8.1' # pr-ci-java: # uses: ./.github/workflows/library_java_tests.yml # with: @@ -20,8 +20,16 @@ jobs: pr-ci-net: uses: ./.github/workflows/library_net_tests.yml with: - dafny: '4.8.0' + dafny: '4.8.1' pr-test-vectors: uses: ./.github/workflows/library_interop_tests.yml with: - dafny: '4.8.0' + dafny: '4.8.1' + pr-dafny-test-vectors: + uses: ./.github/workflows/library_interop_test_vectors.yml + with: + dafny: '4.8.1' + pr-dafny-legacy-test-vectors: + uses: ./.github/workflows/library_legacy_interop_test_vectors.yml + with: + dafny: '4.8.1' \ No newline at end of file diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 0df538b37..9801151e6 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -10,11 +10,11 @@ jobs: pr-ci-codegen: uses: ./.github/workflows/library_codegen.yml with: - dafny: '4.8.0' + dafny: '4.8.1' push-ci-verification: uses: ./.github/workflows/library_dafny_verification.yml with: - dafny: '4.8.0' + dafny: '4.8.1' # push-ci-java: # uses: ./.github/workflows/library_java_tests.yml # with: @@ -22,8 +22,12 @@ jobs: push-ci-net: uses: ./.github/workflows/library_net_tests.yml with: - dafny: '4.8.0' + dafny: '4.8.1' + push-ci-rust: + uses: ./.github/workflows/library_rust_tests.yml + with: + dafny: '4.8.1' pr-test-vectors: uses: ./.github/workflows/library_interop_tests.yml with: - dafny: '4.8.0' + dafny: '4.8.1' diff --git a/.github/workflows/sem_ver.yml b/.github/workflows/sem_ver.yml index 1acf295f9..eb2752675 100644 --- a/.github/workflows/sem_ver.yml +++ b/.github/workflows/sem_ver.yml @@ -6,7 +6,7 @@ on: jobs: semantic-release: - runs-on: macos-12 + runs-on: macos-13 permissions: id-token: write contents: read diff --git a/.github/workflows/semantic_release.yml b/.github/workflows/semantic_release.yml index 5fb0fd0f6..2e8455220 100644 --- a/.github/workflows/semantic_release.yml +++ b/.github/workflows/semantic_release.yml @@ -15,7 +15,7 @@ jobs: # privileged operation, so we must make sure this list of users is a subset of the users labeled as maintainers of # https://github.com/orgs/aws/teams/aws-crypto-tools if: contains('["seebees","texastony","ShubhamChaturvedi7","lucasmcdonald3","josecorella","imabhichow","rishav-karanjit","antonf-amzn","justplaz","ajewellamz","RitvikKapila"]', github.actor) - runs-on: macos-12 + runs-on: macos-13 permissions: id-token: write contents: write diff --git a/.gitmodules b/.gitmodules index af8c2a073..cdab5a3bd 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,6 +8,9 @@ [submodule "mpl"] path = mpl url = https://github.com/aws/aws-cryptographic-material-providers-library-dafny.git -[submodule "smithy-dafny"] - path = smithy-dafny - url = https://github.com/awslabs/smithy-dafny +[submodule "AwsEncryptionSDK/runtimes/net/TestVectorsV3/TestVectors/resources/aws-encryption-sdk-test-vectors"] + path = AwsEncryptionSDK/runtimes/net/TestVectorsV3/TestVectors/resources/aws-encryption-sdk-test-vectors + url = https://github.com/awslabs/aws-encryption-sdk-test-vectors.git +[submodule "TestVectors/aws-encryption-sdk-test-vectors"] + path = TestVectors/aws-encryption-sdk-test-vectors + url = https://github.com/awslabs/aws-encryption-sdk-test-vectors.git diff --git a/AwsEncryptionSDK/.gitignore b/AwsEncryptionSDK/.gitignore index 0f6df2a2c..0b80638c5 100644 --- a/AwsEncryptionSDK/.gitignore +++ b/AwsEncryptionSDK/.gitignore @@ -1,9 +1,11 @@ TestResults ImplementationFromDafny.cs TestsFromDafny.cs +ImplementationFromDafny-cs.dtr +TestsFromDafny-cs.dtr bin/ obj/ # Ignore *-cs.dtr files -*-cs.dtr \ No newline at end of file +*-cs.dtr diff --git a/AwsEncryptionSDK/codegen-patches/AwsEncryptionSdk/java/dafny-4.8.1.patch b/AwsEncryptionSDK/codegen-patches/AwsEncryptionSdk/java/dafny-4.8.1.patch new file mode 100644 index 000000000..32602ec55 --- /dev/null +++ b/AwsEncryptionSDK/codegen-patches/AwsEncryptionSdk/java/dafny-4.8.1.patch @@ -0,0 +1,371 @@ +diff --git a/AwsEncryptionSDK/codegen-patches/java/dafny-4.8.1.patch b/AwsEncryptionSDK/codegen-patches/java/dafny-4.8.1.patch +index 6512cb85..e69de29b 100644 +--- a/AwsEncryptionSDK/codegen-patches/java/dafny-4.8.1.patch ++++ b/AwsEncryptionSDK/codegen-patches/java/dafny-4.8.1.patch +@@ -1,19 +0,0 @@ +-diff --git a/AwsEncryptionSDK/runtimes/java/src/main/smithy-generated/software/amazon/cryptography/encryptionsdk/model/EncryptInput.java b/AwsEncryptionSDK/runtimes/java/src/main/smithy-generated/software/amazon/cryptography/encryptionsdk/model/EncryptInput.java +-index 67ac1304..7282539c 100644 +---- a/AwsEncryptionSDK/runtimes/java/src/main/smithy-generated/software/amazon/cryptography/encryptionsdk/model/EncryptInput.java +-+++ b/AwsEncryptionSDK/runtimes/java/src/main/smithy-generated/software/amazon/cryptography/encryptionsdk/model/EncryptInput.java +-@@ -192,7 +192,7 @@ public class EncryptInput { +- "`frameLength` must be greater than or equal to 1" +- ); +- } +-- if (this._frameLengthSet && this.frameLength() > 4294967296) { +-+ if (this._frameLengthSet && this.frameLength() > 4294967296L) { +- throw new IllegalArgumentException( +- "`frameLength` must be less than or equal to 4294967296." +- ); +-diff --git a/mpl b/mpl +---- a/mpl +-+++ b/mpl +-@@ -1 +1 @@ +--Subproject commit ea0fe508dca214b9c9bdaf0fc21122e83971ef1b +-+Subproject commit ea0fe508dca214b9c9bdaf0fc21122e83971ef1b-dirty +diff --git a/AwsEncryptionSDK/runtimes/java/src/main/smithy-generated/software/amazon/cryptography/encryptionsdk/ToDafny.java b/AwsEncryptionSDK/runtimes/java/src/main/smithy-generated/software/amazon/cryptography/encryptionsdk/ToDafny.java +index 4a9bbfea..e83bfcf9 100644 +--- a/AwsEncryptionSDK/runtimes/java/src/main/smithy-generated/software/amazon/cryptography/encryptionsdk/ToDafny.java ++++ b/AwsEncryptionSDK/runtimes/java/src/main/smithy-generated/software/amazon/cryptography/encryptionsdk/ToDafny.java +@@ -42,11 +42,25 @@ public class ToDafny { + if (nativeValue instanceof CollectionOfErrors) { + return ToDafny.Error((CollectionOfErrors) nativeValue); + } +- return Error.create_Opaque(nativeValue); ++ return Error.create_Opaque( ++ nativeValue, ++ dafny.DafnySequence.asString( ++ java.util.Objects.nonNull(nativeValue.getMessage()) ++ ? nativeValue.getMessage() ++ : "" ++ ) ++ ); + } + + public static Error Error(OpaqueError nativeValue) { +- return Error.create_Opaque(nativeValue.obj()); ++ return Error.create_Opaque( ++ nativeValue.obj(), ++ dafny.DafnySequence.asString( ++ java.util.Objects.nonNull(nativeValue.altText()) ++ ? nativeValue.altText() ++ : "" ++ ) ++ ); + } + + public static Error Error(CollectionOfErrors nativeValue) { +@@ -70,27 +84,27 @@ public class ToDafny { + commitmentPolicy = + Objects.nonNull(nativeValue.commitmentPolicy()) + ? Option.create_Some( +- ESDKCommitmentPolicy._typeDescriptor(), +- software.amazon.cryptography.materialproviders.ToDafny.ESDKCommitmentPolicy( +- nativeValue.commitmentPolicy() +- ) ++ ESDKCommitmentPolicy._typeDescriptor(), ++ software.amazon.cryptography.materialproviders.ToDafny.ESDKCommitmentPolicy( ++ nativeValue.commitmentPolicy() + ) ++ ) + : Option.create_None(ESDKCommitmentPolicy._typeDescriptor()); + Option maxEncryptedDataKeys; + maxEncryptedDataKeys = + Objects.nonNull(nativeValue.maxEncryptedDataKeys()) + ? Option.create_Some( +- TypeDescriptor.LONG, +- (nativeValue.maxEncryptedDataKeys()) +- ) ++ TypeDescriptor.LONG, ++ (nativeValue.maxEncryptedDataKeys()) ++ ) + : Option.create_None(TypeDescriptor.LONG); + Option netV4_0_0_RetryPolicy; + netV4_0_0_RetryPolicy = + Objects.nonNull(nativeValue.netV4_0_0_RetryPolicy()) + ? Option.create_Some( +- NetV4__0__0__RetryPolicy._typeDescriptor(), +- ToDafny.NetV4_0_0_RetryPolicy(nativeValue.netV4_0_0_RetryPolicy()) +- ) ++ NetV4__0__0__RetryPolicy._typeDescriptor(), ++ ToDafny.NetV4_0_0_RetryPolicy(nativeValue.netV4_0_0_RetryPolicy()) ++ ) + : Option.create_None(NetV4__0__0__RetryPolicy._typeDescriptor()); + return new AwsEncryptionSdkConfig( + commitmentPolicy, +@@ -111,11 +125,11 @@ public class ToDafny { + materialsManager = + Objects.nonNull(nativeValue.materialsManager()) + ? Option.create_Some( +- TypeDescriptor.reference(ICryptographicMaterialsManager.class), +- software.amazon.cryptography.materialproviders.ToDafny.CryptographicMaterialsManager( +- nativeValue.materialsManager() +- ) ++ TypeDescriptor.reference(ICryptographicMaterialsManager.class), ++ software.amazon.cryptography.materialproviders.ToDafny.CryptographicMaterialsManager( ++ nativeValue.materialsManager() + ) ++ ) + : Option.create_None( + TypeDescriptor.reference(ICryptographicMaterialsManager.class) + ); +@@ -123,30 +137,30 @@ public class ToDafny { + keyring = + Objects.nonNull(nativeValue.keyring()) + ? Option.create_Some( +- TypeDescriptor.reference(IKeyring.class), +- software.amazon.cryptography.materialproviders.ToDafny.Keyring( +- nativeValue.keyring() +- ) ++ TypeDescriptor.reference(IKeyring.class), ++ software.amazon.cryptography.materialproviders.ToDafny.Keyring( ++ nativeValue.keyring() + ) ++ ) + : Option.create_None(TypeDescriptor.reference(IKeyring.class)); + Option< + DafnyMap< + ? extends DafnySequence, + ? extends DafnySequence +- > +- > encryptionContext; ++ > ++ > encryptionContext; + encryptionContext = + (Objects.nonNull(nativeValue.encryptionContext()) && +- nativeValue.encryptionContext().size() > 0) ++ nativeValue.encryptionContext().size() > 0) + ? Option.create_Some( +- DafnyMap._typeDescriptor( +- DafnySequence._typeDescriptor(TypeDescriptor.BYTE), +- DafnySequence._typeDescriptor(TypeDescriptor.BYTE) +- ), +- software.amazon.cryptography.materialproviders.ToDafny.EncryptionContext( +- nativeValue.encryptionContext() +- ) ++ DafnyMap._typeDescriptor( ++ DafnySequence._typeDescriptor(TypeDescriptor.BYTE), ++ DafnySequence._typeDescriptor(TypeDescriptor.BYTE) ++ ), ++ software.amazon.cryptography.materialproviders.ToDafny.EncryptionContext( ++ nativeValue.encryptionContext() + ) ++ ) + : Option.create_None( + DafnyMap._typeDescriptor( + DafnySequence._typeDescriptor(TypeDescriptor.BYTE), +@@ -172,7 +186,7 @@ public class ToDafny { + DafnyMap< + ? extends DafnySequence, + ? extends DafnySequence +- > encryptionContext; ++ > encryptionContext; + encryptionContext = + software.amazon.cryptography.materialproviders.ToDafny.EncryptionContext( + nativeValue.encryptionContext() +@@ -197,20 +211,20 @@ public class ToDafny { + DafnyMap< + ? extends DafnySequence, + ? extends DafnySequence +- > +- > encryptionContext; ++ > ++ > encryptionContext; + encryptionContext = + (Objects.nonNull(nativeValue.encryptionContext()) && +- nativeValue.encryptionContext().size() > 0) ++ nativeValue.encryptionContext().size() > 0) + ? Option.create_Some( +- DafnyMap._typeDescriptor( +- DafnySequence._typeDescriptor(TypeDescriptor.BYTE), +- DafnySequence._typeDescriptor(TypeDescriptor.BYTE) +- ), +- software.amazon.cryptography.materialproviders.ToDafny.EncryptionContext( +- nativeValue.encryptionContext() +- ) ++ DafnyMap._typeDescriptor( ++ DafnySequence._typeDescriptor(TypeDescriptor.BYTE), ++ DafnySequence._typeDescriptor(TypeDescriptor.BYTE) ++ ), ++ software.amazon.cryptography.materialproviders.ToDafny.EncryptionContext( ++ nativeValue.encryptionContext() + ) ++ ) + : Option.create_None( + DafnyMap._typeDescriptor( + DafnySequence._typeDescriptor(TypeDescriptor.BYTE), +@@ -221,11 +235,11 @@ public class ToDafny { + materialsManager = + Objects.nonNull(nativeValue.materialsManager()) + ? Option.create_Some( +- TypeDescriptor.reference(ICryptographicMaterialsManager.class), +- software.amazon.cryptography.materialproviders.ToDafny.CryptographicMaterialsManager( +- nativeValue.materialsManager() +- ) ++ TypeDescriptor.reference(ICryptographicMaterialsManager.class), ++ software.amazon.cryptography.materialproviders.ToDafny.CryptographicMaterialsManager( ++ nativeValue.materialsManager() + ) ++ ) + : Option.create_None( + TypeDescriptor.reference(ICryptographicMaterialsManager.class) + ); +@@ -233,21 +247,21 @@ public class ToDafny { + keyring = + Objects.nonNull(nativeValue.keyring()) + ? Option.create_Some( +- TypeDescriptor.reference(IKeyring.class), +- software.amazon.cryptography.materialproviders.ToDafny.Keyring( +- nativeValue.keyring() +- ) ++ TypeDescriptor.reference(IKeyring.class), ++ software.amazon.cryptography.materialproviders.ToDafny.Keyring( ++ nativeValue.keyring() + ) ++ ) + : Option.create_None(TypeDescriptor.reference(IKeyring.class)); + Option algorithmSuiteId; + algorithmSuiteId = + Objects.nonNull(nativeValue.algorithmSuiteId()) + ? Option.create_Some( +- ESDKAlgorithmSuiteId._typeDescriptor(), +- software.amazon.cryptography.materialproviders.ToDafny.ESDKAlgorithmSuiteId( +- nativeValue.algorithmSuiteId() +- ) ++ ESDKAlgorithmSuiteId._typeDescriptor(), ++ software.amazon.cryptography.materialproviders.ToDafny.ESDKAlgorithmSuiteId( ++ nativeValue.algorithmSuiteId() + ) ++ ) + : Option.create_None(ESDKAlgorithmSuiteId._typeDescriptor()); + Option frameLength; + frameLength = +@@ -275,7 +289,7 @@ public class ToDafny { + DafnyMap< + ? extends DafnySequence, + ? extends DafnySequence +- > encryptionContext; ++ > encryptionContext; + encryptionContext = + software.amazon.cryptography.materialproviders.ToDafny.EncryptionContext( + nativeValue.encryptionContext() +@@ -302,21 +316,21 @@ public class ToDafny { + ) { + switch (nativeValue) { + case FORBID_RETRY: +- { +- return NetV4__0__0__RetryPolicy.create_FORBID__RETRY(); +- } ++ { ++ return NetV4__0__0__RetryPolicy.create_FORBID__RETRY(); ++ } + case ALLOW_RETRY: +- { +- return NetV4__0__0__RetryPolicy.create_ALLOW__RETRY(); +- } ++ { ++ return NetV4__0__0__RetryPolicy.create_ALLOW__RETRY(); ++ } + default: +- { +- throw new RuntimeException( +- "Cannot convert " + ++ { ++ throw new RuntimeException( ++ "Cannot convert " + + nativeValue + + " to software.amazon.cryptography.encryptionsdk.internaldafny.types.NetV4__0__0__RetryPolicy." +- ); +- } ++ ); ++ } + } + } + +diff --git a/AwsEncryptionSDK/runtimes/java/src/main/smithy-generated/software/amazon/cryptography/encryptionsdk/model/EncryptInput.java b/AwsEncryptionSDK/runtimes/java/src/main/smithy-generated/software/amazon/cryptography/encryptionsdk/model/EncryptInput.java +index 67ac1304..7282539c 100644 +--- a/AwsEncryptionSDK/runtimes/java/src/main/smithy-generated/software/amazon/cryptography/encryptionsdk/model/EncryptInput.java ++++ b/AwsEncryptionSDK/runtimes/java/src/main/smithy-generated/software/amazon/cryptography/encryptionsdk/model/EncryptInput.java +@@ -192,7 +192,7 @@ public class EncryptInput { + "`frameLength` must be greater than or equal to 1" + ); + } +- if (this._frameLengthSet && this.frameLength() > 4294967296) { ++ if (this._frameLengthSet && this.frameLength() > 4294967296L) { + throw new IllegalArgumentException( + "`frameLength` must be less than or equal to 4294967296." + ); +diff --git a/AwsEncryptionSDK/runtimes/java/src/main/smithy-generated/software/amazon/cryptography/encryptionsdk/model/OpaqueError.java b/AwsEncryptionSDK/runtimes/java/src/main/smithy-generated/software/amazon/cryptography/encryptionsdk/model/OpaqueError.java +index c24a0e9e..2fb2fd63 100644 +--- a/AwsEncryptionSDK/runtimes/java/src/main/smithy-generated/software/amazon/cryptography/encryptionsdk/model/OpaqueError.java ++++ b/AwsEncryptionSDK/runtimes/java/src/main/smithy-generated/software/amazon/cryptography/encryptionsdk/model/OpaqueError.java +@@ -10,8 +10,14 @@ public class OpaqueError extends RuntimeException { + */ + private final Object obj; + ++ /** ++ * A best effort text representation of obj. ++ */ ++ private final String altText; ++ + protected OpaqueError(BuilderImpl builder) { + super(messageFromBuilder(builder), builder.cause()); ++ this.altText = builder.altText(); + this.obj = builder.obj(); + } + +@@ -46,6 +52,13 @@ public class OpaqueError extends RuntimeException { + return this.obj; + } + ++ /** ++ * @return A best effort text representation of obj. ++ */ ++ public String altText() { ++ return this.altText; ++ } ++ + public Builder toBuilder() { + return new BuilderImpl(this); + } +@@ -85,6 +98,16 @@ public class OpaqueError extends RuntimeException { + */ + Object obj(); + ++ /** ++ * @param altText A best effort text representation of obj. ++ */ ++ Builder altText(String altText); ++ ++ /** ++ * @return A best effort text representation of obj. ++ */ ++ String altText(); ++ + OpaqueError build(); + } + +@@ -96,6 +119,8 @@ public class OpaqueError extends RuntimeException { + + protected Object obj; + ++ protected String altText; ++ + protected BuilderImpl() {} + + protected BuilderImpl(OpaqueError model) { +@@ -131,6 +156,15 @@ public class OpaqueError extends RuntimeException { + return this.obj; + } + ++ public Builder altText(String altText) { ++ this.altText = altText; ++ return this; ++ } ++ ++ public String altText() { ++ return this.altText; ++ } ++ + public OpaqueError build() { + if ( + this.obj != null && this.cause == null && this.obj instanceof Throwable diff --git a/AwsEncryptionSDK/dafny/AwsEncryptionSdk/Model/AwsCryptographyEncryptionSdkTypes.dfy b/AwsEncryptionSDK/dafny/AwsEncryptionSdk/Model/AwsCryptographyEncryptionSdkTypes.dfy index 8e4ccca81..c2d640db6 100644 --- a/AwsEncryptionSDK/dafny/AwsEncryptionSdk/Model/AwsCryptographyEncryptionSdkTypes.dfy +++ b/AwsEncryptionSDK/dafny/AwsEncryptionSdk/Model/AwsCryptographyEncryptionSdkTypes.dfy @@ -175,7 +175,7 @@ module {:extern "software.amazon.cryptography.encryptionsdk.internaldafny.types" // || (!exit(A(I)) && !access(B(I))) | CollectionOfErrors(list: seq, nameonly message: string) // The Opaque error, used for native, extern, wrapped or unknown errors - | Opaque(obj: object) + | Opaque(obj: object, alt_text : string) type OpaqueError = e: Error | e.Opaque? witness * // This dummy subset type is included to make sure Dafny // always generates a _ExternBase___default.java class. diff --git a/AwsEncryptionSDK/dafny/AwsEncryptionSdk/src/MessageBody.dfy b/AwsEncryptionSDK/dafny/AwsEncryptionSdk/src/MessageBody.dfy index 0c0199111..96d7261b1 100644 --- a/AwsEncryptionSDK/dafny/AwsEncryptionSdk/src/MessageBody.dfy +++ b/AwsEncryptionSDK/dafny/AwsEncryptionSdk/src/MessageBody.dfy @@ -964,17 +964,16 @@ module MessageBody { :(res: ReadCorrect) requires forall frame: Frames.Frame | frame in regularFrames :: frame.header == header requires buffer.bytes == continuation.bytes - requires buffer.start <= continuation.start + requires buffer.start <= continuation.start requires 0 <= continuation.start <= |buffer.bytes| requires CorrectlyReadRange(buffer, continuation, buffer.bytes[buffer.start..continuation.start]) requires CorrectlyRead(buffer, Success(SuccessfulRead(regularFrames, continuation)), WriteMessageRegularFrames) decreases ENDFRAME_SEQUENCE_NUMBER as nat - |regularFrames| ensures CorrectlyRead(buffer, res, WriteFramedMessageBody) ensures res.Success? - ==> - && res.value.data.finalFrame.header == header + ==> + && res.value.data.finalFrame.header == header { - reveal CorrectlyReadRange(); var sequenceNumber :- ReadUInt32(continuation); //= compliance/client-apis/decrypt.txt#2.7.4 @@ -984,8 +983,6 @@ module MessageBody { //# (../data-format/message-body.md#final-frame) or regular frame //# (../fata-format/message-body/md#regular-frame). if (sequenceNumber.data != ENDFRAME_SEQUENCE_NUMBER) then - - assert {:split_here} true; //= compliance/client-apis/decrypt.txt#2.7.4 //# Otherwise, this MUST @@ -993,10 +990,7 @@ module MessageBody { //# header.md#sequence-number) and the following bytes according to the //# regular frame spec (../data-format/message-body.md#regular-frame). var regularFrame :- Frames.ReadRegularFrame(continuation, header); - assert buffer.bytes == continuation.bytes; - assert buffer.bytes == regularFrame.tail.bytes by { - reveal CorrectlyReadRange(); - } + //= compliance/client-apis/decrypt.txt#2.7.4 //# If this is framed data and the first //# frame sequentially, this value MUST be 1. @@ -1008,19 +1002,15 @@ module MessageBody { //# of the previous frame. :- Need(regularFrame.data.seqNum as nat == |regularFrames| + 1, Error("Sequence number out of order.")); - assert {:split_here} true; LemmaAddingNextRegularFrame(regularFrames, regularFrame.data); var nextRegularFrames: MessageRegularFrames := regularFrames + [regularFrame.data]; - assert {:split_here} true; - assert CorrectlyRead(continuation, Success(regularFrame), Frames.WriteRegularFrame); - assert continuation.bytes == regularFrame.tail.bytes by { + CorrectlyReadByteRange(buffer, continuation, WriteMessageRegularFrames(regularFrames)); + AppendToCorrectlyReadByteRange(buffer, continuation, regularFrame.tail, Frames.WriteRegularFrame(regularFrame.data)); + assert buffer.bytes == continuation.bytes == regularFrame.tail.bytes by { reveal CorrectlyReadRange(); } - - assert {:split_here} true; - // This method recursively reads all the frames in the buffer, // instead of reading one frame a time, so this requirement cannot be met //= compliance/client-apis/decrypt.txt#2.7.4 @@ -1031,17 +1021,20 @@ module MessageBody { //# (../framework/algorithm-suites.md#encryption-algorithm) specified by //# the algorithm suite (../framework/algorithm-suites.md), with the //# following inputs: - var res := Success(SuccessfulRead(nextRegularFrames, regularFrame.tail)); - assert CorrectlyRead(buffer, res, WriteMessageRegularFrames) by { - reveal CorrectlyReadRange(); - - var tail := res.value.tail; - var readRange := WriteMessageRegularFrames(res.value.data); - assert buffer.bytes == tail.bytes; - assert buffer.start <= tail.start <= |buffer.bytes|; - assert buffer.bytes[buffer.start..] == tail.bytes[buffer.start..]; - assert readRange <= buffer.bytes[buffer.start..]; - assert tail.start == buffer.start + |readRange|; + assert CorrectlyRead( + buffer, + Success(SuccessfulRead(nextRegularFrames, regularFrame.tail)), + WriteMessageRegularFrames + ) by { + calc { + buffer.bytes[buffer.start..continuation.start] + Frames.WriteRegularFrame(regularFrame.data); + == {CorrectlyReadByteRange(buffer, continuation, WriteMessageRegularFrames(regularFrames));} + WriteMessageRegularFrames(regularFrames) + Frames.WriteRegularFrame(regularFrame.data); + == // By definition of WriteMessageRegularFrames + WriteMessageRegularFrames(regularFrames + [regularFrame.data]); + == {assert nextRegularFrames == regularFrames + [regularFrame.data];} + WriteMessageRegularFrames(nextRegularFrames); + } } ReadFramedMessageBody( @@ -1058,26 +1051,34 @@ module MessageBody { //# number-end) and the following bytes according to the final frame spec //# (../data-format/message-body.md#final-frame). assert sequenceNumber.data == ENDFRAME_SEQUENCE_NUMBER; - - assert {:split_here} true; + var finalFrame :- Frames.ReadFinalFrame(continuation, header); :- Need( - finalFrame.data.seqNum as nat == |regularFrames| + 1, - Error("Sequence number out of order.") - ); + finalFrame.data.seqNum as nat == |regularFrames| + 1, + Error("Sequence number out of order.") + ); - assert {:split_here} true; assert MessageFramesAreMonotonic(regularFrames + [finalFrame.data]); assert MessageFramesAreForTheSameMessage(regularFrames + [finalFrame.data]); var body: FramedMessage := FramedMessageBody( - regularFrames := regularFrames, - finalFrame := finalFrame.data - ); + regularFrames := regularFrames, + finalFrame := finalFrame.data + ); + + assert CorrectlyRead(buffer, Success(SuccessfulRead(body, finalFrame.tail)), WriteFramedMessageBody) by { + AppendToCorrectlyReadByteRange(buffer, continuation, finalFrame.tail, Frames.WriteFinalFrame(finalFrame.data)); + calc { + buffer.bytes[buffer.start..finalFrame.tail.start]; + == + buffer.bytes[buffer.start..continuation.start] + Frames.WriteFinalFrame(finalFrame.data); + == {CorrectlyReadByteRange(buffer, continuation, WriteMessageRegularFrames(regularFrames));} + WriteMessageRegularFrames(regularFrames) + Frames.WriteFinalFrame(finalFrame.data); + == // By definition of WriteMessageRegularFrames + WriteFramedMessageBody(body); + } + } - assert {:split_here} true; - assert CorrectlyRead(continuation, Success(finalFrame), Frames.WriteFinalFrame); - assert {:split_here} true; Success(SuccessfulRead(body, finalFrame.tail)) } diff --git a/AwsEncryptionSDK/runtimes/java/build.gradle.kts b/AwsEncryptionSDK/runtimes/java/build.gradle.kts index b3ee86fd0..cba6f6d5c 100644 --- a/AwsEncryptionSDK/runtimes/java/build.gradle.kts +++ b/AwsEncryptionSDK/runtimes/java/build.gradle.kts @@ -13,22 +13,26 @@ import java.util.Properties plugins { // Apply the java-library plugin for API and implementation separation. `java-library` + `maven-publish` } var props = Properties().apply { load(FileInputStream(File(rootProject.rootDir, "../../project.properties"))) } -var dafnyVersion = props.getProperty("dafnyVersion") +group = "software.amazon.cryptography" +version = "1.0.0-SNAPSHOT" +description = "AwsEncryptionSdk" repositories { // Use Maven Central for resolving dependencies. mavenCentral() + mavenLocal() } dependencies { - implementation("org.dafny:DafnyRuntime:${dafnyVersion}") + implementation("org.dafny:DafnyRuntime:4.8.0") implementation("software.amazon.smithy.dafny:conversion:0.1") - implementation("software.amazon.cryptography:aws-cryptographic-material-providers:1.4.0") + implementation("software.amazon.cryptography:aws-cryptographic-material-providers:1.7.0") // Use JUnit test framework. testImplementation("junit:junit:4.13.2") @@ -63,3 +67,15 @@ fun SourceDirectorySet.mainSourceSet() { srcDir("src/main/dafny-generated") srcDir("src/main/smithy-generated") } + +publishing { + publications.create("mavenLocal") { + groupId = "software.amazon.cryptography" + artifactId = "aws-encryption-sdk" + from(components["java"]) + } + repositories { + mavenLocal() + } +} + diff --git a/AwsEncryptionSDK/runtimes/java/src/main/java/software/amazon/cryptography/encryptionsdk/internaldafny/types/__default.java b/AwsEncryptionSDK/runtimes/java/src/main/java/software/amazon/cryptography/encryptionsdk/internaldafny/types/__default.java new file mode 100644 index 000000000..c9efdd237 --- /dev/null +++ b/AwsEncryptionSDK/runtimes/java/src/main/java/software/amazon/cryptography/encryptionsdk/internaldafny/types/__default.java @@ -0,0 +1,4 @@ +package software.amazon.cryptography.encryptionsdk.internaldafny.types; + +public class __default extends software.amazon.cryptography.encryptionsdk.internaldafny.types._ExternBase___default { +} diff --git a/AwsEncryptionSDK/runtimes/java/src/main/smithy-generated/software/amazon/cryptography/encryptionsdk/ToDafny.java b/AwsEncryptionSDK/runtimes/java/src/main/smithy-generated/software/amazon/cryptography/encryptionsdk/ToDafny.java index 537dafc94..e83bfcf9f 100644 --- a/AwsEncryptionSDK/runtimes/java/src/main/smithy-generated/software/amazon/cryptography/encryptionsdk/ToDafny.java +++ b/AwsEncryptionSDK/runtimes/java/src/main/smithy-generated/software/amazon/cryptography/encryptionsdk/ToDafny.java @@ -6,6 +6,7 @@ import Wrappers_Compile.Option; import dafny.DafnyMap; import dafny.DafnySequence; +import dafny.TypeDescriptor; import java.lang.Byte; import java.lang.Character; import java.lang.Long; @@ -41,11 +42,25 @@ public static Error Error(RuntimeException nativeValue) { if (nativeValue instanceof CollectionOfErrors) { return ToDafny.Error((CollectionOfErrors) nativeValue); } - return Error.create_Opaque(nativeValue); + return Error.create_Opaque( + nativeValue, + dafny.DafnySequence.asString( + java.util.Objects.nonNull(nativeValue.getMessage()) + ? nativeValue.getMessage() + : "" + ) + ); } public static Error Error(OpaqueError nativeValue) { - return Error.create_Opaque(nativeValue.obj()); + return Error.create_Opaque( + nativeValue.obj(), + dafny.DafnySequence.asString( + java.util.Objects.nonNull(nativeValue.altText()) + ? nativeValue.altText() + : "" + ) + ); } public static Error Error(CollectionOfErrors nativeValue) { @@ -69,23 +84,28 @@ public static AwsEncryptionSdkConfig AwsEncryptionSdkConfig( commitmentPolicy = Objects.nonNull(nativeValue.commitmentPolicy()) ? Option.create_Some( - software.amazon.cryptography.materialproviders.ToDafny.ESDKCommitmentPolicy( - nativeValue.commitmentPolicy() - ) + ESDKCommitmentPolicy._typeDescriptor(), + software.amazon.cryptography.materialproviders.ToDafny.ESDKCommitmentPolicy( + nativeValue.commitmentPolicy() ) - : Option.create_None(); + ) + : Option.create_None(ESDKCommitmentPolicy._typeDescriptor()); Option maxEncryptedDataKeys; maxEncryptedDataKeys = Objects.nonNull(nativeValue.maxEncryptedDataKeys()) - ? Option.create_Some((nativeValue.maxEncryptedDataKeys())) - : Option.create_None(); + ? Option.create_Some( + TypeDescriptor.LONG, + (nativeValue.maxEncryptedDataKeys()) + ) + : Option.create_None(TypeDescriptor.LONG); Option netV4_0_0_RetryPolicy; netV4_0_0_RetryPolicy = Objects.nonNull(nativeValue.netV4_0_0_RetryPolicy()) ? Option.create_Some( - ToDafny.NetV4_0_0_RetryPolicy(nativeValue.netV4_0_0_RetryPolicy()) - ) - : Option.create_None(); + NetV4__0__0__RetryPolicy._typeDescriptor(), + ToDafny.NetV4_0_0_RetryPolicy(nativeValue.netV4_0_0_RetryPolicy()) + ) + : Option.create_None(NetV4__0__0__RetryPolicy._typeDescriptor()); return new AwsEncryptionSdkConfig( commitmentPolicy, maxEncryptedDataKeys, @@ -105,35 +125,48 @@ public static DecryptInput DecryptInput( materialsManager = Objects.nonNull(nativeValue.materialsManager()) ? Option.create_Some( - software.amazon.cryptography.materialproviders.ToDafny.CryptographicMaterialsManager( - nativeValue.materialsManager() - ) + TypeDescriptor.reference(ICryptographicMaterialsManager.class), + software.amazon.cryptography.materialproviders.ToDafny.CryptographicMaterialsManager( + nativeValue.materialsManager() ) - : Option.create_None(); + ) + : Option.create_None( + TypeDescriptor.reference(ICryptographicMaterialsManager.class) + ); Option keyring; keyring = Objects.nonNull(nativeValue.keyring()) ? Option.create_Some( - software.amazon.cryptography.materialproviders.ToDafny.Keyring( - nativeValue.keyring() - ) + TypeDescriptor.reference(IKeyring.class), + software.amazon.cryptography.materialproviders.ToDafny.Keyring( + nativeValue.keyring() ) - : Option.create_None(); + ) + : Option.create_None(TypeDescriptor.reference(IKeyring.class)); Option< DafnyMap< ? extends DafnySequence, ? extends DafnySequence - > - > encryptionContext; + > + > encryptionContext; encryptionContext = (Objects.nonNull(nativeValue.encryptionContext()) && - nativeValue.encryptionContext().size() > 0) + nativeValue.encryptionContext().size() > 0) ? Option.create_Some( - software.amazon.cryptography.materialproviders.ToDafny.EncryptionContext( - nativeValue.encryptionContext() - ) + DafnyMap._typeDescriptor( + DafnySequence._typeDescriptor(TypeDescriptor.BYTE), + DafnySequence._typeDescriptor(TypeDescriptor.BYTE) + ), + software.amazon.cryptography.materialproviders.ToDafny.EncryptionContext( + nativeValue.encryptionContext() ) - : Option.create_None(); + ) + : Option.create_None( + DafnyMap._typeDescriptor( + DafnySequence._typeDescriptor(TypeDescriptor.BYTE), + DafnySequence._typeDescriptor(TypeDescriptor.BYTE) + ) + ); return new DecryptInput( ciphertext, materialsManager, @@ -153,7 +186,7 @@ public static DecryptOutput DecryptOutput( DafnyMap< ? extends DafnySequence, ? extends DafnySequence - > encryptionContext; + > encryptionContext; encryptionContext = software.amazon.cryptography.materialproviders.ToDafny.EncryptionContext( nativeValue.encryptionContext() @@ -178,49 +211,63 @@ public static EncryptInput EncryptInput( DafnyMap< ? extends DafnySequence, ? extends DafnySequence - > - > encryptionContext; + > + > encryptionContext; encryptionContext = (Objects.nonNull(nativeValue.encryptionContext()) && - nativeValue.encryptionContext().size() > 0) + nativeValue.encryptionContext().size() > 0) ? Option.create_Some( - software.amazon.cryptography.materialproviders.ToDafny.EncryptionContext( - nativeValue.encryptionContext() - ) + DafnyMap._typeDescriptor( + DafnySequence._typeDescriptor(TypeDescriptor.BYTE), + DafnySequence._typeDescriptor(TypeDescriptor.BYTE) + ), + software.amazon.cryptography.materialproviders.ToDafny.EncryptionContext( + nativeValue.encryptionContext() ) - : Option.create_None(); + ) + : Option.create_None( + DafnyMap._typeDescriptor( + DafnySequence._typeDescriptor(TypeDescriptor.BYTE), + DafnySequence._typeDescriptor(TypeDescriptor.BYTE) + ) + ); Option materialsManager; materialsManager = Objects.nonNull(nativeValue.materialsManager()) ? Option.create_Some( - software.amazon.cryptography.materialproviders.ToDafny.CryptographicMaterialsManager( - nativeValue.materialsManager() - ) + TypeDescriptor.reference(ICryptographicMaterialsManager.class), + software.amazon.cryptography.materialproviders.ToDafny.CryptographicMaterialsManager( + nativeValue.materialsManager() ) - : Option.create_None(); + ) + : Option.create_None( + TypeDescriptor.reference(ICryptographicMaterialsManager.class) + ); Option keyring; keyring = Objects.nonNull(nativeValue.keyring()) ? Option.create_Some( - software.amazon.cryptography.materialproviders.ToDafny.Keyring( - nativeValue.keyring() - ) + TypeDescriptor.reference(IKeyring.class), + software.amazon.cryptography.materialproviders.ToDafny.Keyring( + nativeValue.keyring() ) - : Option.create_None(); + ) + : Option.create_None(TypeDescriptor.reference(IKeyring.class)); Option algorithmSuiteId; algorithmSuiteId = Objects.nonNull(nativeValue.algorithmSuiteId()) ? Option.create_Some( - software.amazon.cryptography.materialproviders.ToDafny.ESDKAlgorithmSuiteId( - nativeValue.algorithmSuiteId() - ) + ESDKAlgorithmSuiteId._typeDescriptor(), + software.amazon.cryptography.materialproviders.ToDafny.ESDKAlgorithmSuiteId( + nativeValue.algorithmSuiteId() ) - : Option.create_None(); + ) + : Option.create_None(ESDKAlgorithmSuiteId._typeDescriptor()); Option frameLength; frameLength = Objects.nonNull(nativeValue.frameLength()) - ? Option.create_Some((nativeValue.frameLength())) - : Option.create_None(); + ? Option.create_Some(TypeDescriptor.LONG, (nativeValue.frameLength())) + : Option.create_None(TypeDescriptor.LONG); return new EncryptInput( plaintext, encryptionContext, @@ -242,7 +289,7 @@ public static EncryptOutput EncryptOutput( DafnyMap< ? extends DafnySequence, ? extends DafnySequence - > encryptionContext; + > encryptionContext; encryptionContext = software.amazon.cryptography.materialproviders.ToDafny.EncryptionContext( nativeValue.encryptionContext() @@ -269,21 +316,21 @@ public static NetV4__0__0__RetryPolicy NetV4_0_0_RetryPolicy( ) { switch (nativeValue) { case FORBID_RETRY: - { - return NetV4__0__0__RetryPolicy.create_FORBID__RETRY(); - } + { + return NetV4__0__0__RetryPolicy.create_FORBID__RETRY(); + } case ALLOW_RETRY: - { - return NetV4__0__0__RetryPolicy.create_ALLOW__RETRY(); - } + { + return NetV4__0__0__RetryPolicy.create_ALLOW__RETRY(); + } default: - { - throw new RuntimeException( - "Cannot convert " + + { + throw new RuntimeException( + "Cannot convert " + nativeValue + " to software.amazon.cryptography.encryptionsdk.internaldafny.types.NetV4__0__0__RetryPolicy." - ); - } + ); + } } } diff --git a/AwsEncryptionSDK/runtimes/java/src/main/smithy-generated/software/amazon/cryptography/encryptionsdk/model/EncryptInput.java b/AwsEncryptionSDK/runtimes/java/src/main/smithy-generated/software/amazon/cryptography/encryptionsdk/model/EncryptInput.java index 67ac13048..7282539c1 100644 --- a/AwsEncryptionSDK/runtimes/java/src/main/smithy-generated/software/amazon/cryptography/encryptionsdk/model/EncryptInput.java +++ b/AwsEncryptionSDK/runtimes/java/src/main/smithy-generated/software/amazon/cryptography/encryptionsdk/model/EncryptInput.java @@ -192,7 +192,7 @@ public EncryptInput build() { "`frameLength` must be greater than or equal to 1" ); } - if (this._frameLengthSet && this.frameLength() > 4294967296) { + if (this._frameLengthSet && this.frameLength() > 4294967296L) { throw new IllegalArgumentException( "`frameLength` must be less than or equal to 4294967296." ); diff --git a/AwsEncryptionSDK/runtimes/java/src/main/smithy-generated/software/amazon/cryptography/encryptionsdk/model/OpaqueError.java b/AwsEncryptionSDK/runtimes/java/src/main/smithy-generated/software/amazon/cryptography/encryptionsdk/model/OpaqueError.java index c24a0e9ec..2fb2fd638 100644 --- a/AwsEncryptionSDK/runtimes/java/src/main/smithy-generated/software/amazon/cryptography/encryptionsdk/model/OpaqueError.java +++ b/AwsEncryptionSDK/runtimes/java/src/main/smithy-generated/software/amazon/cryptography/encryptionsdk/model/OpaqueError.java @@ -10,8 +10,14 @@ public class OpaqueError extends RuntimeException { */ private final Object obj; + /** + * A best effort text representation of obj. + */ + private final String altText; + protected OpaqueError(BuilderImpl builder) { super(messageFromBuilder(builder), builder.cause()); + this.altText = builder.altText(); this.obj = builder.obj(); } @@ -46,6 +52,13 @@ public Object obj() { return this.obj; } + /** + * @return A best effort text representation of obj. + */ + public String altText() { + return this.altText; + } + public Builder toBuilder() { return new BuilderImpl(this); } @@ -85,6 +98,16 @@ public interface Builder { */ Object obj(); + /** + * @param altText A best effort text representation of obj. + */ + Builder altText(String altText); + + /** + * @return A best effort text representation of obj. + */ + String altText(); + OpaqueError build(); } @@ -96,6 +119,8 @@ static class BuilderImpl implements Builder { protected Object obj; + protected String altText; + protected BuilderImpl() {} protected BuilderImpl(OpaqueError model) { @@ -131,6 +156,15 @@ public Object obj() { return this.obj; } + public Builder altText(String altText) { + this.altText = altText; + return this; + } + + public String altText() { + return this.altText; + } + public OpaqueError build() { if ( this.obj != null && this.cause == null && this.obj instanceof Throwable diff --git a/AwsEncryptionSDK/runtimes/net/Generated/AwsEncryptionSdk/TypeConversion.cs b/AwsEncryptionSDK/runtimes/net/Generated/AwsEncryptionSdk/TypeConversion.cs index dc6e24f9d..2c38b09b9 100644 --- a/AwsEncryptionSDK/runtimes/net/Generated/AwsEncryptionSdk/TypeConversion.cs +++ b/AwsEncryptionSDK/runtimes/net/Generated/AwsEncryptionSdk/TypeConversion.cs @@ -471,12 +471,12 @@ public static software.amazon.cryptography.encryptionsdk.internaldafny.types._IE ); // OpaqueError is redundant, but listed for completeness. case OpaqueError exception: - return new software.amazon.cryptography.encryptionsdk.internaldafny.types.Error_Opaque(exception); + return new software.amazon.cryptography.encryptionsdk.internaldafny.types.Error_Opaque(exception, Dafny.Sequence.FromString(exception.ToString())); case System.Exception exception: - return new software.amazon.cryptography.encryptionsdk.internaldafny.types.Error_Opaque(exception); + return new software.amazon.cryptography.encryptionsdk.internaldafny.types.Error_Opaque(exception, Dafny.Sequence.FromString(exception.ToString())); default: // The switch MUST be complete for System.Exception, so `value` MUST NOT be an System.Exception. (How did you get here?) - return new software.amazon.cryptography.encryptionsdk.internaldafny.types.Error_Opaque(value); + return new software.amazon.cryptography.encryptionsdk.internaldafny.types.Error_Opaque(value, Dafny.Sequence.FromString(value.ToString())); } } } diff --git a/SharedMakefileV2.mk b/SharedMakefileV2.mk index dfcb53329..5c22396f6 100644 --- a/SharedMakefileV2.mk +++ b/SharedMakefileV2.mk @@ -6,7 +6,7 @@ # that are shared by all libraries in this repo. PROJECT_ROOT := $(abspath $(dir $(abspath $(lastword $(MAKEFILE_LIST))))) -SMITHY_DAFNY_ROOT := $(PROJECT_ROOT)/smithy-dafny +SMITHY_DAFNY_ROOT := $(PROJECT_ROOT)/mpl/smithy-dafny GRADLEW := ./runtimes/java/gradlew VERIFY_TIMEOUT := 150 @@ -19,3 +19,6 @@ verify_service:DAFNY_OPTIONS=--allow-warnings --allow-external-contracts transpile_implementation_net: DAFNY_OPTIONS=--allow-warnings --compile-suffix --legacy-module-names --allow-external-contracts transpile_test_net: DAFNY_OPTIONS=--allow-warnings --include-test-runner --compile-suffix --legacy-module-names --allow-external-contracts + +transpile_implementation_java: DAFNY_OPTIONS=--allow-warnings --compile-suffix --legacy-data-constructors --legacy-module-names --allow-external-contracts +transpile_test_java: DAFNY_OPTIONS=--allow-warnings --include-test-runner --compile-suffix --legacy-data-constructors --legacy-module-names --allow-external-contracts diff --git a/TestVectors/.gitignore b/TestVectors/.gitignore new file mode 100644 index 000000000..4db3e5410 --- /dev/null +++ b/TestVectors/.gitignore @@ -0,0 +1,18 @@ +TestResults +ImplementationFromDafny.cs +TestsFromDafny.cs +ImplementationFromDafny-cs.dtr +TestsFromDafny-cs.dtr +**/bin +**/obj +runtimes/java/dafny +runtimes/**/encrypt-manifest.json +runtimes/**/decrypt-manifest.json +runtimes/**/keys.json +runtimes/**/ciphertexts/ +runtimes/**/plaintexts/ + +dafny/TestVectors/test/ciphertexts +dafny/TestVectors/test/plaintexts +dafny/TestVectors/test/test.json +dafny/TestVectors/test/decrypt-manifest.json diff --git a/TestVectors/Makefile b/TestVectors/Makefile new file mode 100644 index 000000000..09674351c --- /dev/null +++ b/TestVectors/Makefile @@ -0,0 +1,118 @@ +# Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + +CORES=2 + +include ../SharedMakefileV2.mk + +DIR_STRUCTURE_V2=V2 + +PROJECT_SERVICES := \ + TestVectors \ + +SMITHY_MODEL_ROOT := $(PROJECT_ROOT)/AwsEncryptionSDK/dafny/AwsEncryptionSdk/Model +OUTPUT_LOCAL_SERVICE_TestVectors:= --local-service-test + +SERVICE_NAMESPACE_TestVectors=aws.cryptography.encryptionSdk + +MAX_RESOURCE_COUNT=10000000 +# Order is important +# In java they MUST be built +# in the order they depend on each other +PROJECT_DEPENDENCIES := \ + mpl/AwsCryptographyPrimitives \ + mpl/ComAmazonawsKms \ + mpl/ComAmazonawsDynamodb \ + mpl/AwsCryptographicMaterialProviders \ + mpl/TestVectorsAwsCryptographicMaterialProviders \ + AwsEncryptionSDK \ + +# Since we are packaging projects differently, we cannot make assumptions +# about where the files are located. +# This is here to get unblocked but should be removed once we have migrated packages +# to the new packaging format. +PROJECT_INDEX := \ + mpl/AwsCryptographyPrimitives/src/Index.dfy \ + mpl/ComAmazonawsKms/src/Index.dfy \ + mpl/ComAmazonawsDynamodb/src/Index.dfy \ + mpl/AwsCryptographicMaterialProviders/dafny/AwsCryptographicMaterialProviders/src/Index.dfy \ + mpl/AwsCryptographicMaterialProviders/dafny/AwsCryptographyKeyStore/src/Index.dfy \ + mpl/TestVectorsAwsCryptographicMaterialProviders/dafny/KeyVectors/src/Index.dfy \ + mpl/TestVectorsAwsCryptographicMaterialProviders/dafny/TestVectorsAwsCryptographicMaterialProviders/src/LibraryIndex.dfy \ + AwsEncryptionSDK/dafny/AwsEncryptionSdk/src/Index.dfy \ + +STD_LIBRARY=mpl/StandardLibrary +SMITHY_DEPS=mpl/model + + +# Dependencies for each local service +SERVICE_DEPS_TestVectors := \ + mpl/AwsCryptographyPrimitives \ + mpl/ComAmazonawsKms \ + mpl/ComAmazonawsDynamodb \ + mpl/AwsCryptographicMaterialProviders/dafny/AwsCryptographicMaterialProviders \ + mpl/AwsCryptographicMaterialProviders/dafny/AwsCryptographyKeyStore \ + AwsEncryptionSDK/dafny/AwsEncryptionSdk \ + mpl/TestVectorsAwsCryptographicMaterialProviders/dafny/TestVectorsAwsCryptographicMaterialProviders \ + + +format_net: + pushd runtimes/net && dotnet format && popd + +IMPLEMENTATION_FROM_DAFNY_TV_JAVA_FILE=runtimes/java/src/main/dafny-generated/ImplementationFromDafny.java +IMPLEMENTATION_FROM_DAFNY_TV_JAVA_MPL_MAIN="dafny.Helpers.withHaltHandling(() -> { WrappedMaterialProvidersMain_Compile.__default.__Main(dafny.Helpers.FromMainArguments(args)); } );" +IMPLEMENTATION_FROM_DAFNY_TV_JAVA_ESDK_MAIN="dafny.Helpers.withHaltHandling(() -> { WrappedESDKMain_Compile.__default.Main2(dafny.Helpers.FromMainArguments(args)); } );" + +IMPLEMENTATION_FROM_DAFNY_TV_NET_FILE=runtimes/net/ImplementationFromDafny.cs +IMPLEMENTATION_FROM_DAFNY_TV_NET_MPL_MAIN="Dafny.Helpers.WithHaltHandling(() => WrappedMaterialProvidersMain_Compile.__default._Main(Dafny.Sequence>.FromMainArguments(args)));" +IMPLEMENTATION_FROM_DAFNY_TV_NET_ESDK_MAIN="Dafny.Helpers.WithHaltHandling(() => WrappedESDKMain_Compile.__default.Main2(Dafny.Sequence>.FromMainArguments(args)));" + +transpile_implementation_java: _replace_main_method_name_java +transpile_implementation_net: _replace_main_method_name_net + +_replace_main_method_name_java: + $(MAKE) _sed_file SED_FILE_PATH=$(IMPLEMENTATION_FROM_DAFNY_TV_JAVA_FILE) SED_BEFORE_STRING=$(IMPLEMENTATION_FROM_DAFNY_TV_JAVA_MPL_MAIN) SED_AFTER_STRING=$(IMPLEMENTATION_FROM_DAFNY_TV_JAVA_ESDK_MAIN) + +_replace_main_method_name_net: + $(MAKE) _sed_file SED_FILE_PATH=$(IMPLEMENTATION_FROM_DAFNY_TV_NET_FILE) SED_BEFORE_STRING=$(IMPLEMENTATION_FROM_DAFNY_TV_NET_MPL_MAIN) SED_AFTER_STRING=$(IMPLEMENTATION_FROM_DAFNY_TV_NET_ESDK_MAIN) + + +# Commands to generate and test test vectors +test_generate_vectors_java: + gradle -p runtimes/java run --args="encrypt-manifest --encrypt-manifest-output ." + gradle -p runtimes/java copyKeysJSONCurr + +test_generate_vectors_net: FRAMEWORK=net6.0 +test_generate_vectors_net: + dotnet restore runtimes/net + dotnet build runtimes/net + dotnet run --project runtimes/net --framework $(FRAMEWORK) encrypt-manifest --encrypt-manifest-output runtimes/net + cp dafny/TestVectors/test/keys.json runtimes/net + +test_encrypt_vectors_java: + gradle -p runtimes/java run --args="encrypt --manifest-path . --decrypt-manifest-path ." + +test_encrypt_vectors_net: FRAMEWORK=net6.0 +test_encrypt_vectors_net: + dotnet restore runtimes/net + dotnet build runtimes/net + dotnet run --project runtimes/net --framework $(FRAMEWORK) encrypt --manifest-path runtimes/net --decrypt-manifest-path runtimes/net + +test_decrypt_encrypt_vectors_java: + gradle -p runtimes/java run --args="decrypt --manifest-path . --manifest-name decrypt-manifest.json" + +test_decrypt_encrypt_vectors_net: FRAMEWORK=net6.0 +test_decrypt_encrypt_vectors_net: + dotnet restore runtimes/net + dotnet build runtimes/net + dotnet run --project runtimes/net --framework $(FRAMEWORK) decrypt --manifest-path runtimes/net --manifest-name decrypt-manifest.json + +test_decrypt_encrypt_vectors_net_legacy: FRAMEWORK=net6.0 +test_decrypt_encrypt_vectors_net_legacy: + dotnet restore runtimes/net + dotnet build runtimes/net + dotnet run --project runtimes/net --framework $(FRAMEWORK) decrypt --manifest-path $(MANIFEST_PATH) --manifest-name $(MANIFEST_NAME) + +_polymorph_dependencies: + @echo "No polymorphing of dependency" + diff --git a/TestVectors/README.md b/TestVectors/README.md new file mode 100644 index 000000000..312c701ad --- /dev/null +++ b/TestVectors/README.md @@ -0,0 +1,31 @@ +# AWS Encryption SDK Test Vectors + +This project contains code encrypts and decrypts a suite unstructured data. +This validates the Encryption SDK's cross compatability between major versions +of the Encryption SDK and runtimes. + +## Getting Started + +### Development Requirements + +* Dafny 4.8.1: https://github.com/dafny-lang/dafny + + The code that executes the test vectors is written in Dafny. + You must install the Dafny runtime to compile the Dafny tests into Java. +* A .NET 6.0 TargetFramework or newer development environment + +### Building and Running + +1. Start in the root `./TestVectors` directory +2. Run `make transpile_net` +3. Run `make test_net_mac_intel` if running on a MacOS environment or +`make test_net` if running on a Windows or Linux environment. + +## Security + +See [CONTRIBUTING](CONTRIBUTING.md#security-issue-notifications) for more information. + +## License + +This project is licensed under the Apache-2.0 License. + diff --git a/TestVectors/aws-encryption-sdk-test-vectors b/TestVectors/aws-encryption-sdk-test-vectors new file mode 160000 index 000000000..b6a6c91e6 --- /dev/null +++ b/TestVectors/aws-encryption-sdk-test-vectors @@ -0,0 +1 @@ +Subproject commit b6a6c91e62cc67f891b5dc3d11b0f047d10baf76 diff --git a/TestVectors/codegen-patches/TestVectors/dafny/dafny-4.8.1.patch b/TestVectors/codegen-patches/TestVectors/dafny/dafny-4.8.1.patch new file mode 100644 index 000000000..2fa57313d --- /dev/null +++ b/TestVectors/codegen-patches/TestVectors/dafny/dafny-4.8.1.patch @@ -0,0 +1,15 @@ +diff --git a/TestVectors/dafny/TestVectors/Model/AwsCryptographyEncryptionSdkTypesWrapped.dfy b/TestVectors/dafny/TestVectors/Model/AwsCryptographyEncryptionSdkTypesWrapped.dfy +index 6aafd4df..f50dacb9 100644 +--- a/TestVectors/dafny/TestVectors/Model/AwsCryptographyEncryptionSdkTypesWrapped.dfy ++++ b/TestVectors/dafny/TestVectors/Model/AwsCryptographyEncryptionSdkTypesWrapped.dfy +@@ -2,6 +2,10 @@ + // SPDX-License-Identifier: Apache-2.0 + // Do not modify this file. This file is machine generated, and any changes to it will be overwritten. + include "../../../../mpl/StandardLibrary/src/Index.dfy" ++ // BEGIN MANUAL EDIT ++include "../../../../AwsEncryptionSDK/dafny/AwsEncryptionSdk/src/Index.dfy" ++include "../../../../mpl/TestVectorsAwsCryptographicMaterialProviders/dafny/KeyVectors/src/Index.dfy" ++ // END MANUAL EDIT + include "../src/Index.dfy" + abstract module WrappedAbstractAwsCryptographyEncryptionSdkService { + import opened Wrappers diff --git a/TestVectors/codegen-patches/TestVectors/dotnet/dafny-4.8.1.patch b/TestVectors/codegen-patches/TestVectors/dotnet/dafny-4.8.1.patch new file mode 100644 index 000000000..52f090c48 --- /dev/null +++ b/TestVectors/codegen-patches/TestVectors/dotnet/dafny-4.8.1.patch @@ -0,0 +1,59 @@ +diff --git a/TestVectors/runtimes/net/Generated/TestVectors/TypeConversion.cs b/TestVectors/runtimes/net/Generated/TestVectors/TypeConversion.cs +index c3a4c99f..d647a6ee 100644 +--- a/TestVectors/runtimes/net/Generated/TestVectors/TypeConversion.cs ++++ b/TestVectors/runtimes/net/Generated/TestVectors/TypeConversion.cs +@@ -15,14 +15,14 @@ namespace AWS.Cryptography.EncryptionSDK.Wrapped + { + software.amazon.cryptography.encryptionsdk.internaldafny.types.AwsEncryptionSdkConfig concrete = (software.amazon.cryptography.encryptionsdk.internaldafny.types.AwsEncryptionSdkConfig)value; AWS.Cryptography.EncryptionSDK.AwsEncryptionSdkConfig converted = new AWS.Cryptography.EncryptionSDK.AwsEncryptionSdkConfig(); if (concrete._commitmentPolicy.is_Some) converted.CommitmentPolicy = (AWS.Cryptography.MaterialProviders.ESDKCommitmentPolicy)FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M16_commitmentPolicy(concrete._commitmentPolicy); + if (concrete._maxEncryptedDataKeys.is_Some) converted.MaxEncryptedDataKeys = (long)FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M20_maxEncryptedDataKeys(concrete._maxEncryptedDataKeys); +- if (concrete._netV4_0_0_RetryPolicy.is_Some) converted.NetV4__0__0__RetryPolicy = (AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy)FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M21_netV4_0_0_RetryPolicy(concrete._netV4_0_0_RetryPolicy); return converted; ++ if (concrete._netV4__0__0__RetryPolicy.is_Some) converted.NetV4_0_0_RetryPolicy = (AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy)FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M21_netV4_0_0_RetryPolicy(concrete._netV4__0__0__RetryPolicy); return converted; + } + public static software.amazon.cryptography.encryptionsdk.internaldafny.types._IAwsEncryptionSdkConfig ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig(AWS.Cryptography.EncryptionSDK.AwsEncryptionSdkConfig value) + { + value.Validate(); + AWS.Cryptography.MaterialProviders.ESDKCommitmentPolicy var_commitmentPolicy = value.IsSetCommitmentPolicy() ? value.CommitmentPolicy : (AWS.Cryptography.MaterialProviders.ESDKCommitmentPolicy)null; + long? var_maxEncryptedDataKeys = value.IsSetMaxEncryptedDataKeys() ? value.MaxEncryptedDataKeys : (long?)null; +- AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy var_netV4_0_0_RetryPolicy = value.IsSetNetV4__0__0__RetryPolicy() ? value.NetV4__0__0__RetryPolicy : (AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy)null; ++ AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy var_netV4_0_0_RetryPolicy = value.IsSetNetV4__0__0__RetryPolicy() ? value.NetV4_0_0_RetryPolicy : (AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy)null; + return new software.amazon.cryptography.encryptionsdk.internaldafny.types.AwsEncryptionSdkConfig(ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M16_commitmentPolicy(var_commitmentPolicy), ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M20_maxEncryptedDataKeys(var_maxEncryptedDataKeys), ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M21_netV4_0_0_RetryPolicy(var_netV4_0_0_RetryPolicy)); + } + public static AWS.Cryptography.EncryptionSDK.AwsEncryptionSdkException FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S25_AwsEncryptionSdkException(software.amazon.cryptography.encryptionsdk.internaldafny.types.Error_AwsEncryptionSdkException value) +@@ -96,16 +96,16 @@ namespace AWS.Cryptography.EncryptionSDK.Wrapped + + return new software.amazon.cryptography.encryptionsdk.internaldafny.types.EncryptOutput(ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_EncryptOutput__M10_ciphertext(value.Ciphertext), ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_EncryptOutput__M17_encryptionContext(value.EncryptionContext), ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_EncryptOutput__M16_algorithmSuiteId(value.AlgorithmSuiteId)); + } +- public static AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S21_NetV4_0_0_RetryPolicy(software.amazon.cryptography.encryptionsdk.internaldafny.types._INetV4_0_0_RetryPolicy value) ++ public static AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S21_NetV4_0_0_RetryPolicy(software.amazon.cryptography.encryptionsdk.internaldafny.types._INetV4__0__0__RetryPolicy value) + { + if (value.is_FORBID__RETRY) return AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy.FORBID_RETRY; + if (value.is_ALLOW__RETRY) return AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy.ALLOW_RETRY; + throw new System.ArgumentException("Invalid AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy value"); + } +- public static software.amazon.cryptography.encryptionsdk.internaldafny.types._INetV4_0_0_RetryPolicy ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S21_NetV4_0_0_RetryPolicy(AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy value) ++ public static software.amazon.cryptography.encryptionsdk.internaldafny.types._INetV4__0__0__RetryPolicy ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S21_NetV4_0_0_RetryPolicy(AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy value) + { +- if (AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy.FORBID_RETRY.Equals(value)) return software.amazon.cryptography.encryptionsdk.internaldafny.types.NetV4_0_0_RetryPolicy.create_FORBID__RETRY(); +- if (AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy.ALLOW_RETRY.Equals(value)) return software.amazon.cryptography.encryptionsdk.internaldafny.types.NetV4_0_0_RetryPolicy.create_ALLOW__RETRY(); ++ if (AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy.FORBID_RETRY.Equals(value)) return software.amazon.cryptography.encryptionsdk.internaldafny.types.NetV4__0__0__RetryPolicy.create_FORBID__RETRY(); ++ if (AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy.ALLOW_RETRY.Equals(value)) return software.amazon.cryptography.encryptionsdk.internaldafny.types.NetV4__0__0__RetryPolicy.create_ALLOW__RETRY(); + throw new System.ArgumentException("Invalid AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy value"); + } + public static AWS.Cryptography.MaterialProviders.ESDKCommitmentPolicy FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M16_commitmentPolicy(Wrappers_Compile._IOption value) +@@ -124,13 +124,13 @@ namespace AWS.Cryptography.EncryptionSDK.Wrapped + { + return value == null ? Wrappers_Compile.Option.create_None() : Wrappers_Compile.Option.create_Some(ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S15_CountingNumbers((long)value)); + } +- public static AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M21_netV4_0_0_RetryPolicy(Wrappers_Compile._IOption value) ++ public static AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M21_netV4_0_0_RetryPolicy(Wrappers_Compile._IOption value) + { + return value.is_None ? (AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy)null : FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S21_NetV4_0_0_RetryPolicy(value.Extract()); + } +- public static Wrappers_Compile._IOption ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M21_netV4_0_0_RetryPolicy(AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy value) ++ public static Wrappers_Compile._IOption ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M21_netV4_0_0_RetryPolicy(AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy value) + { +- return value == null ? Wrappers_Compile.Option.create_None() : Wrappers_Compile.Option.create_Some(ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S21_NetV4_0_0_RetryPolicy((AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy)value)); ++ return value == null ? Wrappers_Compile.Option.create_None() : Wrappers_Compile.Option.create_Some(ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S21_NetV4_0_0_RetryPolicy((AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy)value)); + } + public static string FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S25_AwsEncryptionSdkException__M7_message(Dafny.ISequence value) + { diff --git a/TestVectors/codegen-patches/TestVectors/java/dafny-4.8.1.patch b/TestVectors/codegen-patches/TestVectors/java/dafny-4.8.1.patch new file mode 100644 index 000000000..4f7e09f7b --- /dev/null +++ b/TestVectors/codegen-patches/TestVectors/java/dafny-4.8.1.patch @@ -0,0 +1,169 @@ +diff --git a/TestVectors/runtimes/java/src/main/smithy-generated/software/amazon/cryptography/encryptionsdk/wrapped/TestESDK.java b/TestVectors/runtimes/java/src/main/smithy-generated/software/amazon/cryptography/encryptionsdk/wrapped/TestESDK.java +index 1dc9dd24..262bb622 100644 +--- a/TestVectors/runtimes/java/src/main/smithy-generated/software/amazon/cryptography/encryptionsdk/wrapped/TestESDK.java ++++ b/TestVectors/runtimes/java/src/main/smithy-generated/software/amazon/cryptography/encryptionsdk/wrapped/TestESDK.java +@@ -4,9 +4,16 @@ + package software.amazon.cryptography.encryptionsdk.wrapped; + + import Wrappers_Compile.Result; ++import com.amazonaws.encryptionsdk.CryptoAlgorithm; ++import com.amazonaws.encryptionsdk.CryptoResult; ++import dafny.DafnyMap; ++import dafny.DafnySequence; + import java.lang.IllegalArgumentException; + import java.lang.RuntimeException; ++import java.nio.ByteBuffer; ++import java.util.Map; + import java.util.Objects; ++import com.amazonaws.encryptionsdk.AwsCrypto; + import software.amazon.cryptography.encryptionsdk.ESDK; + import software.amazon.cryptography.encryptionsdk.ToDafny; + import software.amazon.cryptography.encryptionsdk.ToNative; +@@ -16,10 +23,12 @@ import software.amazon.cryptography.encryptionsdk.internaldafny.types.EncryptInp + import software.amazon.cryptography.encryptionsdk.internaldafny.types.EncryptOutput; + import software.amazon.cryptography.encryptionsdk.internaldafny.types.Error; + import software.amazon.cryptography.encryptionsdk.internaldafny.types.IAwsEncryptionSdkClient; ++import software.amazon.cryptography.materialproviders.internaldafny.types.ESDKAlgorithmSuiteId; ++import software.amazon.smithy.dafny.conversion.ToDafny.Simple; + + public class TestESDK implements IAwsEncryptionSdkClient { + +- private final ESDK _impl; ++ private final AwsCrypto _impl; + + protected TestESDK(BuilderImpl builder) { + this._impl = builder.impl(); +@@ -33,9 +42,30 @@ public class TestESDK implements IAwsEncryptionSdkClient { + try { + software.amazon.cryptography.encryptionsdk.model.DecryptInput nativeInput = + ToNative.DecryptInput(dafnyInput); +- software.amazon.cryptography.encryptionsdk.model.DecryptOutput nativeOutput = +- this._impl.Decrypt(nativeInput); +- DecryptOutput dafnyOutput = ToDafny.DecryptOutput(nativeOutput); ++ final CryptoResult decryptResult; ++ ++ if (Objects.isNull(nativeInput.materialsManager())) { ++ // Call decrypt with keyring ++ if (Objects.isNull(nativeInput.encryptionContext())) { ++ decryptResult = this._impl.decryptData(nativeInput.keyring(), nativeInput.ciphertext().array()); ++ } else { ++ decryptResult = this._impl.decryptData(nativeInput.keyring(), nativeInput.ciphertext().array(), nativeInput.encryptionContext()); ++ } ++ } else { ++ if (Objects.isNull(nativeInput.encryptionContext())) { ++ decryptResult = this._impl.decryptData(nativeInput.materialsManager(), nativeInput.ciphertext().array()); ++ } else { ++ decryptResult = this._impl.decryptData(nativeInput.materialsManager(), nativeInput.ciphertext().array(), nativeInput.encryptionContext()); ++ } ++ } ++ DafnySequence plaintext = Simple.ByteSequence(decryptResult.getResult()); ++ DafnyMap, ? extends DafnySequence> encryptionContext = ++ software.amazon.cryptography.materialproviders.ToDafny.EncryptionContext(decryptResult.getEncryptionContext()); ++ ESDKAlgorithmSuiteId algorithmSuiteId = software.amazon.cryptography.materialproviders.ToDafny.ESDKAlgorithmSuiteId( ++ decryptResult.getCryptoAlgorithm().getAlgorithmSuiteId().ESDK() ++ ); ++ DecryptOutput dafnyOutput = new DecryptOutput(plaintext, encryptionContext, algorithmSuiteId); ++ + return Result.create_Success( + DecryptOutput._typeDescriptor(), + Error._typeDescriptor(), +@@ -54,9 +84,35 @@ public class TestESDK implements IAwsEncryptionSdkClient { + try { + software.amazon.cryptography.encryptionsdk.model.EncryptInput nativeInput = + ToNative.EncryptInput(dafnyInput); +- software.amazon.cryptography.encryptionsdk.model.EncryptOutput nativeOutput = +- this._impl.Encrypt(nativeInput); +- EncryptOutput dafnyOutput = ToDafny.EncryptOutput(nativeOutput); ++ final CryptoResult encryptResult; ++ ++ // Java ESDK is special and you have to set the algorithm suite both in the keyring which the ++ // test vectors do, but also in the client itself. ++ CryptoAlgorithm cryptoAlgorithm = _getAlgorithmSuite(nativeInput.algorithmSuiteId()); ++ this._impl.setEncryptionAlgorithm(cryptoAlgorithm); ++ ++ if (Objects.isNull(nativeInput.materialsManager())) { ++ // Call decrypt with keyring ++ if (Objects.isNull(nativeInput.encryptionContext())) { ++ encryptResult = this._impl.encryptData(nativeInput.keyring(), nativeInput.plaintext().array()); ++ } else { ++ encryptResult = this._impl.encryptData(nativeInput.keyring(), nativeInput.plaintext().array(), nativeInput.encryptionContext()); ++ } ++ } else { ++ if (Objects.isNull(nativeInput.encryptionContext())) { ++ encryptResult = this._impl.encryptData(nativeInput.materialsManager(), nativeInput.plaintext().array()); ++ } else { ++ encryptResult = this._impl.encryptData(nativeInput.materialsManager(), nativeInput.plaintext().array(), nativeInput.encryptionContext()); ++ } ++ } ++ dafny.DafnySequence ciphertext = Simple.ByteSequence(encryptResult.getResult()); ++ DafnyMap, ? extends DafnySequence> encryptionContext = ++ software.amazon.cryptography.materialproviders.ToDafny.EncryptionContext(encryptResult.getEncryptionContext()); ++ ESDKAlgorithmSuiteId algorithmSuiteId = software.amazon.cryptography.materialproviders.ToDafny.ESDKAlgorithmSuiteId( ++ encryptResult.getCryptoAlgorithm().getAlgorithmSuiteId().ESDK() ++ ); ++ ++ EncryptOutput dafnyOutput = new EncryptOutput(ciphertext, encryptionContext, algorithmSuiteId); + return Result.create_Success( + EncryptOutput._typeDescriptor(), + Error._typeDescriptor(), +@@ -71,26 +127,55 @@ public class TestESDK implements IAwsEncryptionSdkClient { + } + } + ++ private CryptoAlgorithm _getAlgorithmSuite(software.amazon.cryptography.materialproviders.model.ESDKAlgorithmSuiteId esdkAlgorithmSuiteId) { ++ switch (esdkAlgorithmSuiteId) { ++ case ALG_AES_128_GCM_IV12_TAG16_NO_KDF: ++ return CryptoAlgorithm.ALG_AES_128_GCM_IV12_TAG16_NO_KDF; ++ case ALG_AES_192_GCM_IV12_TAG16_NO_KDF: ++ return CryptoAlgorithm.ALG_AES_192_GCM_IV12_TAG16_NO_KDF; ++ case ALG_AES_256_GCM_IV12_TAG16_NO_KDF: ++ return CryptoAlgorithm.ALG_AES_256_GCM_IV12_TAG16_NO_KDF; ++ case ALG_AES_128_GCM_IV12_TAG16_HKDF_SHA256: ++ return CryptoAlgorithm.ALG_AES_128_GCM_IV12_TAG16_HKDF_SHA256; ++ case ALG_AES_192_GCM_IV12_TAG16_HKDF_SHA256: ++ return CryptoAlgorithm.ALG_AES_192_GCM_IV12_TAG16_HKDF_SHA256; ++ case ALG_AES_256_GCM_IV12_TAG16_HKDF_SHA256: ++ return CryptoAlgorithm.ALG_AES_256_GCM_IV12_TAG16_HKDF_SHA256; ++ case ALG_AES_128_GCM_IV12_TAG16_HKDF_SHA256_ECDSA_P256: ++ return CryptoAlgorithm.ALG_AES_128_GCM_IV12_TAG16_HKDF_SHA256_ECDSA_P256; ++ case ALG_AES_192_GCM_IV12_TAG16_HKDF_SHA384_ECDSA_P384: ++ return CryptoAlgorithm.ALG_AES_192_GCM_IV12_TAG16_HKDF_SHA384_ECDSA_P384; ++ case ALG_AES_256_GCM_IV12_TAG16_HKDF_SHA384_ECDSA_P384: ++ return CryptoAlgorithm.ALG_AES_256_GCM_IV12_TAG16_HKDF_SHA384_ECDSA_P384; ++ case ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY: ++ return CryptoAlgorithm.ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY; ++ case ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY_ECDSA_P384: ++ return CryptoAlgorithm.ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY_ECDSA_P384; ++ default: ++ throw new IllegalArgumentException("Unrecognized ESDK algorithmSuiteId: " + esdkAlgorithmSuiteId); ++ } ++ } ++ + public interface Builder { +- Builder impl(ESDK impl); ++ Builder impl(AwsCrypto impl); + +- ESDK impl(); ++ AwsCrypto impl(); + + TestESDK build(); + } + + static class BuilderImpl implements Builder { + +- protected ESDK impl; ++ protected AwsCrypto impl; + + protected BuilderImpl() {} + +- public Builder impl(ESDK impl) { ++ public Builder impl(AwsCrypto impl) { + this.impl = impl; + return this; + } + +- public ESDK impl() { ++ public AwsCrypto impl() { + return this.impl; + } + diff --git a/TestVectors/codegen-patches/dotnet/dafny-4.2.0.patch b/TestVectors/codegen-patches/dotnet/dafny-4.2.0.patch new file mode 100644 index 000000000..1486f5479 --- /dev/null +++ b/TestVectors/codegen-patches/dotnet/dafny-4.2.0.patch @@ -0,0 +1,69 @@ +diff --git a/TestVectors/runtimes/net/Generated/ESDK/TypeConversion.cs b/TestVectors/runtimes/net/Generated/ESDK/TypeConversion.cs +index e5036c48..1a4a943c 100644 +--- a/TestVectors/runtimes/net/Generated/ESDK/TypeConversion.cs ++++ b/TestVectors/runtimes/net/Generated/ESDK/TypeConversion.cs +@@ -3,6 +3,9 @@ + // Do not modify this file. This file is machine generated, and any changes to it will be overwritten. + using System.Linq; + using System; ++using software.amazon.cryptography.encryptionsdk.internaldafny.types; ++using Wrappers_Compile; ++ + namespace AWS.Cryptography.EncryptionSDK.Wrapped + { + public static class TypeConversion +@@ -11,14 +14,14 @@ namespace AWS.Cryptography.EncryptionSDK.Wrapped + { + software.amazon.cryptography.encryptionsdk.internaldafny.types.AwsEncryptionSdkConfig concrete = (software.amazon.cryptography.encryptionsdk.internaldafny.types.AwsEncryptionSdkConfig)value; AWS.Cryptography.EncryptionSDK.AwsEncryptionSdkConfig converted = new AWS.Cryptography.EncryptionSDK.AwsEncryptionSdkConfig(); if (concrete._commitmentPolicy.is_Some) converted.CommitmentPolicy = (AWS.Cryptography.MaterialProviders.ESDKCommitmentPolicy)FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M16_commitmentPolicy(concrete._commitmentPolicy); + if (concrete._maxEncryptedDataKeys.is_Some) converted.MaxEncryptedDataKeys = (long)FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M20_maxEncryptedDataKeys(concrete._maxEncryptedDataKeys); +- if (concrete._netV4_0_0_RetryPolicy.is_Some) converted.NetV4__0__0__RetryPolicy = (AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy)FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M21_netV4_0_0_RetryPolicy(concrete._netV4_0_0_RetryPolicy); return converted; ++ if (concrete._netV4__0__0__RetryPolicy.is_Some) converted.NetV4_0_0_RetryPolicy = (AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy)FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M21_netV4_0_0_RetryPolicy(concrete._netV4__0__0__RetryPolicy); return converted; + } + public static software.amazon.cryptography.encryptionsdk.internaldafny.types._IAwsEncryptionSdkConfig ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig(AWS.Cryptography.EncryptionSDK.AwsEncryptionSdkConfig value) + { + value.Validate(); + AWS.Cryptography.MaterialProviders.ESDKCommitmentPolicy var_commitmentPolicy = value.IsSetCommitmentPolicy() ? value.CommitmentPolicy : (AWS.Cryptography.MaterialProviders.ESDKCommitmentPolicy)null; + long? var_maxEncryptedDataKeys = value.IsSetMaxEncryptedDataKeys() ? value.MaxEncryptedDataKeys : (long?)null; +- AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy var_netV4_0_0_RetryPolicy = value.IsSetNetV4__0__0__RetryPolicy() ? value.NetV4__0__0__RetryPolicy : (AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy)null; ++ AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy var_netV4_0_0_RetryPolicy = value.IsSetNetV4__0__0__RetryPolicy() ? value.NetV4_0_0_RetryPolicy : (AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy)null; + return new software.amazon.cryptography.encryptionsdk.internaldafny.types.AwsEncryptionSdkConfig(ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M16_commitmentPolicy(var_commitmentPolicy), ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M20_maxEncryptedDataKeys(var_maxEncryptedDataKeys), ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M21_netV4_0_0_RetryPolicy(var_netV4_0_0_RetryPolicy)); + } + public static AWS.Cryptography.EncryptionSDK.AwsEncryptionSdkException FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S25_AwsEncryptionSdkException(software.amazon.cryptography.encryptionsdk.internaldafny.types.Error_AwsEncryptionSdkException value) +@@ -92,16 +95,16 @@ namespace AWS.Cryptography.EncryptionSDK.Wrapped + + return new software.amazon.cryptography.encryptionsdk.internaldafny.types.EncryptOutput(ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_EncryptOutput__M10_ciphertext(value.Ciphertext), ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_EncryptOutput__M17_encryptionContext(value.EncryptionContext), ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_EncryptOutput__M16_algorithmSuiteId(value.AlgorithmSuiteId)); + } +- public static AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S21_NetV4_0_0_RetryPolicy(software.amazon.cryptography.encryptionsdk.internaldafny.types._INetV4_0_0_RetryPolicy value) ++ public static AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S21_NetV4_0_0_RetryPolicy(_INetV4__0__0__RetryPolicy value) + { + if (value.is_FORBID__RETRY) return AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy.FORBID_RETRY; + if (value.is_ALLOW__RETRY) return AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy.ALLOW_RETRY; + throw new System.ArgumentException("Invalid AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy value"); + } +- public static software.amazon.cryptography.encryptionsdk.internaldafny.types._INetV4_0_0_RetryPolicy ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S21_NetV4_0_0_RetryPolicy(AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy value) ++ public static software.amazon.cryptography.encryptionsdk.internaldafny.types._INetV4__0__0__RetryPolicy ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S21_NetV4_0_0_RetryPolicy(AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy value) + { +- if (AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy.FORBID_RETRY.Equals(value)) return software.amazon.cryptography.encryptionsdk.internaldafny.types.NetV4_0_0_RetryPolicy.create_FORBID__RETRY(); +- if (AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy.ALLOW_RETRY.Equals(value)) return software.amazon.cryptography.encryptionsdk.internaldafny.types.NetV4_0_0_RetryPolicy.create_ALLOW__RETRY(); ++ if (AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy.FORBID_RETRY.Equals(value)) return software.amazon.cryptography.encryptionsdk.internaldafny.types.NetV4__0__0__RetryPolicy.create_FORBID__RETRY(); ++ if (AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy.ALLOW_RETRY.Equals(value)) return software.amazon.cryptography.encryptionsdk.internaldafny.types.NetV4__0__0__RetryPolicy.create_ALLOW__RETRY(); + throw new System.ArgumentException("Invalid AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy value"); + } + public static AWS.Cryptography.MaterialProviders.ESDKCommitmentPolicy FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M16_commitmentPolicy(Wrappers_Compile._IOption value) +@@ -120,13 +123,13 @@ namespace AWS.Cryptography.EncryptionSDK.Wrapped + { + return value == null ? Wrappers_Compile.Option.create_None() : Wrappers_Compile.Option.create_Some(ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S15_CountingNumbers((long)value)); + } +- public static AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M21_netV4_0_0_RetryPolicy(Wrappers_Compile._IOption value) ++ public static AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M21_netV4_0_0_RetryPolicy(_IOption<_INetV4__0__0__RetryPolicy> value) + { + return value.is_None ? (AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy)null : FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S21_NetV4_0_0_RetryPolicy(value.Extract()); + } +- public static Wrappers_Compile._IOption ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M21_netV4_0_0_RetryPolicy(AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy value) ++ public static Wrappers_Compile._IOption ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M21_netV4_0_0_RetryPolicy(AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy value) + { +- return value == null ? Wrappers_Compile.Option.create_None() : Wrappers_Compile.Option.create_Some(ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S21_NetV4_0_0_RetryPolicy((AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy)value)); ++ return value == null ? Wrappers_Compile.Option.create_None() : Wrappers_Compile.Option.create_Some(ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S21_NetV4_0_0_RetryPolicy((AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy)value)); + } + public static string FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S25_AwsEncryptionSdkException__M7_message(Dafny.ISequence value) + { diff --git a/TestVectors/codegen-patches/dotnet/dafny-4.8.0.patch b/TestVectors/codegen-patches/dotnet/dafny-4.8.0.patch new file mode 100644 index 000000000..2199baf4d --- /dev/null +++ b/TestVectors/codegen-patches/dotnet/dafny-4.8.0.patch @@ -0,0 +1,59 @@ +diff --git a/TestVectors/runtimes/net/Generated/ESDK/TypeConversion.cs b/TestVectors/runtimes/net/Generated/ESDK/TypeConversion.cs +index e5036c48..277c8366 100644 +--- a/TestVectors/runtimes/net/Generated/ESDK/TypeConversion.cs ++++ b/TestVectors/runtimes/net/Generated/ESDK/TypeConversion.cs +@@ -11,14 +11,14 @@ namespace AWS.Cryptography.EncryptionSDK.Wrapped + { + software.amazon.cryptography.encryptionsdk.internaldafny.types.AwsEncryptionSdkConfig concrete = (software.amazon.cryptography.encryptionsdk.internaldafny.types.AwsEncryptionSdkConfig)value; AWS.Cryptography.EncryptionSDK.AwsEncryptionSdkConfig converted = new AWS.Cryptography.EncryptionSDK.AwsEncryptionSdkConfig(); if (concrete._commitmentPolicy.is_Some) converted.CommitmentPolicy = (AWS.Cryptography.MaterialProviders.ESDKCommitmentPolicy)FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M16_commitmentPolicy(concrete._commitmentPolicy); + if (concrete._maxEncryptedDataKeys.is_Some) converted.MaxEncryptedDataKeys = (long)FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M20_maxEncryptedDataKeys(concrete._maxEncryptedDataKeys); +- if (concrete._netV4_0_0_RetryPolicy.is_Some) converted.NetV4__0__0__RetryPolicy = (AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy)FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M21_netV4_0_0_RetryPolicy(concrete._netV4_0_0_RetryPolicy); return converted; ++ if (concrete._netV4__0__0__RetryPolicy.is_Some) converted.NetV4_0_0_RetryPolicy = (AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy)FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M21_netV4_0_0_RetryPolicy(concrete._netV4__0__0__RetryPolicy); return converted; + } + public static software.amazon.cryptography.encryptionsdk.internaldafny.types._IAwsEncryptionSdkConfig ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig(AWS.Cryptography.EncryptionSDK.AwsEncryptionSdkConfig value) + { + value.Validate(); + AWS.Cryptography.MaterialProviders.ESDKCommitmentPolicy var_commitmentPolicy = value.IsSetCommitmentPolicy() ? value.CommitmentPolicy : (AWS.Cryptography.MaterialProviders.ESDKCommitmentPolicy)null; + long? var_maxEncryptedDataKeys = value.IsSetMaxEncryptedDataKeys() ? value.MaxEncryptedDataKeys : (long?)null; +- AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy var_netV4_0_0_RetryPolicy = value.IsSetNetV4__0__0__RetryPolicy() ? value.NetV4__0__0__RetryPolicy : (AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy)null; ++ AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy var_netV4_0_0_RetryPolicy = value.IsSetNetV4__0__0__RetryPolicy() ? value.NetV4_0_0_RetryPolicy : (AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy)null; + return new software.amazon.cryptography.encryptionsdk.internaldafny.types.AwsEncryptionSdkConfig(ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M16_commitmentPolicy(var_commitmentPolicy), ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M20_maxEncryptedDataKeys(var_maxEncryptedDataKeys), ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M21_netV4_0_0_RetryPolicy(var_netV4_0_0_RetryPolicy)); + } + public static AWS.Cryptography.EncryptionSDK.AwsEncryptionSdkException FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S25_AwsEncryptionSdkException(software.amazon.cryptography.encryptionsdk.internaldafny.types.Error_AwsEncryptionSdkException value) +@@ -92,16 +92,16 @@ namespace AWS.Cryptography.EncryptionSDK.Wrapped + + return new software.amazon.cryptography.encryptionsdk.internaldafny.types.EncryptOutput(ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_EncryptOutput__M10_ciphertext(value.Ciphertext), ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_EncryptOutput__M17_encryptionContext(value.EncryptionContext), ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_EncryptOutput__M16_algorithmSuiteId(value.AlgorithmSuiteId)); + } +- public static AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S21_NetV4_0_0_RetryPolicy(software.amazon.cryptography.encryptionsdk.internaldafny.types._INetV4_0_0_RetryPolicy value) ++ public static AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S21_NetV4_0_0_RetryPolicy(software.amazon.cryptography.encryptionsdk.internaldafny.types._INetV4__0__0__RetryPolicy value) + { + if (value.is_FORBID__RETRY) return AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy.FORBID_RETRY; + if (value.is_ALLOW__RETRY) return AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy.ALLOW_RETRY; + throw new System.ArgumentException("Invalid AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy value"); + } +- public static software.amazon.cryptography.encryptionsdk.internaldafny.types._INetV4_0_0_RetryPolicy ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S21_NetV4_0_0_RetryPolicy(AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy value) ++ public static software.amazon.cryptography.encryptionsdk.internaldafny.types._INetV4__0__0__RetryPolicy ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S21_NetV4_0_0_RetryPolicy(AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy value) + { +- if (AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy.FORBID_RETRY.Equals(value)) return software.amazon.cryptography.encryptionsdk.internaldafny.types.NetV4_0_0_RetryPolicy.create_FORBID__RETRY(); +- if (AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy.ALLOW_RETRY.Equals(value)) return software.amazon.cryptography.encryptionsdk.internaldafny.types.NetV4_0_0_RetryPolicy.create_ALLOW__RETRY(); ++ if (AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy.FORBID_RETRY.Equals(value)) return software.amazon.cryptography.encryptionsdk.internaldafny.types.NetV4__0__0__RetryPolicy.create_FORBID__RETRY(); ++ if (AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy.ALLOW_RETRY.Equals(value)) return software.amazon.cryptography.encryptionsdk.internaldafny.types.NetV4__0__0__RetryPolicy.create_ALLOW__RETRY(); + throw new System.ArgumentException("Invalid AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy value"); + } + public static AWS.Cryptography.MaterialProviders.ESDKCommitmentPolicy FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M16_commitmentPolicy(Wrappers_Compile._IOption value) +@@ -120,13 +120,13 @@ namespace AWS.Cryptography.EncryptionSDK.Wrapped + { + return value == null ? Wrappers_Compile.Option.create_None() : Wrappers_Compile.Option.create_Some(ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S15_CountingNumbers((long)value)); + } +- public static AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M21_netV4_0_0_RetryPolicy(Wrappers_Compile._IOption value) ++ public static AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M21_netV4_0_0_RetryPolicy(Wrappers_Compile._IOption value) + { + return value.is_None ? (AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy)null : FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S21_NetV4_0_0_RetryPolicy(value.Extract()); + } +- public static Wrappers_Compile._IOption ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M21_netV4_0_0_RetryPolicy(AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy value) ++ public static Wrappers_Compile._IOption ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M21_netV4_0_0_RetryPolicy(AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy value) + { +- return value == null ? Wrappers_Compile.Option.create_None() : Wrappers_Compile.Option.create_Some(ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S21_NetV4_0_0_RetryPolicy((AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy)value)); ++ return value == null ? Wrappers_Compile.Option.create_None() : Wrappers_Compile.Option.create_Some(ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S21_NetV4_0_0_RetryPolicy((AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy)value)); + } + public static string FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S25_AwsEncryptionSdkException__M7_message(Dafny.ISequence value) + { diff --git a/TestVectors/dafny/TestVectors/Model/AwsCryptographyEncryptionSdkTypesWrapped.dfy b/TestVectors/dafny/TestVectors/Model/AwsCryptographyEncryptionSdkTypesWrapped.dfy new file mode 100644 index 000000000..f50dacb9f --- /dev/null +++ b/TestVectors/dafny/TestVectors/Model/AwsCryptographyEncryptionSdkTypesWrapped.dfy @@ -0,0 +1,24 @@ +// 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. +include "../../../../mpl/StandardLibrary/src/Index.dfy" + // BEGIN MANUAL EDIT +include "../../../../AwsEncryptionSDK/dafny/AwsEncryptionSdk/src/Index.dfy" +include "../../../../mpl/TestVectorsAwsCryptographicMaterialProviders/dafny/KeyVectors/src/Index.dfy" + // END MANUAL EDIT +include "../src/Index.dfy" +abstract module WrappedAbstractAwsCryptographyEncryptionSdkService { + import opened Wrappers + import opened StandardLibrary.UInt + import opened UTF8 + import opened Types = AwsCryptographyEncryptionSdkTypes + import WrappedService : AbstractAwsCryptographyEncryptionSdkService + function method WrappedDefaultAwsEncryptionSdkConfig(): AwsEncryptionSdkConfig + method {:extern} WrappedESDK(config: AwsEncryptionSdkConfig := WrappedDefaultAwsEncryptionSdkConfig()) + returns (res: Result) + ensures res.Success? ==> + && fresh(res.value) + && fresh(res.value.Modifies) + && fresh(res.value.History) + && res.value.ValidState() +} diff --git a/TestVectors/dafny/TestVectors/src/EsdkManifestOptions.dfy b/TestVectors/dafny/TestVectors/src/EsdkManifestOptions.dfy new file mode 100644 index 000000000..85265a0eb --- /dev/null +++ b/TestVectors/dafny/TestVectors/src/EsdkManifestOptions.dfy @@ -0,0 +1,31 @@ +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +include "LibraryIndex.dfy" + +module {:options "-functionSyntax:4"} EsdkManifestOptions { + import opened Wrappers + + datatype ManifestOptions = + | Decrypt( + nameonly manifestPath: string, + nameonly manifestFileName: string, + nameonly testName: Option := None + ) + | Encrypt( + nameonly manifestPath: string, + nameonly manifest: string, + nameonly decryptManifestOutput: string, + nameonly testName: Option := None + ) + | DecryptSingle( + nameonly keysPath: string, + nameonly keyDescription: string, + nameonly base64Bytes: string + ) + | EncryptManifest( + nameonly encryptManifestOutput: string, + nameonly version: nat + ) + +} \ No newline at end of file diff --git a/TestVectors/dafny/TestVectors/src/EsdkTestManifests.dfy b/TestVectors/dafny/TestVectors/src/EsdkTestManifests.dfy new file mode 100644 index 000000000..11f627e32 --- /dev/null +++ b/TestVectors/dafny/TestVectors/src/EsdkTestManifests.dfy @@ -0,0 +1,300 @@ +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +include "LibraryIndex.dfy" +include "ParseEsdkJsonManifest.dfy" +include "EsdkTestVectors.dfy" + +module {:options "-functionSyntax:4"} EsdkTestManifests { + import Types = AwsCryptographyEncryptionSdkTypes + import mplTypes = AwsCryptographyMaterialProvidersTypes + import opened Wrappers + import TestVectors + import FileIO + import JSON.API + import JSON.Values + import JSON.Errors + import Seq + import BoundedInts + import opened StandardLibrary.UInt + import opened JSONHelpers + import ParseJsonManifests + import ParseEsdkJsonManifest + import KeyVectors + import KeyVectorsTypes = AwsCryptographyMaterialProvidersTestVectorKeysTypes + import AtomicPrimitives + import UTF8 + + import EsdkManifestOptions + import opened EsdkTestVectors + import WriteVectors + + method StartDecryptVectors( + op: EsdkManifestOptions.ManifestOptions + ) + returns (output: Result, string>) + requires op.Decrypt? + requires 0 < |op.manifestPath| + requires Seq.Last(op.manifestPath) == '/' + { + var decryptManifest :- expect GetManifest(op.manifestPath, op.manifestFileName); + :- Need(decryptManifest.DecryptManifest?, "Not a decrypt manifest"); + + var decryptVectors :- ParseEsdkJsonManifest.BuildDecryptTestVector( + op, + decryptManifest.version, + decryptManifest.keys, + decryptManifest.jsonTests + ); + + output := TestDecrypts(decryptManifest.keys, decryptVectors); + } + + predicate TestDecryptVector?(v: EsdkDecryptTestVector) + { + && v.decryptionMethod.OneShot? + } + + method TestDecrypts( + keys: KeyVectors.KeyVectorsClient, + vectors: seq + ) + returns (manifest: Result, string>) + requires keys.ValidState() + modifies keys.Modifies + ensures keys.ValidState() + { + print "\n=================== Starting ", |vectors|, " Decrypt Tests =================== \n\n"; + + var hasFailure := false; + var skipped := 0; + + for i := 0 to |vectors| + { + var vector := vectors[i]; + if TestDecryptVector?(vector) { + var pass := EsdkTestVectors.TestDecrypt(keys, vector); + if !pass { + hasFailure := true; + } + } else { + skipped := skipped + 1; + print "\nSKIP===> ", vector.id, "\n"; + } + + } + print "\n=================== Completed ", |vectors|, " Decrypt Tests =================== \n\n"; + + if 0 < skipped { + print "Skipped: ", skipped, "\n"; + } + + expect !hasFailure; + + manifest := Success([]); + } + + method {:vcs_split_on_every_assert} StartEncryptVectors( + op: EsdkManifestOptions.ManifestOptions + ) + returns (output: Result<(), string>) + requires op.Encrypt? + requires 0 < |op.manifestPath| + { + var encryptManifest :- GetManifest(op.manifestPath, op.manifest); + :- Need(encryptManifest.EncryptManifest?, "Not a encrypt manifest"); + + var encryptVectors :- ParseEsdkJsonManifest.BuildEncryptTestVector( + op, + encryptManifest.version, + encryptManifest.keys, + encryptManifest.jsonTests + ); + + var p :- expect AtomicPrimitives.AtomicPrimitives(); + var plaintext := map[]; + for i := 0 to |encryptManifest.plaintext| + { + var (name, length) := encryptManifest.plaintext[i]; + var data :- expect p.GenerateRandomBytes( + AtomicPrimitives.Types.GenerateRandomBytesInput( + length := length + )); + // Write the plaintext to disk. + print op.decryptManifestOutput + plaintextPathRoot + name, "\n\n"; + var _ :- WriteVectorsFile(op.decryptManifestOutput + plaintextPathRoot + name, data); + plaintext := plaintext + map[ name := data ]; + } + + var encryptTests? := ToEncryptTests(encryptManifest.keys, encryptVectors); + var encryptTests :- encryptTests?.MapFailure((e: KeyVectorsTypes.Error) => var _ := MplVectorPrintErr(e); "Cmm failure"); + var decryptVectors :- TestEncrypts(plaintext, encryptManifest.keys, encryptTests); + + var _ :- WriteVectors.WriteDecryptManifest(op, encryptManifest.keys, decryptVectors); + + output := Success(()); + } + + + predicate TestEncryptVector?(vector: EsdkEncryptTestVector) + { + && (vector.frameLength.Some? ==> Types.IsValid_FrameLength(vector.frameLength.value)) + } + + method ToEncryptTests(keys: KeyVectors.KeyVectorsClient, vectors: seq) + returns (output: Result, KeyVectorsTypes.Error>) + requires keys.ValidState() + modifies keys.Modifies + ensures keys.ValidState() + ensures output.Success? ==> + && forall t <- output.value :: + && t.ValidState() + && fresh(t.cmm.Modifies) && fresh(t.client.Modifies) + { + var encryptTests: seq := []; + for i := 0 to |vectors| + invariant forall t <- encryptTests :: + && t.ValidState() + && fresh(t.cmm.Modifies) && fresh(t.client.Modifies) + { + var test :- EsdkTestVectors.EncryptVectorToEncryptTest(keys, vectors[i]); + encryptTests := encryptTests + [test]; + } + + return Success(encryptTests); + } + + method TestEncrypts( + plaintexts: map>, + keys: KeyVectors.KeyVectorsClient, + tests: seq + ) + returns (manifest: Result, string>) + requires keys.ValidState() + modifies keys.Modifies + ensures keys.ValidState() + requires forall t <- tests :: t.ValidState() + modifies set t <- tests, o | o in t.cmm.Modifies :: o + modifies set t <- tests, o | o in t.client.Modifies :: o + ensures forall t <- tests :: t.ValidState() + { + print "\n=================== Starting ", |tests|, " Encrypt Tests =================== \n\n"; + + var hasFailure := false; + var decryptVectors := []; + var skipped := []; + + for i := 0 to |tests| + invariant forall t <- tests :: + && t.ValidState() + { + var test := tests[i]; + :- Need( + test.vector.id.Some?, + "Vector is missing uuid" + ); + if TestEncryptVector?(test.vector) { + :- Need( + && test.vector.algorithmSuiteId.Some? + && test.vector.algorithmSuiteId.value.id.ESDK?, + "Vector is using an algorithm suite other than ESDK" + ); + var pass :- EsdkTestVectors.TestEncrypt(plaintexts, keys, test); + if !pass.output { + hasFailure := true; + } else if pass.vector.Some? { + decryptVectors := decryptVectors + [pass.vector.value]; + } + } else { + skipped := skipped + [test.vector.id.value + "\n"]; + print "\nSKIP===> ", test.vector.id.value, "\n"; + } + } + print "\n=================== Completed ", |tests|, " Encrypt Tests =================== \n\n"; + + expect !hasFailure; + + manifest := Success(decryptVectors); + } + + datatype ManifestData = + | DecryptManifest( + version: nat, + keys: KeyVectors.KeyVectorsClient, + client: Values.JSON, + jsonTests: seq<(string, Values.JSON)> + ) + | EncryptManifest( + version: nat, + keys: KeyVectors.KeyVectorsClient, + plaintext: seq<(string, AtomicPrimitives.Types.PositiveInteger)>, + jsonTests: seq<(string, Values.JSON)> + ) + + method GetManifest( + manifestPath: string, + manifestFileName: string + ) + returns (manifestData: Result) + + ensures manifestData.Success? ==> + && fresh(manifestData.value.keys.Modifies) + && manifestData.value.keys.ValidState() + ensures manifestData.Success? && manifestData.value.DecryptManifest? + ==> + SupportedDecryptVersion?(manifestData.value.version) + ensures manifestData.Success? && manifestData.value.EncryptManifest? + ==> + SupportedEncryptVersion?(manifestData.value.version) + { + var decryptManifestBv :- FileIO.ReadBytesFromFile(manifestPath + manifestFileName); + var decryptManifestBytes := BvToBytes(decryptManifestBv); + var manifestJson :- API.Deserialize(decryptManifestBytes) + .MapFailure(( e: Errors.DeserializationError ) => e.ToString()); + :- Need(manifestJson.Object?, "Not a JSON object"); + + var manifest :- GetObject("manifest", manifestJson.obj); + var version :- GetNat("version", manifest); + var typ :- GetString("type", manifest); + + var keyManifestUri :- GetString("keys", manifestJson.obj); + :- Need("file://" < keyManifestUri, "Unexpected URI prefix"); + var keyManifestPath := manifestPath + keyManifestUri[7..]; + var keys :- expect KeyVectors.KeyVectors(KeyVectorsTypes.KeyVectorsConfig( + keyManifestPath := keyManifestPath + )); + + var jsonTests :- GetObject("tests", manifestJson.obj); + + match typ + case "awses-decrypt" => + :- Need(SupportedDecryptVersion?(version), "Unsupported manifest version"); + var client :- Get("client", manifestJson.obj); + manifestData := Success(DecryptManifest( + version := version, + keys := keys, + client := client, + jsonTests := jsonTests + )); + + case "awses-encrypt" => + :- Need(SupportedEncryptVersion?(version), "Unsupported manifest version"); + var plaintextsJson :- GetObject("plaintexts", manifestJson.obj); + var plaintextsLength :- Seq.MapWithResult( + (obj: (string, Values.JSON)) => + :- Need(obj.1.Number? && 0 < obj.1.num.n <= BoundedInts.INT32_MAX as nat, + "Size is not a natural number."); + Success((obj.0, obj.1.num.n as int32)), + plaintextsJson + ); + manifestData := Success(EncryptManifest( + version := version, + keys := keys, + plaintext := plaintextsLength, + jsonTests := jsonTests + )); + + case _ => + manifestData := Failure("Unsupported manifest type:" + typ); + } +} diff --git a/TestVectors/dafny/TestVectors/src/EsdkTestVectors.dfy b/TestVectors/dafny/TestVectors/src/EsdkTestVectors.dfy new file mode 100644 index 000000000..15dedc325 --- /dev/null +++ b/TestVectors/dafny/TestVectors/src/EsdkTestVectors.dfy @@ -0,0 +1,515 @@ +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +include "LibraryIndex.dfy" + +module {:options "-functionSyntax:4"} EsdkTestVectors { + import Types = AwsCryptographyEncryptionSdkTypes + import mplTypes = AwsCryptographyMaterialProvidersTypes + import WrappedMaterialProviders + import WrappedESDK + + import opened Wrappers + import opened StandardLibrary.UInt + import UTF8 + import FileIO + import UUID + + import opened JSONHelpers + import KeyVectors + import KeyVectorsTypes = AwsCryptographyMaterialProvidersTestVectorKeysTypes + import TestVectors + import AllAlgorithmSuites + + datatype EncryptTest = EncryptTest( + cmm: mplTypes.ICryptographicMaterialsManager, + client: Types.IAwsEncryptionSdkClient, + vector: EsdkEncryptTestVector + ) + { + ghost predicate ValidState() + { + && cmm.ValidState() + && client.ValidState() + && cmm.Modifies !! {client.History} + } + } + + datatype DecryptTest = DecryptTest( + cmm: mplTypes.ICryptographicMaterialsManager, + client: Types.IAwsEncryptionSdkClient, + vector: EsdkDecryptTestVector + ) + { + ghost predicate ValidState() + { + && cmm.ValidState() + && client.ValidState() + && cmm.Modifies !! {client.History} + } + } + + type SupportedGenerateManifestVersion = v: nat | SupportedGenerateManifestVersion?(v) witness 4 + predicate SupportedGenerateManifestVersion?(v: nat) + { + || v == 4 + } + + type SupportedEncryptVersion = v: nat | SupportedEncryptVersion?(v) witness 1 + predicate SupportedEncryptVersion?(v: nat) + { + || v == 1 + || v == 4 + || v == 5 + } + + + datatype EsdkEncryptTestVector = + | PositiveEncryptTestVector( + id: Option := None, + version: SupportedEncryptVersion, + manifestPath: string, + decryptManifestPath: string, + plaintextPath: string, + encryptDescriptions: KeyVectorsTypes.KeyDescription, + decryptDescriptions: KeyVectorsTypes.KeyDescription, + encryptionContext: Option := None, + reproducedEncryptionContext: Option := None, + commitmentPolicy: mplTypes.ESDKCommitmentPolicy := mplTypes.FORBID_ENCRYPT_ALLOW_DECRYPT, + frameLength: Option, + algorithmSuiteId: Option, + description: string, + maxEncryptedDataKeys: Option := Some(1) + ) + | PositiveEncryptNegativeDecryptTestVector ( + id: Option := None, + version: SupportedEncryptVersion, + manifestPath: string, + decryptManifestPath: string, + plaintextPath: string, + encryptDescriptions: KeyVectorsTypes.KeyDescription, + decryptDescriptions: KeyVectorsTypes.KeyDescription, + encryptionContext: Option := None, + reproducedEncryptionContext: Option := None, + commitmentPolicy: mplTypes.ESDKCommitmentPolicy := mplTypes.FORBID_ENCRYPT_ALLOW_DECRYPT, + frameLength: Option, + algorithmSuiteId: Option, + decryptErrorDescription: string, + description: string, + maxEncryptedDataKeys: Option := Some(1) + ) + | NegativeEncryptTestVector( + id: Option := None, + version: SupportedEncryptVersion, + manifestPath: string, + plaintextPath: string, + encryptDescriptions: KeyVectorsTypes.KeyDescription, + encryptionContext: Option := None, + reproducedEncryptionContext: Option := None, + commitmentPolicy: mplTypes.ESDKCommitmentPolicy := mplTypes.FORBID_ENCRYPT_ALLOW_DECRYPT, + frameLength: Option, + algorithmSuiteId: Option, + errorDescription: string, + description: string, + maxEncryptedDataKeys: Option := Some(1) + ) + + type SupportedDecryptVersion = v: nat | SupportedDecryptVersion?(v) witness 1 + predicate SupportedDecryptVersion?(v: nat) + { + || v == 1 + || v == 2 + || v == 3 + } + + datatype EsdkDecryptTestVector = + | PositiveDecryptTestVector( + id: string, + version: SupportedDecryptVersion, + manifestPath: string, + ciphertextPath: string, + plaintextPath: string, + reproducedEncryptionContext: Option := None, + decryptDescriptions: KeyVectorsTypes.KeyDescription, + commitmentPolicy: mplTypes.ESDKCommitmentPolicy := mplTypes.FORBID_ENCRYPT_ALLOW_DECRYPT, + frameLength: Option, + algorithmSuiteId: Option, + description: string, + decryptionMethod: DecryptionMethod + ) + | NegativeDecryptTestVector( + id: string, + version: SupportedDecryptVersion, + manifestPath: string, + ciphertextPath: string, + errorDescription: string, + reproducedEncryptionContext: Option := None, + decryptDescriptions: KeyVectorsTypes.KeyDescription, + commitmentPolicy: mplTypes.ESDKCommitmentPolicy := mplTypes.FORBID_ENCRYPT_ALLOW_DECRYPT, + frameLength: Option, + algorithmSuiteId: Option, + description: string, + decryptionMethod: DecryptionMethod + ) + | PositiveV1OrV2DecryptTestVector( + id: string, + version: SupportedDecryptVersion, + manifestPath: string, + ciphertextPath: string, + plaintextPath: string, + reproducedEncryptionContext: Option := None, + requiredEncryptionContextKeys: Option := None, + decryptDescriptions: KeyVectorsTypes.KeyDescription, + commitmentPolicy: mplTypes.ESDKCommitmentPolicy := mplTypes.FORBID_ENCRYPT_ALLOW_DECRYPT, + frameLength: Option, + algorithmSuiteId: Option, + description: string, + decryptionMethod: DecryptionMethod + ) + + datatype DecryptionMethod = + | StreamingUnsignedOnly + | OneShot + + method {:vcs_split_on_every_assert} TestDecrypt( + keys: KeyVectors.KeyVectorsClient, + vector: EsdkDecryptTestVector + ) + returns (output: bool) + requires keys.ValidState() + modifies keys.Modifies + ensures keys.ValidState() + { + if vector.algorithmSuiteId.Some? { + var id := AllAlgorithmSuites.ToHex(vector.algorithmSuiteId.value); + print "\nTEST-DECRYPT===> ", vector.id, "\n", id, " ", vector.description, "\n"; + } else { + print "\nTEST-DECRYPT===> ", vector.id, "\n", vector.description, "\n"; + } + + // The decrypt test vectors also test initialization + // This is because they were developed when the MPL + // was still part of the ESDK + var test? := DecryptVectorToDecryptTest(keys, vector); + + if test?.Failure? { + print test?.error, "\n", "\nFAILED! <-----------\n"; + return false; + } + + var test := test?.value; + + var ciphertext :- expect ReadVectorsFile(test.vector.manifestPath + test.vector.ciphertextPath); + var plaintext; + if test.vector.PositiveDecryptTestVector? || test.vector.PositiveV1OrV2DecryptTestVector? { + plaintext :- expect ReadVectorsFile(test.vector.manifestPath + test.vector.plaintextPath); + } + + var input := Types.DecryptInput( + ciphertext := ciphertext, + encryptionContext := test.vector.reproducedEncryptionContext, + materialsManager := Some(test.cmm), + keyring := None + ); + + var result := test.client.Decrypt(input); + + output := match test.vector + case PositiveDecryptTestVector(_,_,_,_,_,_,_,_,_,_,_,_) + => + && result.Success? + && result.value.plaintext == plaintext + case NegativeDecryptTestVector(_,_,_,_,_,_,_,_,_,_,_,_) + => + && result.Failure? + case PositiveV1OrV2DecryptTestVector(_,_,_,_,_,_,_,_,_,_,_,_,_) + => + && result.Success? + && result.value.plaintext == plaintext; + if !output { + if (test.vector.PositiveDecryptTestVector? || test.vector.PositiveV1OrV2DecryptTestVector?) && result.Failure? { + print result.error, "\n"; + if + && result.error.AwsCryptographyMaterialProviders? + && result.error.AwsCryptographyMaterialProviders.CollectionOfErrors? + { + print "list:", result.error.AwsCryptographyMaterialProviders.list, "\n"; + } + } + print "\nFAILED! <-----------\n"; + } + } + + method {:vcs_split_on_every_assert} DecryptVectorToDecryptTest( + keys: KeyVectors.KeyVectorsClient, + vector: EsdkDecryptTestVector + ) + returns (output: Result) + requires keys.ValidState() + modifies keys.Modifies + ensures keys.ValidState() + + ensures output.Success? + ==> + && output.value.ValidState() + && fresh(output.value.cmm.Modifies - keys.Modifies) + && fresh(output.value.client.Modifies) + { + :- Need( + !vector.NegativeDecryptTestVector?, + KeyVectorsTypes.KeyVectorException(message := "Negative Test Vectors not supported at this time") + ); + var cmm :- keys.CreateWrappedTestVectorCmm( + KeyVectorsTypes.TestVectorCmmInput( + keyDescription := vector.decryptDescriptions, + forOperation := KeyVectorsTypes.DECRYPT + )); + + var commitmentPolicy := if vector.algorithmSuiteId.Some? then + AllAlgorithmSuites.GetCompatibleCommitmentPolicy(vector.algorithmSuiteId.value) + else + // If the manifest does not contain a field for the algorithm suite then we default the + // commitment policy to FORBID_ENCRYPT_ALLOW_DECRYPT. This is currently only triggered + // when we read v1 manifests. + mplTypes.CommitmentPolicy.ESDK(mplTypes.ESDKCommitmentPolicy.FORBID_ENCRYPT_ALLOW_DECRYPT); + :- Need(commitmentPolicy.ESDK?, KeyVectorsTypes.KeyVectorException(message := "Compatible commitment policy is not for ESDK")); + + var config := WrappedESDK.WrappedAwsEncryptionSdkConfigWithSuppliedCommitment( + commitmentPolicy := commitmentPolicy.ESDK + ); + + var client :- expect WrappedESDK.WrappedESDK(config := config); + + var test := DecryptTest( + cmm := cmm, + client := client, + vector := vector + ); + + output := Success(test); + } + + const plaintextPathRoot := "plaintexts/" + const ciphertextPathPathRoot := "ciphertexts/" + + datatype EncryptTestOutput = EncryptTestOutput( + output: bool, + vector: Option := None + ) + + method {:vcs_split_on_every_assert} TestEncrypt( + plaintexts: map>, + keys: KeyVectors.KeyVectorsClient, + test: EncryptTest + ) + returns (output: Result) + requires keys.ValidState() && test.ValidState() + modifies keys.Modifies + modifies test.cmm.Modifies + modifies test.client.Modifies + ensures keys.ValidState() && test.ValidState() + + requires test.vector.frameLength.Some? ==> Types.IsValid_FrameLength(test.vector.frameLength.value) + requires test.vector.algorithmSuiteId.Some? && test.vector.algorithmSuiteId.value.id.ESDK? + requires test.vector.id.Some? + { + var id := AllAlgorithmSuites.ToHex(test.vector.algorithmSuiteId.value); + print "\nTEST-ENCRYPT===> ", test.vector.id.value, "\n", id, " ", test.vector.description, "\n"; + + // The encrypt test vectors also test initialization + // This is because they were developed when the MPL + // was still part of the ESDK + var vector := test.vector; + + expect test.vector.plaintextPath in plaintexts; + var plaintext := plaintexts[test.vector.plaintextPath]; + var frameLength: Option := vector.frameLength; + + var input := Types.EncryptInput( + plaintext := plaintext, + encryptionContext := test.vector.encryptionContext, + materialsManager := Some(test.cmm), + keyring := None, + frameLength := frameLength, + algorithmSuiteId := Some(test.vector.algorithmSuiteId.value.id.ESDK) + ); + var result := test.client.Encrypt(input); + + if + && result.Success? + && ( + || test.vector.PositiveEncryptTestVector? + || test.vector.PositiveEncryptNegativeDecryptTestVector? + ) + { + var decryptVector :- EncryptTestToDecryptVector(test, result.value); + output := Success(EncryptTestOutput( + vector := Some(decryptVector), + output := true + )); + } else if result.Failure? && test.vector.NegativeEncryptTestVector? { + output := Success(EncryptTestOutput( output := true )); + } else { + output := Success(EncryptTestOutput( output := false )); + if !test.vector.NegativeEncryptTestVector? && result.Failure? { + print result.error; + } + print "\nFAILED! <-----------\n"; + } + } + + method EncryptVectorToEncryptTest( + keys: KeyVectors.KeyVectorsClient, + vector: EsdkEncryptTestVector + ) + returns (output: Result) + requires keys.ValidState() + modifies keys.Modifies + ensures keys.ValidState() + + ensures output.Success? ==> + && output.value.ValidState() + && fresh(output.value.cmm.Modifies) + && fresh(output.value.client.Modifies) + ensures output.Success? + ==> + output.value.vector == vector + { + var cmm :- keys.CreateWrappedTestVectorCmm( + KeyVectorsTypes.TestVectorCmmInput( + keyDescription := if vector.PositiveEncryptTestVector? then + vector.encryptDescriptions + else if vector.PositiveEncryptNegativeDecryptTestVector? then + vector.encryptDescriptions + else + vector.encryptDescriptions, + forOperation := KeyVectorsTypes.ENCRYPT + )); + + :- Need(vector.algorithmSuiteId.Some?, KeyVectorsTypes.KeyVectorException(message := "Missing AlgorithmSuiteId in test vector")); + var commitmentPolicy := AllAlgorithmSuites.GetCompatibleCommitmentPolicy(vector.algorithmSuiteId.value); + :- Need(commitmentPolicy.ESDK?, KeyVectorsTypes.KeyVectorException(message := "Compatible commitment policy is not for ESDK")); + + var config := WrappedESDK.WrappedAwsEncryptionSdkConfigWithSuppliedCommitment( + commitmentPolicy := commitmentPolicy.ESDK + ); + + var client :- expect WrappedESDK.WrappedESDK(config := config); + + var test := EncryptTest( + cmm := cmm, + client := client, + vector := vector + ); + + output := Success(test); + } + + method EncryptTestToDecryptVector( + test: EncryptTest, + result: Types.EncryptOutput + ) returns (output: Result) + requires + || test.vector.PositiveEncryptTestVector? + || test.vector.PositiveEncryptNegativeDecryptTestVector? + requires test.vector.algorithmSuiteId.Some? + requires test.vector.id.Some? + { + output := match test.vector + case PositiveEncryptTestVector(_,_,_,_,_,_,_,_,_,_,_,_,_,_) => + Success(PositiveDecryptTestVector( + id := test.vector.id.value, + version := 3, + manifestPath := test.vector.decryptManifestPath, + ciphertextPath := ciphertextPathPathRoot, + plaintextPath := plaintextPathRoot + test.vector.plaintextPath, + reproducedEncryptionContext := test.vector.reproducedEncryptionContext, + decryptDescriptions := test.vector.decryptDescriptions, + commitmentPolicy := test.vector.commitmentPolicy, + frameLength := test.vector.frameLength, + algorithmSuiteId := test.vector.algorithmSuiteId, + description := test.vector.description, + decryptionMethod := DecryptionMethod.OneShot + )) + case _ => + Failure("Only postive tests supported"); + + var decryptManifestCiphertext := test.vector.decryptManifestPath + ciphertextPathPathRoot + test.vector.id.value; + // Side effect, to avoid thousands of ciphertext in memory... + var _ :- expect WriteVectorsFile(decryptManifestCiphertext, result.ciphertext); + } + + + function MplPrintErr(e: mplTypes.Error) : (){()} by method {print e, "\n", "\n"; return ();} + function MplVectorPrintErr(e: KeyVectorsTypes.Error) :(){()} by method {print e, "\n", "\n"; return ();} + + method KeyDescriptionToCmm( + keys: KeyVectors.KeyVectorsClient, + keyDescriptions: seq + ) + returns (output: Result) + + requires keys.ValidState() + modifies keys.Modifies + ensures keys.ValidState() + + ensures output.Success? + ==> + && fresh(output.value.Modifies - keys.Modifies) + && output.value.ValidState() + { + var keyringList: seq := []; + for i := 0 to |keyDescriptions| + invariant forall k | k in keyringList :: + && k.ValidState() && fresh(k.Modifies) + invariant forall k | k in keyringList + :: k.Modifies + <= set m: object, k :mplTypes.IKeyring + | + && k in keyringList + && m in k.Modifies + :: m + { + var keyDescription := keyDescriptions[i]; + var keyring :- keys.CreateWrappedTestVectorKeyring( + KeyVectorsTypes.TestVectorKeyringInput( + keyDescription := keyDescription + )); + keyringList := keyringList + [keyring]; + } + + :- Need(|keyringList| == 1, KeyVectorsTypes.KeyVectorException( message := "Failed to create any keyrings" )); + var mpl :- expect WrappedMaterialProviders.WrappedMaterialProviders(); + var generatorKeyring := keyringList[0]; + var maybeMultiKeyring := mpl.CreateMultiKeyring( + mplTypes.CreateMultiKeyringInput( + generator := Some(generatorKeyring), + childKeyrings := keyringList[1..] + ) + ); + + var keyring :- maybeMultiKeyring + .MapFailure(e => KeyVectorsTypes.AwsCryptographyMaterialProviders(e)); + + var maybeCmm := mpl + .CreateDefaultCryptographicMaterialsManager( + mplTypes.CreateDefaultCryptographicMaterialsManagerInput( keyring := maybeMultiKeyring.value ) + ); + output := maybeCmm + .MapFailure(e => KeyVectorsTypes.AwsCryptographyMaterialProviders(e)); + } + + method ReadVectorsFile(location: string) + returns (output: Result, string>) + { + var fileBv :- FileIO.ReadBytesFromFile(location); + output := Success(BvToBytes(fileBv)); + } + + method WriteVectorsFile(location: string, bytes: seq) + returns (output: Result<(), string>) + { + var bv := BytesBv(bytes); + output := FileIO.WriteBytesToFile(location, bv); + } +} \ No newline at end of file diff --git a/TestVectors/dafny/TestVectors/src/Index.dfy b/TestVectors/dafny/TestVectors/src/Index.dfy new file mode 100644 index 000000000..5ca64c66f --- /dev/null +++ b/TestVectors/dafny/TestVectors/src/Index.dfy @@ -0,0 +1,156 @@ +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +include "WriteVectors.dfy" +include "EsdkTestManifests.dfy" +include "EsdkManifestOptions.dfy" + +module {:options "-functionSyntax:4"} WrappedESDKMain { + import opened Wrappers + import WrappedESDK + import WriteVectors + + import EsdkTestManifests + import EsdkManifestOptions + import Seq + import opened GetOpt + + method Main2(args: seq) { + var vectorOptions := Options("test-vectors", "?", + [ + Param.Command(Options("decrypt", "decrypt command for test-vectors", + [ + Param.Opt("manifest-path", "relative path to the location of the manifest", unused := Required), + Param.Opt("manifest-name", "name of file that contains the decrypt vectors file", unused := Required), + Param.Opt("test-name", "id of the test to run") + ])), + Param.Command(Options("encrypt", "encrypt command for test-vectors", + [ + Param.Opt("manifest-path", "relative path to the location of the manifest", unused := Required), + Param.Opt("decrypt-manifest-path", "relative path to the location where the decrypted manifest will be written to.", unused := Required), + Param.Opt("test-name", "id of the test to run") + ])), + Param.Command(Options("encrypt-manifest", "encryp manifest command for test-vectors", + [ + Param.Opt("encrypt-manifest-output", "relative path of where to store the encrypt-manifest produced", unused := Required) + ])) + ]); + // The expectation is that the first argument + // is the filename or runtime + expect 0 < |args|; + var parsedOptions? := GetOptions(vectorOptions, args); + + if parsedOptions?.Success? { + var h := NeedsHelp(vectorOptions, parsedOptions?.value); + if h.Some? { + print h.value; + return; + } + var op? := ParseCommandLineOptions(parsedOptions?.value); + + if op?.Success? { + var op := op?.value; + match op + case Decrypt(_, _, _) => + var result := EsdkTestManifests.StartDecryptVectors(op); + if result.Failure? { + print result.error; + } + expect result.Success?; + case Encrypt(_, _, _, _) => + var result := EsdkTestManifests.StartEncryptVectors(op); + if result.Failure? { + print result.error; + } + expect result.Success?; + case EncryptManifest(_, _) => + var result := WriteVectors.WriteTestVectors(op); + if result.Failure? { + print result.error; + } + expect result.Success?; + } else { + print op?.error + "\n"; + print "help\n"; + } + } else { + print parsedOptions?.error + "\n"; + } + + } + + function ParseCommandLineOptions(parsedOptions: Parsed) + : (output: Result) + { + :- Need(parsedOptions.subcommand.Some?, "Must supply subcommand\n"); + + match parsedOptions.subcommand.value.command + case "decrypt" => ParseDecryptCmd(parsedOptions.subcommand.value.params) + case "encrypt" => ParseEncryptCmd(parsedOptions.subcommand.value.params) + case "encrypt-manifest" => ParseEncryptManifestCmd(parsedOptions.subcommand.value.params) + // GetOpt GetOptions actually takes care of this for us but Dafny doesn't know so we must have default case. + case _ => Failure("Received unknown subcommand") + } + + function ParseDecryptCmd(params: seq) + : (output: Result) + ensures output.Success? ==> output.value.Decrypt? + { + var manifestPath? := OptValue(params, "manifest-path"); + var testName? := OptValue(params, "test-name"); + var manifestFileName? := OptValue(params, "manifest-name"); + + var manifestPath := if manifestPath?.Some? then manifestPath?.value else "."; + :- Need(0 < |manifestPath|, "Invalid manifest path length\n"); + + :- Need(manifestFileName?.Some?, "Must supply manifest file name"); + var manifestFileName := manifestFileName?.value; + + Success(EsdkManifestOptions.Decrypt( + manifestPath := if Seq.Last(manifestPath) == '/' then manifestPath else manifestPath + "/", + manifestFileName := manifestFileName, + testName := if testName?.Some? then testName? else None + )) + } + + function ParseEncryptCmd(params: seq) + : (output: Result) + ensures output.Success? ==> output.value.Encrypt? + { + var manifestPath? := OptValue(params, "manifest-path"); + var manifestName? := OptValue(params, "manifest"); + var decryptManifestPath? := OptValue(params, "decrypt-manifest-path"); + var testName? := OptValue(params, "test-name"); + + var manifestPath := if manifestPath?.Some? then manifestPath?.value else "."; + var manifestName := if manifestName?.Some? then manifestName?.value else "encrypt-manifest.json"; + var decryptManifestPath := if decryptManifestPath?.Some? then decryptManifestPath?.value else "."; + :- Need( + && 0 < |manifestPath| + && 0 < |decryptManifestPath|, + "Invalid manifest or decrypt manifest path length\n" + ); + + Success(EsdkManifestOptions.Encrypt( + manifestPath := if Seq.Last(manifestPath) == '/' then manifestPath else manifestPath + "/", + manifest := manifestName, + decryptManifestOutput := if Seq.Last(decryptManifestPath) == '/' then decryptManifestPath else decryptManifestPath + "/", + testName := if testName?.Some? then testName? else None + )) + } + + function ParseEncryptManifestCmd(params: seq) + : (output: Result) + ensures output.Success? ==> output.value.EncryptManifest? + { + var encryptManifestOutput? := OptValue(params, "encrypt-manifest-output"); + var encryptManifestOutput := if encryptManifestOutput?.Some? then encryptManifestOutput?.value else "."; + :- Need(0 < |encryptManifestOutput|, "Invalid encrypt manifest output length"); + + Success(EsdkManifestOptions.EncryptManifest( + encryptManifestOutput := if Seq.Last(encryptManifestOutput) == '/' then encryptManifestOutput else encryptManifestOutput + "/", + version := 5 + )) + } + +} \ No newline at end of file diff --git a/TestVectors/dafny/TestVectors/src/LibraryIndex.dfy b/TestVectors/dafny/TestVectors/src/LibraryIndex.dfy new file mode 100644 index 000000000..5a1da5c96 --- /dev/null +++ b/TestVectors/dafny/TestVectors/src/LibraryIndex.dfy @@ -0,0 +1,43 @@ +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +include "../Model/AwsCryptographyEncryptionSdkTypesWrapped.dfy" + +module + {:extern "software.amazon.cryptography.encryptionsdk.internaldafny.wrapped" } + WrappedESDK refines WrappedAbstractAwsCryptographyEncryptionSdkService +{ + import WrappedService = EncryptionSdk + + function method WrappedDefaultAwsEncryptionSdkConfig(): AwsEncryptionSdkConfig + { + AwsEncryptionSdkConfig( + commitmentPolicy := Some(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy.REQUIRE_ENCRYPT_REQUIRE_DECRYPT), + maxEncryptedDataKeys := None, + netV4_0_0_RetryPolicy := None + ) + } + + function method WrappedAwsEncryptionSdkConfigWithSuppliedCommitment( + commitmentPolicy: AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy + ): AwsEncryptionSdkConfig + { + AwsEncryptionSdkConfig( + commitmentPolicy := Some(commitmentPolicy), + maxEncryptedDataKeys := None, + netV4_0_0_RetryPolicy := None + ) + } + function method WrappedAwsEncryptionSdkConfig( + commitmentPolicy: AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy, + maxEncryptedDataKeys: CountingNumbers, + netV4_0_0_RetryPolicy: NetV4_0_0_RetryPolicy + ) : AwsEncryptionSdkConfig + { + AwsEncryptionSdkConfig( + commitmentPolicy := Some(commitmentPolicy), + maxEncryptedDataKeys := Some(maxEncryptedDataKeys), + netV4_0_0_RetryPolicy := Some(netV4_0_0_RetryPolicy) + ) + } +} \ No newline at end of file diff --git a/TestVectors/dafny/TestVectors/src/ParseEsdkJsonManifest.dfy b/TestVectors/dafny/TestVectors/src/ParseEsdkJsonManifest.dfy new file mode 100644 index 000000000..24605007b --- /dev/null +++ b/TestVectors/dafny/TestVectors/src/ParseEsdkJsonManifest.dfy @@ -0,0 +1,463 @@ +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +include "LibraryIndex.dfy" +include "EsdkTestVectors.dfy" + +module {:options "-functionSyntax:4"} ParseEsdkJsonManifest { + import mplTypes = AwsCryptographyMaterialProvidersTypes + import JSON.API + import FileIO + import opened JSON.Values + import JSON.Errors + import opened Wrappers + import UTF8 + import Seq + import opened StandardLibrary.UInt + import BoundedInts + import opened JSONHelpers + import opened TestVectors + import HexStrings + import Base64 + import CompleteVectors + import KeyVectors + import KeyVectorsTypes = AwsCryptographyMaterialProvidersTestVectorKeysTypes + import ParseJsonManifests + import AlgorithmSuites + import opened EsdkTestVectors + import EsdkManifestOptions + + const ciphertextJsonKey := "ciphertext" + const masterKeysJsonKey := "master-keys" + const encryptKeyDescription := "encryptKeyDescription" + const decryptKeyDescription := "decryptKeyDescription" + const decryptionMethodJsonKey := "decryption-method" + const plaintextJsonKey := "plaintext" + const frameSizeJsonKey := "frame-size" + const encryptionContextJsonKey := "encryption-context" + const reproducedEncryptionContextJsonKey := "reproduced-encryption-context" + const buildTestVectorError := "Error other than negative test vector found thrown" + const negativeTestVectorFound := "Negative test vector found; not supported yet." + + function {:vcs_split_on_every_assert} BuildDecryptTestVector( + op: EsdkManifestOptions.ManifestOptions, + version: SupportedDecryptVersion, + keys: KeyVectors.KeyVectorsClient, + obj: seq<(string, JSON)> + ) : Result, string> + requires op.Decrypt? + { + if |obj| == 0 then + Success([]) + else + var tail :- BuildDecryptTestVector(op, version, keys, obj[1..]); + var encryptVector? := ToDecryptTestVectors(op, version, keys, obj[0].0, obj[0].1); + if encryptVector?.Success? then + Success([ encryptVector?.value ] + tail) + else + :- Need(encryptVector?.error == negativeTestVectorFound, buildTestVectorError); + Success(tail) + } by method { + // This function ideally would be`{:tailrecursion}` + // but it is not simple to here is a method + // so that it does not explode with huge numbers of tests. + var i: nat := |obj|; + var vectors := []; + + while i != 0 + decreases i + invariant Success(vectors) == BuildDecryptTestVector(op, version, keys, obj[i..]) + { + i := i - 1; + var test := ToDecryptTestVectors(op, version, keys, obj[i].0, obj[i].1); + if test.Failure? && test.error != negativeTestVectorFound { + assert Failure(buildTestVectorError) == BuildDecryptTestVector(op, version, keys, obj[i..]); + ghost var j: nat := i; + while j != 0 + decreases j + invariant Failure(buildTestVectorError) == BuildDecryptTestVector(op, version, keys, obj[j..]) + { + j := j - 1; + assert obj[j..][1..] == obj[j+1..]; + } + assert Failure(buildTestVectorError) == BuildDecryptTestVector(op, version, keys, obj); + return Failure(buildTestVectorError); + } + + if test.Success? { + vectors := [test.value] + vectors; + } + if test.Failure? && test.error == negativeTestVectorFound { + vectors := vectors; + } + } + return Success(vectors); + } + + + function {:vcs_split_on_every_assert} ToDecryptTestVectors( + op: EsdkManifestOptions.ManifestOptions, + version: SupportedDecryptVersion, + keys: KeyVectors.KeyVectorsClient, + name: string, + json: JSON + ) : Result + requires op.Decrypt? + { + :- Need(json.Object?, "Vector is not an object"); + var obj := json.obj; + + match version + case 3 => + :- Need(op.Decrypt?, "Err parsing manifest expected Decrypt"); + V3ToDecryptTestVector(op, keys, name, obj, version) + case 2 => + // Case 2 Needs negative test vectors.. + :- Need(op.Decrypt?, "Err parsing manifest expected Decrypt"); + V2ToDecryptTestVector(op, keys, name, obj, version) + case 1 => + :- Need(op.Decrypt?, "Err parsing manifest expected Decrypt"); + V1ToDecryptTestVector(op, keys, name, obj, version) + case _ => Failure("Version not supported\n") + } + + function BuildEncryptTestVector( + op: EsdkManifestOptions.ManifestOptions, + version: SupportedEncryptVersion, + keys: KeyVectors.KeyVectorsClient, + obj: seq<(string, JSON)> + ) : Result, string> + requires op.Encrypt? + { + if |obj| == 0 then + Success([]) + else + var tail :- BuildEncryptTestVector(op, version, keys, obj[1..]); + var encryptVector :- ToEncryptTestVector(op, version, keys, obj[0].0, obj[0].1); + Success([ encryptVector ] + tail) + } by method { + // This function ideally would be`{:tailrecursion}` + // but it is not simple to here is a method + // so that it does not explode with huge numbers of tests. + var i: nat := |obj|; + var vectors := []; + + while i != 0 + decreases i + invariant Success(vectors) == BuildEncryptTestVector(op, version, keys, obj[i..]) + { + i := i - 1; + var test := ToEncryptTestVector(op, version, keys, obj[i].0, obj[i].1); + if test.Failure? { + ghost var j := i; + while j != 0 + decreases j + invariant Failure(test.error) == BuildEncryptTestVector(op, version, keys, obj[j..]) + { + j := j - 1; + } + return Failure(test.error); + } + + vectors := [test.value] + vectors; + } + + return Success(vectors); + } + + + function ToEncryptTestVector( + op: EsdkManifestOptions.ManifestOptions, + version: SupportedEncryptVersion, + keys: KeyVectors.KeyVectorsClient, + name: string, + json: JSON + ) : Result + requires op.Encrypt? + { + :- Need(json.Object?, "EncryptTestVector not an object"); + var obj := json.obj; + + match version + // case 1 => V1ToEncryptTestVector(op, keys, name, obj) + case 5 => V5ToEncryptTestVector(op, keys, name, obj, version) + case _ => Failure("Version not supported") + } + + function V5ToEncryptTestVector( + op: EsdkManifestOptions.ManifestOptions, + keys: KeyVectors.KeyVectorsClient, + name: string, + obj: seq<(string, JSON)>, + version: SupportedEncryptVersion + ) : Result + requires op.Encrypt? + { + var scenarioString := "encryption-scenario"; + var scenario :- GetObject(scenarioString, obj); + + var typeString := "type"; + var typ :- GetString(typeString, scenario); + + var plaintextLoc :- GetString(plaintextJsonKey, scenario); + var algorithmSuite :- ParseJsonManifests.GetAlgorithmSuiteInfo(scenario); + :- Need(algorithmSuite.id.ESDK?, "Unsupported algorithmSuiteId"); + var frameLength :- GetOptionalPositiveLong(frameSizeJsonKey, scenario); + + var encryptionContextStrings :- SmallObjectToStringStringMap(encryptionContextJsonKey, scenario); + var encryptionContext :- utf8EncodeMap(encryptionContextStrings); + var reproducedEncryptionContextString :- SmallObjectToStringStringMap(reproducedEncryptionContextJsonKey, scenario); + var reproducedEncryptionContext :- utf8EncodeMap(reproducedEncryptionContextString); + var description :- GetString("description", scenario); + + match typ + case "positive-esdk" => + var encryptKeyDescription :- ParseJsonManifests.GetKeyDescription(keys, encryptKeyDescription, scenario); + var decryptKeyDescription :- ParseJsonManifests.GetKeyDescription(keys, decryptKeyDescription, scenario); + Success(PositiveEncryptTestVector( + id := Some(name), + version := version, + manifestPath := op.manifestPath, + decryptManifestPath := op.decryptManifestOutput, + plaintextPath := plaintextLoc, + encryptDescriptions := encryptKeyDescription, + decryptDescriptions := decryptKeyDescription, + encryptionContext := Some(encryptionContext), + reproducedEncryptionContext := Some(reproducedEncryptionContext), + commitmentPolicy := mplTypes.FORBID_ENCRYPT_ALLOW_DECRYPT, + frameLength := frameLength, + algorithmSuiteId := Some(algorithmSuite), + description := description + )) + case _ => Failure("Unsupported ESDK TestVector type: " + typ) + + } + + function V1ToDecryptTestVector( + op: EsdkManifestOptions.ManifestOptions, + keys: KeyVectors.KeyVectorsClient, + name: string, + obj: seq<(string, JSON)>, + version: SupportedDecryptVersion + ) : Result + requires op.Decrypt? + { + var plaintextLoc :- GetString("plaintext", obj); + var ciphertextLoc :- GetString("ciphertext", obj); + :- Need( + && "file://" < ciphertextLoc + && "file://" < plaintextLoc, + "Invalid file prefix in test vector" + ); + var masterKeys :- GetArray("master-keys", obj); + var keyDescriptions :- GetKeyDescriptions(masterKeys, keys); + var keyDescription :- ToMultiKeyDescription(keyDescriptions); + + Success(PositiveV1OrV2DecryptTestVector( + id := name, + version := version, + manifestPath := op.manifestPath, + ciphertextPath := ciphertextLoc[|FILE_PREPEND|..], + plaintextPath := plaintextLoc[|FILE_PREPEND|..], + decryptDescriptions := keyDescription, + frameLength := None, + algorithmSuiteId := None, + description := name, + decryptionMethod := DecryptionMethod.OneShot + )) + } + + function V2ToDecryptTestVector( + op: EsdkManifestOptions.ManifestOptions, + keys: KeyVectors.KeyVectorsClient, + name: string, + obj: seq<(string, JSON)>, + version: SupportedDecryptVersion + ) : Result + requires op.Decrypt? + { + var resultLoc :- GetObject("result", obj); + var errorLoc? := GetObject("error", resultLoc); + // TODO build negative test vectors appropriately instead of not + // accepting any. + // Return early if we have a negative test vector + if errorLoc?.Success? then + Failure(negativeTestVectorFound) + else + + var outputLoc :- GetObject("output", resultLoc); + + var plaintextLoc :- GetString("plaintext", outputLoc); + var ciphertextLoc :- GetString("ciphertext", obj); + :- Need( + && "file://" < ciphertextLoc + && "file://" < plaintextLoc, + "Invalid file prefix in test vector" + ); + var masterKeys :- GetArray("master-keys", obj); + var keyDescriptions :- GetKeyDescriptions(masterKeys, keys); + var keyDescription :- ToMultiKeyDescription(keyDescriptions); + + Success(PositiveV1OrV2DecryptTestVector( + id := name, + version := version, + manifestPath := op.manifestPath, + ciphertextPath := ciphertextLoc[|FILE_PREPEND|..], + plaintextPath := plaintextLoc[|FILE_PREPEND|..], + decryptDescriptions := keyDescription, + frameLength := None, + algorithmSuiteId := None, + description := name, + decryptionMethod := DecryptionMethod.OneShot + )) + } + + function V3ToDecryptTestVector( + op: EsdkManifestOptions.ManifestOptions, + keys: KeyVectors.KeyVectorsClient, + name: string, + obj: seq<(string, JSON)>, + version: SupportedDecryptVersion + ) : Result + requires op.Decrypt? + { + var scenarioString := "decryption-scenario"; + var scenario :- GetObject(scenarioString, obj); + + var typeString := "type"; + var typ :- GetString(typeString, scenario); + + var ciphertextLoc :- GetString(ciphertextJsonKey, scenario); + var algorithmSuite :- ParseJsonManifests.GetAlgorithmSuiteInfo(scenario); + :- Need(algorithmSuite.id.ESDK?, "Unsupported algorithmSuiteId"); + var frameLength :- GetOptionalPositiveLong(frameSizeJsonKey, scenario); + + var reproducedEncryptionContextStrings :- SmallObjectToStringStringMap(reproducedEncryptionContextJsonKey, scenario); + var reproducedEncryptionContext :- utf8EncodeMap(reproducedEncryptionContextStrings); + var description :- GetString("description", scenario); + var result :- GetString("result", scenario); + :- Need( + && "file://" < ciphertextLoc + && "file://" < result, + "Invalid file prefix in test vector" + ); + + match typ + case "positive-esdk" => + var decryptKeyDescription :- ParseJsonManifests.GetKeyDescription(keys, decryptKeyDescription, scenario); + Success(PositiveDecryptTestVector( + id := name, + version := version, + manifestPath := op.manifestPath, + ciphertextPath := ciphertextLoc[|FILE_PREPEND|..], + plaintextPath := result[|FILE_PREPEND|..], + reproducedEncryptionContext := Some(reproducedEncryptionContext), + decryptDescriptions := decryptKeyDescription, + frameLength := frameLength, + algorithmSuiteId := Some(algorithmSuite), + description := description, + decryptionMethod := DecryptionMethod.OneShot + )) + case _ => Failure("Unsupported ESDK TestVector type: " + typ) + } + + function GetKeyDescriptions(keyArray: seq, keys: KeyVectors.KeyVectorsClient) + : Result, string> + { + if |keyArray| == 0 then + Success([]) + else + var currKey := keyArray[0]; + :- Need(currKey.Object?, "Not an object"); + var encryptStr :- API.Serialize(currKey).MapFailure((e: Errors.SerializationError) => e.ToString()); + var encryptDecryptKeyDescription :- keys + .GetKeyDescription(KeyVectorsTypes.GetKeyDescriptionInput( + json := encryptStr + )) + .MapFailure(ParseJsonManifests.ErrorToString); + var tail :- GetKeyDescriptions(keyArray[1..], keys); + Success([encryptDecryptKeyDescription.keyDescription] + tail) + } + + function ToMultiKeyDescription(keyDescriptions: seq) + : Result + { + if |keyDescriptions| == 1 then + Success(keyDescriptions[0]) + else + :- Need(|keyDescriptions| > 1, "Received invalid key description length"); + Success(KeyVectorsTypes.KeyDescription.Multi( + KeyVectorsTypes.MultiKeyring( + generator := Some(keyDescriptions[0]), + childKeyrings := keyDescriptions[1..] + ) + )) + } + + function GetPath(key: string, obj: seq<(string, JSON)>) + : Result + { + var path :- GetString(key, obj); + :- Need(FILE_PREPEND < path, "Received Invalid location for plaintext or ciphertext."); + Success(path[|FILE_PREPEND|..]) + } + + const FILE_PREPEND := "file://" + + predicate Result?(key: string) + { + || key == "output" + || key == "error" + } + + // function DecryptVectorToJson( + // keys: KeyVectors.KeyVectorsClient, + // vector: EsdkDecryptTestVector + // ) : Result<(string, Values.JSON), string> + // { + // var optionalElements + // := [] + // + if vector.decryptionMethod.OneShot? then + // [] + // else + // assert vector.decryptionMethod.StreamingUnsignedOnly?; + // [("decryption-method", Values.String("streaming-unsigned-only"))]; + + // var decryptDescriptions :- Seq.MapWithResult( + // d => + // var description :- keys.SerializeKeyDescription( + // KeyVectorsTypes.SerializeKeyDescriptionInput( + // keyDescription := d + // ) + // ).MapFailure(e => "OMFG"); + // API.Deserialize(description.json).MapFailure(( e: Errors.DeserializationError ) => e.ToString()) + // , + // vector.decryptDescriptions + // ); + // Success( + // match vector + // case PositiveDecryptTestVector(_,_,_,_,_,_,_,_,_) => + // (vector.name, Values.Object([ + // ("ciphertext", Values.String(FILE_PREPEND + vector.ciphertextPath)), + // ("master-keys", Values.Array(decryptDescriptions)), + // ("result", Values.Object([ + // ("output", Values.Object([ + // ("plaintext", Values.String(FILE_PREPEND + vector.plaintextPath)) + // ])) + // ])) + // ] + optionalElements + // )) + // case NegativeDecryptTestVector(_,_,_,_,_,_,_,_,_) => + // (vector.name, Values.Object([ + // ("ciphertext", Values.String(FILE_PREPEND + vector.ciphertextPath)), + // ("master-keys", Values.Array(decryptDescriptions)), + // ("result", Values.Object([ + // ("error", Values.Object([ + // ("error-description", Values.String(vector.errorDescription)) + // ])) + // ])) + // ] + optionalElements + // )) + // ) + // } +} diff --git a/TestVectors/dafny/TestVectors/src/VectorsComposition/AllEsdkV4NoReqEc.dfy b/TestVectors/dafny/TestVectors/src/VectorsComposition/AllEsdkV4NoReqEc.dfy new file mode 100644 index 000000000..32b45ef0c --- /dev/null +++ b/TestVectors/dafny/TestVectors/src/VectorsComposition/AllEsdkV4NoReqEc.dfy @@ -0,0 +1,103 @@ +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +include "../LibraryIndex.dfy" + +module {:options "/functionSyntax:4"} AllEsdkV4NoReqEc { + import Types = AwsCryptographyEncryptionSdkTypes + import mplTypes = AwsCryptographyMaterialProvidersTypes + import keyVectorKeyTypes = AwsCryptographyMaterialProvidersTestVectorKeysTypes + import EncryptionSdk + import MaterialProviders + import opened CompleteVectors + import opened KeyDescription + import opened Wrappers + import opened StandardLibrary.UInt + import HexStrings + import opened JSON.Values + import JSONHelpers + import EsdkManifestOptions + import EsdkTestVectors + + import AllHierarchy + import AllKms + import AllKmsMrkAware + import AllKmsMrkAwareDiscovery + import AllKmsRsa + import AllKmsEcdh + import AllRawAES + import AllRawRSA + import AllRawECDH + import AllDefaultCmm + import AllRequiredEncryptionContextCmm + import AllMulti + + import UUID + import UTF8 + import JSON.API + import SortedSets + import FileIO + + // This is a HACK! + // This is *ONLY* because this is wrapping the MPL + import AlgorithmSuites + + const frameSize: int64 := 512 + + const AllPositiveKeyringTestsNoReqCmmNoKmsRsa + := {} + + AllDefaultCmm.SuccessTestingRequiredEncryptionContextKeysReproducedEncryptionContext + + AllHierarchy.Tests + + AllKms.Tests + + AllKmsMrkAware.Tests + + AllKmsMrkAwareDiscovery.Tests + + AllRawAES.Tests + + AllRawRSA.Tests + + AllMulti.Tests + + AllRawECDH.Tests + + AllKmsEcdh.Tests + + const AwsKmsRsaTests := AllKmsRsa.Tests + + const esdkAlgorithmSuitesKmsRsa := set suite <- AllAlgorithmSuites.AllAlgorithmSuites + | !suite.signature.ECDSA? && suite.id.ESDK?:: suite + + // All these tests will use a defualt CMM + const AllPostiveKeyringTestsNoDBESuiteNoReqEC := + set + keyringConfig <- AllPositiveKeyringTestsNoReqCmmNoKmsRsa | !keyringConfig.NegativeEncryptKeyringVector?, + algorithmSuite <- AllAlgorithmSuites.ESDKAlgorithmSuites + :: + EsdkTestVectors.PositiveEncryptTestVector( + version := 4, + manifestPath := "", + decryptManifestPath := "", + plaintextPath := "", + encryptDescriptions := keyringConfig.encryptDescription, + decryptDescriptions := keyringConfig.decryptDescription, + frameLength := Some(frameSize), + algorithmSuiteId := Some(algorithmSuite), + description := keyringConfig.name + ) + + const AllPositiveKeyringTestsNoDBEKmsRsa := + set + keyringConfig <- AwsKmsRsaTests | !keyringConfig.NegativeEncryptKeyringVector?, + algorithmSuite <- esdkAlgorithmSuitesKmsRsa + :: + EsdkTestVectors.PositiveEncryptTestVector( + version := 4, + manifestPath := "", + decryptManifestPath := "", + plaintextPath := "", + encryptDescriptions := keyringConfig.encryptDescription, + decryptDescriptions := keyringConfig.decryptDescription, + frameLength := Some(frameSize), + algorithmSuiteId := Some(algorithmSuite), + description := keyringConfig.name + ) + + const Tests := + AllPostiveKeyringTestsNoDBESuiteNoReqEC + + AllPositiveKeyringTestsNoDBEKmsRsa +} \ No newline at end of file diff --git a/TestVectors/dafny/TestVectors/src/VectorsComposition/AllEsdkV4WithReqEc.dfy b/TestVectors/dafny/TestVectors/src/VectorsComposition/AllEsdkV4WithReqEc.dfy new file mode 100644 index 000000000..c74b1b460 --- /dev/null +++ b/TestVectors/dafny/TestVectors/src/VectorsComposition/AllEsdkV4WithReqEc.dfy @@ -0,0 +1,59 @@ +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +include "../LibraryIndex.dfy" + +module {:options "/functionSyntax:4" } AllEsdkV4WithReqEc { + import Types = AwsCryptographyEncryptionSdkTypes + import mplTypes = AwsCryptographyMaterialProvidersTypes + import EncryptionSdk + import MaterialProviders + import opened CompleteVectors + import opened KeyDescription + import opened Wrappers + import opened StandardLibrary.UInt + import HexStrings + import opened JSON.Values + import JSONHelpers + import EsdkManifestOptions + import EsdkTestVectors + import AllEsdkV4NoReqEc + + import UUID + import UTF8 + import JSON.API + import SortedSets + import FileIO + + // This is a HACK! + // This is *ONLY* because this is wrapping the MPL + import AlgorithmSuites + + const frameSize: int64 := 512 + + const AllPositiveReqEcTests := AllRequiredEncryptionContextCmm.SuccessTestingRequiredEncryptionContextKeysReproducedEncryptionContext + + // These are only required encryption context vectors with static aes keyrings + const AllPositiveReqEcEsdkTests := + set + config <- AllPositiveReqEcTests, + algorithmSuite <- + AllAlgorithmSuites.ESDKAlgorithmSuites + :: + EsdkTestVectors.PositiveEncryptTestVector( + version := 4, + manifestPath := "", + decryptManifestPath := "", + plaintextPath := "", + encryptDescriptions := config.encryptDescription, + decryptDescriptions := config.decryptDescription, + encryptionContext := Some(config.encryptionContext), + reproducedEncryptionContext := config.reproducedEncryptionContext, + frameLength := Some(frameSize), + algorithmSuiteId := Some(algorithmSuite), + description := config.name + ) + + const Tests := + AllPositiveReqEcEsdkTests +} \ No newline at end of file diff --git a/TestVectors/dafny/TestVectors/src/WriteEsdkJsonManifests.dfy b/TestVectors/dafny/TestVectors/src/WriteEsdkJsonManifests.dfy new file mode 100644 index 000000000..6392d5883 --- /dev/null +++ b/TestVectors/dafny/TestVectors/src/WriteEsdkJsonManifests.dfy @@ -0,0 +1,189 @@ +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +include "LibraryIndex.dfy" + +module {:options "-functionSyntax:4"} WriteEsdkJsonManifests { + import opened JSON.Values + import AllAlgorithmSuites + import AllAlgorithmSuites.Types + import mplTypes = AwsCryptographyMaterialProvidersTypes + import opened Wrappers + import UTF8 + import SortedSets + import Seq + import StandardLibrary + import StandardLibrary.String + import Base64 + + import TestVectors + import KeyDescription + import EsdkTestVectors + + function EncryptionContextKeysToJson(keys: Option) + : Result, string> + { + if keys.Some? then + var tmp :- Seq.MapWithResult( + bytes => + var key :- UTF8.Decode(bytes); + Success(String(key)), + keys.value); + Success([("requiredEncryptionContextKeys", Array(tmp))]) + else + Success([]) + } + + function EncryptionContextToJson(key: string, m: mplTypes.EncryptionContext) + : Result, string> + { + var keys := SortedSets.ComputeSetToSequence(m.Keys); + var pairsBytes + :- Seq.MapWithResult( + k requires k in m.Keys => + var key :- UTF8.Decode(k); + var value :- UTF8.Decode(m[k]); + Success((key, String(value))), + keys); + Success([(key, Object(pairsBytes))]) + } + + function printJson(j: JSON) : (){()} by method {print j, "\n", "\n"; return ();} + + function {:vcs_split_on_every_assert} EncryptTestVectorToJson( + test: EsdkTestVectors.EsdkEncryptTestVector + ): Result + { + :- Need( + && test.algorithmSuiteId.Some? + && test.frameLength.Some?, + "test is missing algorithmSuite ID, or frameLength" + ); + var id := AllAlgorithmSuites.ToHex(test.algorithmSuiteId.value); + + var encryptionContext + :- if test.encryptionContext.Some? then + EncryptionContextToJson("encryption-context", test.encryptionContext.value) + else + EncryptionContextToJson("encryption-context", map[]); + + :- Need( + |encryptionContext| == 1, + "Error parsing encryption context" + ); + + var reproducedEncryptionContext + :- if test.reproducedEncryptionContext.Some? then + EncryptionContextToJson("reproduced-encryption-context", test.reproducedEncryptionContext.value) + else + EncryptionContextToJson("reproduced-encryption-context", map[]); + + var optionalValues := encryptionContext + reproducedEncryptionContext; + + match test + case PositiveEncryptTestVector(_,_,_,_,_,_,_,_,_,_,_,_,_,_) => + var encrypt :- KeyDescription.ToJson(test.encryptDescriptions, 3); + var decrypt :- KeyDescription.ToJson(test.decryptDescriptions, 3); + var scenario := Object([ + ("type", String("positive-esdk")), + ("plaintext", String("small")), + ("description", String(test.description)), + ("algorithmSuiteId", String(id)), + ("frame-size", Number(Int(test.frameLength.value as int))), + ("encryptKeyDescription", encrypt), + ("decryptKeyDescription", decrypt) + ] + optionalValues); + Success(Object([ + ("encryption-scenario", scenario) + ])) + case _ => + Failure("Only Positive Tests supported :(") + + // Left here for future reference on how you would start to add negative test vectors + // match test + // case PositiveEncryptKeyringVector(_,_,_,_,_,_,_,_,_,_) => + // var encrypt :- KeyDescription.ToJson(test.encryptDescription, 3); + // var decrypt :- KeyDescription.ToJson(test.decryptDescription, 3); + // Success(Object([ + // ("type", String("positive-keyring")), + // ("description", String(description)), + // ("algorithmSuiteId", String(id)), + // ("encryptKeyDescription", encrypt), + // ("decryptKeyDescription", decrypt) + // ] + optionalValues)) + // case PositiveEncryptNegativeDecryptKeyringVector(_,_,_,_,_,_,_,_,_,_,_) => + // var encrypt :- KeyDescription.ToJson(test.encryptDescription, 3); + // var decrypt :- KeyDescription.ToJson(test.decryptDescription, 3); + // Success(Object([ + // ("type", String("negative-decrypt-keyring")), + // ("description", String(description)), + // ("decryptErrorDescription", String(test.decryptErrorDescription)), + // ("algorithmSuiteId", String(id)), + // ("encryptKeyDescription", encrypt), + // ("decryptKeyDescription", decrypt) + // ] + optionalValues)) + // case NegativeEncryptKeyringVector(_,_,_,_,_,_,_,_,_) => + // var keyDescription :- KeyDescription.ToJson(test.keyDescription, 3); + // Success(Object([ + // ("type", String("negative-encrypt-keyring")), + // ("description", String(description)), + // ("errorDescription", String(test.errorDescription)), + // ("algorithmSuiteId", String(id)), + // ("keyDescription", keyDescription) + // ] + optionalValues)) + } + + function OptionalBytes(key: string, secret: Option) + : seq<(string, JSON)> + { + if secret.Some? then + var base64 := Base64.Encode(secret.value); + [(key, String(base64))] + else + [] + } + + function {:vcs_split_on_every_assert} DecryptTestVectorToJson( + test: EsdkTestVectors.EsdkDecryptTestVector + ): Result + { + :- Need( + && test.algorithmSuiteId.Some? + && test.frameLength.Some?, + "test is missing algorithmSuite ID, or frameLength" + ); + var id := AllAlgorithmSuites.ToHex(test.algorithmSuiteId.value); + var description := test.description + " " + id; + + var reproducedEncryptionContext + :- if test.reproducedEncryptionContext.Some? then + EncryptionContextToJson("reproduced-encryption-context", test.reproducedEncryptionContext.value) + else + EncryptionContextToJson("reproduced-encryption-context", map[]); + + :- Need( + |reproducedEncryptionContext| == 1, + "Error parsing encryption context" + ); + + var optionalValues := reproducedEncryptionContext; + + match test + case PositiveDecryptTestVector(_,_,_,_,_,_,_,_,_,_,_,_) => + var decrypt :- KeyDescription.ToJson(test.decryptDescriptions, 3); + var scenario := Object([ + ("type", String("positive-esdk")), + ("ciphertext", String("file://ciphertexts/" + test.id)), + ("result", String("file://" + test.plaintextPath)), + ("algorithmSuiteId", String(id)), + ("frame-size", Number(Int(test.frameLength.value as int))), + ("description", String(test.description)), + ("decryptKeyDescription", decrypt) + ] + optionalValues); + Success(Object([ + ("decryption-scenario", scenario) + ])) + case _ => + Failure("Only Positive Tests supported :(") + } +} diff --git a/TestVectors/dafny/TestVectors/src/WriteVectors.dfy b/TestVectors/dafny/TestVectors/src/WriteVectors.dfy new file mode 100644 index 000000000..b56b87506 --- /dev/null +++ b/TestVectors/dafny/TestVectors/src/WriteVectors.dfy @@ -0,0 +1,274 @@ +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +include "LibraryIndex.dfy" +include "VectorsComposition/AllEsdkV4NoReqEc.dfy" +include "VectorsComposition/AllEsdkV4WithReqEc.dfy" +include "WriteEsdkJsonManifests.dfy" + +module {:options "-functionSyntax:4"} WriteVectors { + import Types = AwsCryptographyEncryptionSdkTypes + import mplTypes = AwsCryptographyMaterialProvidersTypes + import EncryptionSdk + import MaterialProviders + import opened CompleteVectors + import opened Wrappers + import opened StandardLibrary.UInt + import HexStrings + import opened JSON.Values + import JSONHelpers + import EsdkManifestOptions + import EsdkTestVectors + import AllEsdkV4NoReqEc + import AllEsdkV4WithReqEc + import WriteEsdkJsonManifests + + import UUID + import UTF8 + import JSON.API + import SortedSets + import FileIO + import opened Relations + import opened Seq.MergeSort + + // This is a HACK! + // This is *ONLY* because this is wrapping the MPL + import AlgorithmSuites + + function GetCommitmentPolicyString(algorithmSuite: mplTypes.AlgorithmSuiteInfo) + : (commitmentPolicy: string) + { + match algorithmSuite.id + case ESDK(_) => + if algorithmSuite.commitment.None? then + "FORBID_ENCRYPT_ALLOW_DECRYPT" + else + "REQUIRE_ENCRYPT_REQUIRE_DECRYPT" + case DBE(_) => "NOT SUPPORTED FOR UNSTRUCTURED ENCRYPTION" + } + + function GetCommitmentPolicyType(commitmentPolicy: string) + : (commitmentPolicyType: mplTypes.CommitmentPolicy) + { + if commitmentPolicy == "FORBID_ENCRYPT_ALLOW_DECRYPT" then + mplTypes.CommitmentPolicy.ESDK(mplTypes.ESDKCommitmentPolicy.FORBID_ENCRYPT_ALLOW_DECRYPT) + else + mplTypes.CommitmentPolicy.ESDK(mplTypes.ESDKCommitmentPolicy.REQUIRE_ENCRYPT_REQUIRE_DECRYPT) + } + + + method {:vcs_split_on_every_assert} WriteTestVectors(op: EsdkManifestOptions.ManifestOptions) + returns (output: Result<(), string>) + requires op.EncryptManifest? + { + var version := op.version; + var allTests :- getVersionTests(version); + + var tests := SortedSets.ComputeSetToSequence(allTests); + + DescriptionLessThanIsTotal(); + var sortedTests := MergeSortBy(tests, DescriptionLessThan); + + var testsJSON: seq<(string, JSON)> := []; + + for i := 0 to |sortedTests| + { + :- Need( + && sortedTests[i].algorithmSuiteId.Some?, + "No algorithm suite defined in test" + ); + + var id := AllAlgorithmSuites.ToHex(sortedTests[i].algorithmSuiteId.value); + var uuid :- expect UUID.GenerateUUID(); + var test :- WriteEsdkJsonManifests.EncryptTestVectorToJson(sortedTests[i]); + testsJSON := testsJSON + [(uuid, test)]; + } + + var manifestJson := Object([ + ("type", String("awses-encrypt")), + ("version", Number(Int(5)))]); + + var plaintexts := Object([("small", Number(Int(10240)))]); + + var esdkEncryptManifests := Object( + [ + ("manifest", manifestJson), + ("keys", String("file://keys.json")), + ("plaintexts", plaintexts), + ("tests", Object(testsJSON)) + ] + ); + + var esdkEncryptManifestBytes :- expect API.Serialize(esdkEncryptManifests); + var esdkEncryptManifestBv := JSONHelpers.BytesBv(esdkEncryptManifestBytes); + + var _ :- expect FileIO.WriteBytesToFile( + op.encryptManifestOutput + "encrypt-manifest.json", + esdkEncryptManifestBv + ); + + output := Success(()); + } + + method {:vcs_split_on_every_assert} WriteDecryptManifest( + op: EsdkManifestOptions.ManifestOptions, + keys: KeyVectors.KeyVectorsClient, + tests: seq + ) + returns (output: Result<(), string>) + requires op.Encrypt? + requires keys.ValidState() + ensures keys.ValidState() + { + var testsJSON: seq<(string, JSON)> := []; + + for i := 0 to |tests| + { + var name := tests[i].id; + var test :- WriteEsdkJsonManifests.DecryptTestVectorToJson(tests[i]); + testsJSON := testsJSON + [(name, test)]; + } + + var manifestJson := Object([ + ("type", String("awses-decrypt")), + ("version", Number(Int(3)))]); + + var esdkDecryptManifest := Object( + [ + ("manifest", manifestJson), + // TODO create an extern that gets that runtimes namespace and latest version + ("client", String("aws-encryption-sdk-dafny")), + ("keys", String("file://keys.json")), + ("tests", Object(testsJSON)) + ] + ); + + var esdkDecryptManifestBytes :- expect API.Serialize(esdkDecryptManifest); + var esdkDecryptManifestBv := JSONHelpers.BytesBv(esdkDecryptManifestBytes); + + var _ :- expect FileIO.WriteBytesToFile( + op.decryptManifestOutput + "decrypt-manifest.json", + esdkDecryptManifestBv + ); + + output := Success(()); + } + + function getVersionTests(version: nat): (ret: Result, string>) + { + match version + case 5 => Success(AllEsdkV4NoReqEc.Tests + AllEsdkV4WithReqEc.Tests) + case _ => Failure("Only version 4 of generate manifest is supported\n") + } + + predicate DescriptionLessThan(x: EsdkTestVectors.EsdkEncryptTestVector, y: EsdkTestVectors.EsdkEncryptTestVector) { + Below(x.description, y.description) + } + + // These lemmas are needed to help speed up and reduce verification resources of the DescriptionLessThan predicate that + // is used in the MergeSortBy() above. + lemma DescriptionLessThanIsTotal() + ensures TotalOrdering(DescriptionLessThan) + { + BelowIsTotal(); + assert TotalOrdering(Below); + assert Reflexive(DescriptionLessThan) by { + forall x { + DescriptionLessThanIsReflexive(x); + } + } + assert AntiSymmetric(DescriptionLessThan) by { + forall x, y | DescriptionLessThan(x, y) && DescriptionLessThan(y, x) { + DescriptionLessThanIsAntiSymmetric(x, y); + } + } + assert Relations.Transitive(DescriptionLessThan) by { + forall x, y, z | DescriptionLessThan(x, y) && DescriptionLessThan(y, z) { + DescriptionLessThanIsTransitive(x, y, z); + } + } + assert StronglyConnected(DescriptionLessThan) by { + forall x, y { + DescriptionLessThanIsStronglyConnected(x, y); + } + } + } + + lemma DescriptionLessThanIsReflexive(x: EsdkTestVectors.EsdkEncryptTestVector) + ensures DescriptionLessThan(x, x) + { + BelowIsReflexive(x.description); + } + + // not actually required for sorting. Standard library being updated. + lemma {:axiom} DescriptionLessThanIsAntiSymmetric(x: EsdkTestVectors.EsdkEncryptTestVector, y: EsdkTestVectors.EsdkEncryptTestVector) + requires DescriptionLessThan(x, y) && DescriptionLessThan(y, x) + ensures x == y + + lemma DescriptionLessThanIsTransitive(x: EsdkTestVectors.EsdkEncryptTestVector, y: EsdkTestVectors.EsdkEncryptTestVector, z: EsdkTestVectors.EsdkEncryptTestVector) + requires DescriptionLessThan(x, y) && DescriptionLessThan(y, z) + ensures DescriptionLessThan(x, z) + { + BelowIsTransitive(x.description, y.description, z.description); + } + + lemma DescriptionLessThanIsStronglyConnected(x: EsdkTestVectors.EsdkEncryptTestVector, y: EsdkTestVectors.EsdkEncryptTestVector) + ensures DescriptionLessThan(x, y) || DescriptionLessThan(y, x) + { + BelowIsStronglyConnected(x.description, y.description); + } + + predicate Below(x: string, y: string) { + |x| != 0 ==> + && |y| != 0 + && x[0] <= y[0] + && (x[0] == y[0] ==> Below(x[1..], y[1..])) + } + + lemma BelowIsTotal() + ensures TotalOrdering(Below) + { + assert Reflexive(Below) by { + forall x { + BelowIsReflexive(x); + } + } + assert AntiSymmetric(Below) by { + forall x, y | Below(x, y) && Below(y, x) { + BelowIsAntiSymmetric(x, y); + } + } + assert Relations.Transitive(Below) by { + forall x, y, z | Below(x, y) && Below(y, z) { + BelowIsTransitive(x, y, z); + } + } + assert StronglyConnected(Below) by { + forall x, y { + BelowIsStronglyConnected(x, y); + } + } + } + + lemma BelowIsReflexive(x: seq) + ensures Below(x, x) + { + } + + lemma BelowIsAntiSymmetric(x: seq, y: seq) + requires Below(x, y) && Below(y, x) + ensures x == y + { + } + + lemma BelowIsTransitive(x: seq, y: seq, z: seq) + requires Below(x, y) && Below(y, z) + ensures Below(x, z) + { + } + + lemma BelowIsStronglyConnected(x: seq, y: seq) + ensures Below(x, y) || Below(y, x) + { + } +} \ No newline at end of file diff --git a/TestVectors/dafny/TestVectors/test/RunMain.dfy b/TestVectors/dafny/TestVectors/test/RunMain.dfy new file mode 100644 index 000000000..2e10ad8a1 --- /dev/null +++ b/TestVectors/dafny/TestVectors/test/RunMain.dfy @@ -0,0 +1,71 @@ +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +// Test vector projects just run as a CLI +// So all the tests are in the Main. +// By creating a single file here, +// it is easy to kick off a test run. +include "../src/Index.dfy" + +module {:extern} TestWrappedESDKMain { + import WrappedESDKMain + import EsdkTestManifests + import EsdkManifestOptions + import WriteVectors + import opened Wrappers + + + // Test execution directory is different for different runtimes. + // Runtime should define an extern to return the expected test execution directory. + method {:extern} GetTestVectorExecutionDirectory() returns (res: string) + + method {:test} RunManifestTests() { + TestGenerateEncryptManifest(); + TestEncryptManifest(); + TestDecryptManifest(); + } + + method TestGenerateEncryptManifest() { + var directory := GetTestVectorExecutionDirectory(); + var result := WriteVectors.WriteTestVectors( + EsdkManifestOptions.EncryptManifest( + encryptManifestOutput := directory + "dafny/TestVectors/test/", + version := 5 + )); + if result.Failure? { + print result.error; + } + expect result.Success?; + } + + method TestEncryptManifest() { + var directory := GetTestVectorExecutionDirectory(); + var result := EsdkTestManifests.StartEncryptVectors( + EsdkManifestOptions.Encrypt( + manifestPath := directory + "dafny/TestVectors/test/", + manifest := "encrypt-manifest.json", + decryptManifestOutput := directory + "dafny/TestVectors/test/" + ) + ); + if result.Failure? { + print result.error; + } + expect result.Success?; + } + + method TestDecryptManifest() + { + var directory := GetTestVectorExecutionDirectory(); + var result := EsdkTestManifests.StartDecryptVectors( + EsdkManifestOptions.Decrypt( + manifestPath := directory + "dafny/TestVectors/test/", + manifestFileName := "decrypt-manifest.json" + ) + ); + + if result.Failure? { + print result.error; + } + expect result.Success?; + } +} diff --git a/TestVectors/dafny/TestVectors/test/encrypt-manifest.json b/TestVectors/dafny/TestVectors/test/encrypt-manifest.json new file mode 100644 index 000000000..e348436a7 --- /dev/null +++ b/TestVectors/dafny/TestVectors/test/encrypt-manifest.json @@ -0,0 +1,15123 @@ +{ + "manifest": { + "type": "awses-encrypt", + "version": 5 + }, + "keys": "file://keys.json", + "plaintexts": { + "small": 10240 + }, + "tests": { + "0b12c4b4-8a52-41b2-8e03-0a14ebf28e6f": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Discovery us-west-2-256-ecc discovery", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-256-ecc", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "discovery", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "56249db1-891c-4298-8dd1-b4a3b7dfb58f": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Discovery us-west-2-256-ecc discovery", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-256-ecc", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "discovery", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "cdef6244-24ce-4ed0-a653-61982f47f003": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Discovery us-west-2-256-ecc discovery", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-256-ecc", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "discovery", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "10a0d13d-6906-42e3-990a-af5e290af6a0": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Discovery us-west-2-256-ecc discovery", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-256-ecc", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "discovery", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "84ca1541-7c5f-4ab2-93ae-7299204178c6": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Discovery us-west-2-256-ecc discovery", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-256-ecc", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "discovery", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "42c5135c-5076-41b9-b53c-2b807e51d6e2": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Discovery us-west-2-256-ecc discovery", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-256-ecc", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "discovery", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "f85f9097-b738-41c7-a679-b9394596be30": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Discovery us-west-2-256-ecc discovery", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-256-ecc", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "discovery", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "e5e20376-c712-44c2-ad7a-910dd8e2ce79": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Discovery us-west-2-256-ecc discovery", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-256-ecc", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "discovery", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "32228739-75f6-4b0d-8f6d-873f196b5a2d": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Discovery us-west-2-256-ecc discovery", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-256-ecc", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "discovery", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "2603b2e3-5103-459a-b493-dfaf535cff2b": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Discovery us-west-2-256-ecc discovery", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-256-ecc", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "discovery", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "dd4f2166-0b21-4b11-bd74-c8c2226175c6": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Discovery us-west-2-256-ecc discovery", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-256-ecc", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "discovery", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "92e13b23-201e-4cf2-8921-25d691cd4cfa": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Discovery us-west-2-384-ecc discovery", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-384-ecc", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "discovery", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "e3e6cdb2-eda9-401f-ab9b-1f1860cbd105": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Discovery us-west-2-384-ecc discovery", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-384-ecc", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "discovery", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "46abf613-dbdb-4b1c-a31c-2854b0111829": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Discovery us-west-2-384-ecc discovery", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-384-ecc", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "discovery", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "80bd0689-9fe9-498d-854b-a751e6ae1360": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Discovery us-west-2-384-ecc discovery", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-384-ecc", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "discovery", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "cc696720-2524-42ca-93ab-135d7cc30361": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Discovery us-west-2-384-ecc discovery", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-384-ecc", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "discovery", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "abfd92c3-4613-442b-8da6-ccf077d99b98": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Discovery us-west-2-384-ecc discovery", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-384-ecc", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "discovery", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "9e0eb563-c6d0-47aa-abc5-9cfb821d8cbb": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Discovery us-west-2-384-ecc discovery", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-384-ecc", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "discovery", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "85337273-d4aa-4ca0-badf-d1f2e974598b": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Discovery us-west-2-384-ecc discovery", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-384-ecc", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "discovery", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "a9e512c6-f682-4df9-a462-adbf33b74b7e": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Discovery us-west-2-384-ecc discovery", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-384-ecc", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "discovery", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "b5c83452-8ba0-442f-b180-8cfbf9ae16b9": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Discovery us-west-2-384-ecc discovery", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-384-ecc", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "discovery", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "829ed985-1d04-4592-805d-9f2a7decce0e": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Discovery us-west-2-384-ecc discovery", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-384-ecc", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "discovery", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "59148acf-8f5c-4167-b309-201292a368ea": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Discovery us-west-2-521-ecc discovery", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-521-ecc", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "discovery", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "cb7b7fcc-3f6b-43b0-a476-3135158e06aa": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Discovery us-west-2-521-ecc discovery", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-521-ecc", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "discovery", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "124a4092-8057-4175-b699-49a5bda5f447": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Discovery us-west-2-521-ecc discovery", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-521-ecc", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "discovery", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "5f6f94a1-c652-4e78-996f-d5d7ba162514": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Discovery us-west-2-521-ecc discovery", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-521-ecc", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "discovery", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "81ed2ccf-8510-4a76-ae67-e58d029d2842": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Discovery us-west-2-521-ecc discovery", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-521-ecc", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "discovery", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "ef957b53-006a-469f-9bd2-16185203ff85": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Discovery us-west-2-521-ecc discovery", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-521-ecc", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "discovery", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "a7207ab4-cc0f-46d4-bf22-d3747168904d": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Discovery us-west-2-521-ecc discovery", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-521-ecc", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "discovery", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "7d42bf39-30eb-414c-9e54-6c3f48dd684b": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Discovery us-west-2-521-ecc discovery", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-521-ecc", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "discovery", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "7bae4110-c097-4aab-b4b2-8c53721957b2": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Discovery us-west-2-521-ecc discovery", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-521-ecc", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "discovery", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "e06e5622-05c8-42cd-a24a-bfcfd0de4d14": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Discovery us-west-2-521-ecc discovery", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-521-ecc", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "discovery", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "eb5d9d6b-3014-4f85-9e8c-3d7411e87bca": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Discovery us-west-2-521-ecc discovery", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-521-ecc", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "discovery", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "cdcce4a7-224d-498c-a1e8-46737c3e73a3": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Static us-west-2-256-ecc us-west-2-256-ecc", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-256-ecc", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-256-ecc", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "57054a80-59e7-4709-9818-b5d70c1af226": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Static us-west-2-256-ecc us-west-2-256-ecc", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-256-ecc", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-256-ecc", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "87b92f96-9ef9-4ae9-b2bd-72d91dc0b2b6": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Static us-west-2-256-ecc us-west-2-256-ecc", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-256-ecc", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-256-ecc", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "cce651f2-6ddb-4a0e-81f1-485769fbf156": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Static us-west-2-256-ecc us-west-2-256-ecc", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-256-ecc", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-256-ecc", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "9e4fba8e-5bf2-456a-83c0-fa9df5171376": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Static us-west-2-256-ecc us-west-2-256-ecc", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-256-ecc", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-256-ecc", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "9fc0746e-8e8b-40e3-9b54-e44fcf25d816": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Static us-west-2-256-ecc us-west-2-256-ecc", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-256-ecc", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-256-ecc", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "778f358b-68b3-474e-9990-d1d997860a0a": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Static us-west-2-256-ecc us-west-2-256-ecc", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-256-ecc", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-256-ecc", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "d9a267b1-b5e9-494a-81ee-ba67555c12f7": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Static us-west-2-256-ecc us-west-2-256-ecc", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-256-ecc", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-256-ecc", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "a5278d67-04bf-4a0d-a39a-025f1134a7da": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Static us-west-2-256-ecc us-west-2-256-ecc", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-256-ecc", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-256-ecc", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "a0ace7a6-2764-4f5a-bc03-5913c4bd6faa": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Static us-west-2-256-ecc us-west-2-256-ecc", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-256-ecc", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-256-ecc", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "93c8c784-b065-4949-8d17-72f9567fa680": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Static us-west-2-256-ecc us-west-2-256-ecc", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-256-ecc", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-256-ecc", + "recipient": "us-west-2-256-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-256-ecc", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "c10d986c-9be5-4a7e-a3a4-7e3f029849be": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Static us-west-2-384-ecc us-west-2-384-ecc", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-384-ecc", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-384-ecc", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "839d03b2-40f6-4d5e-9841-84c914b8bb14": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Static us-west-2-384-ecc us-west-2-384-ecc", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-384-ecc", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-384-ecc", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "26737a7d-37ef-49ed-bb34-f3489d763260": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Static us-west-2-384-ecc us-west-2-384-ecc", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-384-ecc", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-384-ecc", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "fadf3602-cf1b-4adb-90c8-3d70353308d5": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Static us-west-2-384-ecc us-west-2-384-ecc", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-384-ecc", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-384-ecc", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "7fc08d1d-f2b1-40d7-8d17-64982279e138": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Static us-west-2-384-ecc us-west-2-384-ecc", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-384-ecc", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-384-ecc", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "7086a8ba-1911-43d1-b5b9-4ee3c3bb7a84": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Static us-west-2-384-ecc us-west-2-384-ecc", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-384-ecc", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-384-ecc", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "24a92b1c-7e9a-47f5-9024-dc1d6500146d": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Static us-west-2-384-ecc us-west-2-384-ecc", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-384-ecc", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-384-ecc", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "5b65dfd5-5b2e-4817-ae26-67462149bf43": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Static us-west-2-384-ecc us-west-2-384-ecc", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-384-ecc", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-384-ecc", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "0b90f749-7228-4b86-96f6-1b8cda6501b6": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Static us-west-2-384-ecc us-west-2-384-ecc", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-384-ecc", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-384-ecc", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "25ee8076-4919-43a1-ae0e-b5ddafb4db11": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Static us-west-2-384-ecc us-west-2-384-ecc", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-384-ecc", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-384-ecc", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "f7fff9d0-b5fc-4f8d-acf6-53759ad44fce": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Static us-west-2-384-ecc us-west-2-384-ecc", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-384-ecc", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-384-ecc", + "recipient": "us-west-2-384-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-384-ecc", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "9c30ec29-bf32-40d3-be72-083955ed4c52": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Static us-west-2-521-ecc us-west-2-521-ecc", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-521-ecc", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-521-ecc", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "db972666-dbfa-4955-8d04-c3507d9d0d29": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Static us-west-2-521-ecc us-west-2-521-ecc", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-521-ecc", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-521-ecc", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "2fe04760-6ba4-44f6-ad7e-23b57c0be8a0": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Static us-west-2-521-ecc us-west-2-521-ecc", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-521-ecc", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-521-ecc", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "cbed2182-e5ac-48a2-81f7-42cfacad1d08": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Static us-west-2-521-ecc us-west-2-521-ecc", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-521-ecc", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-521-ecc", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "9956825d-47db-4c3d-822e-e6babfedb81c": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Static us-west-2-521-ecc us-west-2-521-ecc", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-521-ecc", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-521-ecc", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "09c344af-760d-4604-9aa6-1588c94f88c6": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Static us-west-2-521-ecc us-west-2-521-ecc", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-521-ecc", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-521-ecc", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "e6852ff3-43de-48c8-81d0-98700b965cf7": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Static us-west-2-521-ecc us-west-2-521-ecc", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-521-ecc", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-521-ecc", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "a9178680-fc45-43f3-a36c-8965dc6e8852": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Static us-west-2-521-ecc us-west-2-521-ecc", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-521-ecc", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-521-ecc", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "1653d292-7410-43a7-a23a-d1f19e47a422": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Static us-west-2-521-ecc us-west-2-521-ecc", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-521-ecc", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-521-ecc", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "bc6c57e2-724f-4b2e-8c22-9ab6b9abee8c": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Static us-west-2-521-ecc us-west-2-521-ecc", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-521-ecc", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-521-ecc", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "b8d6094f-6eb9-4802-9bd0-fdfad442148c": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "AWS KMS ECDH Static us-west-2-521-ecc us-west-2-521-ecc", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-521-ecc", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "aws-kms-ecdh", + "sender": "us-west-2-521-ecc", + "recipient": "us-west-2-521-ecc", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "ecc-curve": "us-west-2-521-ecc", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "a7abf777-ddd0-470d-9300-f0578df6b30d": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-east-1-mrk->Filter aws 658956600833", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2", + "aws-kms-discovery-filter": { + "partition": "aws", + "account-ids": [ + "658956600833" + ] + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "6b946b56-7aae-4f00-9087-039db1334771": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-east-1-mrk->Filter aws 658956600833", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2", + "aws-kms-discovery-filter": { + "partition": "aws", + "account-ids": [ + "658956600833" + ] + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "6949100d-9a68-492b-8ff8-4bdfb3de1b5f": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-east-1-mrk->Filter aws 658956600833", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2", + "aws-kms-discovery-filter": { + "partition": "aws", + "account-ids": [ + "658956600833" + ] + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "d0143f0f-2102-46f9-b797-9bf852a2a76b": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-east-1-mrk->Filter aws 658956600833", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2", + "aws-kms-discovery-filter": { + "partition": "aws", + "account-ids": [ + "658956600833" + ] + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "5b79374d-cba2-4462-8818-92c41c7ebb1b": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-east-1-mrk->Filter aws 658956600833", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2", + "aws-kms-discovery-filter": { + "partition": "aws", + "account-ids": [ + "658956600833" + ] + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "25838f84-604a-4ebc-92ee-40d52e936305": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-east-1-mrk->Filter aws 658956600833", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2", + "aws-kms-discovery-filter": { + "partition": "aws", + "account-ids": [ + "658956600833" + ] + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "d3e3d9f0-7ef7-4a3b-8e4a-f6ac9e2eda79": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-east-1-mrk->Filter aws 658956600833", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2", + "aws-kms-discovery-filter": { + "partition": "aws", + "account-ids": [ + "658956600833" + ] + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "0a7b13bf-88af-4428-9a9f-16b96213de95": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-east-1-mrk->Filter aws 658956600833", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2", + "aws-kms-discovery-filter": { + "partition": "aws", + "account-ids": [ + "658956600833" + ] + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "a33c94b0-95b4-48be-89c0-3fc3c2efbad4": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-east-1-mrk->Filter aws 658956600833", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2", + "aws-kms-discovery-filter": { + "partition": "aws", + "account-ids": [ + "658956600833" + ] + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "e2ad5eb0-7542-4f45-bd9e-027128d273b5": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-east-1-mrk->Filter aws 658956600833", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2", + "aws-kms-discovery-filter": { + "partition": "aws", + "account-ids": [ + "658956600833" + ] + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "2321d85c-fde6-4d74-a991-ce0bf4312e9f": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-east-1-mrk->Filter aws 658956600833", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2", + "aws-kms-discovery-filter": { + "partition": "aws", + "account-ids": [ + "658956600833" + ] + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "c46058a3-88e8-421e-a167-fe0150b872b8": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-east-1-mrk->No Filter", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "7aeb73fc-886f-4726-bdd7-1152fff29178": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-east-1-mrk->No Filter", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "311ed3ba-49cc-4500-9ba4-bd46f312efeb": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-east-1-mrk->No Filter", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "7044427c-e351-4678-bb78-4ba9e6846133": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-east-1-mrk->No Filter", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "337412fb-a402-4c39-8d8f-b0c9e6bf82c6": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-east-1-mrk->No Filter", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "7388d1da-6ee4-4d81-ae9f-fa97f0f7438e": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-east-1-mrk->No Filter", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "8f6756bc-297d-45d4-8bc3-e06e74668824": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-east-1-mrk->No Filter", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "653dcd46-d965-4a68-b25e-4cbf35e0027b": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-east-1-mrk->No Filter", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "96156ae5-d8d1-489c-9eb5-104137978b5b": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-east-1-mrk->No Filter", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "7b6ddffe-a9b2-4058-a8bc-12319a9ba4be": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-east-1-mrk->No Filter", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "84a4a9d8-fbd7-4615-bb1a-54e38b12e7fa": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-east-1-mrk->No Filter", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "73ea9eec-080d-4d98-bd71-a071dd8a0ebb": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-west-2-mrk->Filter aws 658956600833", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2", + "aws-kms-discovery-filter": { + "partition": "aws", + "account-ids": [ + "658956600833" + ] + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "3f6e270b-6401-4e81-813d-fba735b1f413": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-west-2-mrk->Filter aws 658956600833", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2", + "aws-kms-discovery-filter": { + "partition": "aws", + "account-ids": [ + "658956600833" + ] + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "8985b3a1-e8d3-4ad9-837c-4395b8e3957a": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-west-2-mrk->Filter aws 658956600833", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2", + "aws-kms-discovery-filter": { + "partition": "aws", + "account-ids": [ + "658956600833" + ] + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "bac82a48-72ad-43a8-aeef-951c26a4fb05": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-west-2-mrk->Filter aws 658956600833", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2", + "aws-kms-discovery-filter": { + "partition": "aws", + "account-ids": [ + "658956600833" + ] + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "d2f91c9b-9c67-4fb5-ab46-8426cb0ba93c": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-west-2-mrk->Filter aws 658956600833", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2", + "aws-kms-discovery-filter": { + "partition": "aws", + "account-ids": [ + "658956600833" + ] + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "7f20c947-bba9-4090-a47a-fc68e229f9db": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-west-2-mrk->Filter aws 658956600833", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2", + "aws-kms-discovery-filter": { + "partition": "aws", + "account-ids": [ + "658956600833" + ] + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "610a4f01-bceb-43a6-80a1-19ea6f09b9aa": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-west-2-mrk->Filter aws 658956600833", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2", + "aws-kms-discovery-filter": { + "partition": "aws", + "account-ids": [ + "658956600833" + ] + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "36bf0502-6c12-45d2-a70b-47c4442b7fed": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-west-2-mrk->Filter aws 658956600833", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2", + "aws-kms-discovery-filter": { + "partition": "aws", + "account-ids": [ + "658956600833" + ] + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "4a61a73e-c227-43fc-a69d-d813720c2150": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-west-2-mrk->Filter aws 658956600833", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2", + "aws-kms-discovery-filter": { + "partition": "aws", + "account-ids": [ + "658956600833" + ] + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "3c673405-4b2b-4d04-b0a7-357587cbb721": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-west-2-mrk->Filter aws 658956600833", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2", + "aws-kms-discovery-filter": { + "partition": "aws", + "account-ids": [ + "658956600833" + ] + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "3b10b0f6-7a9d-4dc2-90ae-834db842ece2": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-west-2-mrk->Filter aws 658956600833", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2", + "aws-kms-discovery-filter": { + "partition": "aws", + "account-ids": [ + "658956600833" + ] + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "ca8156be-48e1-4523-be95-61c716c3fd30": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-west-2-mrk->No Filter", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "eb7154c9-dab7-4099-a0f2-b638776f761f": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-west-2-mrk->No Filter", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "e0c60166-478b-4e19-83ba-b371ab419c22": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-west-2-mrk->No Filter", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "68bf620a-2e66-4a0b-9535-24b61bd249c7": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-west-2-mrk->No Filter", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "7d82c2d0-af92-4660-ad8a-8c126dc5e3bb": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-west-2-mrk->No Filter", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "27fa358d-4bec-4e38-9741-59b27152b2f0": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-west-2-mrk->No Filter", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "d907d4be-ffa5-4061-94f9-c0a772689895": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-west-2-mrk->No Filter", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "efcdc6b5-ece0-4fbd-b839-f521c35b6215": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-west-2-mrk->No Filter", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "0c390b3f-1176-4e69-974e-fd7f9c27b2ee": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-west-2-mrk->No Filter", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "e7ba7d4b-9dde-4f10-a5cb-a9fdadc5f10f": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-west-2-mrk->No Filter", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "5b1af6a7-f93c-456f-9136-8be771a9e946": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Discovery KMS MRK us-west-2-mrk->No Filter", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware-discovery", + "default-mrk-region": "us-west-2" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "6f064207-f4aa-4b6c-974c-89984f58d123": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Hierarchy KMS static-branch-key-1", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-hierarchy", + "key": "static-branch-key-1" + }, + "decryptKeyDescription": { + "type": "aws-kms-hierarchy", + "key": "static-branch-key-1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "a174fc1a-1794-4067-bcc3-2fc43160423a": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Hierarchy KMS static-branch-key-1", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-hierarchy", + "key": "static-branch-key-1" + }, + "decryptKeyDescription": { + "type": "aws-kms-hierarchy", + "key": "static-branch-key-1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "4277b341-54ed-4a61-8291-72c6f64d99d2": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Hierarchy KMS static-branch-key-1", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-hierarchy", + "key": "static-branch-key-1" + }, + "decryptKeyDescription": { + "type": "aws-kms-hierarchy", + "key": "static-branch-key-1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "d15c6b25-8157-4569-8068-73c2ae3be0fe": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Hierarchy KMS static-branch-key-1", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-hierarchy", + "key": "static-branch-key-1" + }, + "decryptKeyDescription": { + "type": "aws-kms-hierarchy", + "key": "static-branch-key-1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "79c231e4-f10c-4574-ac8d-e0648227c608": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Hierarchy KMS static-branch-key-1", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-hierarchy", + "key": "static-branch-key-1" + }, + "decryptKeyDescription": { + "type": "aws-kms-hierarchy", + "key": "static-branch-key-1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "a7277a75-0b8d-4098-bc8f-a16284bd62ed": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Hierarchy KMS static-branch-key-1", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-hierarchy", + "key": "static-branch-key-1" + }, + "decryptKeyDescription": { + "type": "aws-kms-hierarchy", + "key": "static-branch-key-1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "689bc539-8bbe-4c1f-ac7b-15ce13b00c37": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Hierarchy KMS static-branch-key-1", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-hierarchy", + "key": "static-branch-key-1" + }, + "decryptKeyDescription": { + "type": "aws-kms-hierarchy", + "key": "static-branch-key-1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "89f0dbe8-0e08-4ed4-b0bc-7780b3a265e4": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Hierarchy KMS static-branch-key-1", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-hierarchy", + "key": "static-branch-key-1" + }, + "decryptKeyDescription": { + "type": "aws-kms-hierarchy", + "key": "static-branch-key-1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "1723194a-8e57-43d7-8991-3da5a7ea3fc3": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Hierarchy KMS static-branch-key-1", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-hierarchy", + "key": "static-branch-key-1" + }, + "decryptKeyDescription": { + "type": "aws-kms-hierarchy", + "key": "static-branch-key-1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "dede0d89-2553-46f7-b816-4696f1480a0b": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Hierarchy KMS static-branch-key-1", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-hierarchy", + "key": "static-branch-key-1" + }, + "decryptKeyDescription": { + "type": "aws-kms-hierarchy", + "key": "static-branch-key-1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "8f3c5441-fb73-4d82-8ca8-8e9fc117d4cc": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated Hierarchy KMS static-branch-key-1", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-hierarchy", + "key": "static-branch-key-1" + }, + "decryptKeyDescription": { + "type": "aws-kms-hierarchy", + "key": "static-branch-key-1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "e4b3e862-db2c-481b-9e48-74bb7ccbd484": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-east-1-mrk->us-east-1-mrk", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "1f55f7dd-40a1-4a39-a619-8b095265a1ee": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-east-1-mrk->us-east-1-mrk", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "37a61ee9-24c3-48e2-b296-0bf4c405c85c": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-east-1-mrk->us-east-1-mrk", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "bbe20be5-a22d-4154-89e1-88c5045bd223": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-east-1-mrk->us-east-1-mrk", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "a2c8ca7b-d6c0-4e0b-aa3f-713009e1d4ec": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-east-1-mrk->us-east-1-mrk", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "0e56bc2d-1ade-4733-aa87-f012b594e99a": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-east-1-mrk->us-east-1-mrk", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "19df2bc0-480b-44c2-bc59-61a9cd866e54": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-east-1-mrk->us-east-1-mrk", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "824e880a-fac3-4839-bd6a-362b9d9ed5a9": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-east-1-mrk->us-east-1-mrk", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "a737808d-d260-4ce6-8597-021c825eb657": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-east-1-mrk->us-east-1-mrk", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "1b7b35da-0bd8-4c94-9c11-24226ef3e6ee": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-east-1-mrk->us-east-1-mrk", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "80facf2e-5ea5-409b-8186-40a2ad1c0788": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-east-1-mrk->us-east-1-mrk", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "1d7934fa-9918-43d6-aebf-ebd7e139da80": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-east-1-mrk->us-west-2-mrk", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "8ec3d4d9-7079-4052-a76a-a7eb5dabecc3": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-east-1-mrk->us-west-2-mrk", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "872fc593-4164-412a-ba64-fae30b1f699f": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-east-1-mrk->us-west-2-mrk", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "b9da7ef0-4561-4218-9a9e-868f4c488898": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-east-1-mrk->us-west-2-mrk", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "9a3d19b5-8dae-41cb-ab01-e10091ab3c0c": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-east-1-mrk->us-west-2-mrk", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "22984223-1247-4a53-b317-e5b146413c9e": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-east-1-mrk->us-west-2-mrk", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "2cb7ed82-d5f2-4883-b0a0-6546f0484fac": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-east-1-mrk->us-west-2-mrk", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "5eb8d03c-c648-496b-a6dd-b24eefad1bca": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-east-1-mrk->us-west-2-mrk", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "147e6b96-52c0-4424-8441-485a1b11fb31": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-east-1-mrk->us-west-2-mrk", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "28939d74-8a3e-4813-9572-e229dea79fec": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-east-1-mrk->us-west-2-mrk", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "fc855d4c-47e1-4d87-974a-d342026eef87": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-east-1-mrk->us-west-2-mrk", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "b5c736bd-f7ea-4f05-981f-16d6cdfef30f": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-west-2-mrk->us-east-1-mrk", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "f136acf1-5152-4d97-98fd-b18dcc6a90ad": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-west-2-mrk->us-east-1-mrk", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "e289f737-69d8-4d20-b410-6773a6e01761": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-west-2-mrk->us-east-1-mrk", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "5660aff6-ec59-4326-be15-29b980296caf": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-west-2-mrk->us-east-1-mrk", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "ec69642a-f245-4720-a731-69d8ae40b1ff": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-west-2-mrk->us-east-1-mrk", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "3422fea2-36c3-41c5-91dc-72a1274f7a5f": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-west-2-mrk->us-east-1-mrk", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "0c3f1b7e-6924-492d-80b4-0930ea664d59": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-west-2-mrk->us-east-1-mrk", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "2e5f5e13-04f2-4ab4-8b8d-74f7a5f3942e": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-west-2-mrk->us-east-1-mrk", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "1575f635-b445-43cd-902d-5d075eae8dfd": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-west-2-mrk->us-east-1-mrk", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "506a5f18-4191-49e6-89c5-7c5f00b103f0": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-west-2-mrk->us-east-1-mrk", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "bfc84d7d-e34f-4627-ae00-d69cf2a75aca": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-west-2-mrk->us-east-1-mrk", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-east-1-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "457ee0bd-2338-447d-88cf-a9d43608ba89": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-west-2-mrk->us-west-2-mrk", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "d6aef496-d9d3-418a-8bc3-f6d6611aea26": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-west-2-mrk->us-west-2-mrk", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "1aa41ad6-336c-410f-8ad8-fdecdeb1ef65": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-west-2-mrk->us-west-2-mrk", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "f4318819-a6ee-4a11-bd22-f49000c771cf": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-west-2-mrk->us-west-2-mrk", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "5c3907a3-d46b-4f79-a27a-fc8b8c6d2cd6": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-west-2-mrk->us-west-2-mrk", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "cc7f4c67-cb6e-4de8-b9f2-31767bcab525": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-west-2-mrk->us-west-2-mrk", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "b22dc08a-5c01-41b2-9578-55e620fce938": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-west-2-mrk->us-west-2-mrk", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "98718c89-a384-4cfc-9f53-e3be495ce3f2": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-west-2-mrk->us-west-2-mrk", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "7d0f6876-df66-4db1-ba99-bfb18e1eaccb": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-west-2-mrk->us-west-2-mrk", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "d93948b8-b71d-48ff-a0b4-5fb621ea1395": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-west-2-mrk->us-west-2-mrk", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "96e50666-c871-4815-8ec2-384f0cd52c87": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS MRK us-west-2-mrk->us-west-2-mrk", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms-mrk-aware", + "key": "us-west-2-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "3056d995-3cb2-4240-a1f9-8950b5599349": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS RSA us-west-2-rsa-mrk", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-rsa", + "key": "us-west-2-rsa-mrk", + "encryption-algorithm": "RSAES_OAEP_SHA_256" + }, + "decryptKeyDescription": { + "type": "aws-kms-rsa", + "key": "us-west-2-rsa-mrk", + "encryption-algorithm": "RSAES_OAEP_SHA_256" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "6d191805-2257-4016-bb68-c1db17d147fa": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS RSA us-west-2-rsa-mrk", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-rsa", + "key": "us-west-2-rsa-mrk", + "encryption-algorithm": "RSAES_OAEP_SHA_1" + }, + "decryptKeyDescription": { + "type": "aws-kms-rsa", + "key": "us-west-2-rsa-mrk", + "encryption-algorithm": "RSAES_OAEP_SHA_1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "91150d79-ced5-43cb-bf93-71e6a28664cf": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS RSA us-west-2-rsa-mrk", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-rsa", + "key": "us-west-2-rsa-mrk", + "encryption-algorithm": "RSAES_OAEP_SHA_256" + }, + "decryptKeyDescription": { + "type": "aws-kms-rsa", + "key": "us-west-2-rsa-mrk", + "encryption-algorithm": "RSAES_OAEP_SHA_256" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "a160b91a-50d3-4e5d-80de-c723b1cfa57e": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS RSA us-west-2-rsa-mrk", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-rsa", + "key": "us-west-2-rsa-mrk", + "encryption-algorithm": "RSAES_OAEP_SHA_1" + }, + "decryptKeyDescription": { + "type": "aws-kms-rsa", + "key": "us-west-2-rsa-mrk", + "encryption-algorithm": "RSAES_OAEP_SHA_1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "6db298cb-c357-4f0d-b30e-315dc0611b4e": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS RSA us-west-2-rsa-mrk", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-rsa", + "key": "us-west-2-rsa-mrk", + "encryption-algorithm": "RSAES_OAEP_SHA_1" + }, + "decryptKeyDescription": { + "type": "aws-kms-rsa", + "key": "us-west-2-rsa-mrk", + "encryption-algorithm": "RSAES_OAEP_SHA_1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "dab0e3b3-cb89-46e4-8a36-753dffc14b6a": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS RSA us-west-2-rsa-mrk", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-rsa", + "key": "us-west-2-rsa-mrk", + "encryption-algorithm": "RSAES_OAEP_SHA_1" + }, + "decryptKeyDescription": { + "type": "aws-kms-rsa", + "key": "us-west-2-rsa-mrk", + "encryption-algorithm": "RSAES_OAEP_SHA_1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "5a5caa5d-e45a-4930-ac90-b06fe686bb56": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS RSA us-west-2-rsa-mrk", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-rsa", + "key": "us-west-2-rsa-mrk", + "encryption-algorithm": "RSAES_OAEP_SHA_256" + }, + "decryptKeyDescription": { + "type": "aws-kms-rsa", + "key": "us-west-2-rsa-mrk", + "encryption-algorithm": "RSAES_OAEP_SHA_256" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "d9af1100-c7e3-454d-8749-c50874034e5d": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS RSA us-west-2-rsa-mrk", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-rsa", + "key": "us-west-2-rsa-mrk", + "encryption-algorithm": "RSAES_OAEP_SHA_1" + }, + "decryptKeyDescription": { + "type": "aws-kms-rsa", + "key": "us-west-2-rsa-mrk", + "encryption-algorithm": "RSAES_OAEP_SHA_1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "bae53063-3343-42f7-acd3-f4fd446fae11": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS RSA us-west-2-rsa-mrk", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-rsa", + "key": "us-west-2-rsa-mrk", + "encryption-algorithm": "RSAES_OAEP_SHA_256" + }, + "decryptKeyDescription": { + "type": "aws-kms-rsa", + "key": "us-west-2-rsa-mrk", + "encryption-algorithm": "RSAES_OAEP_SHA_256" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "517e7f47-7968-42f3-9d03-cb1b5d743067": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS RSA us-west-2-rsa-mrk", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-rsa", + "key": "us-west-2-rsa-mrk", + "encryption-algorithm": "RSAES_OAEP_SHA_1" + }, + "decryptKeyDescription": { + "type": "aws-kms-rsa", + "key": "us-west-2-rsa-mrk", + "encryption-algorithm": "RSAES_OAEP_SHA_1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "c0ac5ba6-fb98-4039-a260-7bd0c72f247c": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS RSA us-west-2-rsa-mrk", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-rsa", + "key": "us-west-2-rsa-mrk", + "encryption-algorithm": "RSAES_OAEP_SHA_256" + }, + "decryptKeyDescription": { + "type": "aws-kms-rsa", + "key": "us-west-2-rsa-mrk", + "encryption-algorithm": "RSAES_OAEP_SHA_256" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "072216ad-ca23-489e-b29e-7f3be476dd0e": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS RSA us-west-2-rsa-mrk", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-rsa", + "key": "us-west-2-rsa-mrk", + "encryption-algorithm": "RSAES_OAEP_SHA_256" + }, + "decryptKeyDescription": { + "type": "aws-kms-rsa", + "key": "us-west-2-rsa-mrk", + "encryption-algorithm": "RSAES_OAEP_SHA_256" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "0e89365e-c9e6-467d-b47d-4e483cd0c8bc": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS RSA us-west-2-rsa-mrk", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-rsa", + "key": "us-west-2-rsa-mrk", + "encryption-algorithm": "RSAES_OAEP_SHA_256" + }, + "decryptKeyDescription": { + "type": "aws-kms-rsa", + "key": "us-west-2-rsa-mrk", + "encryption-algorithm": "RSAES_OAEP_SHA_256" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "dfb030d5-a2eb-4364-a174-ed4ce3b339cd": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS RSA us-west-2-rsa-mrk", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms-rsa", + "key": "us-west-2-rsa-mrk", + "encryption-algorithm": "RSAES_OAEP_SHA_1" + }, + "decryptKeyDescription": { + "type": "aws-kms-rsa", + "key": "us-west-2-rsa-mrk", + "encryption-algorithm": "RSAES_OAEP_SHA_1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "926eb392-6c42-420b-9e35-49864c94ae14": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS us-west-2-decryptable", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-decryptable" + }, + "decryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-decryptable" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "05aa9457-dc97-483a-b256-9a1eba533766": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS us-west-2-decryptable", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-decryptable" + }, + "decryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-decryptable" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "85886410-b094-432f-9adc-9d4c3f74ec34": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS us-west-2-decryptable", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-decryptable" + }, + "decryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-decryptable" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "021d4ac0-d0a9-4aa1-b9ef-c73ea8091122": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS us-west-2-decryptable", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-decryptable" + }, + "decryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-decryptable" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "74798073-5d51-4975-bddb-c4c5dc8dcccc": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS us-west-2-decryptable", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-decryptable" + }, + "decryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-decryptable" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "dfcee754-e6fd-41ee-a57b-53a058a40577": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS us-west-2-decryptable", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-decryptable" + }, + "decryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-decryptable" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "34bd355b-6527-4005-baae-3c7deb5c6166": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS us-west-2-decryptable", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-decryptable" + }, + "decryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-decryptable" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "a2467ee7-26da-4342-9e5d-499802da35fa": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS us-west-2-decryptable", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-decryptable" + }, + "decryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-decryptable" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "35504613-88be-4dd4-bac6-a9d5de5e4fc5": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS us-west-2-decryptable", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-decryptable" + }, + "decryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-decryptable" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "d36b6f37-344e-45b5-966a-dde7f00c19c0": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS us-west-2-decryptable", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-decryptable" + }, + "decryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-decryptable" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "13b062b4-5178-403f-9a8a-7b971b30504f": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS us-west-2-decryptable", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-decryptable" + }, + "decryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-decryptable" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "48146d3c-43d4-40f1-82af-88e25e46c407": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS us-west-2-mrk", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "d2d82a9f-950f-4a9a-ae1a-7326ce1e5868": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS us-west-2-mrk", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "8600b829-b1fd-4341-a501-248657c72e41": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS us-west-2-mrk", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "23f959c3-04ed-4397-a4d9-e170aab24cea": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS us-west-2-mrk", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "bc2b5bf5-7283-48ed-baa0-d7515535d262": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS us-west-2-mrk", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "286c654c-93ac-485e-a4a3-c83c140a5086": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS us-west-2-mrk", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "9720e13d-11d4-48cb-91a0-0f1f15e872fa": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS us-west-2-mrk", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "423a0afb-f924-42f0-adbb-d7974f4fae56": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS us-west-2-mrk", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "52a064c0-168f-4ed7-bd29-86e10c5f8346": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS us-west-2-mrk", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "7dfe155b-8e81-49b2-9809-f8ebeb35cb8c": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS us-west-2-mrk", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "9fdae026-5ab2-4772-ba99-00a293775fcb": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated KMS us-west-2-mrk", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-mrk" + }, + "decryptKeyDescription": { + "type": "aws-kms", + "key": "us-west-2-mrk" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "1c5b2019-8640-4b70-a5c9-14d2a02e30f4": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawAES aes-128", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "d5622ed4-19a0-4d3b-a086-da9ff170097d": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawAES aes-128", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "45635839-2c3d-44ca-ae81-8eaad998c122": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawAES aes-128", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "15730efc-3f34-4ef9-b9cd-2bf178a00bf3": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawAES aes-128", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "5a2efed8-e347-4a37-88df-d491f93d6a8d": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawAES aes-128", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "0fb76371-8b25-4ba2-8a7d-ee05120b2ad0": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawAES aes-128", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "d98c0314-3266-48e6-9838-3d775a3d4679": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawAES aes-128", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "0ab92f2d-8627-4fcc-9588-2a3072f602a5": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawAES aes-128", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "a6acc847-a070-4401-8dbb-2e1afd39442b": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawAES aes-128", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "0ef1819e-4ec6-4eb2-a10f-fad774a58f0e": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawAES aes-128", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "eaf714a0-95a5-43a6-b317-4e23cd776594": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawAES aes-128", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "04b3c16d-956c-4a22-b0dd-ebab980f0e5b": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawAES aes-192", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "5a584585-bfd4-4035-9e84-d49b2a699b74": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawAES aes-192", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "84912b4e-daaa-4587-90cc-ec002e53c053": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawAES aes-192", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "226c15f6-393c-460e-83da-deed683db24a": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawAES aes-192", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "766c63b7-0358-4106-85ee-2ef178229495": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawAES aes-192", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "877eef79-f549-4431-af13-961004f4a068": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawAES aes-192", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "5e154dd7-dd6c-4001-955f-a42947df55b6": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawAES aes-192", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "f865efc5-bc96-4b39-9811-2ad7bf586d32": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawAES aes-192", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "14d7ff71-5d68-47ed-856a-a04cdf51b90b": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawAES aes-192", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "77c88cb7-5837-400e-ad18-3894768d80e0": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawAES aes-192", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "ec380401-8f2d-44a4-a273-338e91d63485": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawAES aes-192", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "2fd735a4-39aa-43c5-899a-436ff5c9a6e2": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawAES aes-256", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "325a18b1-fef4-4eb2-8228-1b0fe5721a32": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawAES aes-256", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "d8437c6d-2ed3-486b-b521-cfdf41f79d55": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawAES aes-256", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "830e4d0d-e9cd-4787-991f-a6cdaf7ab2e3": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawAES aes-256", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "ace23b0f-1f24-4800-a1c5-ac856398dac2": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawAES aes-256", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "592981c8-59d4-4bf5-9cfe-dd5f05cf43c9": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawAES aes-256", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "2120e7f6-e72e-4a27-a86f-d83c61f3f037": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawAES aes-256", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "6f22056c-b4a6-4a36-ae46-4eb536ac4802": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawAES aes-256", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "11b370f3-b0c5-41a3-bc6f-0cb8ab732285": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawAES aes-256", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "bf13f98c-0873-446a-ad1a-76bff399b0ee": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawAES aes-256", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "0f5f3f2f-ef33-40eb-9dd7-1081642f904d": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawAES aes-256", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "dbeee636-82eb-48d4-8338-6da3a0a96519": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Ephemeral-Discovery ephemeral ecc-256-private", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ephemeral", + "recipient": "ecc-256-private", + "sender-public-key": "ephemeral", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-ephemeral ecc-256", + "ecc-curve": "ecc-256", + "schema": "ephemeral" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-256-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-256", + "ecc-curve": "ecc-256", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "683b1efc-d1c8-4313-a6d4-9124e9ac01fc": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Ephemeral-Discovery ephemeral ecc-256-private", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ephemeral", + "recipient": "ecc-256-private", + "sender-public-key": "ephemeral", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-ephemeral ecc-256", + "ecc-curve": "ecc-256", + "schema": "ephemeral" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-256-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-256", + "ecc-curve": "ecc-256", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "35029380-3f98-4602-8c05-d81fcb3faa46": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Ephemeral-Discovery ephemeral ecc-256-private", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ephemeral", + "recipient": "ecc-256-private", + "sender-public-key": "ephemeral", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-ephemeral ecc-256", + "ecc-curve": "ecc-256", + "schema": "ephemeral" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-256-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-256", + "ecc-curve": "ecc-256", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "8a335c95-3de2-40ce-91c2-06c1928dd94a": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Ephemeral-Discovery ephemeral ecc-256-private", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ephemeral", + "recipient": "ecc-256-private", + "sender-public-key": "ephemeral", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-ephemeral ecc-256", + "ecc-curve": "ecc-256", + "schema": "ephemeral" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-256-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-256", + "ecc-curve": "ecc-256", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "7bd37306-25ca-4600-9a4a-a515ba25639f": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Ephemeral-Discovery ephemeral ecc-256-private", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ephemeral", + "recipient": "ecc-256-private", + "sender-public-key": "ephemeral", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-ephemeral ecc-256", + "ecc-curve": "ecc-256", + "schema": "ephemeral" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-256-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-256", + "ecc-curve": "ecc-256", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "5c83a7f3-51c2-4ff3-b96a-9d849f821c25": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Ephemeral-Discovery ephemeral ecc-256-private", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ephemeral", + "recipient": "ecc-256-private", + "sender-public-key": "ephemeral", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-ephemeral ecc-256", + "ecc-curve": "ecc-256", + "schema": "ephemeral" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-256-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-256", + "ecc-curve": "ecc-256", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "8e0eb92b-2fe7-45f0-8a40-4757069f0f12": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Ephemeral-Discovery ephemeral ecc-256-private", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ephemeral", + "recipient": "ecc-256-private", + "sender-public-key": "ephemeral", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-ephemeral ecc-256", + "ecc-curve": "ecc-256", + "schema": "ephemeral" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-256-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-256", + "ecc-curve": "ecc-256", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "ff873547-3d34-4b12-9641-96a06365a187": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Ephemeral-Discovery ephemeral ecc-256-private", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ephemeral", + "recipient": "ecc-256-private", + "sender-public-key": "ephemeral", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-ephemeral ecc-256", + "ecc-curve": "ecc-256", + "schema": "ephemeral" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-256-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-256", + "ecc-curve": "ecc-256", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "7cf241c8-42c9-464f-b4e0-e4df2ae3cd05": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Ephemeral-Discovery ephemeral ecc-256-private", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ephemeral", + "recipient": "ecc-256-private", + "sender-public-key": "ephemeral", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-ephemeral ecc-256", + "ecc-curve": "ecc-256", + "schema": "ephemeral" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-256-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-256", + "ecc-curve": "ecc-256", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "e6968291-0a1b-42fb-b52b-774932a94df6": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Ephemeral-Discovery ephemeral ecc-256-private", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ephemeral", + "recipient": "ecc-256-private", + "sender-public-key": "ephemeral", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-ephemeral ecc-256", + "ecc-curve": "ecc-256", + "schema": "ephemeral" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-256-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-256", + "ecc-curve": "ecc-256", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "9f7eb4bf-b01d-4842-8c6d-34289a12342c": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Ephemeral-Discovery ephemeral ecc-256-private", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ephemeral", + "recipient": "ecc-256-private", + "sender-public-key": "ephemeral", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-ephemeral ecc-256", + "ecc-curve": "ecc-256", + "schema": "ephemeral" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-256-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-256", + "ecc-curve": "ecc-256", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "47aefb3e-835c-4af5-b6ac-aa9a1d9b1a7c": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Ephemeral-Discovery ephemeral ecc-384-private", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ephemeral", + "recipient": "ecc-384-private", + "sender-public-key": "ephemeral", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-ephemeral ecc-384", + "ecc-curve": "ecc-384", + "schema": "ephemeral" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-384-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-384", + "ecc-curve": "ecc-384", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "1c17752f-1dd2-4ab9-bdd7-87b505e32b79": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Ephemeral-Discovery ephemeral ecc-384-private", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ephemeral", + "recipient": "ecc-384-private", + "sender-public-key": "ephemeral", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-ephemeral ecc-384", + "ecc-curve": "ecc-384", + "schema": "ephemeral" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-384-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-384", + "ecc-curve": "ecc-384", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "cd71def3-5538-43bd-93c9-a74e525254e1": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Ephemeral-Discovery ephemeral ecc-384-private", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ephemeral", + "recipient": "ecc-384-private", + "sender-public-key": "ephemeral", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-ephemeral ecc-384", + "ecc-curve": "ecc-384", + "schema": "ephemeral" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-384-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-384", + "ecc-curve": "ecc-384", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "d4bbeb48-20a4-49ce-90cf-6eed48030257": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Ephemeral-Discovery ephemeral ecc-384-private", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ephemeral", + "recipient": "ecc-384-private", + "sender-public-key": "ephemeral", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-ephemeral ecc-384", + "ecc-curve": "ecc-384", + "schema": "ephemeral" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-384-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-384", + "ecc-curve": "ecc-384", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "20db34e7-dfd4-4ca3-9a31-ee6945b17fd9": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Ephemeral-Discovery ephemeral ecc-384-private", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ephemeral", + "recipient": "ecc-384-private", + "sender-public-key": "ephemeral", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-ephemeral ecc-384", + "ecc-curve": "ecc-384", + "schema": "ephemeral" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-384-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-384", + "ecc-curve": "ecc-384", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "ab7a675f-9938-48f9-aeca-531f20a89d7b": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Ephemeral-Discovery ephemeral ecc-384-private", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ephemeral", + "recipient": "ecc-384-private", + "sender-public-key": "ephemeral", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-ephemeral ecc-384", + "ecc-curve": "ecc-384", + "schema": "ephemeral" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-384-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-384", + "ecc-curve": "ecc-384", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "f25f9cf9-56f0-4220-9ebd-8576270568b4": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Ephemeral-Discovery ephemeral ecc-384-private", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ephemeral", + "recipient": "ecc-384-private", + "sender-public-key": "ephemeral", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-ephemeral ecc-384", + "ecc-curve": "ecc-384", + "schema": "ephemeral" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-384-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-384", + "ecc-curve": "ecc-384", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "0b80673b-5680-4a26-bc88-96d6dc9d0ee8": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Ephemeral-Discovery ephemeral ecc-384-private", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ephemeral", + "recipient": "ecc-384-private", + "sender-public-key": "ephemeral", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-ephemeral ecc-384", + "ecc-curve": "ecc-384", + "schema": "ephemeral" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-384-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-384", + "ecc-curve": "ecc-384", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "8233b6d0-3fe4-4f06-8d08-6e347e692ab2": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Ephemeral-Discovery ephemeral ecc-384-private", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ephemeral", + "recipient": "ecc-384-private", + "sender-public-key": "ephemeral", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-ephemeral ecc-384", + "ecc-curve": "ecc-384", + "schema": "ephemeral" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-384-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-384", + "ecc-curve": "ecc-384", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "4fea527e-40cf-4e1a-898e-61f2ec7ae930": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Ephemeral-Discovery ephemeral ecc-384-private", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ephemeral", + "recipient": "ecc-384-private", + "sender-public-key": "ephemeral", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-ephemeral ecc-384", + "ecc-curve": "ecc-384", + "schema": "ephemeral" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-384-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-384", + "ecc-curve": "ecc-384", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "58f91ae4-5331-4eb3-8ee6-0568de3b8be5": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Ephemeral-Discovery ephemeral ecc-384-private", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ephemeral", + "recipient": "ecc-384-private", + "sender-public-key": "ephemeral", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-ephemeral ecc-384", + "ecc-curve": "ecc-384", + "schema": "ephemeral" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-384-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-384", + "ecc-curve": "ecc-384", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "d5223e92-1a52-415f-b2f5-261291a321b3": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Ephemeral-Discovery ephemeral ecc-521-private", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ephemeral", + "recipient": "ecc-521-private", + "sender-public-key": "ephemeral", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-ephemeral ecc-521", + "ecc-curve": "ecc-521", + "schema": "ephemeral" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-521-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-521", + "ecc-curve": "ecc-521", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "83c93471-e218-46cd-8ae3-dd40156c572b": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Ephemeral-Discovery ephemeral ecc-521-private", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ephemeral", + "recipient": "ecc-521-private", + "sender-public-key": "ephemeral", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-ephemeral ecc-521", + "ecc-curve": "ecc-521", + "schema": "ephemeral" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-521-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-521", + "ecc-curve": "ecc-521", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "87670ef8-51fe-4c29-a60a-b8470970c0fa": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Ephemeral-Discovery ephemeral ecc-521-private", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ephemeral", + "recipient": "ecc-521-private", + "sender-public-key": "ephemeral", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-ephemeral ecc-521", + "ecc-curve": "ecc-521", + "schema": "ephemeral" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-521-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-521", + "ecc-curve": "ecc-521", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "1b16e54a-0cde-44a8-ae30-f5412166433a": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Ephemeral-Discovery ephemeral ecc-521-private", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ephemeral", + "recipient": "ecc-521-private", + "sender-public-key": "ephemeral", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-ephemeral ecc-521", + "ecc-curve": "ecc-521", + "schema": "ephemeral" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-521-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-521", + "ecc-curve": "ecc-521", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "2d51d7ea-acc8-4d10-95c9-07a469e95bd7": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Ephemeral-Discovery ephemeral ecc-521-private", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ephemeral", + "recipient": "ecc-521-private", + "sender-public-key": "ephemeral", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-ephemeral ecc-521", + "ecc-curve": "ecc-521", + "schema": "ephemeral" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-521-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-521", + "ecc-curve": "ecc-521", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "c0c7e534-b759-41b5-a96a-343ddc3bae18": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Ephemeral-Discovery ephemeral ecc-521-private", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ephemeral", + "recipient": "ecc-521-private", + "sender-public-key": "ephemeral", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-ephemeral ecc-521", + "ecc-curve": "ecc-521", + "schema": "ephemeral" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-521-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-521", + "ecc-curve": "ecc-521", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "428a2d5a-df72-46ee-9cfa-f5c2a59199e4": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Ephemeral-Discovery ephemeral ecc-521-private", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ephemeral", + "recipient": "ecc-521-private", + "sender-public-key": "ephemeral", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-ephemeral ecc-521", + "ecc-curve": "ecc-521", + "schema": "ephemeral" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-521-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-521", + "ecc-curve": "ecc-521", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "9bfff88c-3d34-4221-a080-1b3e42817ccd": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Ephemeral-Discovery ephemeral ecc-521-private", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ephemeral", + "recipient": "ecc-521-private", + "sender-public-key": "ephemeral", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-ephemeral ecc-521", + "ecc-curve": "ecc-521", + "schema": "ephemeral" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-521-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-521", + "ecc-curve": "ecc-521", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "e2653c90-eda1-46a6-b115-e204b091f6e0": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Ephemeral-Discovery ephemeral ecc-521-private", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ephemeral", + "recipient": "ecc-521-private", + "sender-public-key": "ephemeral", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-ephemeral ecc-521", + "ecc-curve": "ecc-521", + "schema": "ephemeral" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-521-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-521", + "ecc-curve": "ecc-521", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "528f578d-e96f-42a7-b27b-63c09346ef62": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Ephemeral-Discovery ephemeral ecc-521-private", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ephemeral", + "recipient": "ecc-521-private", + "sender-public-key": "ephemeral", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-ephemeral ecc-521", + "ecc-curve": "ecc-521", + "schema": "ephemeral" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-521-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-521", + "ecc-curve": "ecc-521", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "0a6c2acd-e7f0-42c2-bb0e-c61cb72555b9": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Ephemeral-Discovery ephemeral ecc-521-private", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ephemeral", + "recipient": "ecc-521-private", + "sender-public-key": "ephemeral", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-ephemeral ecc-521", + "ecc-curve": "ecc-521", + "schema": "ephemeral" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-521-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-521", + "ecc-curve": "ecc-521", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "7206fcc1-b49a-4b8f-8ee3-9c73efb8f775": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-256-private Discovery ecc-256-private", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-256-private", + "recipient": "ecc-256-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-256", + "ecc-curve": "ecc-256", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-256-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-256", + "ecc-curve": "ecc-256", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "fb176f29-2af2-4015-95d0-83d67e5454f1": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-256-private Discovery ecc-256-private", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-256-private", + "recipient": "ecc-256-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-256", + "ecc-curve": "ecc-256", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-256-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-256", + "ecc-curve": "ecc-256", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "2217fe0f-dc2a-4778-8765-7980c2729ea9": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-256-private Discovery ecc-256-private", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-256-private", + "recipient": "ecc-256-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-256", + "ecc-curve": "ecc-256", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-256-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-256", + "ecc-curve": "ecc-256", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "93e062aa-08d1-4689-8fee-bb4ae6eece62": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-256-private Discovery ecc-256-private", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-256-private", + "recipient": "ecc-256-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-256", + "ecc-curve": "ecc-256", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-256-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-256", + "ecc-curve": "ecc-256", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "056c6619-c618-4eb3-a316-54d51816f59e": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-256-private Discovery ecc-256-private", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-256-private", + "recipient": "ecc-256-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-256", + "ecc-curve": "ecc-256", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-256-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-256", + "ecc-curve": "ecc-256", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "a782c018-f274-4f7a-9f18-59cf1360ebd7": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-256-private Discovery ecc-256-private", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-256-private", + "recipient": "ecc-256-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-256", + "ecc-curve": "ecc-256", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-256-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-256", + "ecc-curve": "ecc-256", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "5cc434fb-dfb2-4967-ab9c-50b32f43bb8d": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-256-private Discovery ecc-256-private", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-256-private", + "recipient": "ecc-256-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-256", + "ecc-curve": "ecc-256", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-256-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-256", + "ecc-curve": "ecc-256", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "a576a454-b303-4e77-84d1-6a47cad5c609": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-256-private Discovery ecc-256-private", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-256-private", + "recipient": "ecc-256-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-256", + "ecc-curve": "ecc-256", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-256-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-256", + "ecc-curve": "ecc-256", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "810c7a11-d921-4d29-9dac-a7fa969f6996": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-256-private Discovery ecc-256-private", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-256-private", + "recipient": "ecc-256-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-256", + "ecc-curve": "ecc-256", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-256-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-256", + "ecc-curve": "ecc-256", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "51bb3e19-8e1c-403a-a6a1-4efbeab048e2": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-256-private Discovery ecc-256-private", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-256-private", + "recipient": "ecc-256-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-256", + "ecc-curve": "ecc-256", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-256-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-256", + "ecc-curve": "ecc-256", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "143ac9b4-8a16-490e-9583-30f6a5a7a35c": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-256-private Discovery ecc-256-private", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-256-private", + "recipient": "ecc-256-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-256", + "ecc-curve": "ecc-256", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-256-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-256", + "ecc-curve": "ecc-256", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "2f533647-b78d-45cc-8108-e78b14078cd4": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-256-private ecc-256-private", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-256-private", + "recipient": "ecc-256-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-256", + "ecc-curve": "ecc-256", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-256-private", + "recipient": "ecc-256-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-256", + "ecc-curve": "ecc-256", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "cafca81a-6441-44aa-953c-1d5fd2cbacd0": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-256-private ecc-256-private", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-256-private", + "recipient": "ecc-256-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-256", + "ecc-curve": "ecc-256", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-256-private", + "recipient": "ecc-256-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-256", + "ecc-curve": "ecc-256", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "a00cd623-569d-4295-9c50-edaa36fa27af": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-256-private ecc-256-private", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-256-private", + "recipient": "ecc-256-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-256", + "ecc-curve": "ecc-256", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-256-private", + "recipient": "ecc-256-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-256", + "ecc-curve": "ecc-256", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "9eff82d4-4005-4cef-bfd1-d1d2491766ff": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-256-private ecc-256-private", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-256-private", + "recipient": "ecc-256-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-256", + "ecc-curve": "ecc-256", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-256-private", + "recipient": "ecc-256-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-256", + "ecc-curve": "ecc-256", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "e5ec4fde-3e61-4a0d-b470-c4ed4878c91d": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-256-private ecc-256-private", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-256-private", + "recipient": "ecc-256-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-256", + "ecc-curve": "ecc-256", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-256-private", + "recipient": "ecc-256-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-256", + "ecc-curve": "ecc-256", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "1ad8346c-198c-499e-86c2-df8045e6ce69": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-256-private ecc-256-private", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-256-private", + "recipient": "ecc-256-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-256", + "ecc-curve": "ecc-256", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-256-private", + "recipient": "ecc-256-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-256", + "ecc-curve": "ecc-256", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "b6838253-2c5e-4c2e-b6b5-e61db33d8bc9": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-256-private ecc-256-private", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-256-private", + "recipient": "ecc-256-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-256", + "ecc-curve": "ecc-256", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-256-private", + "recipient": "ecc-256-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-256", + "ecc-curve": "ecc-256", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "8d799239-a86e-41d1-a699-884a375106e3": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-256-private ecc-256-private", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-256-private", + "recipient": "ecc-256-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-256", + "ecc-curve": "ecc-256", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-256-private", + "recipient": "ecc-256-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-256", + "ecc-curve": "ecc-256", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "ee99d112-5d3c-4684-a32e-afc0c62f018e": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-256-private ecc-256-private", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-256-private", + "recipient": "ecc-256-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-256", + "ecc-curve": "ecc-256", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-256-private", + "recipient": "ecc-256-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-256", + "ecc-curve": "ecc-256", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "9aa1f665-c0d8-4808-9121-ee62d96fbfc3": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-256-private ecc-256-private", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-256-private", + "recipient": "ecc-256-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-256", + "ecc-curve": "ecc-256", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-256-private", + "recipient": "ecc-256-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-256", + "ecc-curve": "ecc-256", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "90ce4bb6-ef9b-4aa1-bb08-ebca9adc8528": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-256-private ecc-256-private", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-256-private", + "recipient": "ecc-256-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-256", + "ecc-curve": "ecc-256", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-256-private", + "recipient": "ecc-256-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-256", + "ecc-curve": "ecc-256", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "58fa6361-3449-4fe4-9aae-ad4afe628f86": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-384-private Discovery ecc-384-private", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-384-private", + "recipient": "ecc-384-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-384", + "ecc-curve": "ecc-384", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-384-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-384", + "ecc-curve": "ecc-384", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "a60e6089-7c4d-4079-96e8-9116a343e878": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-384-private Discovery ecc-384-private", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-384-private", + "recipient": "ecc-384-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-384", + "ecc-curve": "ecc-384", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-384-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-384", + "ecc-curve": "ecc-384", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "4d469c10-3a10-4642-a140-fb9543fb00bd": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-384-private Discovery ecc-384-private", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-384-private", + "recipient": "ecc-384-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-384", + "ecc-curve": "ecc-384", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-384-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-384", + "ecc-curve": "ecc-384", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "878a153b-3701-44b3-b2e9-37c90a0019bc": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-384-private Discovery ecc-384-private", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-384-private", + "recipient": "ecc-384-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-384", + "ecc-curve": "ecc-384", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-384-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-384", + "ecc-curve": "ecc-384", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "e3736d3e-e1e9-4532-a89d-c237ee939bde": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-384-private Discovery ecc-384-private", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-384-private", + "recipient": "ecc-384-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-384", + "ecc-curve": "ecc-384", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-384-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-384", + "ecc-curve": "ecc-384", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "054a2166-715e-4ddd-8df6-65db2863fcdc": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-384-private Discovery ecc-384-private", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-384-private", + "recipient": "ecc-384-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-384", + "ecc-curve": "ecc-384", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-384-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-384", + "ecc-curve": "ecc-384", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "65a82402-99da-4871-b918-77ac35247687": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-384-private Discovery ecc-384-private", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-384-private", + "recipient": "ecc-384-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-384", + "ecc-curve": "ecc-384", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-384-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-384", + "ecc-curve": "ecc-384", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "640b5f65-ae11-41ee-b0f4-a49c5554aeb4": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-384-private Discovery ecc-384-private", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-384-private", + "recipient": "ecc-384-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-384", + "ecc-curve": "ecc-384", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-384-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-384", + "ecc-curve": "ecc-384", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "5a1d6a3e-7bd2-4fe5-8be9-6cebbfb09812": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-384-private Discovery ecc-384-private", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-384-private", + "recipient": "ecc-384-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-384", + "ecc-curve": "ecc-384", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-384-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-384", + "ecc-curve": "ecc-384", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "04ebec43-6f1b-443b-b0d3-0ef3138915db": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-384-private Discovery ecc-384-private", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-384-private", + "recipient": "ecc-384-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-384", + "ecc-curve": "ecc-384", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-384-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-384", + "ecc-curve": "ecc-384", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "09a5079a-b64d-4ad8-9c08-0bd203bd587c": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-384-private Discovery ecc-384-private", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-384-private", + "recipient": "ecc-384-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-384", + "ecc-curve": "ecc-384", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-384-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-384", + "ecc-curve": "ecc-384", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "43298cc5-0b7b-407c-96b0-442f6dcfcaff": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-384-private ecc-384-private", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-384-private", + "recipient": "ecc-384-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-384", + "ecc-curve": "ecc-384", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-384-private", + "recipient": "ecc-384-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-384", + "ecc-curve": "ecc-384", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "319f7f24-a823-44d5-900f-6a8d96ee302b": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-384-private ecc-384-private", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-384-private", + "recipient": "ecc-384-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-384", + "ecc-curve": "ecc-384", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-384-private", + "recipient": "ecc-384-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-384", + "ecc-curve": "ecc-384", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "d99b37b5-4b26-4dc8-9f74-0eb6e439e434": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-384-private ecc-384-private", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-384-private", + "recipient": "ecc-384-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-384", + "ecc-curve": "ecc-384", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-384-private", + "recipient": "ecc-384-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-384", + "ecc-curve": "ecc-384", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "d4067c0d-1b5d-4a9e-8929-9a25309ceec0": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-384-private ecc-384-private", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-384-private", + "recipient": "ecc-384-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-384", + "ecc-curve": "ecc-384", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-384-private", + "recipient": "ecc-384-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-384", + "ecc-curve": "ecc-384", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "2149da99-eebb-4d3c-861e-e4d0bf29c5fd": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-384-private ecc-384-private", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-384-private", + "recipient": "ecc-384-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-384", + "ecc-curve": "ecc-384", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-384-private", + "recipient": "ecc-384-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-384", + "ecc-curve": "ecc-384", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "d11cabda-fc2c-480d-885f-6dc309f00a47": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-384-private ecc-384-private", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-384-private", + "recipient": "ecc-384-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-384", + "ecc-curve": "ecc-384", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-384-private", + "recipient": "ecc-384-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-384", + "ecc-curve": "ecc-384", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "fb6256d1-7252-4282-aa9e-67b4ffad4d61": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-384-private ecc-384-private", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-384-private", + "recipient": "ecc-384-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-384", + "ecc-curve": "ecc-384", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-384-private", + "recipient": "ecc-384-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-384", + "ecc-curve": "ecc-384", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "8f3011c7-42e7-417b-904e-01d6c07c361e": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-384-private ecc-384-private", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-384-private", + "recipient": "ecc-384-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-384", + "ecc-curve": "ecc-384", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-384-private", + "recipient": "ecc-384-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-384", + "ecc-curve": "ecc-384", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "21717a05-9bb2-4550-8861-de26a5f14917": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-384-private ecc-384-private", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-384-private", + "recipient": "ecc-384-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-384", + "ecc-curve": "ecc-384", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-384-private", + "recipient": "ecc-384-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-384", + "ecc-curve": "ecc-384", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "478e812b-67ad-4f99-862e-3077cbd3a4d9": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-384-private ecc-384-private", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-384-private", + "recipient": "ecc-384-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-384", + "ecc-curve": "ecc-384", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-384-private", + "recipient": "ecc-384-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-384", + "ecc-curve": "ecc-384", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "a92f4f19-e5e0-4499-8806-87200d8a6938": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-384-private ecc-384-private", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-384-private", + "recipient": "ecc-384-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-384", + "ecc-curve": "ecc-384", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-384-private", + "recipient": "ecc-384-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-384", + "ecc-curve": "ecc-384", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "445ec136-51ea-4853-8559-b0d0657781df": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-521-private Discovery ecc-521-private", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-521-private", + "recipient": "ecc-521-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-521", + "ecc-curve": "ecc-521", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-521-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-521", + "ecc-curve": "ecc-521", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "d7086ee3-3ddb-4859-b723-17f915bc57d9": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-521-private Discovery ecc-521-private", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-521-private", + "recipient": "ecc-521-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-521", + "ecc-curve": "ecc-521", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-521-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-521", + "ecc-curve": "ecc-521", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "0ad4a0c5-c666-4815-9910-560ff4a4e7a0": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-521-private Discovery ecc-521-private", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-521-private", + "recipient": "ecc-521-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-521", + "ecc-curve": "ecc-521", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-521-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-521", + "ecc-curve": "ecc-521", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "f0c6a8fb-397f-4948-b4bd-4f84841e73bd": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-521-private Discovery ecc-521-private", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-521-private", + "recipient": "ecc-521-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-521", + "ecc-curve": "ecc-521", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-521-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-521", + "ecc-curve": "ecc-521", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "316e3a5b-9a08-479a-8b7b-a0c576d7d37a": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-521-private Discovery ecc-521-private", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-521-private", + "recipient": "ecc-521-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-521", + "ecc-curve": "ecc-521", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-521-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-521", + "ecc-curve": "ecc-521", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "6c104d80-e0dd-40be-9d3e-dd9d147cc673": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-521-private Discovery ecc-521-private", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-521-private", + "recipient": "ecc-521-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-521", + "ecc-curve": "ecc-521", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-521-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-521", + "ecc-curve": "ecc-521", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "58d12a0e-803f-4bba-9405-d229d25959c4": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-521-private Discovery ecc-521-private", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-521-private", + "recipient": "ecc-521-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-521", + "ecc-curve": "ecc-521", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-521-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-521", + "ecc-curve": "ecc-521", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "6cee385d-3ff6-44a7-bb66-f32b02297f42": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-521-private Discovery ecc-521-private", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-521-private", + "recipient": "ecc-521-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-521", + "ecc-curve": "ecc-521", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-521-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-521", + "ecc-curve": "ecc-521", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "2541ba7c-699f-45fd-9243-9f915c8a770f": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-521-private Discovery ecc-521-private", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-521-private", + "recipient": "ecc-521-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-521", + "ecc-curve": "ecc-521", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-521-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-521", + "ecc-curve": "ecc-521", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "1427e809-2d8e-46d1-8233-0b95a415ed07": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-521-private Discovery ecc-521-private", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-521-private", + "recipient": "ecc-521-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-521", + "ecc-curve": "ecc-521", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-521-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-521", + "ecc-curve": "ecc-521", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "699d5b1e-5a41-47fe-b83c-5e078fb31074": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-521-private Discovery ecc-521-private", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-521-private", + "recipient": "ecc-521-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-521", + "ecc-curve": "ecc-521", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "discovery", + "recipient": "ecc-521-private", + "sender-public-key": "discovery", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-discovery ecc-521", + "ecc-curve": "ecc-521", + "schema": "discovery" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "0c7ffc75-dd7f-4367-a2e5-5e8bcac11eef": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-521-private ecc-521-private", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-521-private", + "recipient": "ecc-521-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-521", + "ecc-curve": "ecc-521", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-521-private", + "recipient": "ecc-521-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-521", + "ecc-curve": "ecc-521", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "fd1e25c1-dda9-49b7-af43-db3ea18e6964": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-521-private ecc-521-private", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-521-private", + "recipient": "ecc-521-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-521", + "ecc-curve": "ecc-521", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-521-private", + "recipient": "ecc-521-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-521", + "ecc-curve": "ecc-521", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "e968faef-dd6d-44bb-aaaa-0d168b40c2ac": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-521-private ecc-521-private", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-521-private", + "recipient": "ecc-521-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-521", + "ecc-curve": "ecc-521", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-521-private", + "recipient": "ecc-521-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-521", + "ecc-curve": "ecc-521", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "2578f803-217b-484d-b8d3-df2b01658687": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-521-private ecc-521-private", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-521-private", + "recipient": "ecc-521-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-521", + "ecc-curve": "ecc-521", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-521-private", + "recipient": "ecc-521-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-521", + "ecc-curve": "ecc-521", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "1706ab51-fa31-43e6-a74a-1513f52792f7": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-521-private ecc-521-private", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-521-private", + "recipient": "ecc-521-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-521", + "ecc-curve": "ecc-521", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-521-private", + "recipient": "ecc-521-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-521", + "ecc-curve": "ecc-521", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "1092200d-a432-4a9d-9532-c901217149a3": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-521-private ecc-521-private", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-521-private", + "recipient": "ecc-521-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-521", + "ecc-curve": "ecc-521", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-521-private", + "recipient": "ecc-521-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-521", + "ecc-curve": "ecc-521", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "ec12ba3d-6a2f-48e9-88f3-e38b5df93719": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-521-private ecc-521-private", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-521-private", + "recipient": "ecc-521-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-521", + "ecc-curve": "ecc-521", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-521-private", + "recipient": "ecc-521-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-521", + "ecc-curve": "ecc-521", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "7fe51199-70e3-4e8e-85fd-aacb2f14da7c": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-521-private ecc-521-private", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-521-private", + "recipient": "ecc-521-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-521", + "ecc-curve": "ecc-521", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-521-private", + "recipient": "ecc-521-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-521", + "ecc-curve": "ecc-521", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "442cbc08-438f-4fab-bef6-6ddbdd24e3ef": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-521-private ecc-521-private", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-521-private", + "recipient": "ecc-521-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-521", + "ecc-curve": "ecc-521", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-521-private", + "recipient": "ecc-521-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-521", + "ecc-curve": "ecc-521", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "9c7911d0-4dbb-49f1-9c1a-2f21209ffde2": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-521-private ecc-521-private", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-521-private", + "recipient": "ecc-521-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-521", + "ecc-curve": "ecc-521", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-521-private", + "recipient": "ecc-521-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-521", + "ecc-curve": "ecc-521", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "352a292e-7253-426d-933c-9ed14166c0af": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawECDH Static ecc-521-private ecc-521-private", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-521-private", + "recipient": "ecc-521-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-521", + "ecc-curve": "ecc-521", + "schema": "static" + }, + "decryptKeyDescription": { + "type": "raw-ecdh", + "sender": "ecc-521-private", + "recipient": "ecc-521-private", + "sender-public-key": "sender-material-public-key", + "recipient-public-key": "recipient-material-public-key", + "provider-id": "aws-raw-vectors-persistent-static ecc-521", + "ecc-curve": "ecc-521", + "schema": "static" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "91e68ec2-47a3-4cd6-89fe-bac3d000fe5e": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha512" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha512" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "b9581f8d-f366-46b6-99fc-adb07cb9430b": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha384" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha384" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "4cc74d41-6e53-4e32-a840-b75caa5f4649": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha512" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha512" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "95ced4bb-b1db-40e8-ae22-6ecd2d858c2d": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha1" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "4074c56c-2851-4489-a10e-0306ba71a1e5": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha384" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha384" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "e67c5a2e-4dc7-4569-bfb0-86ba52c02a57": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha256" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha256" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "917c13aa-c7ef-4784-adb8-141d7cffe1af": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha1" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "ab4bb575-c575-493e-b18e-2e2ca7149bd9": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "pkcs1", + "padding-hash": "sha1" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "pkcs1", + "padding-hash": "sha1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "a547cd44-69ce-49d7-91b4-0bd68635f992": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha384" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha384" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "5aef6610-b709-4e4a-99fd-1fc476c81570": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha1" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "7b790267-ea23-40ae-931e-8d99364cbfaa": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "pkcs1", + "padding-hash": "sha1" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "pkcs1", + "padding-hash": "sha1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "81cd43a0-5e0b-4e79-8d74-cfb9b85eaf8a": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha1" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "77a44d3e-e35a-46d4-a2e4-e3268a7a9d9c": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha384" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha384" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "d9abfcb5-7323-41fa-b4ed-1c629b7f7a4b": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha512" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha512" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "e154c35e-dd98-49ce-b86b-d8bc2f04f0ca": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha256" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha256" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "b1d32276-3a57-4175-8bd1-3ed005aa3786": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha512" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha512" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "8ce8b452-dc7e-4d96-90d7-299bf7db0618": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "pkcs1", + "padding-hash": "sha1" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "pkcs1", + "padding-hash": "sha1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "87d8939d-0af9-49ef-9548-45fbeca54b2d": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "pkcs1", + "padding-hash": "sha1" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "pkcs1", + "padding-hash": "sha1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "fdb2d31a-d63f-493a-a6c6-ee4388aff979": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha512" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha512" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "96d3d98a-67cc-4902-9d7a-e7d3bd6ab702": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha256" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha256" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "9fe2f7e0-158d-4f7a-b2f4-fc004ceb1bbc": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha1" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "fa3ccd71-b2b2-4c1d-b4c7-35e21863ca74": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha512" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha512" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "c863c6de-6d3f-421f-a7bf-f9658afd6e66": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "pkcs1", + "padding-hash": "sha1" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "pkcs1", + "padding-hash": "sha1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "0a18d3e3-c763-4223-8b1e-e0093c1b2d1e": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha1" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "4b88826f-3dba-4af0-ae35-114d08e385f2": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha512" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha512" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "44b2b321-2a1d-4921-a197-fbc063c77c79": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha256" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha256" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "5e909f7c-20e0-412a-8382-03958585e87d": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha384" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha384" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "b50e61fb-f013-4153-9956-ed7cc221c3ad": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha1" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "85cf2663-abfb-4e59-8d5b-c4073cb51b8a": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha384" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha384" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "e135d230-cbfc-4008-90d1-f0ae4d4c3b10": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha256" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha256" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "f07cedce-08c5-4bed-9dee-dcf4b64f8c54": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha384" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha384" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "67ca676c-cace-4c0d-8277-afe875ec1cde": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha1" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "afe1ddfd-c014-49ce-a7ea-e19281a5b961": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha384" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha384" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "4ea64804-34cb-474f-aa4b-b812b31c8cb5": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "pkcs1", + "padding-hash": "sha1" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "pkcs1", + "padding-hash": "sha1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "6e59eb40-8015-48ba-8ba4-9ffa5601761e": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha384" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha384" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "985e30bd-373c-4af1-8007-f7777252017c": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha512" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha512" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "775eab6a-aa74-4f41-a4b0-9835cdb0f81e": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha384" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha384" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "767ed029-a4a8-447a-bddb-e8e64e3251ef": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "pkcs1", + "padding-hash": "sha1" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "pkcs1", + "padding-hash": "sha1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "3cb8d400-0440-4fab-b00b-e694fab44dde": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha1" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "4b19adb7-0703-4031-a4b6-a16ed4d8e99c": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha512" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha512" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "0332ef72-2113-45ed-a256-514cf5511f9b": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha256" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha256" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "3d6ed6eb-572b-45fe-99af-4b6454160517": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha256" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha256" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "05d9a86c-e9d1-4329-9f63-192ccd7c1173": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "pkcs1", + "padding-hash": "sha1" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "pkcs1", + "padding-hash": "sha1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "734fec0f-5c15-4abf-8577-61b520f6c50a": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha1" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "dcdcc57b-6adc-4363-97ac-c0148b679656": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha384" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha384" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "2792eaff-8860-4390-aed6-3baa3007b3ec": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha512" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha512" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "825b2b61-d850-4dc3-882c-ff2e833e811b": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "pkcs1", + "padding-hash": "sha1" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "pkcs1", + "padding-hash": "sha1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "43df3313-84aa-48be-9f5f-877149003ff7": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha256" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha256" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "cd6c8213-f108-4c91-8753-cc36d54431ce": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha256" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha256" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "388bef6e-d67e-443b-8fce-528298510ccb": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha512" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha512" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "5b430538-0f10-4977-9046-70b726ec59dc": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha256" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha256" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "70898756-38d9-4244-bc00-8c84e6e24888": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha1" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "0950fa49-e069-443f-92f3-477492139966": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "pkcs1", + "padding-hash": "sha1" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "pkcs1", + "padding-hash": "sha1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "51ba6c1e-b374-4261-9fd1-4fbd75a4e89a": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "pkcs1", + "padding-hash": "sha1" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "pkcs1", + "padding-hash": "sha1" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "a51dd340-50cf-48d8-9d90-f1e8dfbc4007": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Generated RawRSA rsa-4096", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-public", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha256" + }, + "decryptKeyDescription": { + "type": "raw", + "key": "rsa-4096-private", + "provider-id": "aws-raw-vectors-persistent-rsa-4096", + "encryption-algorithm": "rsa", + "padding-algorithm": "oaep-mgf1", + "padding-hash": "sha256" + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "0a853ea7-b3f4-43e7-80de-615dcaf925da": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-128", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "f9de3075-d15a-4e93-8460-699444e9ddbf": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-128", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "a62dd8e3-3e92-4a9c-b732-f9f87283be1f": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-128", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "e02c0952-a7a6-47f7-9f24-02f2fcbd4b6d": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-128", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "9b1be8f5-3297-42d1-b4f6-bab26cff8e7c": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-128", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "2429c374-dcb6-4389-8c35-68340c56590c": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-128", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "d38ad837-7c22-4f6d-aa4b-00f9d3406d15": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-128", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "77b166c9-5a75-4950-b359-0a3523d912f1": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-128", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "40b8d507-7a7f-41ab-8515-12b6f1c1ae21": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-128", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "964a1929-18f5-473a-a3a1-e7232876240e": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-128", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "504ce983-0043-46bc-922b-c839a83afad1": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-128", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "dc077740-59bf-4d03-a115-fac07eec3fc8": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-128", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "6c638053-eb47-4ea7-887f-62e91fc9e23a": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-128", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "30d6385b-ebe3-4978-8645-5e6bc4d724eb": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-128", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "ab0c3aea-d6b1-4ae6-8dab-27c9c6b69737": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-128", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "cf802399-6834-42f8-9671-9ab4e87aebb9": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-128", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "ddd3b24a-ba21-4b4c-9e84-a4abc944b8bc": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-128", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "b2fbdb94-9fe2-4388-b5bd-3f96f7598191": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-128", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "beb3a31a-4c88-4a4b-8e36-6b01cd3eceb9": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-128", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "e6a6f4e1-605f-402b-9f51-c71044b156fb": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-128", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "2b376c5b-4a23-4a4e-8452-647ecb2ee96c": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-128", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "19e0b001-b1a1-4523-b401-dce9761e21ec": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-128", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "a0d0bc2e-9190-437a-b4b1-cca4ba010ce1": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-192", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "c8744ad7-006a-4de7-bb21-0f3ba714eb95": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-192", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "fa55a8c0-34d1-4105-827f-5315682d978d": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-192", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "5952970e-f1c1-496d-8550-f576f04d728e": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-192", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "d0977968-fa5e-4b7a-8f36-a2d8b0e2b909": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-192", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "91b4d77e-fed1-409f-9737-da291e2b4e29": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-192", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "54f2bbf1-e15d-44c2-a677-fde9e35a927c": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-192", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "0ec7157f-c9da-485b-af7b-9bb820c0fbdd": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-192", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "b87658c0-4bb5-4af6-a353-6824d964816a": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-192", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "8bd7118b-3f49-4f7d-8fdd-7ceecc23b3b9": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-192", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "83266851-e640-4dba-b704-ccf22aa89b2a": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-192", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "42570b65-ef8a-42f8-a251-56874173185f": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-192", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "d0417000-3465-440d-93cd-d74df0d4bacf": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-192", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "9260d09a-e3e8-4ca0-a6dc-51e2397d0aaf": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-192", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "ce4ccf2a-d2ff-40fd-8bdd-ad595e07de8c": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-192", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "acd35740-59fa-46cf-9d42-f2211457bc71": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-192", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "9617483e-5da9-4dc8-8100-1fd29b8a6f2e": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-192", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "84740ad9-dbeb-480e-a213-a2bbf620f693": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-192", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "77a072d8-13c6-4f5e-9e57-f73313b077bc": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-192", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "46216862-2126-45b6-8a9f-2c7a612abe0d": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-192", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "62c70007-7608-44c0-b8a7-b187b1ce1761": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-192", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "82a6d817-36c0-4f61-86b3-333941af71b3": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-192", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "ffce7be4-afc5-42f4-8c12-8ca6e0552b30": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-256", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "4430846f-7042-4c5a-aaa5-fcfae0eed3a4": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-256", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "e9512aa1-b249-4ae9-a5c9-4f46e83c1530": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-256", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "b44f9c71-6efb-45f6-b9b7-0e2cf3efdeee": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-256", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "746fc8ec-9bb2-42a6-89f4-95ce333a197d": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-256", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "4b114ee0-4146-47a0-8913-6f0aa748d25c": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-256", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "f4c76da2-6878-4fbf-8863-56bf7366921e": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-256", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "08532d71-eddf-423b-a2e3-bfaa531b88d1": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-256", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "e4e31b4b-ea96-44d0-add8-e8b70ad6dcf6": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-256", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "ce76a03d-8130-4807-be9d-aa3fc14641f2": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-256", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "c196f958-6a33-4cdb-a5c2-b4ba808b1d3f": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-256", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "6802ab17-c5a0-4ba1-8a9b-b3828774cd9a": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-256", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "497abaaa-1947-467c-8f9e-c20ed0009a3c": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-256", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "de9d4caf-ccff-4195-9892-ee51748fb5d1": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-256", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "444d9e60-1a74-41bb-bc34-46c93f3606c4": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-256", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "6d0a8329-9510-4033-8a70-c7e44b4f8a0f": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-256", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "95a5bd0a-05ec-495e-be3c-8d38ce3a61a6": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-256", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "48af8872-5770-4fc3-a0c7-758a2b9c2621": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-256", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "4976f5e1-437f-491e-8b7e-f3a08d08266b": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-256", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "55b4622c-23a5-42b7-a91a-feca08937d7c": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-256", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "d2343947-36d7-4642-9fcf-9094068ceb38": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-256", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "0e234567-ae29-46c0-813f-e31611cd5d33": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "MultiKeyring aes-256", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "decryptKeyDescription": { + "type": "multi-keyring", + "childKeyrings": [ + { + "type": "raw", + "key": "aes-128", + "provider-id": "aws-raw-vectors-persistent-aes-128", + "encryption-algorithm": "aes" + }, + { + "type": "raw", + "key": "aes-192", + "provider-id": "aws-raw-vectors-persistent-aes-192", + "encryption-algorithm": "aes" + } + ], + "generator": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + } + }, + "encryption-context": {}, + "reproduced-encryption-context": {} + } + }, + "65f83d70-c35b-4c50-8b29-3003177d3012": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a", + "b": "b" + } + } + }, + "f7f5a52d-7eff-48c8-aa03-8d79cf5fbc15": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "b": "b" + } + } + }, + "6d95140e-017f-4147-b893-0e59ad504664": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a", + "b" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a", + "b" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a", + "b": "b" + } + } + }, + "fcac1f98-9c73-4a67-a07e-131f23facdfd": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a", + "b": "b" + } + } + }, + "baeddf87-bde6-4800-9ad6-68833e5b8017": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "b": "b" + } + } + }, + "94b82bab-6bbf-4c6a-b835-38bb0ca262f9": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a", + "b": "b" + } + } + }, + "185f92c4-3fbc-41da-aed6-b62e0dc44266": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a" + } + } + }, + "b212098e-d70b-4163-a4ae-15556e5a5f3a": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a", + "b": "b" + } + } + }, + "ea2ea512-562b-4684-b679-786b2f7bbee1": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "b": "b" + } + } + }, + "60539970-9a9b-4ee5-86fd-157ca609ec7c": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a", + "b": "b" + } + } + }, + "8d2e6db2-2f0c-4ba8-a4ac-eaf8e25ed351": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "b": "b" + } + } + }, + "619f82fc-5ee3-4d2d-806c-86575466348c": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a", + "b": "b" + } + } + }, + "6d48b572-87f8-413b-9951-f98f2f5e203a": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "b": "b" + } + } + }, + "a3627723-8a44-4a9f-b56b-eb2ecaa9b526": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a", + "b" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a", + "b" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a", + "b": "b" + } + } + }, + "44cc16a3-fda4-45ef-9637-58b8dac2ffea": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a", + "b": "b" + } + } + }, + "ac738ce3-7bc0-47d7-aae2-7494cf443af5": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a" + } + } + }, + "2633166a-83fa-494e-b31d-4d07ba83af9f": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a", + "b": "b" + } + } + }, + "f3a0912b-8ef5-4ea5-8022-84722baf3a2d": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "b": "b" + } + } + }, + "dacb504b-cb29-4161-873a-8bde55b1a5a6": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a", + "b": "b" + } + } + }, + "94ade6ed-b3e6-4394-b6ce-ab3965847d5c": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a" + } + } + }, + "92cbadd2-fad1-481f-a0c4-17181b96414f": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a", + "b" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a", + "b" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a", + "b": "b" + } + } + }, + "5822acca-8af6-443f-bf44-82e26c9e4005": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a", + "b": "b" + } + } + }, + "ea9dc2dd-9ffc-4b81-a1b6-577329d4b213": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a" + } + } + }, + "c0cd310c-310e-4ca9-a8df-f85caf66ea36": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a", + "b": "b" + } + } + }, + "d9024a31-27ad-4bbf-ba7a-f7a46e8ba94f": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "b": "b" + } + } + }, + "32f698ac-973c-4648-adb3-2e76576e36f4": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a", + "b": "b" + } + } + }, + "3afadbc7-6632-4cfc-9205-8f54fa235a9a": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a" + } + } + }, + "1ff589ea-e8b3-4c63-b956-f928e6acc374": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a", + "b" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a", + "b" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a", + "b": "b" + } + } + }, + "8c25df63-8af6-4b2e-b146-107233ab6ded": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0178", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a", + "b" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a", + "b" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a", + "b": "b" + } + } + }, + "f0ead523-0b70-4e7d-8894-d83c477e9d42": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a", + "b" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a", + "b" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a", + "b": "b" + } + } + }, + "5a2c2674-b908-4969-a65d-6b6a1983b171": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a", + "b": "b" + } + } + }, + "5c78d313-071b-42c2-8268-ec3b1e5098c9": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a" + } + } + }, + "004f2284-6afc-47a4-aba4-1746c1db3d92": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a", + "b": "b" + } + } + }, + "7bbdc163-9c0a-4bed-abbd-1e85178891e5": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "b": "b" + } + } + }, + "fe7f6ca4-2508-46e0-9e7f-817d14f2f57c": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a", + "b" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a", + "b" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a", + "b": "b" + } + } + }, + "6159e014-f361-4120-864b-de1aaef57b86": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a", + "b": "b" + } + } + }, + "0f01b2df-31eb-4be0-b1f3-65dc5dd40ac9": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "b": "b" + } + } + }, + "fb8a639b-089a-41fa-ad9a-fff057a28f3f": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a", + "b": "b" + } + } + }, + "7db7760e-6539-45dc-800d-ca9a06638c9a": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0014", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a" + } + } + }, + "9c09af99-4848-4e7f-b4c3-cafc69904dfe": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0078", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a", + "b" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a", + "b" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a", + "b": "b" + } + } + }, + "47c41f84-b492-411f-bd31-8dc7954226ea": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a", + "b": "b" + } + } + }, + "37157c00-a695-45fa-ac51-aad056f94076": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a" + } + } + }, + "d506bda6-f9e3-4549-a99e-2cbdc91d2a9b": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a", + "b": "b" + } + } + }, + "5f91ca48-e9c1-4c54-87c1-fb5d0b5d0ce6": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0346", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "b": "b" + } + } + }, + "69bf6050-fbc8-4586-8388-d045f4cf5b6c": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a", + "b": "b" + } + } + }, + "97b259cd-030d-429d-8738-f732c311951b": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0578", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a" + } + } + }, + "b3d1de6d-d10b-4080-8c2f-7e75e7eba20a": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a", + "b": "b" + } + } + }, + "783a224f-bf0d-4b81-88ed-01168ecb854f": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0478", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a" + } + } + }, + "9fa71404-f229-4e78-b3cd-287d08e348ce": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a", + "b": "b" + } + } + }, + "6f5a4802-9222-4b95-82aa-2d0f2e2ce792": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0146", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a" + } + } + }, + "c5041819-17f0-4363-b49c-b4e23419e092": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0046", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a", + "b" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a", + "b" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a", + "b": "b" + } + } + }, + "ec1299bd-7c83-444a-abb0-640b8c632d56": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a", + "b": "b" + } + } + }, + "90d12706-3ca8-47c4-b4e2-8cacf8356f24": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0214", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "b" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "b": "b" + } + } + }, + "5e802a6a-eda8-4d01-9c5d-0eb214b1eaee": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0114", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a", + "b" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a", + "b" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a", + "b": "b" + } + } + }, + "d54b5534-316d-446d-a56a-a3676903e6ba": { + "encryption-scenario": { + "type": "positive-esdk", + "plaintext": "small", + "description": "Success testing requiredEncryptionContextKeys/reproducedEncryptionContext", + "algorithmSuiteId": "0378", + "frame-size": 512, + "encryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a", + "b" + ] + }, + "decryptKeyDescription": { + "type": "required-encryption-context-cmm", + "underlying": { + "type": "raw", + "key": "aes-256", + "provider-id": "aws-raw-vectors-persistent-aes-256", + "encryption-algorithm": "aes" + }, + "requiredEncryptionContextKeys": [ + "a", + "b" + ] + }, + "encryption-context": { + "a": "a", + "b": "b" + }, + "reproduced-encryption-context": { + "a": "a", + "b": "b" + } + } + } + } +} \ No newline at end of file diff --git a/TestVectors/dafny/TestVectors/test/keys.json b/TestVectors/dafny/TestVectors/test/keys.json new file mode 100644 index 000000000..27ee2cd6a --- /dev/null +++ b/TestVectors/dafny/TestVectors/test/keys.json @@ -0,0 +1,220 @@ +{ + "manifest": { + "type": "keys", + "version": 2 + }, + "keys": { + "no-plaintext-data-key": { + "type": "static-material", + "algorithmSuiteId": "0014", + "encryptionContext": {}, + "encryptedDataKeys": [ + { + "keyProviderId": "static-material-keyring", + "keyProviderInfo": "c3RhdGljLXBsYWludGV4dA==", + "ciphertext": "AQEBAQEBAQEBAQEBAQEBAQ==" + } + ], + "requiredEncryptionContextKeys": [] + }, + "static-plaintext-data-key": { + "type": "static-material", + "algorithmSuiteId": "0014", + "encryptionContext": {}, + "encryptedDataKeys": [ + { + "keyProviderId": "static-material-keyring", + "keyProviderInfo": "c3RhdGljLXBsYWludGV4dA==", + "ciphertext": "AQEBAQEBAQEBAQEBAQEBAQ==" + } + ], + "requiredEncryptionContextKeys": [], + "plaintextDataKey": "AQEBAQEBAQEBAQEBAQEBAQ==" + }, + "static-cashable-plaintext-data-key": { + "type": "static-material", + "algorithmSuiteId": "0478", + "encryptionContext": {}, + "encryptedDataKeys": [ + { + "keyProviderId": "static-material-keyring", + "keyProviderInfo": "c3RhdGljLXBsYWludGV4dA==", + "ciphertext": "AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE=" + } + ], + "requiredEncryptionContextKeys": [], + "plaintextDataKey": "AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE=" + }, + "static-branch-key-1": { + "type": "static-branch-key", + "encrypt": true, + "decrypt": true, + "key-id": "bd3842ff-3076-4092-9918-4395730050b8", + "branchKeyVersion": "e9ce18a3-edb5-4272-9f86-1cacb7997ff6", + "branchKey": "tJwf65epYvUt5HMiQsl/6jlvLxS0tgdjIuvFy2BLIwg=", + "beaconKey": "RJiXTa/rJf+CLHAVyE652v3uhKreOuYjV+a7SVOugow=" + }, + "aes-128": { + "encrypt": true, + "decrypt": true, + "algorithm": "aes", + "type": "symmetric", + "bits": 128, + "encoding": "base64", + "material": "AAECAwQFBgcICRAREhMUFQ==", + "key-id": "aes-128" + }, + "aes-192": { + "encrypt": true, + "decrypt": true, + "algorithm": "aes", + "type": "symmetric", + "bits": 192, + "encoding": "base64", + "material": "AAECAwQFBgcICRAREhMUFRYXGBkgISIj", + "key-id": "aes-192" + }, + "aes-256": { + "encrypt": true, + "decrypt": true, + "algorithm": "aes", + "type": "symmetric", + "bits": 256, + "encoding": "base64", + "material": "AAECAwQFBgcICRAREhMUFRYXGBkgISIjJCUmJygpMDE=", + "key-id": "aes-256" + }, + "rsa-4096-private": { + "encrypt": true, + "decrypt": true, + "algorithm": "rsa", + "type": "private", + "bits": 4096, + "encoding": "pem", + "material": "-----BEGIN PRIVATE KEY-----\nMIIJQgIBADANBgkqhkiG9w0BAQEFAASCCSwwggkoAgEAAoICAQCztGg1gQ8AjCzz\n1VX6StqtW//jBt2ZQBoApaBa7FmLmdr0YlKaeEKSrItGbvA9tBjgsKhrn8gxTGQc\nuxgM92651jRCbQZyjE6W8kodijhGMXsfKJLfgPp2/I7gZ3dqrSZkejFIYLFb/uF/\nTfAQzNyJUldYdeFojSUPqevMgSAusTgv7dXYt4BCO9mxMp35tgyp5k4vazKJVUgB\nTw87AAYZUGugmi94Wb9JSnqUKI3QzaRN7JADZrHdBO1lIBryfCsjtTnZc7NWZ0yJ\nwmzLY+C5b3y17cy44N0rbjI2QciRhqZ4/9SZ/9ImyFQlB3lr9NSndcT4eE5YC6bH\nba0gOUK9lLXVy6TZ+nRZ4dSddoLX03mpYp+8cQpK6DO3L/PeUY/si0WGsXZfWokd\n4ACwvXWSOjotzjwqwTW8q9udbhUvIHfB02JW+ZQ07b209fBpHRDkZuveOTedTN2Q\nQei4dZDjWW5s4cIIE3dXXeaH8yC02ERIeN+aY6eHngSsP2xoDV3sKNN/yDbCqaMS\nq8ZJbo2rvOFxZHa2nWiV+VLugfO6Xj8jeGeR8vopvbEBZZpAq+Dea2xjY4+XMUQ/\nS1HlRwc9+nkJ5LVfODuE3q9EgJbqbiXe7YckWV3ZqQMybW+dLPxEJs9buOntgHFS\nRYmbKky0bti/ZoZlcZtS0zyjVxlqsQIDAQABAoICAEr3m/GWIXgNAkPGX9PGnmtr\n0dgX6SIhh7d1YOwNZV3DlYAV9HfUa5Fcwc1kQny7QRWbHOepBI7sW2dQ9buTDXIh\nVjPP37yxo6d89EZWfxtpUP+yoXL0D4jL257qCvtJuJZ6E00qaVMDhXbiQKABlo8C\n9sVEiABhwXBDZsctpwtTiykTgv6hrrPy2+H8R8MAm0/VcBCAG9kG5r8FCEmIvQKa\ndgvNxrfiWNZuZ6yfLmpJH54SbhG9Kb4WbCKfvh4ihqyi0btRdSM6fMeLgG9o/zrc\ns54B0kHeLOYNVo0j7FQpZBFeSIbmHfln4RKBh7ntrTke/Ejbh3NbiPvxWSP0P067\nSYWPkQpip2q0ION81wSQZ1haP2GewFFu4IEjG3DlqqpKKGLqXrmjMufnildVFpBx\nir+MgvgQfEBoGEx0aElyO7QuRYaEiXeb/BhMZeC5O65YhJrWSuTVizh3xgJWjgfV\naYwYgxN8SBXBhXLIVvnPhadTqsW1C/aevLOk110eSFWcHf+FCK781ykIzcpXoRGX\nOwWcZzC/fmSABS0yH56ow+I0tjdLIEEMhoa4/kkamioHOJ4yyB+W1DO6/DnMyQlx\ng7y2WsAaIEBoWUARy776k70xPPMtYAxzFXI9KhqRVrPfeaRZ+ojeyLyr3GQGyyoo\ncuGRdMUblsmODv4ixmOxAoIBAQDvkznvVYNdP3Eg5vQeLm/qsP6dLejLijBLeq9i\n7DZH2gRpKcflXZxCkRjsKDDE+fgDcBYEp2zYfRIVvgrxlTQZdaSG+GoDcbjbNQn3\ndjCCtOOACioN/vg2zFlX4Bs6Q+NaV7g5qP5SUaxUBjuHLe7Nc+ZkyheMHuNYVLvk\nHL/IoWyANpZYjMUU3xMbL/J29Gz7CPGr8Si28TihAHGfcNgn8S04OQZhTX+bU805\n/+7B4XW47Mthg/u7hlqFl+YIAaSJYvWkEaVP1A9I7Ve0aMDSMWwzTg9cle2uVaL3\n+PTzWY5coBlHKjqAg9ufhYSDhAqBd/JOSlv8RwcA3PDXJ6C/AoIBAQDABmXXYQky\n7phExXBvkLtJt2TBGjjwulf4R8TC6W5F51jJuoqY/mTqYcLcOn2nYGVwoFvPsy/Q\nCTjfODwJBXzbloXtYFR3PWAeL1Y6+7Cm+koMWIPJyVbD5Fzm+gZStM0GwP8FhDt2\nWt8fWEyXmoLdAy6RAwiEmCagEh8o+13oBfwnBllbz7TxaErsUuR+XVgl/iHwztdv\ncdJKyRgaFfWSh9aiO7EMV2rBGWsoX09SRvprPFAGx8Ffm7YcqIk34QXsQyc45Dyn\nCwkvypxHoaB3ot/48FeFm9IubApb/ctv+EgkBfL4S4bdwRXS1rt+0+QihBoFyP2o\nJ91cdm4hEWCPAoIBAQC6l11hFaYZo0bWDGsHcr2B+dZkzxPoKznQH76n+jeQoLIc\nwgjJkK4afm39yJOrZtEOxGaxu0CgIFFMk9ZsL/wC9EhvQt02z4TdXiLkFK5VrtMd\nr0zv16y06VWQhqBOMf/KJlX6uq9RqADi9HO6pkC+zc0cpPXQEWKaMmygju+kMG2U\nMm/IieMZjWCRJTfgBCE5J88qTsqaKagkZXcZakdAXKwOhQN+F2EStiM6UCZB5PrO\nS8dfrO8ML+ki8Zqck8L1qhiNb5zkXtKExy4u+gNr8khGcT6vqqoSxOoH3mPRgOfL\nJnppne8wlwIf7Vq3H8ka6zPSXEHma999gZcmy9t7AoIBAGbQhiLl79j3a0wXMvZp\nVf5IVYgXFDnAbG2hb7a06bhAAIgyexcjzsC4C2+DWdgOgwHkuoPg+062QV8zauGh\nsJKaa6cHlvIpSJeg3NjD/nfJN3CYzCd0yCIm2Z9Ka6xI5iYhm+pGPNhIG4Na8deS\ngVL46yv1pc/o73VxfoGg5UzgN3xlp97Cva0sHEGguHr4W8Qr59xZw3wGQ4SLW35M\nF6qXVNKUh12GSMCPbZK2RXBWVKqqJmca+WzJoJ6DlsT2lQdFhXCus9L007xlDXxF\nC/hCmw1dEl+VaNo2Ou26W/zdwTKYhNlxBwsg4SB8nPNxXIsmlBBY54froFhriNfn\nx/0CggEAUzz+VMtjoEWw2HSHLOXrO4EmwJniNgiiwfX3DfZE4tMNZgqZwLkq67ns\nT0n3b0XfAOOkLgMZrUoOxPHkxFeyLLf7pAEJe7QNB+Qilw8e2zVqtiJrRk6uDIGJ\nSv+yM52zkImZAe2jOdU3KeUZxSMmb5vIoiPBm+tb2WupAg3YdpKn1/jWTpVmV/+G\nUtTLVE6YpAyFp1gMxhutE9vfIS94ek+vt03AoEOlltt6hqZfv3xmY8vGuAjlnj12\nzHaq+fhCRPsbsZkzJ9nIVdXYnNIEGtMGNnxax7tYRej/UXqyazbxHiJ0iPF4PeDn\ndzxtGxpeTBi+KhKlca8SlCdCqYwG6Q==\n-----END PRIVATE KEY-----", + "key-id": "rsa-4096" + }, + "rsa-4096-public": { + "encrypt": true, + "decrypt": false, + "algorithm": "rsa", + "type": "public", + "bits": 4096, + "encoding": "pem", + "material": "-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAs7RoNYEPAIws89VV+kra\nrVv/4wbdmUAaAKWgWuxZi5na9GJSmnhCkqyLRm7wPbQY4LCoa5/IMUxkHLsYDPdu\nudY0Qm0GcoxOlvJKHYo4RjF7HyiS34D6dvyO4Gd3aq0mZHoxSGCxW/7hf03wEMzc\niVJXWHXhaI0lD6nrzIEgLrE4L+3V2LeAQjvZsTKd+bYMqeZOL2syiVVIAU8POwAG\nGVBroJoveFm/SUp6lCiN0M2kTeyQA2ax3QTtZSAa8nwrI7U52XOzVmdMicJsy2Pg\nuW98te3MuODdK24yNkHIkYameP/Umf/SJshUJQd5a/TUp3XE+HhOWAumx22tIDlC\nvZS11cuk2fp0WeHUnXaC19N5qWKfvHEKSugzty/z3lGP7ItFhrF2X1qJHeAAsL11\nkjo6Lc48KsE1vKvbnW4VLyB3wdNiVvmUNO29tPXwaR0Q5Gbr3jk3nUzdkEHouHWQ\n41lubOHCCBN3V13mh/MgtNhESHjfmmOnh54ErD9saA1d7CjTf8g2wqmjEqvGSW6N\nq7zhcWR2tp1olflS7oHzul4/I3hnkfL6Kb2xAWWaQKvg3mtsY2OPlzFEP0tR5UcH\nPfp5CeS1Xzg7hN6vRICW6m4l3u2HJFld2akDMm1vnSz8RCbPW7jp7YBxUkWJmypM\ntG7Yv2aGZXGbUtM8o1cZarECAwEAAQ==\n-----END PUBLIC KEY-----", + "key-id": "rsa-4096" + }, + "ecc-256-private":{ + "encrypt": true, + "decrypt": true, + "algorithm": "ecdh", + "type": "ecc-private", + "bits": 256, + "encoding": "pem", + "sender-material": "-----BEGIN PRIVATE KEY-----\nMIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgw+7YSKEOEAh8/DFZ\n22oSTm/D3jo4nH5tN48IUp0WjyuhRANCAASnUgx7SrlHhPIn3McZfc3cEIs8+XFf\n7JvhcuV1wWELGZ8AjuwnKjE0ielEwSY5HYzWCF773FvJaWGYGYGhSba8\n-----END PRIVATE KEY-----", + "recipient-material": "-----BEGIN PRIVATE KEY-----\nMIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgYvB/1CVSgfQDrE6A\nDz7pdgxcOb+AHnsaI4LQMY6s8JChRANCAARYxf/AeERu2Z3VtDokplDs/atuGIbW\n7IGhknbK2MP+NV/mbcaxl8Xki9FegBslxCbM66KaoOZR1bCxPpGub2aS\n-----END PRIVATE KEY-----", + "public-key-encoding": "base64-der", + "sender-material-public-key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEp1IMe0q5R4TyJ9zHGX3N3BCLPPlxX+yb4XLldcFhCxmfAI7sJyoxNInpRMEmOR2M1ghe+9xbyWlhmBmBoUm2vA==", + "recipient-material-public-key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWMX/wHhEbtmd1bQ6JKZQ7P2rbhiG1uyBoZJ2ytjD/jVf5m3GsZfF5IvRXoAbJcQmzOuimqDmUdWwsT6Rrm9mkg==", + "key-id": "ecc-256" + }, + "ecc-384-private":{ + "encrypt": true, + "decrypt": true, + "algorithm": "ecdh", + "type": "ecc-private", + "bits": 384, + "encoding": "pem", + "sender-material": "-----BEGIN PRIVATE KEY-----\nMIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDAx0jhFAVQX2zykSLO/\n3VvDDaQJspek3404TtDZupcxi2rThfnxh96u8CYD6XfHikehZANiAAR2W/Cc8slJ\ngYSGi3e+38UUW6dFi1mJBNEZEbJ4vljgEzBo7FecTsCOQH8Zu2nX3eQpuboD8Fb7\nARpqq7rug5jKBMQLUbvridjLBRLuFsfaLpZ07ih4/+VduqQom7D31ik=\n-----END PRIVATE KEY-----", + "recipient-material": "-----BEGIN PRIVATE KEY-----\nMIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDALwMcT5K2IOUK5Ww5o\nqYrYLzKHuAvFs0VLuKvJOCmWa3NK2WXtUIJ2fPYzp2Y9oTShZANiAATXUn2WMiLB\nbf665ikArOEAOFgruhqAwlxy58BP42nodBZFFf4L7cy7vPLpasp3fFroN57tYfjy\nXL5Wc0vb+xJaTZLBTU/tRGvtjHH0hQgMib2ch6akUJAT6zuMgNNdd7A=\n-----END PRIVATE KEY-----", + "public-key-encoding": "base64-der", + "sender-material-public-key": "MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEdlvwnPLJSYGEhot3vt/FFFunRYtZiQTRGRGyeL5Y4BMwaOxXnE7AjkB/Gbtp193kKbm6A/BW+wEaaqu67oOYygTEC1G764nYywUS7hbH2i6WdO4oeP/lXbqkKJuw99Yp", + "recipient-material-public-key": "MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE11J9ljIiwW3+uuYpAKzhADhYK7oagMJccufAT+Np6HQWRRX+C+3Mu7zy6WrKd3xa6Dee7WH48ly+VnNL2/sSWk2SwU1P7URr7Yxx9IUIDIm9nIempFCQE+s7jIDTXXew", + "key-id": "ecc-384" + }, + "ecc-521-private":{ + "encrypt": true, + "decrypt": true, + "algorithm": "ecdh", + "type": "ecc-private", + "bits": 521, + "encoding": "pem", + "sender-material": "-----BEGIN PRIVATE KEY-----\nMIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIANn8j3pIu1wiwkz7z\niPKuqj2MEVWKe/UW/8NEtvD9tKQmMlAzwY/QN93k+0TNlXpvJTUvjI2NZDKNoQ2b\n0B44YfyhgYkDgYYABAHfgnF9LoYBRWwXKKEFQa+Xfg+ztDRdTVTqNZ8roUYmNvLL\nLz2F8oEOhDbMJZ5r1B1C9w5uJqeF6tE8a3yzm47R/wAs0k6dY3wfDKD013Wnn+6e\nNw1mtrvTi6+Pej/ukYOuCjCwm8B0AvxBzdHk8Q/nCcspO9pIsRl/I4qNz4tPaGjJ\nTA==\n-----END PRIVATE KEY-----", + "recipient-material": "-----BEGIN PRIVATE KEY-----\nMIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIBjhdIxb49QXi4OsOH\n5PNWnp/KePiuICqC+fxJJ6ceUgPr5SMlLxhHcfHSVZBCkGLP0Rjd1D9gi7Va1oxe\nIHmWRu2hgYkDgYYABAAmg0dilFc6FiO9OE8t1el92KdPo9WYu1hXYnjGYT7OuGj3\nbD9lr0KMNCm3wTPCiLjPb4Iqnk+g0SgrsQ4NvU7nygFBlgz8xXLzIXPqVICthcHX\nRWRB8HnXmyzeF0iCs12F/6vYn/uZfxp3IV/KCR4LwSzbiFzxsV9GYoCoUE30LDVb\nXg==\n-----END PRIVATE KEY-----", + "public-key-encoding": "base64-der", + "sender-material-public-key": "MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQB34JxfS6GAUVsFyihBUGvl34Ps7Q0XU1U6jWfK6FGJjbyyy89hfKBDoQ2zCWea9QdQvcObianherRPGt8s5uO0f8ALNJOnWN8Hwyg9Nd1p5/unjcNZra704uvj3o/7pGDrgowsJvAdAL8Qc3R5PEP5wnLKTvaSLEZfyOKjc+LT2hoyUw=", + "recipient-material-public-key": "MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQAJoNHYpRXOhYjvThPLdXpfdinT6PVmLtYV2J4xmE+zrho92w/Za9CjDQpt8Ezwoi4z2+CKp5PoNEoK7EODb1O58oBQZYM/MVy8yFz6lSArYXB10VkQfB515ss3hdIgrNdhf+r2J/7mX8adyFfygkeC8Es24hc8bFfRmKAqFBN9Cw1W14=", + "key-id": "ecc-521" + }, + "us-west-2-decryptable": { + "encrypt": true, + "decrypt": true, + "type": "aws-kms", + "key-id": "arn:aws:kms:us-west-2:658956600833:key/b3537ef1-d8dc-4780-9f5a-55776cbb2f7f" + }, + "us-west-2-encrypt-only": { + "encrypt": true, + "decrypt": false, + "type": "aws-kms", + "key-id": "arn:aws:kms:us-west-2:658956600833:key/590fd781-ddde-4036-abec-3e1ab5a5d2ad" + }, + "us-west-2-mrk": { + "encrypt": true, + "decrypt": true, + "type": "aws-kms", + "key-id": "arn:aws:kms:us-west-2:658956600833:key/mrk-80bd8ecdcd4342aebd84b7dc9da498a7" + }, + "us-east-1-mrk": { + "encrypt": true, + "decrypt": true, + "type": "aws-kms", + "key-id": "arn:aws:kms:us-east-1:658956600833:key/mrk-80bd8ecdcd4342aebd84b7dc9da498a7" + }, + "us-west-2-rsa-mrk": { + "encrypt": true, + "decrypt": true, + "algorithm": "rsa", + "type": "aws-kms-rsa", + "key-id": "arn:aws:kms:us-west-2:370957321024:key/mrk-63d386cb70614ea59b32ad65c9315297", + "bits": 2048, + "encoding": "pem", + "material": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA27Uc/fBaMVhxCE/SpCMQ\noSBRSzQJw+o2hBaA+FiPGtiJ/aPy7sn18aCkelaSj4kwoC79b/arNHlkjc7OJFsN\n/GoFKgNvaiY4lOeJqEiWQGSSgHtsJLdbO2u4OOSxh8qIRAMKbMgQDVX4FR/PLKeK\nfc2aCDvcNSpAM++8NlNmv7+xQBJydr5ce91eISbHkFRkK3/bAM+1iddupoRw4Wo2\nr3avzrg5xBHmzR7u1FTab22Op3Hgb2dBLZH43wNKAceVwKqKA8UNAxashFON7xK9\nyy4kfOL0Z/nhxRKe4jRZ/5v508qIzgzCksYy7Y3QbMejAtiYnr7s5/d5KWw0swou\ntwIDAQAB\n-----END PUBLIC KEY-----" + }, + "us-west-2-256-ecc": { + "encrypt": true, + "decrypt": true, + "algorithm": "ecdh", + "type": "aws-kms-ecdh", + "sender-material": "arn:aws:kms:us-west-2:370957321024:key/eabdf483-6be2-4d2d-8ee4-8c2583d416e9", + "recipient-material": "arn:aws:kms:us-west-2:370957321024:key/0265c8e9-5b6a-4055-8f70-63719e09fda5", + "encoding": "base64-der", + "sender-material-public-key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE18m54QsLUnhWU7gT8hkAceNbZ/WBGNUUSPCeIKqOyX5psiqyC1TXPOJXqKKaVv5Mg91WV9UjpboblOhNU35nRw==", + "recipient-material-public-key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE9istdPCuX9nF8EmA4tioe/k0TCa2M9VeBW1N9n0sxPA6uPVOfLtE4+KuYxAGT0dYoK6CY93nowUy1yS+R7A+wA==", + "key-id": "ecc-256" + }, + "us-west-2-384-ecc": { + "encrypt": true, + "decrypt": true, + "algorithm": "ecdh", + "type": "aws-kms-ecdh", + "sender-material": "arn:aws:kms:us-west-2:370957321024:key/7f35a704-f4fb-469d-98b1-62a1fa2cc44e", + "recipient-material": "arn:aws:kms:us-west-2:370957321024:key/29f0bef9-1677-4e74-b67e-acefab1295ff", + "encoding": "base64-der", + "sender-material-public-key": "MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEfQ0OHFvwskFVjQwfqV7jpo62I6uyGY+5SPRZb6CuJ96bVreLZXh485BcPv09O/DWnpTBm8LL+YcfsqM3ECvi2ee3bDGpH6xIdr28uvyG75t5wqBjYYtZQFDf/ydfG9mm", + "recipient-material-public-key": "MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEWgGNWQ+vEwlMxyMQkSsOAYGfT6IlgEkcanEOSjbeEpEnh8JHEiBHQ6QaROxJ7c3nEkbjbi0m+7ejBEGtkiqaY5Dsv5u1iV4fc/2v1RzPba1ZtudEmM16Eyy9LHswdJ7v", + "key-id": "ecc-384" + }, + "us-west-2-521-ecc": { + "encrypt": true, + "decrypt": true, + "algorithm": "ecdh", + "type": "aws-kms-ecdh", + "sender-material": "arn:aws:kms:us-west-2:370957321024:key/41b502e3-cc9d-442f-bd7b-d67faed0f22e", + "recipient-material": "arn:aws:kms:us-west-2:370957321024:key/c45f1043-53bb-4f37-adc5-4d25d4a84f9d", + "encoding": "base64-der", + "sender-material-public-key": "MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQAz86qnfp3s0cl+73PQhlUstfdg9EZDA/jtLjBTWYp/1EB7RHNm8q5hMg5kBfjRDUFhbRBMlUV1xBOTgqzoSWj4oAABnQKiXXGGyu6PMN4D9nVMDsOpJ1pWU7rQexWDahBrK+5hx3beFXUpvvFRQrGAt2icUXm18VO6Qwbp0da9jyGDSY=", + "recipient-material-public-key": "MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQAxLxcjtYfqc4+4oJZY0gGv2Ehu++CnVFea6uwXgEgLifq4eDSSVmQYvU8majsufpBXQwVjnDlQ7pGRw1j6K4FaLAAgYuMrmrwKtx/ZZtkbXzCwrqJY+sfCk8U5m89DX331cdBAhR2uVSPL2d5hp8up5v+EBpNArtdC5lZMx2ZrwKKYuQ=", + "key-id": "ecc-521" + } + } +} diff --git a/TestVectors/project.properties b/TestVectors/project.properties new file mode 100644 index 000000000..f5e8cdf0b --- /dev/null +++ b/TestVectors/project.properties @@ -0,0 +1,4 @@ +# This file stores the top level dafny version information. +# All elements of the project need to agree on this version. +dafnyVersion=4.8.1 +dafnyRuntimeJavaVersion=4.8.1 diff --git a/TestVectors/runtimes/java/.gitattributes b/TestVectors/runtimes/java/.gitattributes new file mode 100644 index 000000000..097f9f98d --- /dev/null +++ b/TestVectors/runtimes/java/.gitattributes @@ -0,0 +1,9 @@ +# +# https://help.github.com/articles/dealing-with-line-endings/ +# +# Linux start script should use lf +/gradlew text eol=lf + +# These are Windows script files and should use crlf +*.bat text eol=crlf + diff --git a/TestVectors/runtimes/java/.gitignore b/TestVectors/runtimes/java/.gitignore new file mode 100644 index 000000000..3eb69ad71 --- /dev/null +++ b/TestVectors/runtimes/java/.gitignore @@ -0,0 +1,21 @@ +# Ignore Gradle project-specific cache directory +.gradle +# For TestMPL, the build.gradle.kts define's the gradle wrapper version. +# This prevents having ANOTHER copy of gradle in the repo +gradlew +gradlew.bat +gradle/wrapper/gradle-wrapper.jar + +# Ignore Gradle build output directory +build + +# JetBrains +.idea/* +*.iml + +# Mac OS X +.DS_Store + +# Dafny Generated Java +src/main/dafny-generated/ +src/test/dafny-generated/ diff --git a/TestVectors/runtimes/java/build.gradle.kts b/TestVectors/runtimes/java/build.gradle.kts new file mode 100644 index 000000000..449254ba5 --- /dev/null +++ b/TestVectors/runtimes/java/build.gradle.kts @@ -0,0 +1,64 @@ +tasks.wrapper { + gradleVersion = "7.6" +} + +plugins { + `java-library` + `maven-publish` + `application` +} + +group = "software.amazon.cryptography" +version = "1.0.0-SNAPSHOT" +description = "AwsEncryptionSDKJavaTestVectors" + +java { + toolchain.languageVersion.set(JavaLanguageVersion.of(8)) + sourceSets["main"].java { + srcDir("src/main/java") + srcDir("src/main/dafny-generated") + srcDir("src/main/smithy-generated") + } + sourceSets["test"].java { + srcDir("src/test/dafny-generated") + srcDir("src/test/java") + } +} + +repositories { + // Use Maven Central for resolving dependencies. + mavenCentral() + mavenLocal() +} +dependencies { + implementation("org.dafny:DafnyRuntime:4.8.0") + implementation("software.amazon.smithy.dafny:conversion:0.1") + implementation("software.amazon.cryptography:aws-cryptographic-material-providers:1.7.0") + implementation("software.amazon.cryptography:TestAwsCryptographicMaterialProviders:1.7.2-SNAPSHOT") + implementation("software.amazon.cryptography:aws-encryption-sdk:1.0.0-SNAPSHOT") + implementation("com.amazonaws:aws-encryption-sdk-java:3.0.1") + implementation(platform("software.amazon.awssdk:bom:2.25.1")) + implementation("software.amazon.awssdk:dynamodb") + implementation("software.amazon.awssdk:dynamodb-enhanced") + implementation("software.amazon.awssdk:kms") +} + +tasks.register("runTests") { + dependsOn("copyKeysJSON") + mainClass.set("TestsFromDafny") + classpath = sourceSets["test"].runtimeClasspath +} + +tasks.register("copyKeysJSON") { + from(layout.projectDirectory.file("../../dafny/TestVectors/test/keys.json")) + into(layout.projectDirectory.dir("dafny/TestVectors/test")) +} + +tasks.register("copyKeysJSONCurr") { + from(layout.projectDirectory.file("../../dafny/TestVectors/test/keys.json")) + into(layout.projectDirectory.dir(".")) +} + +application { + mainClass.set("ImplementationFromDafny") +} diff --git a/TestVectors/runtimes/java/gradle/wrapper/gradle-wrapper.properties b/TestVectors/runtimes/java/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 000000000..c7d437bbb --- /dev/null +++ b/TestVectors/runtimes/java/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.4-bin.zip +networkTimeout=10000 +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/TestVectors/runtimes/java/settings.gradle.kts b/TestVectors/runtimes/java/settings.gradle.kts new file mode 100644 index 000000000..55f998b34 --- /dev/null +++ b/TestVectors/runtimes/java/settings.gradle.kts @@ -0,0 +1,11 @@ +/* + * This file was generated by the Gradle 'init' task. + * + * The settings file is used to specify which projects to include in your build. + * + * Detailed information about configuring a multi-project build in Gradle can be found + * in the user manual at https://docs.gradle.org/7.6.4/userguide/multi_project_builds.html + */ + +rootProject.name = "TestVectors" +include("lib") diff --git a/TestVectors/runtimes/java/src/main/java/software/amazon/cryptography/encryptionsdk/internaldafny/wrapped/__default.java b/TestVectors/runtimes/java/src/main/java/software/amazon/cryptography/encryptionsdk/internaldafny/wrapped/__default.java new file mode 100644 index 000000000..4243b5842 --- /dev/null +++ b/TestVectors/runtimes/java/src/main/java/software/amazon/cryptography/encryptionsdk/internaldafny/wrapped/__default.java @@ -0,0 +1,54 @@ +package software.amazon.cryptography.encryptionsdk.internaldafny.wrapped; + +import Wrappers_Compile.Result; +import com.amazonaws.encryptionsdk.AwsCrypto; +import com.amazonaws.encryptionsdk.CommitmentPolicy; +import com.amazonaws.encryptionsdk.CryptoAlgorithm; +import software.amazon.cryptography.encryptionsdk.ToNative; +import software.amazon.cryptography.encryptionsdk.internaldafny.types.AwsEncryptionSdkConfig; +import software.amazon.cryptography.encryptionsdk.internaldafny.types.IAwsEncryptionSdkClient; +import software.amazon.cryptography.encryptionsdk.internaldafny.types.Error; +import software.amazon.cryptography.encryptionsdk.model.NetV4_0_0_RetryPolicy; +import software.amazon.cryptography.encryptionsdk.wrapped.TestESDK; +import software.amazon.cryptography.materialproviders.model.ESDKCommitmentPolicy; + +public class __default extends _ExternBase___default { + + + public static Result WrappedESDK(AwsEncryptionSdkConfig config) { + software.amazon.cryptography.encryptionsdk.model.AwsEncryptionSdkConfig wrappedConfig = ToNative.AwsEncryptionSdkConfig(config); + if (wrappedConfig.netV4_0_0_RetryPolicy() == NetV4_0_0_RetryPolicy.ALLOW_RETRY) { + throw new IllegalArgumentException("Native AWS Encryption SDK for Java does not support NetV4_0_0_RetryPolicy.ALLOW_RETRY"); + } + CommitmentPolicy commitmentPolicy = _esdkDafnyCommitmentPolicyToNative(wrappedConfig.commitmentPolicy()); + + int maxEncryptedDataKeys = wrappedConfig.maxEncryptedDataKeys() == 0 ? 1 : (int) wrappedConfig.maxEncryptedDataKeys(); + final AwsCrypto awsCrypto; + + if (wrappedConfig.maxEncryptedDataKeys() == 0) { + awsCrypto = AwsCrypto.builder() + .withCommitmentPolicy(commitmentPolicy) + .build(); + } else { + awsCrypto = AwsCrypto.builder() + .withCommitmentPolicy(commitmentPolicy) + .withMaxEncryptedDataKeys(maxEncryptedDataKeys) + .build(); + } + TestESDK wrappedEsdk = TestESDK.builder().impl(awsCrypto).build(); + return software.amazon.cryptography.encryptionsdk.internaldafny._ExternBase___default.CreateSuccessOfClient(wrappedEsdk); + } + + private static CommitmentPolicy _esdkDafnyCommitmentPolicyToNative(ESDKCommitmentPolicy esdkCommitmentPolicy) { + switch (esdkCommitmentPolicy) { + case FORBID_ENCRYPT_ALLOW_DECRYPT: + return CommitmentPolicy.ForbidEncryptAllowDecrypt; + case REQUIRE_ENCRYPT_ALLOW_DECRYPT: + return CommitmentPolicy.RequireEncryptAllowDecrypt; + case REQUIRE_ENCRYPT_REQUIRE_DECRYPT: + return CommitmentPolicy.RequireEncryptRequireDecrypt; + default: + throw new IllegalArgumentException("Unsupported CommitmentPolicy: " + esdkCommitmentPolicy); + } + } +} diff --git a/TestVectors/runtimes/java/src/main/smithy-generated/software/amazon/cryptography/encryptionsdk/wrapped/TestESDK.java b/TestVectors/runtimes/java/src/main/smithy-generated/software/amazon/cryptography/encryptionsdk/wrapped/TestESDK.java new file mode 100644 index 000000000..262bb6227 --- /dev/null +++ b/TestVectors/runtimes/java/src/main/smithy-generated/software/amazon/cryptography/encryptionsdk/wrapped/TestESDK.java @@ -0,0 +1,191 @@ +// 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. +package software.amazon.cryptography.encryptionsdk.wrapped; + +import Wrappers_Compile.Result; +import com.amazonaws.encryptionsdk.CryptoAlgorithm; +import com.amazonaws.encryptionsdk.CryptoResult; +import dafny.DafnyMap; +import dafny.DafnySequence; +import java.lang.IllegalArgumentException; +import java.lang.RuntimeException; +import java.nio.ByteBuffer; +import java.util.Map; +import java.util.Objects; +import com.amazonaws.encryptionsdk.AwsCrypto; +import software.amazon.cryptography.encryptionsdk.ESDK; +import software.amazon.cryptography.encryptionsdk.ToDafny; +import software.amazon.cryptography.encryptionsdk.ToNative; +import software.amazon.cryptography.encryptionsdk.internaldafny.types.DecryptInput; +import software.amazon.cryptography.encryptionsdk.internaldafny.types.DecryptOutput; +import software.amazon.cryptography.encryptionsdk.internaldafny.types.EncryptInput; +import software.amazon.cryptography.encryptionsdk.internaldafny.types.EncryptOutput; +import software.amazon.cryptography.encryptionsdk.internaldafny.types.Error; +import software.amazon.cryptography.encryptionsdk.internaldafny.types.IAwsEncryptionSdkClient; +import software.amazon.cryptography.materialproviders.internaldafny.types.ESDKAlgorithmSuiteId; +import software.amazon.smithy.dafny.conversion.ToDafny.Simple; + +public class TestESDK implements IAwsEncryptionSdkClient { + + private final AwsCrypto _impl; + + protected TestESDK(BuilderImpl builder) { + this._impl = builder.impl(); + } + + public static Builder builder() { + return new BuilderImpl(); + } + + public Result Decrypt(DecryptInput dafnyInput) { + try { + software.amazon.cryptography.encryptionsdk.model.DecryptInput nativeInput = + ToNative.DecryptInput(dafnyInput); + final CryptoResult decryptResult; + + if (Objects.isNull(nativeInput.materialsManager())) { + // Call decrypt with keyring + if (Objects.isNull(nativeInput.encryptionContext())) { + decryptResult = this._impl.decryptData(nativeInput.keyring(), nativeInput.ciphertext().array()); + } else { + decryptResult = this._impl.decryptData(nativeInput.keyring(), nativeInput.ciphertext().array(), nativeInput.encryptionContext()); + } + } else { + if (Objects.isNull(nativeInput.encryptionContext())) { + decryptResult = this._impl.decryptData(nativeInput.materialsManager(), nativeInput.ciphertext().array()); + } else { + decryptResult = this._impl.decryptData(nativeInput.materialsManager(), nativeInput.ciphertext().array(), nativeInput.encryptionContext()); + } + } + DafnySequence plaintext = Simple.ByteSequence(decryptResult.getResult()); + DafnyMap, ? extends DafnySequence> encryptionContext = + software.amazon.cryptography.materialproviders.ToDafny.EncryptionContext(decryptResult.getEncryptionContext()); + ESDKAlgorithmSuiteId algorithmSuiteId = software.amazon.cryptography.materialproviders.ToDafny.ESDKAlgorithmSuiteId( + decryptResult.getCryptoAlgorithm().getAlgorithmSuiteId().ESDK() + ); + DecryptOutput dafnyOutput = new DecryptOutput(plaintext, encryptionContext, algorithmSuiteId); + + return Result.create_Success( + DecryptOutput._typeDescriptor(), + Error._typeDescriptor(), + dafnyOutput + ); + } catch (RuntimeException ex) { + return Result.create_Failure( + DecryptOutput._typeDescriptor(), + Error._typeDescriptor(), + ToDafny.Error(ex) + ); + } + } + + public Result Encrypt(EncryptInput dafnyInput) { + try { + software.amazon.cryptography.encryptionsdk.model.EncryptInput nativeInput = + ToNative.EncryptInput(dafnyInput); + final CryptoResult encryptResult; + + // Java ESDK is special and you have to set the algorithm suite both in the keyring which the + // test vectors do, but also in the client itself. + CryptoAlgorithm cryptoAlgorithm = _getAlgorithmSuite(nativeInput.algorithmSuiteId()); + this._impl.setEncryptionAlgorithm(cryptoAlgorithm); + + if (Objects.isNull(nativeInput.materialsManager())) { + // Call decrypt with keyring + if (Objects.isNull(nativeInput.encryptionContext())) { + encryptResult = this._impl.encryptData(nativeInput.keyring(), nativeInput.plaintext().array()); + } else { + encryptResult = this._impl.encryptData(nativeInput.keyring(), nativeInput.plaintext().array(), nativeInput.encryptionContext()); + } + } else { + if (Objects.isNull(nativeInput.encryptionContext())) { + encryptResult = this._impl.encryptData(nativeInput.materialsManager(), nativeInput.plaintext().array()); + } else { + encryptResult = this._impl.encryptData(nativeInput.materialsManager(), nativeInput.plaintext().array(), nativeInput.encryptionContext()); + } + } + dafny.DafnySequence ciphertext = Simple.ByteSequence(encryptResult.getResult()); + DafnyMap, ? extends DafnySequence> encryptionContext = + software.amazon.cryptography.materialproviders.ToDafny.EncryptionContext(encryptResult.getEncryptionContext()); + ESDKAlgorithmSuiteId algorithmSuiteId = software.amazon.cryptography.materialproviders.ToDafny.ESDKAlgorithmSuiteId( + encryptResult.getCryptoAlgorithm().getAlgorithmSuiteId().ESDK() + ); + + EncryptOutput dafnyOutput = new EncryptOutput(ciphertext, encryptionContext, algorithmSuiteId); + return Result.create_Success( + EncryptOutput._typeDescriptor(), + Error._typeDescriptor(), + dafnyOutput + ); + } catch (RuntimeException ex) { + return Result.create_Failure( + EncryptOutput._typeDescriptor(), + Error._typeDescriptor(), + ToDafny.Error(ex) + ); + } + } + + private CryptoAlgorithm _getAlgorithmSuite(software.amazon.cryptography.materialproviders.model.ESDKAlgorithmSuiteId esdkAlgorithmSuiteId) { + switch (esdkAlgorithmSuiteId) { + case ALG_AES_128_GCM_IV12_TAG16_NO_KDF: + return CryptoAlgorithm.ALG_AES_128_GCM_IV12_TAG16_NO_KDF; + case ALG_AES_192_GCM_IV12_TAG16_NO_KDF: + return CryptoAlgorithm.ALG_AES_192_GCM_IV12_TAG16_NO_KDF; + case ALG_AES_256_GCM_IV12_TAG16_NO_KDF: + return CryptoAlgorithm.ALG_AES_256_GCM_IV12_TAG16_NO_KDF; + case ALG_AES_128_GCM_IV12_TAG16_HKDF_SHA256: + return CryptoAlgorithm.ALG_AES_128_GCM_IV12_TAG16_HKDF_SHA256; + case ALG_AES_192_GCM_IV12_TAG16_HKDF_SHA256: + return CryptoAlgorithm.ALG_AES_192_GCM_IV12_TAG16_HKDF_SHA256; + case ALG_AES_256_GCM_IV12_TAG16_HKDF_SHA256: + return CryptoAlgorithm.ALG_AES_256_GCM_IV12_TAG16_HKDF_SHA256; + case ALG_AES_128_GCM_IV12_TAG16_HKDF_SHA256_ECDSA_P256: + return CryptoAlgorithm.ALG_AES_128_GCM_IV12_TAG16_HKDF_SHA256_ECDSA_P256; + case ALG_AES_192_GCM_IV12_TAG16_HKDF_SHA384_ECDSA_P384: + return CryptoAlgorithm.ALG_AES_192_GCM_IV12_TAG16_HKDF_SHA384_ECDSA_P384; + case ALG_AES_256_GCM_IV12_TAG16_HKDF_SHA384_ECDSA_P384: + return CryptoAlgorithm.ALG_AES_256_GCM_IV12_TAG16_HKDF_SHA384_ECDSA_P384; + case ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY: + return CryptoAlgorithm.ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY; + case ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY_ECDSA_P384: + return CryptoAlgorithm.ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY_ECDSA_P384; + default: + throw new IllegalArgumentException("Unrecognized ESDK algorithmSuiteId: " + esdkAlgorithmSuiteId); + } + } + + public interface Builder { + Builder impl(AwsCrypto impl); + + AwsCrypto impl(); + + TestESDK build(); + } + + static class BuilderImpl implements Builder { + + protected AwsCrypto impl; + + protected BuilderImpl() {} + + public Builder impl(AwsCrypto impl) { + this.impl = impl; + return this; + } + + public AwsCrypto impl() { + return this.impl; + } + + public TestESDK build() { + if (Objects.isNull(this.impl())) { + throw new IllegalArgumentException( + "Missing value for required field `impl`" + ); + } + return new TestESDK(this); + } + } +} diff --git a/TestVectors/runtimes/java/src/test/java/TestWrappedESDKMain/__default.java b/TestVectors/runtimes/java/src/test/java/TestWrappedESDKMain/__default.java new file mode 100644 index 000000000..ce798166d --- /dev/null +++ b/TestVectors/runtimes/java/src/test/java/TestWrappedESDKMain/__default.java @@ -0,0 +1,12 @@ +package TestWrappedESDKMain_Compile; + +import dafny.DafnySequence; + +public class __default extends _ExternBase___default { + + public static dafny.DafnySequence< + ? extends Character + > GetTestVectorExecutionDirectory() { + return DafnySequence.asString(""); + } +} diff --git a/TestVectors/runtimes/net/ESDKTestVectors.csproj b/TestVectors/runtimes/net/ESDKTestVectors.csproj new file mode 100644 index 000000000..ba1a57559 --- /dev/null +++ b/TestVectors/runtimes/net/ESDKTestVectors.csproj @@ -0,0 +1,42 @@ + + + + Test Vectors for AWS Encryption SDK Library + enable + disable + 10 + net6.0;net48 + false + Exe + + + + + + + + + + + + + + + + + + + + + + + diff --git a/TestVectors/runtimes/net/Extern/WrappedESDK.cs b/TestVectors/runtimes/net/Extern/WrappedESDK.cs new file mode 100644 index 000000000..33ddf818d --- /dev/null +++ b/TestVectors/runtimes/net/Extern/WrappedESDK.cs @@ -0,0 +1,25 @@ +using AwsArnParsing_Compile; +using Wrappers_Compile; + +namespace software.amazon.cryptography.encryptionsdk.internaldafny.wrapped +{ + public partial class __default + { + public static + _IResult< + types.IAwsEncryptionSdkClient, + types.Error + > + WrappedESDK( + types._IAwsEncryptionSdkConfig config) + { + var wrappedConfig = AWS.Cryptography.EncryptionSDK.Wrapped.TypeConversion + .FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig(config); + var impl = new AWS.Cryptography.EncryptionSDK.ESDK(wrappedConfig); + var wrappedClient = new AWS.Cryptography.EncryptionSDK.Wrapped.AwsEncryptionSdkShim(impl); + + return Result.create_Success(wrappedClient); + } + } +} \ No newline at end of file diff --git a/TestVectors/runtimes/net/Generated/TestVectors/AwsEncryptionSdkShim.cs b/TestVectors/runtimes/net/Generated/TestVectors/AwsEncryptionSdkShim.cs new file mode 100644 index 000000000..8a0269503 --- /dev/null +++ b/TestVectors/runtimes/net/Generated/TestVectors/AwsEncryptionSdkShim.cs @@ -0,0 +1,76 @@ +// 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. +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +namespace AWS.Cryptography.EncryptionSDK.Wrapped +{ + public class AwsEncryptionSdkShim : software.amazon.cryptography.encryptionsdk.internaldafny.types.IAwsEncryptionSdkClient + { + public AWS.Cryptography.EncryptionSDK.ESDK _impl; + public AwsEncryptionSdkShim(AWS.Cryptography.EncryptionSDK.ESDK impl) + { + this._impl = impl; + } + public Wrappers_Compile._IResult Encrypt(software.amazon.cryptography.encryptionsdk.internaldafny.types._IEncryptInput request) + { + try + { + AWS.Cryptography.EncryptionSDK.EncryptInput unWrappedRequest = TypeConversion.FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_EncryptInput(request); + AWS.Cryptography.EncryptionSDK.EncryptOutput wrappedResponse = + this._impl.Encrypt(unWrappedRequest); + return Wrappers_Compile.Result.create_Success(TypeConversion.ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_EncryptOutput(wrappedResponse)); + } + catch (System.Exception ex) + { + return Wrappers_Compile.Result.create_Failure(this.ConvertError(ex)); + } + + } + public Wrappers_Compile._IResult Decrypt(software.amazon.cryptography.encryptionsdk.internaldafny.types._IDecryptInput request) + { + try + { + AWS.Cryptography.EncryptionSDK.DecryptInput unWrappedRequest = TypeConversion.FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_DecryptInput(request); + AWS.Cryptography.EncryptionSDK.DecryptOutput wrappedResponse = + this._impl.Decrypt(unWrappedRequest); + return Wrappers_Compile.Result.create_Success(TypeConversion.ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_DecryptOutput(wrappedResponse)); + } + catch (System.Exception ex) + { + return Wrappers_Compile.Result.create_Failure(this.ConvertError(ex)); + } + + } + private software.amazon.cryptography.encryptionsdk.internaldafny.types._IError ConvertError(System.Exception error) + { + switch (error.GetType().Namespace) + { + case "AWS.Cryptography.MaterialProviders": + return software.amazon.cryptography.encryptionsdk.internaldafny.types.Error.create_AwsCryptographyMaterialProviders( + AWS.Cryptography.MaterialProviders.TypeConversion.ToDafny_CommonError(error) + ); + } + switch (error) + { + case AWS.Cryptography.EncryptionSDK.AwsEncryptionSdkException e: + return TypeConversion.ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S25_AwsEncryptionSdkException(e); + + case CollectionOfErrors collectionOfErrors: + return new software.amazon.cryptography.encryptionsdk.internaldafny.types.Error_CollectionOfErrors( + Dafny.Sequence + .FromArray( + collectionOfErrors.list.Select + (x => TypeConversion.ToDafny_CommonError(x)) + .ToArray()), + Dafny.Sequence.FromString(collectionOfErrors.Message) + ); + default: + return new software.amazon.cryptography.encryptionsdk.internaldafny.types.Error_Opaque(error, Dafny.Sequence.FromString(error.ToString())); + + } + } + } +} diff --git a/TestVectors/runtimes/net/Generated/TestVectors/TypeConversion.cs b/TestVectors/runtimes/net/Generated/TestVectors/TypeConversion.cs new file mode 100644 index 000000000..d647a6ee5 --- /dev/null +++ b/TestVectors/runtimes/net/Generated/TestVectors/TypeConversion.cs @@ -0,0 +1,471 @@ +// 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. +using System.Linq; +using System; +namespace AWS.Cryptography.EncryptionSDK.Wrapped +{ + public static class TypeConversion + { + private const string ISO8601DateFormat = "yyyy-MM-dd\\THH:mm:ss.fff\\Z"; + + private const string ISO8601DateFormatNoMS = "yyyy-MM-dd\\THH:mm:ss\\Z"; + + public static AWS.Cryptography.EncryptionSDK.AwsEncryptionSdkConfig FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig(software.amazon.cryptography.encryptionsdk.internaldafny.types._IAwsEncryptionSdkConfig value) + { + software.amazon.cryptography.encryptionsdk.internaldafny.types.AwsEncryptionSdkConfig concrete = (software.amazon.cryptography.encryptionsdk.internaldafny.types.AwsEncryptionSdkConfig)value; AWS.Cryptography.EncryptionSDK.AwsEncryptionSdkConfig converted = new AWS.Cryptography.EncryptionSDK.AwsEncryptionSdkConfig(); if (concrete._commitmentPolicy.is_Some) converted.CommitmentPolicy = (AWS.Cryptography.MaterialProviders.ESDKCommitmentPolicy)FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M16_commitmentPolicy(concrete._commitmentPolicy); + if (concrete._maxEncryptedDataKeys.is_Some) converted.MaxEncryptedDataKeys = (long)FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M20_maxEncryptedDataKeys(concrete._maxEncryptedDataKeys); + if (concrete._netV4__0__0__RetryPolicy.is_Some) converted.NetV4_0_0_RetryPolicy = (AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy)FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M21_netV4_0_0_RetryPolicy(concrete._netV4__0__0__RetryPolicy); return converted; + } + public static software.amazon.cryptography.encryptionsdk.internaldafny.types._IAwsEncryptionSdkConfig ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig(AWS.Cryptography.EncryptionSDK.AwsEncryptionSdkConfig value) + { + value.Validate(); + AWS.Cryptography.MaterialProviders.ESDKCommitmentPolicy var_commitmentPolicy = value.IsSetCommitmentPolicy() ? value.CommitmentPolicy : (AWS.Cryptography.MaterialProviders.ESDKCommitmentPolicy)null; + long? var_maxEncryptedDataKeys = value.IsSetMaxEncryptedDataKeys() ? value.MaxEncryptedDataKeys : (long?)null; + AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy var_netV4_0_0_RetryPolicy = value.IsSetNetV4__0__0__RetryPolicy() ? value.NetV4_0_0_RetryPolicy : (AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy)null; + return new software.amazon.cryptography.encryptionsdk.internaldafny.types.AwsEncryptionSdkConfig(ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M16_commitmentPolicy(var_commitmentPolicy), ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M20_maxEncryptedDataKeys(var_maxEncryptedDataKeys), ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M21_netV4_0_0_RetryPolicy(var_netV4_0_0_RetryPolicy)); + } + public static AWS.Cryptography.EncryptionSDK.AwsEncryptionSdkException FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S25_AwsEncryptionSdkException(software.amazon.cryptography.encryptionsdk.internaldafny.types.Error_AwsEncryptionSdkException value) + { + return new AWS.Cryptography.EncryptionSDK.AwsEncryptionSdkException( + FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S25_AwsEncryptionSdkException__M7_message(value._message) + ); + } + public static software.amazon.cryptography.encryptionsdk.internaldafny.types.Error_AwsEncryptionSdkException ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S25_AwsEncryptionSdkException(AWS.Cryptography.EncryptionSDK.AwsEncryptionSdkException value) + { + + return new software.amazon.cryptography.encryptionsdk.internaldafny.types.Error_AwsEncryptionSdkException( + ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S25_AwsEncryptionSdkException__M7_message(value.Message) + ); + } + public static AWS.Cryptography.EncryptionSDK.DecryptInput FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_DecryptInput(software.amazon.cryptography.encryptionsdk.internaldafny.types._IDecryptInput value) + { + software.amazon.cryptography.encryptionsdk.internaldafny.types.DecryptInput concrete = (software.amazon.cryptography.encryptionsdk.internaldafny.types.DecryptInput)value; AWS.Cryptography.EncryptionSDK.DecryptInput converted = new AWS.Cryptography.EncryptionSDK.DecryptInput(); converted.Ciphertext = (System.IO.MemoryStream)FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_DecryptInput__M10_ciphertext(concrete._ciphertext); + if (concrete._materialsManager.is_Some) converted.MaterialsManager = (AWS.Cryptography.MaterialProviders.ICryptographicMaterialsManager)FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_DecryptInput__M16_materialsManager(concrete._materialsManager); + if (concrete._keyring.is_Some) converted.Keyring = (AWS.Cryptography.MaterialProviders.IKeyring)FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_DecryptInput__M7_keyring(concrete._keyring); + if (concrete._encryptionContext.is_Some) converted.EncryptionContext = (System.Collections.Generic.Dictionary)FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_DecryptInput__M17_encryptionContext(concrete._encryptionContext); return converted; + } + public static software.amazon.cryptography.encryptionsdk.internaldafny.types._IDecryptInput ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_DecryptInput(AWS.Cryptography.EncryptionSDK.DecryptInput value) + { + value.Validate(); + AWS.Cryptography.MaterialProviders.ICryptographicMaterialsManager var_materialsManager = value.IsSetMaterialsManager() ? value.MaterialsManager : (AWS.Cryptography.MaterialProviders.ICryptographicMaterialsManager)null; + AWS.Cryptography.MaterialProviders.IKeyring var_keyring = value.IsSetKeyring() ? value.Keyring : (AWS.Cryptography.MaterialProviders.IKeyring)null; + System.Collections.Generic.Dictionary var_encryptionContext = value.IsSetEncryptionContext() ? value.EncryptionContext : (System.Collections.Generic.Dictionary)null; + return new software.amazon.cryptography.encryptionsdk.internaldafny.types.DecryptInput(ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_DecryptInput__M10_ciphertext(value.Ciphertext), ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_DecryptInput__M16_materialsManager(var_materialsManager), ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_DecryptInput__M7_keyring(var_keyring), ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_DecryptInput__M17_encryptionContext(var_encryptionContext)); + } + public static AWS.Cryptography.EncryptionSDK.DecryptOutput FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_DecryptOutput(software.amazon.cryptography.encryptionsdk.internaldafny.types._IDecryptOutput value) + { + software.amazon.cryptography.encryptionsdk.internaldafny.types.DecryptOutput concrete = (software.amazon.cryptography.encryptionsdk.internaldafny.types.DecryptOutput)value; AWS.Cryptography.EncryptionSDK.DecryptOutput converted = new AWS.Cryptography.EncryptionSDK.DecryptOutput(); converted.Plaintext = (System.IO.MemoryStream)FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_DecryptOutput__M9_plaintext(concrete._plaintext); + converted.EncryptionContext = (System.Collections.Generic.Dictionary)FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_DecryptOutput__M17_encryptionContext(concrete._encryptionContext); + converted.AlgorithmSuiteId = (AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId)FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_DecryptOutput__M16_algorithmSuiteId(concrete._algorithmSuiteId); return converted; + } + public static software.amazon.cryptography.encryptionsdk.internaldafny.types._IDecryptOutput ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_DecryptOutput(AWS.Cryptography.EncryptionSDK.DecryptOutput value) + { + value.Validate(); + + return new software.amazon.cryptography.encryptionsdk.internaldafny.types.DecryptOutput(ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_DecryptOutput__M9_plaintext(value.Plaintext), ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_DecryptOutput__M17_encryptionContext(value.EncryptionContext), ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_DecryptOutput__M16_algorithmSuiteId(value.AlgorithmSuiteId)); + } + public static AWS.Cryptography.EncryptionSDK.EncryptInput FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_EncryptInput(software.amazon.cryptography.encryptionsdk.internaldafny.types._IEncryptInput value) + { + software.amazon.cryptography.encryptionsdk.internaldafny.types.EncryptInput concrete = (software.amazon.cryptography.encryptionsdk.internaldafny.types.EncryptInput)value; AWS.Cryptography.EncryptionSDK.EncryptInput converted = new AWS.Cryptography.EncryptionSDK.EncryptInput(); converted.Plaintext = (System.IO.MemoryStream)FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_EncryptInput__M9_plaintext(concrete._plaintext); + if (concrete._encryptionContext.is_Some) converted.EncryptionContext = (System.Collections.Generic.Dictionary)FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_EncryptInput__M17_encryptionContext(concrete._encryptionContext); + if (concrete._materialsManager.is_Some) converted.MaterialsManager = (AWS.Cryptography.MaterialProviders.ICryptographicMaterialsManager)FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_EncryptInput__M16_materialsManager(concrete._materialsManager); + if (concrete._keyring.is_Some) converted.Keyring = (AWS.Cryptography.MaterialProviders.IKeyring)FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_EncryptInput__M7_keyring(concrete._keyring); + if (concrete._algorithmSuiteId.is_Some) converted.AlgorithmSuiteId = (AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId)FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_EncryptInput__M16_algorithmSuiteId(concrete._algorithmSuiteId); + if (concrete._frameLength.is_Some) converted.FrameLength = (long)FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_EncryptInput__M11_frameLength(concrete._frameLength); return converted; + } + public static software.amazon.cryptography.encryptionsdk.internaldafny.types._IEncryptInput ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_EncryptInput(AWS.Cryptography.EncryptionSDK.EncryptInput value) + { + value.Validate(); + System.Collections.Generic.Dictionary var_encryptionContext = value.IsSetEncryptionContext() ? value.EncryptionContext : (System.Collections.Generic.Dictionary)null; + AWS.Cryptography.MaterialProviders.ICryptographicMaterialsManager var_materialsManager = value.IsSetMaterialsManager() ? value.MaterialsManager : (AWS.Cryptography.MaterialProviders.ICryptographicMaterialsManager)null; + AWS.Cryptography.MaterialProviders.IKeyring var_keyring = value.IsSetKeyring() ? value.Keyring : (AWS.Cryptography.MaterialProviders.IKeyring)null; + AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId var_algorithmSuiteId = value.IsSetAlgorithmSuiteId() ? value.AlgorithmSuiteId : (AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId)null; + long? var_frameLength = value.IsSetFrameLength() ? value.FrameLength : (long?)null; + return new software.amazon.cryptography.encryptionsdk.internaldafny.types.EncryptInput(ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_EncryptInput__M9_plaintext(value.Plaintext), ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_EncryptInput__M17_encryptionContext(var_encryptionContext), ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_EncryptInput__M16_materialsManager(var_materialsManager), ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_EncryptInput__M7_keyring(var_keyring), ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_EncryptInput__M16_algorithmSuiteId(var_algorithmSuiteId), ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_EncryptInput__M11_frameLength(var_frameLength)); + } + public static AWS.Cryptography.EncryptionSDK.EncryptOutput FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_EncryptOutput(software.amazon.cryptography.encryptionsdk.internaldafny.types._IEncryptOutput value) + { + software.amazon.cryptography.encryptionsdk.internaldafny.types.EncryptOutput concrete = (software.amazon.cryptography.encryptionsdk.internaldafny.types.EncryptOutput)value; AWS.Cryptography.EncryptionSDK.EncryptOutput converted = new AWS.Cryptography.EncryptionSDK.EncryptOutput(); converted.Ciphertext = (System.IO.MemoryStream)FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_EncryptOutput__M10_ciphertext(concrete._ciphertext); + converted.EncryptionContext = (System.Collections.Generic.Dictionary)FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_EncryptOutput__M17_encryptionContext(concrete._encryptionContext); + converted.AlgorithmSuiteId = (AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId)FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_EncryptOutput__M16_algorithmSuiteId(concrete._algorithmSuiteId); return converted; + } + public static software.amazon.cryptography.encryptionsdk.internaldafny.types._IEncryptOutput ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_EncryptOutput(AWS.Cryptography.EncryptionSDK.EncryptOutput value) + { + value.Validate(); + + return new software.amazon.cryptography.encryptionsdk.internaldafny.types.EncryptOutput(ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_EncryptOutput__M10_ciphertext(value.Ciphertext), ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_EncryptOutput__M17_encryptionContext(value.EncryptionContext), ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_EncryptOutput__M16_algorithmSuiteId(value.AlgorithmSuiteId)); + } + public static AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S21_NetV4_0_0_RetryPolicy(software.amazon.cryptography.encryptionsdk.internaldafny.types._INetV4__0__0__RetryPolicy value) + { + if (value.is_FORBID__RETRY) return AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy.FORBID_RETRY; + if (value.is_ALLOW__RETRY) return AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy.ALLOW_RETRY; + throw new System.ArgumentException("Invalid AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy value"); + } + public static software.amazon.cryptography.encryptionsdk.internaldafny.types._INetV4__0__0__RetryPolicy ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S21_NetV4_0_0_RetryPolicy(AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy value) + { + if (AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy.FORBID_RETRY.Equals(value)) return software.amazon.cryptography.encryptionsdk.internaldafny.types.NetV4__0__0__RetryPolicy.create_FORBID__RETRY(); + if (AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy.ALLOW_RETRY.Equals(value)) return software.amazon.cryptography.encryptionsdk.internaldafny.types.NetV4__0__0__RetryPolicy.create_ALLOW__RETRY(); + throw new System.ArgumentException("Invalid AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy value"); + } + public static AWS.Cryptography.MaterialProviders.ESDKCommitmentPolicy FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M16_commitmentPolicy(Wrappers_Compile._IOption value) + { + return value.is_None ? (AWS.Cryptography.MaterialProviders.ESDKCommitmentPolicy)null : FromDafny_N3_aws__N12_cryptography__N17_materialProviders__S20_ESDKCommitmentPolicy(value.Extract()); + } + public static Wrappers_Compile._IOption ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M16_commitmentPolicy(AWS.Cryptography.MaterialProviders.ESDKCommitmentPolicy value) + { + return value == null ? Wrappers_Compile.Option.create_None() : Wrappers_Compile.Option.create_Some(ToDafny_N3_aws__N12_cryptography__N17_materialProviders__S20_ESDKCommitmentPolicy((AWS.Cryptography.MaterialProviders.ESDKCommitmentPolicy)value)); + } + public static long? FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M20_maxEncryptedDataKeys(Wrappers_Compile._IOption value) + { + return value.is_None ? (long?)null : FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S15_CountingNumbers(value.Extract()); + } + public static Wrappers_Compile._IOption ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M20_maxEncryptedDataKeys(long? value) + { + return value == null ? Wrappers_Compile.Option.create_None() : Wrappers_Compile.Option.create_Some(ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S15_CountingNumbers((long)value)); + } + public static AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M21_netV4_0_0_RetryPolicy(Wrappers_Compile._IOption value) + { + return value.is_None ? (AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy)null : FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S21_NetV4_0_0_RetryPolicy(value.Extract()); + } + public static Wrappers_Compile._IOption ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S22_AwsEncryptionSdkConfig__M21_netV4_0_0_RetryPolicy(AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy value) + { + return value == null ? Wrappers_Compile.Option.create_None() : Wrappers_Compile.Option.create_Some(ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S21_NetV4_0_0_RetryPolicy((AWS.Cryptography.EncryptionSDK.NetV4_0_0_RetryPolicy)value)); + } + public static string FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S25_AwsEncryptionSdkException__M7_message(Dafny.ISequence value) + { + return FromDafny_N6_smithy__N3_api__S6_String(value); + } + public static Dafny.ISequence ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S25_AwsEncryptionSdkException__M7_message(string value) + { + return ToDafny_N6_smithy__N3_api__S6_String(value); + } + public static System.IO.MemoryStream FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_DecryptInput__M10_ciphertext(Dafny.ISequence value) + { + return FromDafny_N6_smithy__N3_api__S4_Blob(value); + } + public static Dafny.ISequence ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_DecryptInput__M10_ciphertext(System.IO.MemoryStream value) + { + return ToDafny_N6_smithy__N3_api__S4_Blob(value); + } + public static AWS.Cryptography.MaterialProviders.ICryptographicMaterialsManager FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_DecryptInput__M16_materialsManager(Wrappers_Compile._IOption value) + { + return value.is_None ? (AWS.Cryptography.MaterialProviders.ICryptographicMaterialsManager)null : FromDafny_N3_aws__N12_cryptography__N17_materialProviders__S38_CryptographicMaterialsManagerReference(value.Extract()); + } + public static Wrappers_Compile._IOption ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_DecryptInput__M16_materialsManager(AWS.Cryptography.MaterialProviders.ICryptographicMaterialsManager value) + { + return value == null ? Wrappers_Compile.Option.create_None() : Wrappers_Compile.Option.create_Some(ToDafny_N3_aws__N12_cryptography__N17_materialProviders__S38_CryptographicMaterialsManagerReference((AWS.Cryptography.MaterialProviders.ICryptographicMaterialsManager)value)); + } + public static AWS.Cryptography.MaterialProviders.IKeyring FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_DecryptInput__M7_keyring(Wrappers_Compile._IOption value) + { + return value.is_None ? (AWS.Cryptography.MaterialProviders.IKeyring)null : FromDafny_N3_aws__N12_cryptography__N17_materialProviders__S16_KeyringReference(value.Extract()); + } + public static Wrappers_Compile._IOption ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_DecryptInput__M7_keyring(AWS.Cryptography.MaterialProviders.IKeyring value) + { + return value == null ? Wrappers_Compile.Option.create_None() : Wrappers_Compile.Option.create_Some(ToDafny_N3_aws__N12_cryptography__N17_materialProviders__S16_KeyringReference((AWS.Cryptography.MaterialProviders.IKeyring)value)); + } + public static System.Collections.Generic.Dictionary FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_DecryptInput__M17_encryptionContext(Wrappers_Compile._IOption, Dafny.ISequence>> value) + { + return value.is_None ? (System.Collections.Generic.Dictionary)null : FromDafny_N3_aws__N12_cryptography__N17_materialProviders__S17_EncryptionContext(value.Extract()); + } + public static Wrappers_Compile._IOption, Dafny.ISequence>> ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_DecryptInput__M17_encryptionContext(System.Collections.Generic.Dictionary value) + { + return value == null ? Wrappers_Compile.Option, Dafny.ISequence>>.create_None() : Wrappers_Compile.Option, Dafny.ISequence>>.create_Some(ToDafny_N3_aws__N12_cryptography__N17_materialProviders__S17_EncryptionContext((System.Collections.Generic.Dictionary)value)); + } + public static System.IO.MemoryStream FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_DecryptOutput__M9_plaintext(Dafny.ISequence value) + { + return FromDafny_N6_smithy__N3_api__S4_Blob(value); + } + public static Dafny.ISequence ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_DecryptOutput__M9_plaintext(System.IO.MemoryStream value) + { + return ToDafny_N6_smithy__N3_api__S4_Blob(value); + } + public static System.Collections.Generic.Dictionary FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_DecryptOutput__M17_encryptionContext(Dafny.IMap, Dafny.ISequence> value) + { + return FromDafny_N3_aws__N12_cryptography__N17_materialProviders__S17_EncryptionContext(value); + } + public static Dafny.IMap, Dafny.ISequence> ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_DecryptOutput__M17_encryptionContext(System.Collections.Generic.Dictionary value) + { + return ToDafny_N3_aws__N12_cryptography__N17_materialProviders__S17_EncryptionContext(value); + } + public static AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_DecryptOutput__M16_algorithmSuiteId(software.amazon.cryptography.materialproviders.internaldafny.types._IESDKAlgorithmSuiteId value) + { + return FromDafny_N3_aws__N12_cryptography__N17_materialProviders__S20_ESDKAlgorithmSuiteId(value); + } + public static software.amazon.cryptography.materialproviders.internaldafny.types._IESDKAlgorithmSuiteId ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_DecryptOutput__M16_algorithmSuiteId(AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId value) + { + return ToDafny_N3_aws__N12_cryptography__N17_materialProviders__S20_ESDKAlgorithmSuiteId(value); + } + public static System.IO.MemoryStream FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_EncryptInput__M9_plaintext(Dafny.ISequence value) + { + return FromDafny_N6_smithy__N3_api__S4_Blob(value); + } + public static Dafny.ISequence ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_EncryptInput__M9_plaintext(System.IO.MemoryStream value) + { + return ToDafny_N6_smithy__N3_api__S4_Blob(value); + } + public static System.Collections.Generic.Dictionary FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_EncryptInput__M17_encryptionContext(Wrappers_Compile._IOption, Dafny.ISequence>> value) + { + return value.is_None ? (System.Collections.Generic.Dictionary)null : FromDafny_N3_aws__N12_cryptography__N17_materialProviders__S17_EncryptionContext(value.Extract()); + } + public static Wrappers_Compile._IOption, Dafny.ISequence>> ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_EncryptInput__M17_encryptionContext(System.Collections.Generic.Dictionary value) + { + return value == null ? Wrappers_Compile.Option, Dafny.ISequence>>.create_None() : Wrappers_Compile.Option, Dafny.ISequence>>.create_Some(ToDafny_N3_aws__N12_cryptography__N17_materialProviders__S17_EncryptionContext((System.Collections.Generic.Dictionary)value)); + } + public static AWS.Cryptography.MaterialProviders.ICryptographicMaterialsManager FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_EncryptInput__M16_materialsManager(Wrappers_Compile._IOption value) + { + return value.is_None ? (AWS.Cryptography.MaterialProviders.ICryptographicMaterialsManager)null : FromDafny_N3_aws__N12_cryptography__N17_materialProviders__S38_CryptographicMaterialsManagerReference(value.Extract()); + } + public static Wrappers_Compile._IOption ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_EncryptInput__M16_materialsManager(AWS.Cryptography.MaterialProviders.ICryptographicMaterialsManager value) + { + return value == null ? Wrappers_Compile.Option.create_None() : Wrappers_Compile.Option.create_Some(ToDafny_N3_aws__N12_cryptography__N17_materialProviders__S38_CryptographicMaterialsManagerReference((AWS.Cryptography.MaterialProviders.ICryptographicMaterialsManager)value)); + } + public static AWS.Cryptography.MaterialProviders.IKeyring FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_EncryptInput__M7_keyring(Wrappers_Compile._IOption value) + { + return value.is_None ? (AWS.Cryptography.MaterialProviders.IKeyring)null : FromDafny_N3_aws__N12_cryptography__N17_materialProviders__S16_KeyringReference(value.Extract()); + } + public static Wrappers_Compile._IOption ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_EncryptInput__M7_keyring(AWS.Cryptography.MaterialProviders.IKeyring value) + { + return value == null ? Wrappers_Compile.Option.create_None() : Wrappers_Compile.Option.create_Some(ToDafny_N3_aws__N12_cryptography__N17_materialProviders__S16_KeyringReference((AWS.Cryptography.MaterialProviders.IKeyring)value)); + } + public static AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_EncryptInput__M16_algorithmSuiteId(Wrappers_Compile._IOption value) + { + return value.is_None ? (AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId)null : FromDafny_N3_aws__N12_cryptography__N17_materialProviders__S20_ESDKAlgorithmSuiteId(value.Extract()); + } + public static Wrappers_Compile._IOption ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_EncryptInput__M16_algorithmSuiteId(AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId value) + { + return value == null ? Wrappers_Compile.Option.create_None() : Wrappers_Compile.Option.create_Some(ToDafny_N3_aws__N12_cryptography__N17_materialProviders__S20_ESDKAlgorithmSuiteId((AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId)value)); + } + public static long? FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_EncryptInput__M11_frameLength(Wrappers_Compile._IOption value) + { + return value.is_None ? (long?)null : FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S11_FrameLength(value.Extract()); + } + public static Wrappers_Compile._IOption ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S12_EncryptInput__M11_frameLength(long? value) + { + return value == null ? Wrappers_Compile.Option.create_None() : Wrappers_Compile.Option.create_Some(ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S11_FrameLength((long)value)); + } + public static System.IO.MemoryStream FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_EncryptOutput__M10_ciphertext(Dafny.ISequence value) + { + return FromDafny_N6_smithy__N3_api__S4_Blob(value); + } + public static Dafny.ISequence ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_EncryptOutput__M10_ciphertext(System.IO.MemoryStream value) + { + return ToDafny_N6_smithy__N3_api__S4_Blob(value); + } + public static System.Collections.Generic.Dictionary FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_EncryptOutput__M17_encryptionContext(Dafny.IMap, Dafny.ISequence> value) + { + return FromDafny_N3_aws__N12_cryptography__N17_materialProviders__S17_EncryptionContext(value); + } + public static Dafny.IMap, Dafny.ISequence> ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_EncryptOutput__M17_encryptionContext(System.Collections.Generic.Dictionary value) + { + return ToDafny_N3_aws__N12_cryptography__N17_materialProviders__S17_EncryptionContext(value); + } + public static AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_EncryptOutput__M16_algorithmSuiteId(software.amazon.cryptography.materialproviders.internaldafny.types._IESDKAlgorithmSuiteId value) + { + return FromDafny_N3_aws__N12_cryptography__N17_materialProviders__S20_ESDKAlgorithmSuiteId(value); + } + public static software.amazon.cryptography.materialproviders.internaldafny.types._IESDKAlgorithmSuiteId ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S13_EncryptOutput__M16_algorithmSuiteId(AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId value) + { + return ToDafny_N3_aws__N12_cryptography__N17_materialProviders__S20_ESDKAlgorithmSuiteId(value); + } + public static AWS.Cryptography.MaterialProviders.ESDKCommitmentPolicy FromDafny_N3_aws__N12_cryptography__N17_materialProviders__S20_ESDKCommitmentPolicy(software.amazon.cryptography.materialproviders.internaldafny.types._IESDKCommitmentPolicy value) + { + if (value.is_FORBID__ENCRYPT__ALLOW__DECRYPT) return AWS.Cryptography.MaterialProviders.ESDKCommitmentPolicy.FORBID_ENCRYPT_ALLOW_DECRYPT; + if (value.is_REQUIRE__ENCRYPT__ALLOW__DECRYPT) return AWS.Cryptography.MaterialProviders.ESDKCommitmentPolicy.REQUIRE_ENCRYPT_ALLOW_DECRYPT; + if (value.is_REQUIRE__ENCRYPT__REQUIRE__DECRYPT) return AWS.Cryptography.MaterialProviders.ESDKCommitmentPolicy.REQUIRE_ENCRYPT_REQUIRE_DECRYPT; + throw new System.ArgumentException("Invalid AWS.Cryptography.MaterialProviders.ESDKCommitmentPolicy value"); + } + public static software.amazon.cryptography.materialproviders.internaldafny.types._IESDKCommitmentPolicy ToDafny_N3_aws__N12_cryptography__N17_materialProviders__S20_ESDKCommitmentPolicy(AWS.Cryptography.MaterialProviders.ESDKCommitmentPolicy value) + { + if (AWS.Cryptography.MaterialProviders.ESDKCommitmentPolicy.FORBID_ENCRYPT_ALLOW_DECRYPT.Equals(value)) return software.amazon.cryptography.materialproviders.internaldafny.types.ESDKCommitmentPolicy.create_FORBID__ENCRYPT__ALLOW__DECRYPT(); + if (AWS.Cryptography.MaterialProviders.ESDKCommitmentPolicy.REQUIRE_ENCRYPT_ALLOW_DECRYPT.Equals(value)) return software.amazon.cryptography.materialproviders.internaldafny.types.ESDKCommitmentPolicy.create_REQUIRE__ENCRYPT__ALLOW__DECRYPT(); + if (AWS.Cryptography.MaterialProviders.ESDKCommitmentPolicy.REQUIRE_ENCRYPT_REQUIRE_DECRYPT.Equals(value)) return software.amazon.cryptography.materialproviders.internaldafny.types.ESDKCommitmentPolicy.create_REQUIRE__ENCRYPT__REQUIRE__DECRYPT(); + throw new System.ArgumentException("Invalid AWS.Cryptography.MaterialProviders.ESDKCommitmentPolicy value"); + } + public static long FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S15_CountingNumbers(long value) + { + return value; + } + public static long ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S15_CountingNumbers(long value) + { + return value; + } + public static string FromDafny_N6_smithy__N3_api__S6_String(Dafny.ISequence value) + { + return new string(value.Elements); + } + public static Dafny.ISequence ToDafny_N6_smithy__N3_api__S6_String(string value) + { + return Dafny.Sequence.FromString(value); + } + public static System.IO.MemoryStream FromDafny_N6_smithy__N3_api__S4_Blob(Dafny.ISequence value) + { + return new System.IO.MemoryStream(value.Elements); + } + public static Dafny.ISequence ToDafny_N6_smithy__N3_api__S4_Blob(System.IO.MemoryStream value) + { + if (value.ToArray().Length == 0 && value.Length > 0) + { + throw new System.ArgumentException("Fatal Error: MemoryStream instance not backed by an array!"); + } + return Dafny.Sequence.FromArray(value.ToArray()); + + } + public static AWS.Cryptography.MaterialProviders.ICryptographicMaterialsManager FromDafny_N3_aws__N12_cryptography__N17_materialProviders__S38_CryptographicMaterialsManagerReference(software.amazon.cryptography.materialproviders.internaldafny.types.ICryptographicMaterialsManager value) + { + // This is converting a reference type in a dependant module. + // Therefore it defers to the dependant module for conversion + return AWS.Cryptography.MaterialProviders.TypeConversion.FromDafny_N3_aws__N12_cryptography__N17_materialProviders__S38_CryptographicMaterialsManagerReference(value); + } + public static software.amazon.cryptography.materialproviders.internaldafny.types.ICryptographicMaterialsManager ToDafny_N3_aws__N12_cryptography__N17_materialProviders__S38_CryptographicMaterialsManagerReference(AWS.Cryptography.MaterialProviders.ICryptographicMaterialsManager value) + { + // This is converting a reference type in a dependant module. + // Therefore it defers to the dependant module for conversion + return AWS.Cryptography.MaterialProviders.TypeConversion.ToDafny_N3_aws__N12_cryptography__N17_materialProviders__S38_CryptographicMaterialsManagerReference(value); + } + public static AWS.Cryptography.MaterialProviders.IKeyring FromDafny_N3_aws__N12_cryptography__N17_materialProviders__S16_KeyringReference(software.amazon.cryptography.materialproviders.internaldafny.types.IKeyring value) + { + // This is converting a reference type in a dependant module. + // Therefore it defers to the dependant module for conversion + return AWS.Cryptography.MaterialProviders.TypeConversion.FromDafny_N3_aws__N12_cryptography__N17_materialProviders__S16_KeyringReference(value); + } + public static software.amazon.cryptography.materialproviders.internaldafny.types.IKeyring ToDafny_N3_aws__N12_cryptography__N17_materialProviders__S16_KeyringReference(AWS.Cryptography.MaterialProviders.IKeyring value) + { + // This is converting a reference type in a dependant module. + // Therefore it defers to the dependant module for conversion + return AWS.Cryptography.MaterialProviders.TypeConversion.ToDafny_N3_aws__N12_cryptography__N17_materialProviders__S16_KeyringReference(value); + } + public static System.Collections.Generic.Dictionary FromDafny_N3_aws__N12_cryptography__N17_materialProviders__S17_EncryptionContext(Dafny.IMap, Dafny.ISequence> value) + { + return value.ItemEnumerable.ToDictionary(pair => FromDafny_N3_aws__N12_cryptography__N17_materialProviders__S17_EncryptionContext__M3_key(pair.Car), pair => FromDafny_N3_aws__N12_cryptography__N17_materialProviders__S17_EncryptionContext__M5_value(pair.Cdr)); + } + public static Dafny.IMap, Dafny.ISequence> ToDafny_N3_aws__N12_cryptography__N17_materialProviders__S17_EncryptionContext(System.Collections.Generic.Dictionary value) + { + return Dafny.Map, Dafny.ISequence>.FromCollection(value.Select(pair => + new Dafny.Pair, Dafny.ISequence>(ToDafny_N3_aws__N12_cryptography__N17_materialProviders__S17_EncryptionContext__M3_key(pair.Key), ToDafny_N3_aws__N12_cryptography__N17_materialProviders__S17_EncryptionContext__M5_value(pair.Value)) + )); + } + public static AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId FromDafny_N3_aws__N12_cryptography__N17_materialProviders__S20_ESDKAlgorithmSuiteId(software.amazon.cryptography.materialproviders.internaldafny.types._IESDKAlgorithmSuiteId value) + { + if (value.is_ALG__AES__128__GCM__IV12__TAG16__NO__KDF) return AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId.ALG_AES_128_GCM_IV12_TAG16_NO_KDF; + if (value.is_ALG__AES__192__GCM__IV12__TAG16__NO__KDF) return AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId.ALG_AES_192_GCM_IV12_TAG16_NO_KDF; + if (value.is_ALG__AES__256__GCM__IV12__TAG16__NO__KDF) return AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId.ALG_AES_256_GCM_IV12_TAG16_NO_KDF; + if (value.is_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256) return AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId.ALG_AES_128_GCM_IV12_TAG16_HKDF_SHA256; + if (value.is_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA256) return AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId.ALG_AES_192_GCM_IV12_TAG16_HKDF_SHA256; + if (value.is_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA256) return AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId.ALG_AES_256_GCM_IV12_TAG16_HKDF_SHA256; + if (value.is_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256__ECDSA__P256) return AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId.ALG_AES_128_GCM_IV12_TAG16_HKDF_SHA256_ECDSA_P256; + if (value.is_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384) return AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId.ALG_AES_192_GCM_IV12_TAG16_HKDF_SHA384_ECDSA_P384; + if (value.is_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384) return AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId.ALG_AES_256_GCM_IV12_TAG16_HKDF_SHA384_ECDSA_P384; + if (value.is_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY) return AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId.ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY; + if (value.is_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384) return AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId.ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY_ECDSA_P384; + throw new System.ArgumentException("Invalid AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId value"); + } + public static software.amazon.cryptography.materialproviders.internaldafny.types._IESDKAlgorithmSuiteId ToDafny_N3_aws__N12_cryptography__N17_materialProviders__S20_ESDKAlgorithmSuiteId(AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId value) + { + if (AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId.ALG_AES_128_GCM_IV12_TAG16_NO_KDF.Equals(value)) return software.amazon.cryptography.materialproviders.internaldafny.types.ESDKAlgorithmSuiteId.create_ALG__AES__128__GCM__IV12__TAG16__NO__KDF(); + if (AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId.ALG_AES_192_GCM_IV12_TAG16_NO_KDF.Equals(value)) return software.amazon.cryptography.materialproviders.internaldafny.types.ESDKAlgorithmSuiteId.create_ALG__AES__192__GCM__IV12__TAG16__NO__KDF(); + if (AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId.ALG_AES_256_GCM_IV12_TAG16_NO_KDF.Equals(value)) return software.amazon.cryptography.materialproviders.internaldafny.types.ESDKAlgorithmSuiteId.create_ALG__AES__256__GCM__IV12__TAG16__NO__KDF(); + if (AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId.ALG_AES_128_GCM_IV12_TAG16_HKDF_SHA256.Equals(value)) return software.amazon.cryptography.materialproviders.internaldafny.types.ESDKAlgorithmSuiteId.create_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256(); + if (AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId.ALG_AES_192_GCM_IV12_TAG16_HKDF_SHA256.Equals(value)) return software.amazon.cryptography.materialproviders.internaldafny.types.ESDKAlgorithmSuiteId.create_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA256(); + if (AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId.ALG_AES_256_GCM_IV12_TAG16_HKDF_SHA256.Equals(value)) return software.amazon.cryptography.materialproviders.internaldafny.types.ESDKAlgorithmSuiteId.create_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA256(); + if (AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId.ALG_AES_128_GCM_IV12_TAG16_HKDF_SHA256_ECDSA_P256.Equals(value)) return software.amazon.cryptography.materialproviders.internaldafny.types.ESDKAlgorithmSuiteId.create_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256__ECDSA__P256(); + if (AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId.ALG_AES_192_GCM_IV12_TAG16_HKDF_SHA384_ECDSA_P384.Equals(value)) return software.amazon.cryptography.materialproviders.internaldafny.types.ESDKAlgorithmSuiteId.create_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384(); + if (AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId.ALG_AES_256_GCM_IV12_TAG16_HKDF_SHA384_ECDSA_P384.Equals(value)) return software.amazon.cryptography.materialproviders.internaldafny.types.ESDKAlgorithmSuiteId.create_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384(); + if (AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId.ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY.Equals(value)) return software.amazon.cryptography.materialproviders.internaldafny.types.ESDKAlgorithmSuiteId.create_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY(); + if (AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId.ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY_ECDSA_P384.Equals(value)) return software.amazon.cryptography.materialproviders.internaldafny.types.ESDKAlgorithmSuiteId.create_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384(); + throw new System.ArgumentException("Invalid AWS.Cryptography.MaterialProviders.ESDKAlgorithmSuiteId value"); + } + public static long FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S11_FrameLength(long value) + { + return value; + } + public static long ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S11_FrameLength(long value) + { + return value; + } + public static string FromDafny_N3_aws__N12_cryptography__N17_materialProviders__S17_EncryptionContext__M3_key(Dafny.ISequence value) + { + return FromDafny_N3_aws__N12_cryptography__N17_materialProviders__S9_Utf8Bytes(value); + } + public static Dafny.ISequence ToDafny_N3_aws__N12_cryptography__N17_materialProviders__S17_EncryptionContext__M3_key(string value) + { + return ToDafny_N3_aws__N12_cryptography__N17_materialProviders__S9_Utf8Bytes(value); + } + public static string FromDafny_N3_aws__N12_cryptography__N17_materialProviders__S17_EncryptionContext__M5_value(Dafny.ISequence value) + { + return FromDafny_N3_aws__N12_cryptography__N17_materialProviders__S9_Utf8Bytes(value); + } + public static Dafny.ISequence ToDafny_N3_aws__N12_cryptography__N17_materialProviders__S17_EncryptionContext__M5_value(string value) + { + return ToDafny_N3_aws__N12_cryptography__N17_materialProviders__S9_Utf8Bytes(value); + } + public static string FromDafny_N3_aws__N12_cryptography__N17_materialProviders__S9_Utf8Bytes(Dafny.ISequence value) + { + System.Text.UTF8Encoding utf8 = new System.Text.UTF8Encoding(false, true); + return utf8.GetString(value.Elements); + } + public static Dafny.ISequence ToDafny_N3_aws__N12_cryptography__N17_materialProviders__S9_Utf8Bytes(string value) + { + System.Text.UTF8Encoding utf8 = new System.Text.UTF8Encoding(false, true); + return Dafny.Sequence.FromArray(utf8.GetBytes(value)); + } + public static System.Exception FromDafny_CommonError(software.amazon.cryptography.encryptionsdk.internaldafny.types._IError value) + { + switch (value) + { + case software.amazon.cryptography.encryptionsdk.internaldafny.types.Error_AwsCryptographyMaterialProviders dafnyVal: + return AWS.Cryptography.MaterialProviders.TypeConversion.FromDafny_CommonError( + dafnyVal._AwsCryptographyMaterialProviders + ); + case software.amazon.cryptography.encryptionsdk.internaldafny.types.Error_AwsCryptographyPrimitives dafnyVal: + return AWS.Cryptography.Primitives.TypeConversion.FromDafny_CommonError( + dafnyVal._AwsCryptographyPrimitives + ); + case software.amazon.cryptography.encryptionsdk.internaldafny.types.Error_AwsEncryptionSdkException dafnyVal: + return FromDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S25_AwsEncryptionSdkException(dafnyVal); + case software.amazon.cryptography.encryptionsdk.internaldafny.types.Error_CollectionOfErrors dafnyVal: + return new CollectionOfErrors( + new System.Collections.Generic.List(dafnyVal.dtor_list.CloneAsArray() + .Select(x => TypeConversion.FromDafny_CommonError(x))), + new string(dafnyVal.dtor_message.Elements)); + case software.amazon.cryptography.encryptionsdk.internaldafny.types.Error_Opaque dafnyVal: + return new OpaqueError(dafnyVal._obj); + default: + // The switch MUST be complete for _IError, so `value` MUST NOT be an _IError. (How did you get here?) + return new OpaqueError(); + } + } + public static software.amazon.cryptography.encryptionsdk.internaldafny.types._IError ToDafny_CommonError(System.Exception value) + { + switch (value.GetType().Namespace) + { + case "AWS.Cryptography.MaterialProviders": + return software.amazon.cryptography.encryptionsdk.internaldafny.types.Error.create_AwsCryptographyMaterialProviders( + AWS.Cryptography.MaterialProviders.TypeConversion.ToDafny_CommonError(value) + ); + } + switch (value) + { + case AWS.Cryptography.EncryptionSDK.AwsEncryptionSdkException exception: + return ToDafny_N3_aws__N12_cryptography__N13_encryptionSdk__S25_AwsEncryptionSdkException(exception); + case CollectionOfErrors collectionOfErrors: + return new software.amazon.cryptography.encryptionsdk.internaldafny.types.Error_CollectionOfErrors( + Dafny.Sequence + .FromArray( + collectionOfErrors.list.Select + (x => TypeConversion.ToDafny_CommonError(x)) + .ToArray()), + Dafny.Sequence.FromString(collectionOfErrors.Message) + ); + // OpaqueError is redundant, but listed for completeness. + case OpaqueError exception: + return new software.amazon.cryptography.encryptionsdk.internaldafny.types.Error_Opaque(exception, Dafny.Sequence.FromString(exception.ToString())); + case System.Exception exception: + return new software.amazon.cryptography.encryptionsdk.internaldafny.types.Error_Opaque(exception, Dafny.Sequence.FromString(exception.ToString())); + default: + // The switch MUST be complete for System.Exception, so `value` MUST NOT be an System.Exception. (How did you get here?) + return new software.amazon.cryptography.encryptionsdk.internaldafny.types.Error_Opaque(value, Dafny.Sequence.FromString(value.ToString())); + } + } + } +} diff --git a/TestVectors/runtimes/net/tests/Extern/GetTestDirectoryExtern.cs b/TestVectors/runtimes/net/tests/Extern/GetTestDirectoryExtern.cs new file mode 100644 index 000000000..ab7f4256b --- /dev/null +++ b/TestVectors/runtimes/net/tests/Extern/GetTestDirectoryExtern.cs @@ -0,0 +1,9 @@ +using byteseq = Dafny.Sequence; + +namespace TestWrappedESDKMain_Compile { + public partial class __default { + public static Dafny.ISequence GetTestVectorExecutionDirectory() { + return byteseq.FromString(""); + } + } +} diff --git a/TestVectors/runtimes/net/tests/TestVectors-Tests.csproj b/TestVectors/runtimes/net/tests/TestVectors-Tests.csproj new file mode 100644 index 000000000..962166e20 --- /dev/null +++ b/TestVectors/runtimes/net/tests/TestVectors-Tests.csproj @@ -0,0 +1,36 @@ + + + + TEST_AWS Encryption SDK Library + enable + disable + net6.0;net48 + 10 + Exe + false + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/cfn/CI.yaml b/cfn/CI.yaml index f449b9d4a..abeca4f7a 100644 --- a/cfn/CI.yaml +++ b/cfn/CI.yaml @@ -30,6 +30,7 @@ Resources: - "arn:aws:iam::370957321024:policy/Hierarchical-GitHub-KMS-Key-Policy" - "arn:aws:iam::370957321024:policy/KMS-Public-CMK-EncryptDecrypt-Key-Access" - "arn:aws:iam::370957321024:policy/RSA-GitHub-KMS-Key-Policy" + - "arn:aws:iam::370957321024:policy/Github-ECDH-KMS" AssumeRolePolicyDocument: !Sub | { "Version": "2012-10-17", diff --git a/mpl b/mpl index dd31cbb00..2449f1926 160000 --- a/mpl +++ b/mpl @@ -1 +1 @@ -Subproject commit dd31cbb00ae5d704ddc6eefd16552ba08cf6c342 +Subproject commit 2449f192670561605a59f47256784abb6d70e40a diff --git a/smithy-dafny b/smithy-dafny deleted file mode 160000 index 782f314bb..000000000 --- a/smithy-dafny +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 782f314bb5ce3277a308361d38929b204a357ba1