Skip to content

feat(test_vector_handlers): Hierarchy keyring test vectors #674

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 432 commits into from
Aug 7, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
432 commits
Select commit Hold shift + click to select a range
bbc36f9
..?
lucasmcdonald3 Mar 12, 2024
3bf820c
missing
lucasmcdonald3 Mar 12, 2024
eb40abb
cleanup
lucasmcdonald3 Mar 12, 2024
bc0d5ff
wip
lucasmcdonald3 Mar 13, 2024
fb7d10c
requiredec working
lucasmcdonald3 Mar 13, 2024
344824b
debug cb
lucasmcdonald3 Mar 13, 2024
697f2ff
fix cb
lucasmcdonald3 Mar 13, 2024
7dbc00a
fix cb
lucasmcdonald3 Mar 13, 2024
7036337
debug cb
lucasmcdonald3 Mar 13, 2024
14c287d
Merge
lucasmcdonald3 Mar 13, 2024
2d26009
Merge branch 'lucmcdon/mpl' into lucmcdon/mpl-requiredec
lucasmcdonald3 Mar 13, 2024
35dc479
Merge branch 'lucmcdon/mpl-requiredec' into lucmcdon/mpl-testvectors
lucasmcdonald3 Mar 13, 2024
7a44191
debug gha
lucasmcdonald3 Mar 13, 2024
298235a
temp rm cov
lucasmcdonald3 Mar 13, 2024
4c1d0a0
temp rm cov
lucasmcdonald3 Mar 13, 2024
12e0060
debug gha
lucasmcdonald3 Mar 13, 2024
9ca61e2
debug gha
lucasmcdonald3 Mar 13, 2024
5deac12
debug cb
lucasmcdonald3 Mar 13, 2024
ff99fe7
debug cb
lucasmcdonald3 Mar 13, 2024
6a4b704
debug cb
lucasmcdonald3 Mar 13, 2024
0dbd4f6
fix cb
lucasmcdonald3 Mar 13, 2024
357594b
debug cb
lucasmcdonald3 Mar 13, 2024
3760ebe
debug gha
lucasmcdonald3 Mar 13, 2024
7b984fe
add missing file
lucasmcdonald3 Mar 13, 2024
9b7a58d
debug gha
lucasmcdonald3 Mar 14, 2024
93fee67
debug cb
lucasmcdonald3 Mar 14, 2024
e65fec4
debug gha
lucasmcdonald3 Mar 14, 2024
f4ebbba
imperative mood
lucasmcdonald3 Mar 14, 2024
05511a8
fix gha
lucasmcdonald3 Mar 14, 2024
c9c58e6
fix gha
lucasmcdonald3 Mar 14, 2024
a62f1b4
debug cb
lucasmcdonald3 Mar 14, 2024
752c98c
no more profile
lucasmcdonald3 Mar 14, 2024
d2897e5
debug cb
lucasmcdonald3 Mar 14, 2024
dc7887d
debug cb
lucasmcdonald3 Mar 14, 2024
36a4630
debug cb
lucasmcdonald3 Mar 14, 2024
736c1f4
debug cb
lucasmcdonald3 Mar 14, 2024
1adfb12
debug cb
lucasmcdonald3 Mar 14, 2024
dd4b495
debug cb
lucasmcdonald3 Mar 14, 2024
76b1f29
debug cb
lucasmcdonald3 Mar 14, 2024
33d7bdb
debug cb
lucasmcdonald3 Mar 14, 2024
6a8a623
debug new toxes
lucasmcdonald3 Mar 14, 2024
9fd7468
debug new toxes
lucasmcdonald3 Mar 14, 2024
5affe9c
add missing files
lucasmcdonald3 Mar 14, 2024
78b817d
debug tox
lucasmcdonald3 Mar 14, 2024
c817996
add missing
lucasmcdonald3 Mar 14, 2024
c549e39
debug cb
lucasmcdonald3 Mar 14, 2024
90a18d0
debug cb
lucasmcdonald3 Mar 14, 2024
77fba50
debug cb
lucasmcdonald3 Mar 14, 2024
991c55f
debug cb
lucasmcdonald3 Mar 14, 2024
71efaa3
debug cb
lucasmcdonald3 Mar 14, 2024
b1cbf4b
debug gha and cb
lucasmcdonald3 Mar 14, 2024
39fcb9b
debug gha and cb
lucasmcdonald3 Mar 14, 2024
5962312
debug gha and cb
lucasmcdonald3 Mar 14, 2024
0ac5e96
debug gha and cb
lucasmcdonald3 Mar 14, 2024
3dcab7f
debug gha and cb
lucasmcdonald3 Mar 14, 2024
ccb01a2
debug cb
lucasmcdonald3 Mar 14, 2024
7074f8a
add missing
lucasmcdonald3 Mar 14, 2024
2b36513
token
lucasmcdonald3 Mar 14, 2024
be6a253
token
lucasmcdonald3 Mar 14, 2024
a431365
debug
lucasmcdonald3 Mar 14, 2024
4120be3
debug cb
lucasmcdonald3 Mar 14, 2024
7391c78
missing
lucasmcdonald3 Mar 14, 2024
a16be01
missing
lucasmcdonald3 Mar 14, 2024
4b2553b
perms
lucasmcdonald3 Mar 14, 2024
843ac28
debug cb
lucasmcdonald3 Mar 14, 2024
68c068e
debug cb
lucasmcdonald3 Mar 15, 2024
adf7198
files in s3
lucasmcdonald3 Mar 18, 2024
e246463
files in s3
lucasmcdonald3 Mar 18, 2024
1aa07e5
files in s3
lucasmcdonald3 Mar 18, 2024
1702822
files in s3
lucasmcdonald3 Mar 18, 2024
207401a
files in s3
lucasmcdonald3 Mar 18, 2024
b3e0125
files in s3
lucasmcdonald3 Mar 18, 2024
644c343
files in s3
lucasmcdonald3 Mar 18, 2024
e72ab99
files in s3
lucasmcdonald3 Mar 18, 2024
36fd56b
files in s3
lucasmcdonald3 Mar 18, 2024
6052b53
files in s3
lucasmcdonald3 Mar 18, 2024
457aa88
files in s3
lucasmcdonald3 Mar 18, 2024
a8b65d3
files in s3
lucasmcdonald3 Mar 18, 2024
8ed6cca
debug gen
lucasmcdonald3 Mar 18, 2024
ef4a9d7
debug gen
lucasmcdonald3 Mar 18, 2024
b564f77
debug gen
lucasmcdonald3 Mar 18, 2024
31a58cc
debug gen
lucasmcdonald3 Mar 18, 2024
ed87953
debug gen
lucasmcdonald3 Mar 18, 2024
ac01f37
debug gen
lucasmcdonald3 Mar 18, 2024
69a934c
debug gen
lucasmcdonald3 Mar 18, 2024
65d3acd
debug gen
lucasmcdonald3 Mar 18, 2024
95e8a8b
debug gen
lucasmcdonald3 Mar 18, 2024
8d484e6
debug gen
lucasmcdonald3 Mar 18, 2024
8dcfc3c
debug gen
lucasmcdonald3 Mar 18, 2024
a9306bc
debug gen
lucasmcdonald3 Mar 18, 2024
894dcee
debug
lucasmcdonald3 Mar 18, 2024
e00ec2a
debug
lucasmcdonald3 Mar 18, 2024
2f23be3
debug
lucasmcdonald3 Mar 18, 2024
6a7d732
debug
lucasmcdonald3 Mar 18, 2024
8cbd3dc
debug
lucasmcdonald3 Mar 18, 2024
5cb4b13
debug
lucasmcdonald3 Mar 18, 2024
9d89a74
debug
lucasmcdonald3 Mar 18, 2024
51bf320
debug
lucasmcdonald3 Mar 18, 2024
3be4969
debug
lucasmcdonald3 Mar 18, 2024
9e3358d
debug
lucasmcdonald3 Mar 18, 2024
1b7a54b
debug
lucasmcdonald3 Mar 18, 2024
ce59f57
debug
lucasmcdonald3 Mar 18, 2024
6ef093b
debug
lucasmcdonald3 Mar 18, 2024
ce07e87
Debug
lucasmcdonald3 Mar 18, 2024
7225e51
debug
lucasmcdonald3 Mar 18, 2024
549fe07
debug
lucasmcdonald3 Mar 18, 2024
0f9b662
debug
lucasmcdonald3 Mar 18, 2024
8dd3468
debug
lucasmcdonald3 Mar 18, 2024
5378b62
debug
lucasmcdonald3 Mar 18, 2024
f3db08a
debug
lucasmcdonald3 Mar 18, 2024
6080556
debug
lucasmcdonald3 Mar 18, 2024
3862329
consume vectors
lucasmcdonald3 Mar 19, 2024
30f7152
rerun ci
lucasmcdonald3 Mar 19, 2024
876ed38
add missing files
lucasmcdonald3 Mar 19, 2024
8a6bf33
311
lucasmcdonald3 Mar 19, 2024
07f3b8f
cooking
lucasmcdonald3 Mar 19, 2024
a06684e
cooking
lucasmcdonald3 Mar 19, 2024
37fd225
cooking
lucasmcdonald3 Mar 19, 2024
e459045
cooking
lucasmcdonald3 Mar 19, 2024
0e8c6c9
missing
lucasmcdonald3 Mar 19, 2024
32446e2
tampering mpl
lucasmcdonald3 Mar 19, 2024
f1cd456
more
lucasmcdonald3 Mar 19, 2024
a3267bc
more
lucasmcdonald3 Mar 19, 2024
d4db5ec
more
lucasmcdonald3 Mar 19, 2024
bf78061
more
lucasmcdonald3 Mar 19, 2024
008ae6f
more
lucasmcdonald3 Mar 19, 2024
19a9dad
debug
lucasmcdonald3 Mar 19, 2024
a4aa0f9
debug
lucasmcdonald3 Mar 19, 2024
d53895d
debug
lucasmcdonald3 Mar 19, 2024
9c46200
debug
lucasmcdonald3 Mar 19, 2024
3af9f32
debug
lucasmcdonald3 Mar 19, 2024
9e255e4
debug
lucasmcdonald3 Mar 19, 2024
262696b
debug
lucasmcdonald3 Mar 19, 2024
fadea8c
debug
lucasmcdonald3 Mar 19, 2024
b8dbb1f
debug
lucasmcdonald3 Mar 19, 2024
f5d6cb7
debug
lucasmcdonald3 Mar 19, 2024
774abf6
debug
lucasmcdonald3 Mar 19, 2024
e16771a
debug
lucasmcdonald3 Mar 19, 2024
8752df7
Debug
lucasmcdonald3 Mar 19, 2024
91d219c
Debug
lucasmcdonald3 Mar 19, 2024
0178f7a
debug
lucasmcdonald3 Mar 19, 2024
1060a3f
debug
lucasmcdonald3 Mar 19, 2024
9806fba
debug
lucasmcdonald3 Mar 19, 2024
3625f98
debug
lucasmcdonald3 Mar 19, 2024
77b9165
Debug
lucasmcdonald3 Mar 19, 2024
cfc2681
debug
lucasmcdonald3 Mar 19, 2024
87bc057
debug
lucasmcdonald3 Mar 19, 2024
ca6f3a1
debug
lucasmcdonald3 Mar 19, 2024
3b01d38
debug
lucasmcdonald3 Mar 19, 2024
68495e8
debug
lucasmcdonald3 Mar 19, 2024
8a8103a
debug
lucasmcdonald3 Mar 19, 2024
89c39ff
debug
lucasmcdonald3 Mar 19, 2024
fee0cce
debug
lucasmcdonald3 Mar 19, 2024
c5ba2fd
debug
lucasmcdonald3 Mar 19, 2024
4875dbc
debug
lucasmcdonald3 Mar 19, 2024
4ed99d3
debug
lucasmcdonald3 Mar 20, 2024
9f76cbf
debug
lucasmcdonald3 Mar 20, 2024
2f08f0d
debug
lucasmcdonald3 Mar 20, 2024
594f273
debug
lucasmcdonald3 Mar 20, 2024
108cd03
refactor
lucasmcdonald3 Mar 20, 2024
b116b0d
debug
lucasmcdonald3 Mar 20, 2024
063989f
debug
lucasmcdonald3 Mar 20, 2024
101af71
debug
lucasmcdonald3 Mar 20, 2024
803ae4d
debug
lucasmcdonald3 Mar 20, 2024
58bd271
debug
lucasmcdonald3 Mar 20, 2024
bccd1be
clean37
lucasmcdonald3 Mar 20, 2024
970ca3c
clean37
lucasmcdonald3 Mar 20, 2024
9ccd014
311
lucasmcdonald3 Mar 20, 2024
2c3b380
311
lucasmcdonald3 Mar 20, 2024
c8ca704
311
lucasmcdonald3 Mar 20, 2024
c8c5a40
py311
lucasmcdonald3 Mar 20, 2024
8a0ddc4
311
lucasmcdonald3 Mar 20, 2024
20262d7
311
lucasmcdonald3 Mar 20, 2024
89efb74
312
lucasmcdonald3 Mar 20, 2024
e1700b9
ALL
lucasmcdonald3 Mar 20, 2024
1d7fcae
ALL
lucasmcdonald3 Mar 20, 2024
bdacdeb
ALL
lucasmcdonald3 Mar 20, 2024
2783808
gen decrypt keyrings
lucasmcdonald3 Mar 20, 2024
f690cf7
cleanup
lucasmcdonald3 Mar 20, 2024
446eaa4
cleanup
lucasmcdonald3 Mar 20, 2024
70b68f9
cleanup
lucasmcdonald3 Mar 20, 2024
67f0179
cleanup
lucasmcdonald3 Mar 20, 2024
7d8a515
cleanup
lucasmcdonald3 Mar 20, 2024
48974b0
debug
lucasmcdonald3 Mar 20, 2024
1bb5527
cleanup
lucasmcdonald3 Mar 20, 2024
72de35b
cleanup
lucasmcdonald3 Mar 20, 2024
f2792bc
cleanup
lucasmcdonald3 Mar 20, 2024
df45d5d
cleanup
lucasmcdonald3 Mar 20, 2024
c66938f
cleanup
lucasmcdonald3 Mar 20, 2024
b594a38
hierarchy
lucasmcdonald3 Apr 23, 2024
0da3fe9
??
lucasmcdonald3 May 1, 2024
7cd8874
found it
lucasmcdonald3 May 1, 2024
b58c5a0
more fix
lucasmcdonald3 May 1, 2024
2c4325a
tests
lucasmcdonald3 May 3, 2024
e64683c
run tests
lucasmcdonald3 May 3, 2024
66429d2
debug
lucasmcdonald3 May 3, 2024
03330ea
rerun ci
lucasmcdonald3 May 3, 2024
9fd39cd
fix
lucasmcdonald3 May 3, 2024
4240cee
fix
lucasmcdonald3 May 3, 2024
4adb696
fixes, now run net
lucasmcdonald3 May 3, 2024
620639f
fix
lucasmcdonald3 May 3, 2024
559bdd3
fixes
lucasmcdonald3 May 3, 2024
3ee4086
fix
lucasmcdonald3 May 3, 2024
30ed6fa
fix: Try all master key providers when decrypting raw RSA data key
lucasmcdonald3 May 1, 2024
f577371
resovle merge
lucasmcdonald3 May 3, 2024
a30bceb
resovle merge
lucasmcdonald3 May 3, 2024
807416e
Merge branch 'lucmcdon/mpl-testvectors' into mpl-testvectors-hierarchy
lucasmcdonald3 May 3, 2024
19712e3
fix
lucasmcdonald3 May 3, 2024
befe45d
fix
lucasmcdonald3 May 3, 2024
d33ff19
remove net for now
lucasmcdonald3 May 6, 2024
5393825
cleanup
lucasmcdonald3 May 6, 2024
9b029a7
merge
lucasmcdonald3 May 6, 2024
b461b64
cleanup
lucasmcdonald3 May 6, 2024
709fb3a
cleanup
lucasmcdonald3 May 6, 2024
d64dc81
cleanup
lucasmcdonald3 May 6, 2024
c953b21
fix
lucasmcdonald3 May 6, 2024
c7c6a56
fix
lucasmcdonald3 May 6, 2024
990e2b8
rv vectors
lucasmcdonald3 May 6, 2024
6979419
fix
lucasmcdonald3 May 6, 2024
4a24975
Merge branch 'lucmcdon/mpl-testvectors' into mpl-testvectors-hierarchy
lucasmcdonald3 May 6, 2024
dbed9b4
fixes
lucasmcdonald3 May 6, 2024
0137a48
clean
lucasmcdonald3 May 6, 2024
50f16cd
pylint
lucasmcdonald3 May 6, 2024
e343199
flake8
lucasmcdonald3 May 6, 2024
af0e372
flake8
lucasmcdonald3 May 6, 2024
03a0625
merge
lucasmcdonald3 May 20, 2024
0c51f3f
add py312_generate_hkeyring_decrypt_vectors in codebuild
RitvikKapila Jul 2, 2024
2b0de54
fix
RitvikKapila Jul 2, 2024
f670df3
updated decrypt_hkeyring_with_net.yml
RitvikKapila Jul 2, 2024
89cb9f1
set env variable DAFNY_AWS_ESDK_TEST_VECTOR_MANIFEST_PATH
RitvikKapila Jul 2, 2024
3e43ffd
debug
RitvikKapila Jul 2, 2024
059df05
debug
RitvikKapila Jul 2, 2024
5360da9
change branch for hkeyring decrypt
RitvikKapila Jul 2, 2024
72574f9
fix
RitvikKapila Jul 2, 2024
3e91d5c
debug
RitvikKapila Jul 2, 2024
b70fd8c
debug
RitvikKapila Jul 2, 2024
ef7660e
make net
RitvikKapila Jul 3, 2024
a2f5505
submodules; dafny
RitvikKapila Jul 3, 2024
61257d0
fix
RitvikKapila Jul 3, 2024
45cc689
fix - mpl transpile_net
RitvikKapila Jul 3, 2024
2264cb7
debug
RitvikKapila Jul 3, 2024
4c5d4ad
Update codebuild/py312/decrypt_hkeyring_with_net.yml
lucasmcdonald3 Aug 6, 2024
2f46a86
chore: performance tests for ESDK-python (#680)
RitvikKapila Jun 5, 2024
dee26cd
chore(performance_tests): added hierarchy keyring and caching cmm tes…
RitvikKapila Jun 7, 2024
9a912d3
chore(migration examples): added KMS, raw AES and raw RSA keyring/MKP…
RitvikKapila Jun 13, 2024
8904283
chore(custom_cmm_example.py): added test for custom_cmm_example.py (#…
RitvikKapila Jun 26, 2024
abede74
chore(MPL): Update README and primary pydocs (#658)
lucasmcdonald3 Jul 30, 2024
864d29b
chore: Change MPL branch, remove PYTHONPATH workarounds (#683)
lucasmcdonald3 Aug 5, 2024
07a4f0c
Merge branch 'mpl-reviewed' into mpl-testvectors-hierarchy
lucasmcdonald3 Aug 6, 2024
46de750
cleanup
lucasmcdonald3 Aug 7, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 22 additions & 1 deletion buildspec.yml
Original file line number Diff line number Diff line change
Expand Up @@ -296,7 +296,28 @@ batch:
buildspec: codebuild/py312/decrypt_keyrings_with_js.yml
env:
image: aws/codebuild/standard:7.0

- identifier: py312_generate_hkeyring_decrypt_vectors
buildspec: codebuild/py312/generate_hkeyring_decrypt_vectors.yml
env:
image: aws/codebuild/standard:7.0
- identifier: py312_decrypt_hkeyring_with_masterkey
depend-on:
- py312_generate_hkeyring_decrypt_vectors
buildspec: codebuild/py312/decrypt_hkeyring_with_masterkey.yml
env:
image: aws/codebuild/standard:7.0
- identifier: py312_decrypt_hkeyring_with_keyrings
depend-on:
- py312_generate_hkeyring_decrypt_vectors
buildspec: codebuild/py312/decrypt_hkeyring_with_keyrings.yml
env:
image: aws/codebuild/standard:7.0
- identifier: py312_decrypt_hkeyring_with_net
depend-on:
- py312_generate_hkeyring_decrypt_vectors
buildspec: codebuild/py312/decrypt_hkeyring_with_net.yml
env:
image: aws/codebuild/standard:7.0

- identifier: code_coverage
buildspec: codebuild/coverage/coverage.yml
Expand Down
32 changes: 32 additions & 0 deletions codebuild/py312/decrypt_hkeyring_with_keyrings.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
version: 0.2

env:
variables:
TOXENV: "py312-full_decrypt-mpl"
AWS_ENCRYPTION_SDK_PYTHON_INTEGRATION_TEST_AWS_KMS_KEY_ID: >-
arn:aws:kms:us-west-2:658956600833:key/b35311ef1-d8dc-4780-9f5a-55776cbb2f7f
AWS_ENCRYPTION_SDK_PYTHON_INTEGRATION_TEST_AWS_KMS_KEY_ID_2: >-
arn:aws:kms:eu-central-1:658956600833:key/75414c93-5285-4b57-99c9-30c1cf0a22c2
AWS_ENCRYPTION_SDK_PYTHON_INTEGRATION_TEST_AWS_KMS_MRK_KEY_ID_1: >-
arn:aws:kms:us-west-2:658956600833:key/mrk-80bd8ecdcd4342aebd84b7dc9da498a7
AWS_ENCRYPTION_SDK_PYTHON_INTEGRATION_TEST_AWS_KMS_MRK_KEY_ID_2: >-
arn:aws:kms:us-east-1:658956600833:key/mrk-80bd8ecdcd4342aebd84b7dc9da498a7
phases:
install:
runtime-versions:
python: 3.12
pre_build:
commands:
# Download previously generated vectors
# This manifest has coverage for both HKeyring and required encryption context CMM
- aws s3 cp s3://generated-vectors-artifacts-bucket/$CODEBUILD_RESOLVED_SOURCE_VERSION/312_hkeyring_reccmm_manifest.zip 312_hkeyring_reccmm_manifest.zip
- unzip 312_hkeyring_reccmm_manifest.zip
build:
commands:
- pip install "tox < 4.0"
- cd test_vector_handlers
- |
tox -- \
--input ../312_hkeyring_reccmm_manifest/manifest.json \
--keyrings
31 changes: 31 additions & 0 deletions codebuild/py312/decrypt_hkeyring_with_masterkey.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
version: 0.2

env:
variables:
TOXENV: "py312-full_decrypt-mpl"
AWS_ENCRYPTION_SDK_PYTHON_INTEGRATION_TEST_AWS_KMS_KEY_ID: >-
arn:aws:kms:us-west-2:658956600833:key/b35311ef1-d8dc-4780-9f5a-55776cbb2f7f
AWS_ENCRYPTION_SDK_PYTHON_INTEGRATION_TEST_AWS_KMS_KEY_ID_2: >-
arn:aws:kms:eu-central-1:658956600833:key/75414c93-5285-4b57-99c9-30c1cf0a22c2
AWS_ENCRYPTION_SDK_PYTHON_INTEGRATION_TEST_AWS_KMS_MRK_KEY_ID_1: >-
arn:aws:kms:us-west-2:658956600833:key/mrk-80bd8ecdcd4342aebd84b7dc9da498a7
AWS_ENCRYPTION_SDK_PYTHON_INTEGRATION_TEST_AWS_KMS_MRK_KEY_ID_2: >-
arn:aws:kms:us-east-1:658956600833:key/mrk-80bd8ecdcd4342aebd84b7dc9da498a7
phases:
install:
runtime-versions:
python: 3.12
pre_build:
commands:
# Download previously generated vectors
# This manifest has coverage for both HKeyring and required encryption context CMM
- aws s3 cp s3://generated-vectors-artifacts-bucket/$CODEBUILD_RESOLVED_SOURCE_VERSION/312_hkeyring_reccmm_manifest.zip 312_hkeyring_reccmm_manifest.zip
- unzip 312_hkeyring_reccmm_manifest.zip
build:
commands:
- pip install "tox < 4.0"
- cd test_vector_handlers
- |
tox -- \
--input ../312_hkeyring_reccmm_manifest/manifest.json
50 changes: 50 additions & 0 deletions codebuild/py312/decrypt_hkeyring_with_net.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
version: 0.2

env:
variables:
TOXENV: "py312-full_decrypt-mpl"
AWS_ENCRYPTION_SDK_PYTHON_INTEGRATION_TEST_AWS_KMS_KEY_ID: >-
arn:aws:kms:us-west-2:658956600833:key/b35311ef1-d8dc-4780-9f5a-55776cbb2f7f
AWS_ENCRYPTION_SDK_PYTHON_INTEGRATION_TEST_AWS_KMS_KEY_ID_2: >-
arn:aws:kms:eu-central-1:658956600833:key/75414c93-5285-4b57-99c9-30c1cf0a22c2
AWS_ENCRYPTION_SDK_PYTHON_INTEGRATION_TEST_AWS_KMS_MRK_KEY_ID_1: >-
arn:aws:kms:us-west-2:658956600833:key/mrk-80bd8ecdcd4342aebd84b7dc9da498a7
AWS_ENCRYPTION_SDK_PYTHON_INTEGRATION_TEST_AWS_KMS_MRK_KEY_ID_2: >-
arn:aws:kms:us-east-1:658956600833:key/mrk-80bd8ecdcd4342aebd84b7dc9da498a7
phases:
install:
runtime-versions:
python: 3.12
pre_build:
commands:
# Download previously generated vectors
# This manifest has coverage for both HKeyring and required encryption context CMM
- aws s3 cp s3://generated-vectors-artifacts-bucket/$CODEBUILD_RESOLVED_SOURCE_VERSION/312_hkeyring_reccmm_manifest.zip 312_hkeyring_reccmm_manifest.zip
- unzip 312_hkeyring_reccmm_manifest.zip
- export DAFNY_AWS_ESDK_TEST_VECTOR_MANIFEST_PATH="${PWD}/312_hkeyring_reccmm_manifest/manifest.json"

# Download dafny
- curl https://github.com/dafny-lang/dafny/releases/download/v4.7.0/dafny-4.7.0-x64-ubuntu-20.04.zip -L -o dafny.zip
- unzip -qq dafny.zip && rm dafny.zip
- export PATH="$PWD/dafny:$PATH"

# Clone SDK-Dafny repo to get test vectors runner
- git clone --recurse-submodules https://github.com/aws/aws-encryption-sdk-dafny.git
# TODO: Change branch to published when available
- cd aws-encryption-sdk-dafny
- git checkout lucmcdon/hkeyring-vectors
- git pull
- cd AwsEncryptionSDK/
- make transpile_net
- cd ../mpl/TestVectorsAwsCryptographicMaterialProviders/
- make transpile_net

# Change TestVectors to reference the published .NET ESDK
- cd ../../AwsEncryptionSDK/runtimes/net/TestVectorsNative/TestVectors
# - sed -i -e 's/<ProjectReference Include="\.\.\/\.\.\/ESDK\.csproj" \/>/<PackageReference Include="AWS.Cryptography.EncryptionSDK" Version="4.0.1" \/>/g' AWSEncryptionSDKTestVectorLib.csproj
# - cd ../TestVectors

build:
commands:
- dotnet test --framework net6.0
33 changes: 33 additions & 0 deletions codebuild/py312/generate_hkeyring_decrypt_vectors.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
version: 0.2

env:
variables:
TOXENV: "py312-full_decrypt_generate-mpl"
AWS_ENCRYPTION_SDK_PYTHON_INTEGRATION_TEST_AWS_KMS_KEY_ID: >-
arn:aws:kms:us-west-2:658956600833:key/b3537ef1-d8dc-4780-9f5a-55776cbb2f7f
AWS_ENCRYPTION_SDK_PYTHON_INTEGRATION_TEST_AWS_KMS_KEY_ID_2: >-
arn:aws:kms:eu-central-1:658956600833:key/75414c93-5285-4b57-99c9-30c1cf0a22c2
AWS_ENCRYPTION_SDK_PYTHON_INTEGRATION_TEST_AWS_KMS_MRK_KEY_ID_1: >-
arn:aws:kms:us-west-2:658956600833:key/mrk-80bd8ecdcd4342aebd84b7dc9da498a7
AWS_ENCRYPTION_SDK_PYTHON_INTEGRATION_TEST_AWS_KMS_MRK_KEY_ID_2: >-
arn:aws:kms:us-east-1:658956600833:key/mrk-80bd8ecdcd4342aebd84b7dc9da498a7
phases:
install:
runtime-versions:
python: 3.12
build:
commands:
- pip install "tox < 4.0"
- cd test_vector_handlers/test/aws-crypto-tools-test-vector-framework
# Checkout WIP branch with manifest containing HKeyring and required EC CMM test cases
- git checkout lucmcdon/hierarchy-test-vectors
- git pull
- cd ../..
- |
tox -- \
--input test/aws-crypto-tools-test-vector-framework/features/CANONICAL-GENERATED-MANIFESTS/0007-hkeyring-reccmm-generate-manifest.json \
--output 312_hkeyring_reccmm_manifest \
--keyrings
- zip -r 312_hkeyring_reccmm_manifest.zip 312_hkeyring_reccmm_manifest
- aws s3 cp 312_hkeyring_reccmm_manifest.zip s3://generated-vectors-artifacts-bucket/$CODEBUILD_RESOLVED_SOURCE_VERSION/312_hkeyring_reccmm_manifest.zip
Original file line number Diff line number Diff line change
Expand Up @@ -225,7 +225,7 @@ class MessageDecryptionTestScenario(object):
master_key_provider_fn = attr.ib(validator=attr.validators.is_callable())
result = attr.ib(validator=attr.validators.instance_of(MessageDecryptionTestResult))
keyrings = attr.ib(validator=attr.validators.instance_of(bool))
cmm_type = attr.ib(validator=attr.validators.instance_of(str))
cmm_type = attr.ib(validator=attr.validators.optional(attr.validators.instance_of(str)))
decryption_method = attr.ib(
default=None, validator=attr.validators.optional(attr.validators.instance_of(DecryptionMethod))
)
Expand Down Expand Up @@ -292,6 +292,7 @@ def from_scenario(
else:
master_key_specs = [
MasterKeySpec.from_scenario(spec) for spec in raw_master_key_specs
if spec["type"] != "aws-kms-hierarchy"
]

def master_key_provider_fn():
Expand All @@ -310,7 +311,8 @@ def master_key_provider_fn():
encryption_context = {}

# MPL test vectors add CMM types to the test vectors manifests
if "cmm" in scenario:
if "cmm" in scenario \
and scenario["cmm"] is not None:
if scenario["cmm"] == "Default":
# Master keys and keyrings can handle default CMM
cmm_type = scenario["cmm"]
Expand All @@ -323,11 +325,17 @@ def master_key_provider_fn():
else:
return None
else:
raise ValueError("Unrecognized cmm_type: " + cmm_type)
raise ValueError("Unrecognized cmm_type: " + scenario["cmm"])
else:
# If unspecified, set "Default" as the default
cmm_type = "Default"

# If this scenario does not have any key providers,
# do not create a scenario.
# Caller logic should expect `None` to mean "no scenario".
if master_key_provider_fn() is None:
return None

return cls(
ciphertext_uri=scenario["ciphertext"],
ciphertext=ciphertext_reader(scenario["ciphertext"]),
Expand Down Expand Up @@ -358,6 +366,9 @@ def scenario_spec(self):
spec["decryption-method"] = self.decryption_method.value
if self.description is not None:
spec["description"] = self.description
spec["cmm"] = self.cmm_type
spec["encryption-context"] = self.encryption_context

return spec

def _one_shot_decrypt(self):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@
# We only actually need these imports when running the mypy checks
pass

SUPPORTED_VERSIONS = (2,)
SUPPORTED_VERSIONS = (2, 4, )


class TamperingMethod:
Expand Down Expand Up @@ -410,6 +410,8 @@ class MessageDecryptionTestScenarioGenerator(object):
decryption_master_key_provider_fn = attr.ib(validator=attr.validators.is_callable())
result = attr.ib(validator=attr.validators.optional(attr.validators.instance_of(MessageDecryptionTestResult)))
keyrings = attr.ib(validator=attr.validators.instance_of(bool))
cmm_type = attr.ib(validator=attr.validators.optional(attr.validators.instance_of(str)))
encryption_context = attr.ib(validator=attr.validators.optional(attr.validators.instance_of(dict)))

@classmethod
def from_scenario(cls, scenario, keys, plaintexts, keyrings, keys_uri):
Expand All @@ -432,6 +434,10 @@ def from_scenario(cls, scenario, keys, plaintexts, keyrings, keys_uri):
keyrings,
keys_uri,
)

if encryption_scenario is None:
return None

tampering = scenario.get("tampering")
tampering_method = TamperingMethod.from_tampering_spec(tampering)
decryption_method_spec = scenario.get("decryption-method")
Expand All @@ -457,6 +463,16 @@ def decryption_master_key_provider_fn():
result_spec = scenario.get("result")
result = MessageDecryptionTestResult.from_result_spec(result_spec, None) if result_spec else None

try:
encryption_context = encryption_scenario_spec["encryption-context"]
except KeyError:
encryption_context = None

try:
cmm_type = encryption_scenario_spec["cmm"]
except KeyError:
cmm_type = None

return cls(
encryption_scenario=encryption_scenario,
tampering_method=tampering_method,
Expand All @@ -465,6 +481,8 @@ def decryption_master_key_provider_fn():
decryption_master_key_provider_fn=decryption_master_key_provider_fn,
result=result,
keyrings=keyrings,
cmm_type=cmm_type,
encryption_context=encryption_context,
)

def run(self, ciphertext_writer, plaintext_uri):
Expand Down Expand Up @@ -494,8 +512,8 @@ def decryption_test_scenario_pair(self, ciphertext_writer, ciphertext_to_decrypt
decryption_method=self.decryption_method,
result=expected_result,
keyrings=self.keyrings,
cmm_type="Default",
encryption_context={}
cmm_type=self.cmm_type,
encryption_context=self.encryption_context,
),
)

Expand Down Expand Up @@ -533,6 +551,7 @@ def _generate_plaintexts(plaintexts_specs):

@classmethod
def from_file(cls, input_file, keyrings):
# pylint: disable=too-many-locals
# type: (IO) -> MessageDecryptionGenerationManifest
"""Load from a file containing a full message encrypt manifest.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ class MessageEncryptionTestScenario(object):
master_key_specs = attr.ib(validator=iterable_validator(list, MasterKeySpec))
master_key_provider_fn = attr.ib(validator=attr.validators.is_callable())
keyrings = attr.ib(validator=attr.validators.instance_of(bool))
cmm = attr.ib(validator=attr.validators.instance_of(str))

@classmethod
def from_scenario(cls, scenario, keys, plaintexts, keyrings, keys_uri):
Expand Down Expand Up @@ -114,6 +115,25 @@ def master_key_provider_fn():
return keyring_from_master_key_specs(keys_uri, master_key_specs, "encrypt")
return master_key_provider_from_master_key_specs(keys, master_key_specs)

# MPL test vectors add CMM types to the test vectors manifests
if "cmm" in scenario:
if scenario["cmm"] == "Default":
# Master keys and keyrings can handle default CMM
cmm_type = scenario["cmm"]
elif scenario["cmm"] == "RequiredEncryptionContext":
# Skip RequiredEncryptionContext CMM for master keys;
# RequiredEncryptionContext is unsupported for master keys.
# Caller logic should expect `None` to mean "no scenario".
if keyrings:
cmm_type = scenario["cmm"]
else:
return None
else:
raise ValueError("Unrecognized cmm_type: " + cmm_type)
else:
# If unspecified, set "Default" as the default
cmm_type = "Default"

return cls(
plaintext_name=scenario["plaintext"],
plaintext=plaintexts[scenario["plaintext"]],
Expand All @@ -123,6 +143,7 @@ def master_key_provider_fn():
master_key_specs=master_key_specs,
master_key_provider_fn=master_key_provider_fn,
keyrings=keyrings,
cmm=cmm_type,
)

def run(self, materials_manager=None):
Expand Down
Loading
Loading