From dadfb583b73d7bfe195dfe15ce3a28f764fe2b8f Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 24 Feb 2026 13:30:38 -0800 Subject: [PATCH 1/3] m --- .../examples/BasicPutGetExample.class | Bin 0 -> 2272 bytes .../cryptography/examples/ConfigUtils.class | Bin 0 -> 975 bytes .../examples/CreateKeyStoreKeyExample.class | Bin 0 -> 1266 bytes .../examples/CreateKeyStoreTableExample.class | Bin 0 -> 1261 bytes ...etEncryptedDataKeyDescriptionExample.class | Bin 0 -> 2082 bytes ...ipulationUtils$ManipulationException.class | Bin 0 -> 873 bytes .../examples/ManipulationUtils.class | Bin 0 -> 4158 bytes .../examples/ScanErrorExample.class | Bin 0 -> 2419 bytes .../ClientSupplierExample.class | Bin 0 -> 3324 bytes .../RegionalRoleClientSupplier.class | Bin 0 -> 1251 bytes .../RegionalRoleClientSupplierConfig.class | Bin 0 -> 1195 bytes .../enhanced/EnhancedPutGetExample.class | Bin 0 -> 1688 bytes .../enhanced/LombokPutGetExample.class | Bin 0 -> 1774 bytes .../examples/enhanced/SimpleClass.class | Bin 0 -> 2257 bytes .../examples/enhanced/SimpleClass2.class | Bin 0 -> 2260 bytes .../examples/enhanced/SimpleClass3.class | Bin 0 -> 2260 bytes .../examples/enhanced/SimpleClass4.class | Bin 0 -> 2654 bytes ...mpleViaLombok$SimpleViaLombokBuilder.class | Bin 0 -> 2232 bytes .../examples/enhanced/SimpleViaLombok.class | Bin 0 -> 4100 bytes .../enhanced/SingleTableExample.class | Bin 0 -> 1683 bytes .../TableSchemaBuilderPutGetExample.class | Bin 0 -> 3361 bytes .../ItemEncryptDecryptExample.class | Bin 0 -> 1991 bytes .../keyring/ExampleBranchKeyIdSupplier.class | Bin 0 -> 1608 bytes .../keyring/HierarchicalKeyringExample.class | Bin 0 -> 2690 bytes .../keyring/KmsEcdhKeyringExample.class | Bin 0 -> 10251 bytes .../keyring/KmsRsaKeyringExample.class | Bin 0 -> 5977 bytes .../MrkDiscoveryMultiKeyringExample.class | Bin 0 -> 3388 bytes .../keyring/MultiKeyringExample.class | Bin 0 -> 3538 bytes .../keyring/MultiMrkKeyringExample.class | Bin 0 -> 3005 bytes .../keyring/RawAesKeyringExample.class | Bin 0 -> 2862 bytes .../keyring/RawEcdhKeyringExample.class | Bin 0 -> 8975 bytes .../keyring/RawRsaKeyringExample.class | Bin 0 -> 6233 bytes ...cheAcrossHierarchicalKeyringsExample.class | Bin 0 -> 7747 bytes .../BasicSearchableEncryptionExample.class | Bin 0 -> 2851 bytes ...conStylesSearchableEncryptionExample.class | Bin 0 -> 3787 bytes ...undBeaconSearchableEncryptionExample.class | Bin 0 -> 8670 bytes ...ualBeaconSearchableEncryptionExample.class | Bin 0 -> 3585 bytes .../complexexample/BeaconConfig.class | Bin 0 -> 3655 bytes .../ComplexSearchableEncryptionExample.class | Bin 0 -> 2197 bytes .../complexexample/PutRequests.class | Bin 0 -> 17039 bytes .../complexexample/QueryRequests.class | Bin 0 -> 28889 bytes .../complexexample/README.md | 24 +++ .../examples/TestBasicPutGetExample.class | Bin 0 -> 1467 bytes .../TestCreateKeyStoreKeyExample.class | Bin 0 -> 1022 bytes .../TestCreateKeyStoreTableExample.class | Bin 0 -> 896 bytes ...etEncryptedDataKeyDescriptionExample.class | Bin 0 -> 2034 bytes .../examples/TestScanErrorExample.class | Bin 0 -> 811 bytes .../cryptography/examples/TestUtils.class | Bin 0 -> 3994 bytes .../TestClientSupplierExample.class | Bin 0 -> 1962 bytes .../enhanced/TestEnhancedPutGetExample.class | Bin 0 -> 2063 bytes .../enhanced/TestSingleTableExample.class | Bin 0 -> 1734 bytes .../TestItemEncryptDecryptExample.class | Bin 0 -> 1316 bytes .../TestHierarchicalKeyringExample.class | Bin 0 -> 2028 bytes .../keyring/TestKmsEcdhKeyringExample.class | Bin 0 -> 2103 bytes .../keyring/TestKmsRsaKeyringExample.class | Bin 0 -> 806 bytes .../TestMrkDiscoveryMultiKeyringExample.class | Bin 0 -> 1900 bytes .../keyring/TestMrkMultiKeyringExample.class | Bin 0 -> 1704 bytes .../keyring/TestMultiKeyringExample.class | Bin 0 -> 1685 bytes .../keyring/TestRawAesKeyringExample.class | Bin 0 -> 1515 bytes .../keyring/TestRawEcdhKeyringExample.class | Bin 0 -> 1072 bytes .../keyring/TestRawRsaKeyringExample.class | Bin 0 -> 1521 bytes ...cheAcrossHierarchicalKeyringsExample.class | Bin 0 -> 2151 bytes .../SearchableEncryptionTestUtils.class | Bin 0 -> 886 bytes ...TestBasicSearchableEncryptionExample.class | Bin 0 -> 1595 bytes ...conStylesSearchableEncryptionExample.class | Bin 0 -> 1643 bytes ...undBeaconSearchableEncryptionExample.class | Bin 0 -> 1653 bytes ...ualBeaconSearchableEncryptionExample.class | Bin 0 -> 1644 bytes ...ComplexSearchableEncryptionTestUtils.class | Bin 0 -> 584 bytes ...stComplexSearchableEncryptionExample.class | Bin 0 -> 2004 bytes .../clientsupplier/ClientSupplierExample.java | 18 ++- .../enhanced/EnhancedPutGetExample.java | 14 +- .../enhanced/LombokPutGetExample.java | 12 +- .../examples/enhanced/SingleTableExample.java | 28 ++-- .../TableSchemaBuilderPutGetExample.java | 12 +- .../ItemEncryptDecryptExample.java | 16 +- .../keyring/HierarchicalKeyringExample.java | 16 +- .../keyring/KmsEcdhKeyringExample.java | 40 +++-- .../keyring/KmsRsaKeyringExample.java | 18 ++- .../MrkDiscoveryMultiKeyringExample.java | 16 +- .../examples/keyring/MultiKeyringExample.java | 18 ++- .../keyring/MultiMrkKeyringExample.java | 24 +-- .../keyring/RawAesKeyringExample.java | 14 +- .../keyring/RawEcdhKeyringExample.java | 48 +++--- .../keyring/RawRsaKeyringExample.java | 12 +- ...acheAcrossHierarchicalKeyringsExample.java | 24 +-- .../BasicSearchableEncryptionExample.java | 8 +- ...aconStylesSearchableEncryptionExample.java | 12 +- ...oundBeaconSearchableEncryptionExample.java | 8 +- ...tualBeaconSearchableEncryptionExample.java | 10 +- .../ComplexSearchableEncryptionExample.java | 13 +- .../complexexample/PutRequests.java | 81 +++++----- .../complexexample/QueryRequests.java | 140 +++++++++--------- .../TestClientSupplierExample.java | 14 +- .../enhanced/TestEnhancedPutGetExample.java | 37 ++++- .../enhanced/TestSingleTableExample.java | 27 +++- .../TestItemEncryptDecryptExample.java | 6 +- .../TestHierarchicalKeyringExample.java | 14 +- .../keyring/TestKmsEcdhKeyringExample.java | 14 +- .../keyring/TestKmsRsaKeyringExample.java | 14 +- .../TestMrkDiscoveryMultiKeyringExample.java | 14 +- .../keyring/TestMrkMultiKeyringExample.java | 15 +- .../keyring/TestMultiKeyringExample.java | 14 +- .../keyring/TestRawAesKeyringExample.java | 14 +- .../keyring/TestRawEcdhKeyringExample.java | 26 +++- .../keyring/TestRawRsaKeyringExample.java | 14 +- ...acheAcrossHierarchicalKeyringsExample.java | 14 +- .../TestBasicSearchableEncryptionExample.java | 6 +- ...aconStylesSearchableEncryptionExample.java | 6 +- ...oundBeaconSearchableEncryptionExample.java | 6 +- ...tualBeaconSearchableEncryptionExample.java | 6 +- ...estComplexSearchableEncryptionExample.java | 7 +- 111 files changed, 603 insertions(+), 291 deletions(-) create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/BasicPutGetExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/ConfigUtils.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/CreateKeyStoreKeyExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/CreateKeyStoreTableExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/GetEncryptedDataKeyDescriptionExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/ManipulationUtils$ManipulationException.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/ManipulationUtils.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/ScanErrorExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/clientsupplier/ClientSupplierExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/clientsupplier/RegionalRoleClientSupplier.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/clientsupplier/RegionalRoleClientSupplierConfig.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/EnhancedPutGetExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/LombokPutGetExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/SimpleClass.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/SimpleClass2.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/SimpleClass3.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/SimpleClass4.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/SimpleViaLombok$SimpleViaLombokBuilder.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/SimpleViaLombok.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/SingleTableExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/TableSchemaBuilderPutGetExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/itemencryptor/ItemEncryptDecryptExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/ExampleBranchKeyIdSupplier.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/HierarchicalKeyringExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/KmsEcdhKeyringExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/KmsRsaKeyringExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/MrkDiscoveryMultiKeyringExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/MultiKeyringExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/MultiMrkKeyringExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/RawAesKeyringExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/RawEcdhKeyringExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/RawRsaKeyringExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/SharedCacheAcrossHierarchicalKeyringsExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/searchableencryption/BasicSearchableEncryptionExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/searchableencryption/BeaconStylesSearchableEncryptionExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/searchableencryption/CompoundBeaconSearchableEncryptionExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/searchableencryption/VirtualBeaconSearchableEncryptionExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/searchableencryption/complexexample/BeaconConfig.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/searchableencryption/complexexample/ComplexSearchableEncryptionExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/searchableencryption/complexexample/PutRequests.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/searchableencryption/complexexample/QueryRequests.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/searchableencryption/complexexample/README.md create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/TestBasicPutGetExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/TestCreateKeyStoreKeyExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/TestCreateKeyStoreTableExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/TestGetEncryptedDataKeyDescriptionExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/TestScanErrorExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/TestUtils.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/clientsupplier/TestClientSupplierExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/enhanced/TestEnhancedPutGetExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/enhanced/TestSingleTableExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/itemencryptor/TestItemEncryptDecryptExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestHierarchicalKeyringExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestKmsEcdhKeyringExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestKmsRsaKeyringExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestMrkDiscoveryMultiKeyringExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestMrkMultiKeyringExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestMultiKeyringExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestRawAesKeyringExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestRawEcdhKeyringExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestRawRsaKeyringExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestSharedCacheAcrossHierarchicalKeyringsExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/searchableencryption/SearchableEncryptionTestUtils.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/searchableencryption/TestBasicSearchableEncryptionExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/searchableencryption/TestBeaconStylesSearchableEncryptionExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/searchableencryption/TestCompoundBeaconSearchableEncryptionExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/searchableencryption/TestVirtualBeaconSearchableEncryptionExample.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/searchableencryption/complexexample/ComplexSearchableEncryptionTestUtils.class create mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/searchableencryption/complexexample/TestComplexSearchableEncryptionExample.class diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/BasicPutGetExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/BasicPutGetExample.class new file mode 100644 index 0000000000000000000000000000000000000000..def02a53367ed3e560eb047eb714ceded3a4cba1 GIT binary patch literal 2272 zcmd5--)|d55dPM`eNEcLB@Kp_9&Lf->eSS2rQ#x_Gznm8he|1tswxlb^VYfM?$+8{ zr)fAZE`_?WPVbl|Ve)?(FP-v)|0k&V2Fb=l1}dM=6U0 z!^KG6)VH}3WghTPWLS1pucKvK@y=$iEI#Hz#}`rgGLJm>YFED}^h#fsMT%kS7T@M& zpNH-8hs|5U)eM=pz0lL|FeK;Z*BMevvL!4ek)J>s8HPi3FBGfYpefWf-t+}Sp)OtS zuXE*@^+1`@n_k3Ftv@fnOAH5za7~MVNSld4&eey6*R=A&_N9MMGryk2G&wxHaz!br zayZPA4?hZ(h@`(QTDB{Lj^}gj$xHfg%(#!>tGxGcpP{gk8IgY+{_KZE7}>G9=W$OF0Dj33cT7{6sot9^g* z=->J;u~vTh^2(y$mdewc!CKeTqDBv4pY$FEdza(TwOUAz#1)haYF~W+dHho>aU6|i zG`w@)a9S3oFk=ec5r&yD#U`$Z0rx_NBXc*NEIp=Vyu@%~STbt9FWTH+RPAmcLMpz- zSNf$n9A&t3P1>p(+NM_8gIZm(z0mc$EkRmgZv_#(CyFhPY_8hTjW;(+cB|D-kX0Ut zM;m8pqr;W6}4n$li37!Hh(XP6#65K|)?gA;@0B_nl;=?xZRWCtX=}GL>q|$yTaqCs(OvPL~#nsbadAxr0{>(PT{Y0~AR9lFU7z ztG*(N4=|0dF@taDM}CWAc!(4D4sYOll<*@K@DtA9XY%_OoW-v=hu?4kKj0#MkEy=j zCkC4$2C{OB&?kv@ku;}BN|42)c#Wha?abnJl2T;7K;KDfgc5Pj>Wabf}ufdZuzxwo_jECeTldTEPP$$UutkT|a0O}dr6Ywd0e;a_p8 z1QOi&QHZfa>K=RuTxLAG^Pc9-KL7gt?FWFDcmND{imsHiDePgug;2vW; z$I1w+vrBOrraCWV#vP3l7DkiM+`bBf?tGR8<}l?-X%{9UyrywFagKi$X>yrzM!XlBTFOoZ`ku$`5--v*5@q^lQHz(N^8jnN3?c}O^~(e&jCF8B1=>Bsfs8w%FEkV=zOiN1B&G}(7`Q= zy;%e0+f;RN2PNTwY0ff08 AWB>pF literal 0 HcmV?d00001 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/CreateKeyStoreKeyExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/CreateKeyStoreKeyExample.class new file mode 100644 index 0000000000000000000000000000000000000000..6e276b20c8480eae4d5282e73fddd8355771f3ac GIT binary patch literal 1266 zcmbtTT~8B16g|@x+O9=P`A`saM8vkDO^8oo2$g`M1s{qSVq!Ag4rO6?W;5L)^?&#a z`~^N?G=X>D{6ogOZE1~djEOJvaX-#I_s*H`Kfj&>c!XRW5r);eJ_z0mBMZV4AG9ji zrs)T|W`uv(EXY&g`L3)N){PW_d?}mdK$~#iXnW#_F{F>gi72>2)e5gFN74=$hMzdf z304`R+1wsOY+YBSg(#9K3}KjIwB#tc)9@V zkL3!(*d_OFCk!vLr5^KgU>sFj`4>yBKPZkdYO05}VT?8jj5GXrt&FT|_e55?tv%my zMc`<~eWR&Qul|@@$xCkB7E0-WS0wM|1eyyTG=2Hku%2^Ws{^Mt0Et4j%WZGNv^n&b zvy$EUY$?AH48pOH#$@=8Qw);>M%a3APdJKUD*Lv7R=K@6W*Fvs)7o-fSrcy2)Eb^t z!N#dA{cuPL%rd;&)!Z}`52e66f?VQ`vfV~il2!8Kjx1ZE*%6*x;;ybaB&W;4wv9qn z`LS0gW6>x=;KJ1E7N#+2f#FsPS20Rj4Xq601DKPH`f7#B?RC;o5v31cz>w^gXBa65 z!am*>en;z8SvQO=H=Xb|%ypmPj}P}StcBaeH%h-4w6gF=(Hf^)fp$jwQ2q>w&vb~u zqBV2_Gq^%)svSW42;Gul&twUc^8^-xTHlb~&t%RpaY47=5f)kqkyhR{T<_$4q^ua( z7V_t@PZ;@z>HW-&Gt6D&qsygyYA@G=d=qktwm2MJI5VPEjnjDzG%U@6j=W>@PvY BQD6W7 literal 0 HcmV?d00001 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/CreateKeyStoreTableExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/CreateKeyStoreTableExample.class new file mode 100644 index 0000000000000000000000000000000000000000..862b72bd59347650d7f387d49a142d36f9e4c40a GIT binary patch literal 1261 zcmbtT-A)rh6#k|yl&&D9{3wb#f?%m=6XK0xj8IXLf)_;+Vq!Ag4rO6?W;5L)^*MY4 zpTH}OByjHo_&CP1yM;n%jEOh%bAG<_oipG3{Qct?z+=p&kzjby(A&W$VPsKw;Z*NyOZT19yvJl~a#V#!Dm$W_^@1lq_AQFY~V>`NoXklhvgqUZ`$FTShpN;_ca zedZ`9c+QZ_&u%iLO1dU3B$4Sy4|*8}%Z`%kO|L3V1jmpoYg@RR!Z;y(+n5S=oCd>E z`G0vXFbtpakGpACc#M{xz)QENQjv)Vm;2$XX@#Hciao zayct=@p)I2-we8eS;%5Ee7`Y<(Jo_)9@-O*Vi?PRxIDygWH%TlJ0n|hU0E0IqNz7M zsej83N;8-=Rz zJ+DE=MWYCT3sY}c7{{muhCBVZib2w7XeF6+Va_mgsaB}iPA6^UPgBD6EFN#5hSm7__qRFVUK&Tak7~dr#pIec$Mi zfJJNQ2Cm}@t^IKT?E`engk6&*OfC>u2x=W6yOqlwV&sHw=MknOghZ5gjqu{UFO-!c z+f?B=^%Vn07~jg>JjAV&LUO)bNX@Smdgj+3%su>$+aaZ7L}`Xf14~4$ME93Or$oYf zjS;*d;1x{ZEhe!V6)eQ?;M6xLVvsyjR6K0x9-R^toyIhsl9-7quq?Un(=mbk9~&l5 A&Hw-a literal 0 HcmV?d00001 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/GetEncryptedDataKeyDescriptionExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/GetEncryptedDataKeyDescriptionExample.class new file mode 100644 index 0000000000000000000000000000000000000000..2f334f498dd72ff510b8ecfdf829e79004ab363b GIT binary patch literal 2082 zcmd5-TW=dh6#mBd-6qsYNLvGKmxfESb#2M25OS+RNlazMNsH22s(2djPMmFbXIHc9 zG%ojx_#sIA0G@)V)V?F}JNOrfGq!6Rb(JE-0}nfME_2SD@60)8fBW;-rvR>^UPOjr zI}Z1gM_h?I5BTFy)*UsBlCZCMbTF)oBOXM)i0ijR(vl;UaJP8Ex5aQv#E$Z!#0zC> ze5{BZL-_$e9&Z@+dHz?s!t{4uYOg zcX`hj49lI+;eMAZPxBLDE;;aGhMmrT81glS3;h$ZG5oaNnPJ*XlqdVw{%?|vZV^kA z$yuN+r9xH03S)oVlS;&)e<)nb34_Sh}`fVEFxRXsLm;bXQuFK~c3l>G%Uzkd!{%yt_OQ zRV(5u@pRSE;P^Y&<$g5|RYHpK(FsHH0U3&;h-QdzNqt9!hn_1`+f5hC{cxuENO9>L zkX75YxOAs}rt+>(u`Vc2T3q#G6BVqQV7Rz|S8$r9l$J8Aq$G;Lm_pODYL>9cbYNJR z2TXlA&k{0*Q*)T<_&jKOy;Rf;XVc^ao5Fmqnc{1^4Ch{uPEa!}?j_uLxWl8#a5eYB zfpWyho*uvU$wfRF_ce_hZ&J>(^g{uyOwV&#i^SDwXSC<-W0Za-A_J3Ftp*k9DOwlC z2WVd;&d_-$i8i+N-+^}X3Cj1Emyhx4Gvekwyf^ZY8QGo1xv?Eh|_z{aw zP`SVS`Z3Nwv$Ktkoonpa`NpnYXf$(nvC+)irAD)0mx(XhWfGL^GD(cf)hm@;C0{92 zij`8u_yrdPMh+`#Af z0AJuke2JU*3Y+*EEqsGp_!ez^hi!b19ejp6_+bQXe+&c`WfnlWN GQ2PrxHeJyG literal 0 HcmV?d00001 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/ManipulationUtils$ManipulationException.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/ManipulationUtils$ManipulationException.class new file mode 100644 index 0000000000000000000000000000000000000000..8d6256a285b349632410458b46988a6f284bc22d GIT binary patch literal 873 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 literal 0 HcmV?d00001 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/clientsupplier/ClientSupplierExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/clientsupplier/ClientSupplierExample.class new file mode 100644 index 0000000000000000000000000000000000000000..e3eeb38b57838c9115b371465cf7fe46f7cebf15 GIT binary patch literal 3324 zcmeHKTXz#x6#jOaWHLj65=fyyVL-$-6jG}erL`DB!Pt~rfLh8zPAAha?OfuSNg+PN zn{WOCmk&PsRF$>h-6wyC{s(c-Bq42SDO8tFu9bD>T=wmJ`<%1C{Px$c&j5UgNd+;& z7rwU;JQUK*2}gY6xj92NYJpdkqV}MXGam`3W}AM_ur1RK{Ccg%9hoac!*Xjl*_2Wc zC-f|eWs$RmTg_daUo?$?kQ}#ME0`d34Gi8U#0y@<)X)XB8wn%{yGxd9Ua33tro1WU zZIh5Ld4{lW3u%Sp)?_?*VEKen>EDZZjBt4ER<6~9VqiL#&FDi|8Yp!(R1T!&R>wA* zsRx#wD_MTfl2|{EK-ttr2#s2{s;&s?k}>#hJD$g1jcsCmG_R4_DnbQ&Ib9td#d&`xk@7c>{MK?UBX4xXJJXfztk2C1_=X6b-7J`w!L+NEV_Ik4U=(~TV&^Lbvxc7T>OsDO@Uz*%Qw7bQ#LMHHV3vVfG8>eUs0us6atXZybFY?+!P^QB z6OMNt`l4-{Rbl64weBzvn0yr88ouT!93kAi>FKiW>S2A>TZ~~yw_L-nS4^HY^-87r zJ`CwgW+N}%Aw54+)`eksbtV-*c*ir71O+wq7hbD z4LZ~vIDwN2-X-knh=i-%cnl85_KlLY8Splhw3oOj!6+7$VTH2Ev(c z?80v5D`7Ys#s)wUy4zd3BAkf0bTDgGdgedPO|uC%A~{zVxB}%{n`duDuBq*n8%-1l zsWv)HshSz;&AplZqm2B5cVd`%tWZYDB>V4w|KiWKXfz&8Wm2PRD6M2OYFk>R zjG9Sh;w=8hsiD3^pOPL-pZXc6!_CK|a27d0P@W0%1!z=2H-CHR686z$zUNaoNG0^s z6`Z827^LesO*b%1w=hm+oag=|UBl-zgX{DqX6O#)Xb$)29v0~?9PS4+i-&X{k4Z$Z z)S~tY=VF*+*oUw2K1LX#190#G_hKB+690|(h+*!>1B`Mnj+6KbXYn!Tau9d%3C|^Q zny>OX?kTv=@?*TJV20B;&T}cu;c&F7;#2n1%XXVKCfG((euCxC^V(S?dS2itQVKp( dkmnzff)m7tV%G~CfwpeGy~aToSUrY|e*+du=->bV literal 0 HcmV?d00001 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/clientsupplier/RegionalRoleClientSupplier.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/clientsupplier/RegionalRoleClientSupplier.class new file mode 100644 index 0000000000000000000000000000000000000000..7241e7d06be26ceea03ae25abf041ec1417ba593 GIT binary patch literal 1251 zcmb_cOK%e~5dNHmya-JR6ev)-g-d$LUN{kigd!dhp%qPN#nIWgiQ8R!WjiV1k0F5s zcYYLN@={0|a-oOy&e${adA^zPuixK(0CY(}6NuMx zM9}WPN3JsBn8>axni4Cmqe*>BQ_4-y8)mS}u(1f7!5-CMsRbAc@1?a=q88QMVh=P5 z^iU*_$2Fu$$|Hm9c!&5Sjp6$EAxV-%r{7WdRNDB8&7WhNTePMpC%8>=VJdIo4rvT` lagWwngaqwPB5bdSu(KjU5)a5Hfrr?kKk%5oH0h7v{Q=Icd^P|8 literal 0 HcmV?d00001 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/clientsupplier/RegionalRoleClientSupplierConfig.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/clientsupplier/RegionalRoleClientSupplierConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..4a84f1c8d80ea5e3a80f6fb27e82465a8dabe641 GIT binary patch literal 1195 zcmb_bYflqV5Iwi8^uZ!fdHX)Q_iIpm@UG3+?jfqTMjq47F@Z<$)vZZ=%2 zX7k2jQxoraygwvVVnJQy2WC_CDXNxfG*!=0 z1$SIEqrTkG)nn0gsCIFuyjQ$LCG-dEMule?ZR80IfWmpbRvi7Zo&t|e(ocbOran%-rI6s&!bKp2Ax`jL!cn4v!yc~Eza zJBL&|fgudW!7!$v2iN1cg*#E)W|+LH5L$t=f2_5-aoSo?Fpj%K|7^hwQ>DMUxtO3* z_Y~a61BQ^?XBbFLcQ)3Ihe$;+MbbFuPP`RNBTcO~Jkr;b)P;*J(Jgi&7qhny`RzVd zpawmhX~JKSG{q~gUJ>>-uNbtHWXY;>W0%{~_uF8^J(Q%Ty^fCm%WI;QCUncQtKzxz zDNO$9`OWwf!UQcdOiw+GF@ST;CEAmHcqxTi1*PSDFjKfHwZB)1EX&) zeTsqfcMQEb#mHxjraxiyBW`}dL^AdjlVR+&kVih!-9kPD8E4225eMH!Fidquh}|f% U#6%-hY30W(GUPGLkqsgH8~+MKS^xk5 literal 0 HcmV?d00001 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/EnhancedPutGetExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/EnhancedPutGetExample.class new file mode 100644 index 0000000000000000000000000000000000000000..7d64729e91f94c1ea6e58ea9f567b63d182f70ec GIT binary patch literal 1688 zcmb_cTTc@~6h6}yX;*HRi-5NQZ%_$U;u9DXgkl<6B|%Ay@nO0h%E0bSGdl~^Xa9)) z1D`OGz=N20`A^0(+m>Q1kq}>I=FH4@=KJPce*F4;000jm(+M#Gi-B41p>VVA^Ee=FLC{Xl{`)$T~IFb)|eL7ZfqvZ zh6o5O75)d;IRZUMK5w{>0_;R!cB0TCziPCQmASL*tX*orHc8d;d~u z9w={{m#M4#s_>W*O46!UD9sOMsgo))!%?cYqSdx2a~)8ZNvRAiae53kiZW_yRerYn zZEh_nxh^Vgd^@QH&5^_WPO$6;MZHxFJtLNR&3-{%RzuSUL{AVp2i!^J8xQ=$_hL;l zUoDoJDHml!PDTleA9<>%ll;!>!$~bZ$<2EerG?q>S3_ZV9>aJ_aJC!yil}4GO`3U$ zA$B>|ls*+-4{i%vueAkFaA{hC+rXRgYeCyQds-YF2l`;pmf{eB!8Roj)vV8iBrr7b z`tO3U**{8Pyp{cV&*K&5&Ff0&TkgA7IL0aoR|%}VP*jJK+G?ha&N4-XbiJ_5ahKCA zKfu($k7fa7x)Qv;|AsPIrsZ-e3jQr9S#{hTXB92}43pjV9m9nC6$AUBHEP=DL4}GuF z={*=YMC+u7>BvJY!d-^p2JRiAESa&)LB|K^-iMJ_=_`A1?JyIcDP$5e#d}lf>+w%O zEunZsXdIHb{({7g(Ef^KjxdG3!2o#t9r0pLF5h9E)UNuajO8>V@l`RuKd zc~`fZM%6WIZnyG$kNHiH2YD{HnRIzAUsirqHC99OjGJQTb_h}g#&_5*%X>`L^DnA9 z+%*IS9|V9>#XW=0@<>1nYY2TuyUkK znQajeD3t%7=^}wqq+T-INBVXn@Nll&rM_mgkoCpmXiD=NLvR|S=%R~SE1iZ3lKA~n zY91(Wm)EGP{HE}j5lYggRv4HcJfu#h!VJeiy;ZGtMUCr#x=c!CXqD3=uu+sz(`xeL zy^nddtmKxc$Jll<%bFvHr8mKIKd9(NCG?DV&Rg~iO0pT67!d6tbON}ODMb$cVY|?h z%vXhKF{-*_zY`3>cp2zFVThjH=w?DIIzZEMX4HpTlt}CiTN$sSd z(agF{g>=2J#!<^@!w<0VFpVsrOxJ_gcQ+}MHCn4x+oiR_e13FyZ_|NuFqMWY1SVnz zo&yAChG7)OaH?5r_$(#}0_j7ycC>Y4iKYyJ;a>LyM%D~-8x_`!CZDsWLM)%B!p_F& z7$SG9O_)JCNgU~bE3u;$*CCYhxD(t5a{G|}fQJM)xY}!gdvFTZ;m!lxM^MVxkWgd6 zIW(5S-8q2qSJ~`7OnyPB*TRFgg+v>77N#TIJ49JBGr7+L?_uNs&b`WB*oRABa><2q zF11j(bvt`G`4Olklx!24g*2YOA+hf$|3EU|v3!2QB>Y0NzkwoOOO|#F!z^4yX%Z=4 agX`#a8j0V)QvzNoq@-Q& zt6r!|KKC}Ow)n`)o+|=d$W1N_qG;zFnpk#u5G0|K!N7aI#ch|%lD(dPFA5<8)8l^V zgpQJrMU}zeT4PHt^c`86V~`A#AL?bc%D~_uF61krm}(wOHxFhQbk94|2^Sc2q%#`~ zI+s;Z7|;O&CYaFAAhqU5@w8IT3;zYryMoSE1@3Ne-=T4BvNPOt0tWMI|6e**kSdAr z*lC2*~(#3<8V8*U3?p9FF{(5KMeh}4OU@&Sz7j&ZgmVbjg`nw z^yP4^sjG4;rmZ7u2d#M^^?kx_=bVyUmu__~36rQ-<4!#AedYH6CVl-<`XW&7mMB^U zRrVZL`^55mg~lmoEu*)6UaO$3VdaHYPZBDNTVd4`h5p^w0goT~T*@z9}5KhX4# zx=uPXcyuTZTM}H(!8ts)1OK31kRb2lTY?;>BYH6if$QN8qKqKRs z*ol4aYFkxPl} z_FrUoV#%^GWb?6P^GLRD2l9Q*3U^z*wh%>KM%0xysC1DSroFGlS=4udW|jc{07h@( AE&u=k literal 0 HcmV?d00001 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/SimpleClass2.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/SimpleClass2.class new file mode 100644 index 0000000000000000000000000000000000000000..607ea42fa314d3ccf594158c12e4b49b21564d8b GIT binary patch literal 2260 zcmb`HS#Q%o5XWcJBdzO_QtlqqK!Kzj2ATprDD*-q6p9E`0v^yNSyF?uYuQdAd?p@1 zYE=m&c;`bQX0~Y(9ES(!i^qF-_Ba3euYdmf`W*nWu#|)ZgV{j63Ey*H*u2a?Drpz| zsu!w~&%Mp6Ek5wF=Ze4j&3?y4WkfaOyJ;97!TimUnp8fUKzJ4dFy})49gf8etHG-%b$I`80P}>aD zEw|r&>?HR8(SZQhk|J&oxoe;Bya`F@!E=$Yer{)am00?brCw*2>X|U1m+I-q-HnyV zPBi9lt*NVWE2ga@Yx}KPk@`kqw{uQOu1mK%n}lnqSL0Hw_`dRc;0A-2&!sN{y&n2i|L5w(Glg;5$Q1Y;TQOe!sj6z*%%qd zu8CbpebL(vl;e!kNe235?wnmv&&J!DHyz(^%q|&Oii2xyM9rR6Lbpp(G8uv$(59cdmtQ z{1dJ=(~ZZ{U4V-%bi+F^9;HhoL#7QKwS?%>s9jX}ZOBArx*Q8~DPE>b6yzF$TyFzH zo*A)GC31uD4eS?#*LPv^2acL0nrtF7>Xw*_C%YLXn?|ykHe}>d zBD?(u*>o(~ObppvEZH2A?b(5RU$erURk_xU7(pofZxyR B;@JQI literal 0 HcmV?d00001 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/SimpleClass3.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/SimpleClass3.class new file mode 100644 index 0000000000000000000000000000000000000000..28e0c67437d1110ad8c880f515eb0b2719bcd874 GIT binary patch literal 2260 zcmb`HT~pIQ6o${1k3tAm5WfH=Dr$>JR1g#pMbH@(!J*2Gdf{x_wM5h1Op=22H+i8m zFwW?V-ut5*&sj=a)6@&)CMWxmv(I_YyZQO+>vsT{f~6!R7|aFgO}N8-Ve=CIproDm zD_*FIKKHgNws_A=o+|=d$Sp4OqF`qonpkpq5KJbaox#z!e4E=YmqmL$_g3UX2BydT z&hsuC92YB6&#_a(0P(p73p6 z|J+{IYsuO77Kfz&q&yPb84a$UNWxg=aez3P|Zf$uB73oz-+=h7E}a<@gn z%Bzy+xY{R{=PNW$Y1T5jTj#a%+8S0)ShXafvbYsiJYg7M!xY_W(J z$JiH0eb(Fh@Y$&+Q_zp^=Kcma1_L-^a2!tHAt&)Yh4B=|(>OaAz)&RPE)0Ld)dbWt z4#s9Y3nQ3;a29ZP0%Pacl|2})^B8*eES5N;GY|n$?laLF6;GvDC`p~}JnpK}U1*{k z{fMiLbfd9!m*8>}-OwJ4M(NVXkZD0jEg`xzY8MrL7cxn%XY z69h7@n|M`=$Y25^$v=f&A~zV{z<$wx{R>R~z)_<_lMQ4>%@Q}`$)=-Zw~=hN1sS=N z$Zq{Xb~~1AHim3ImTVr$_U%BvuUg?wv)2})s7r{t+ya#@62r9jv^b0UF3`+E>-#*J!Ai(CE9a=)|E?-UuN z*B$BT4F)6mg+m6TTdFP$7=d#pWZ^vqxjjdU{Z_Lo{71a%3Ib6z?jCaAA-}UYs*jw2 z!R@_wCf4wbv zQ`M_>lY5@VrUY~z@CfXCg;3E^pAdS@s z;?=m2A1ns7&A_@CSSq8PqC6W~rz#2qK8bqQ~nkb!ahE)w>>JDM*OOBPvrdETOY z7EPF-e6n~t+KHV+mCkgUT9(HNZJpigwq{3$I1PCq-F7JhDEVA8Av?aW{Bc0F z|L|D)B2ezJs9QDF^c*+TiRJkUh0|QKjEUiKty(Azt17Hs5Unh3>9!{f18%}9&50Gu zZJDzE(gY*Sy1yO>G?$Raw%S)XK{(Unu+HGew_)zZcr$bi6@ez#diTZ(fq!GdNU7a5!KBoTifZ{avFp%< zcCP<6ULp-KxPKw~5Aw_eIPbr$7(BfQ#7L^iOEPQB@5^WaW#9J7D zbLiP<8QQVJYnb{iJT{HL>2Prh-p6P2^72}$YBy=cZ9kzsI{--s5^+dI|P*micmLCq25VE l-AX{cmx#KPT*Tct**=mT3?ZWtXPEH4ux;gV4rt{*z`qNYJm~-c literal 0 HcmV?d00001 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/SimpleViaLombok$SimpleViaLombokBuilder.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/SimpleViaLombok$SimpleViaLombokBuilder.class new file mode 100644 index 0000000000000000000000000000000000000000..47326d21394b5a4e6cc0994093e42620b6591be2 GIT binary patch literal 2232 zcmcIk>rN9<5dKa}X{n1~<)$q{6|^mdm5bK`3MjbRXd+sJ|4!Q@EVR4Lc8lUuX~HFu z#0T)9jB~mhDcdSd2tRgrW_Hduw{Om`-#>l=n8V8;d<^fa<|q3zw}i^e{HtlG1#7Qj zo0}G|Z0)Jy3olnnqN)mGiyH+|RM&NB$mu+5mh7}Bug6LrA-R8SoEpcO0 zeUsl71)D*saLd+h-85c_J%&j3#AV&KbYnBa5Pe%SY`rWrV^^>0`I1;N4AbWFP*ol& z)dQ<*!Vng>MUjpKtEOew5t+si<~CvFYqpqfRAw5LS%%Je-O%kt27e-%W9V2hiy{m^ zA_^{}hoL8{8{&1XoEO$RPHD*4W`UP-+|s4)8awPQo$~sSy^uyyaXX3TE+sE0S{E3u zDF~pG;bTI($S^SlT?os7Hxyh#r<6t&D2{YfLAOjIke7sFSWcWbmrM}185Yksr7*^k zko-t8WLwNdYaUfQ7RkSmZ8|H!&_~5KEk+QN41->?yKf<=40E1cobu?dZ=!Jr7s5zm zT2@5s(chw?WKMd_DY%FGv@^U?5eCg;vXyI7(r&~|2oGub(xdL0)`LElkVNm8q}e~p zqJs+z-RaSjja~@h$!XIJnU+qQX34a|z>+fe=L%Aop!n-%%_@jhU9NJUr#DkF1G=9y zgKm|T60cSTE%kuM%dH1-;;Nr6(ExmMS4azzCch#2`XsTNY(()U8KlnZ zc%cRy7Z-}0-P#$|d!7DyvpWHe9w6E_sM9<~cfy&O4z~^Jbe{%%Ht0y(pw9S+dS`>i z+Xi*!&u|N4Eqc02U6#X*9b_WxeZg|eRYcw{t3+8)9y-_op1=HRz?21_} ztXPtnS$d>d z!hE-7)abaw(ToWab$;S%n!!1tV+xNm)2MN!os^7bNeZ9P@g&9>B?>P^vRX!dM#lv5 z67`gh$1pCbr*-^Z;`f<1EhR-A^Ieh|0paYgkkB>()$ulDln%+rkHt#Lm&KSvJ}_EI z!vQSHih)>RaS&NC5Uq@Z$QoSnjLPPc(FikC+c26N?W%Z5$BWXb>ZRq<(s@>{Yc^Xo z_J+Zj(F0>q>mn~#C;wr$j% zYPnFCE^rG*rzsZB`Lc86Xic!UT)Zzz&$R2B8r3bM){@8H3*p><|@8-b7eEPr^It|M$X%AnCUb;Twz-GFzlRjfkht7)Pdq&(#&Xh zU*Pp$V$z<*AGe9wz2daoiut@Hht^1}eru>_lOKavpHl^Ae>ZBPTtnjGXiSn^WF@bH@8`PI$i4{OK4(AAUtD z!S9Fo9_H_T@+2aczk@^h$sLU3M|W@}KedCS`K+>ohw@o<2cusQ(}!R4DZd8w{D#ld z!MDiaI9Jr-+au*U-=aRBk~T?ubMoc^#iyiQD(@tZ;L#pdjgu$;X?HQUb_c)vC+Y6p zB}T}(*F!^r5^0B;{}M;zpAY)R>j8jf9rqP+ly)l;ACNad`OakibEwMg$^Srn3bp_C zc1GsD&OGHE$CBOWf#-_H$==9RYGQqiL5FyiEog( zg~6@y>!D1-WDlwBgBHNKWmd7m1fsd3>Wdf@|06A{ zwnZn4315`h6ERf$YP7d^Ukt1Yz1xo)c$r?|9HEaEN%dg_*RVvtNbfG;0x5-OoW?~` zDk^x89+uvfUi$~M@99v5UK4_z;_G`pJL^8lI1IH7Xk(Q9tPqxnz&gk{Hv}j5gFE;h z0)E0Xa^`nO3QcJ?&r-UJ<+aSKcd#mBw2QUOn|#Qq?c(iBIiP1HzZ%eUlD-zuCndeX z$1bk_SUs0Q#|wFF=El*6SECU_G_cOMO_Q7^8h#gyc8ig?_Ds)i!5jMl+TZPHce}J7 zkx3J6W!awEd4&%hndZCc+Z{CQ+0dEkyYSXBTX*o@zhWA55sm3RZ}93L+AB3~hZ?0v w2Iz^<8#jG>_iyos9$P%xV~c+L(KqBzXe<4IiXW-qLwrPm{0n4^zds}O1N_ddD*ylh literal 0 HcmV?d00001 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/SingleTableExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/SingleTableExample.class new file mode 100644 index 0000000000000000000000000000000000000000..bed07f136b1f150da11ab4ddeb9f1a0c76ec2c22 GIT binary patch literal 1683 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 literal 0 HcmV?d00001 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/HierarchicalKeyringExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/HierarchicalKeyringExample.class new file mode 100644 index 0000000000000000000000000000000000000000..6eabc07c9c26b8c79ce572eb0f50a1f25d8c8568 GIT binary patch literal 2690 zcmc&$-A@}w5dRJSz`j5M6QC|_bC9N(!(ea{MS`jlB{aA(G^#05l&AH1u`k?*wRa|= z|3n}9+&`jERE?Cp_Ydl0)w#2Y9r=K$>c`9N?(EF$?>9F)v%mlO+iL*#us(_r!k+IP z2QP$@CE;IK3AB|#) zy3n#a!feSyPPG`;`~&5&=-5G|6su6_ zRiBv6cj1NAY}<@(!PTj?6BWK|R8MKCaMRlol2xb$BRa{e!E8j)EVY||M?X##`u4#7~lBH5_H0lxhq8>_#18mk8p#(V_gLv$9a_vqs5ZY*kETF9<^7Pe45Lhq5k5xWi{nqkzw`#02J8QsCJL=AmPmX9*tX fIT%YwvhFNac$VVz6pB1cV>QA`Vbs=mI)c()zSKLC literal 0 HcmV?d00001 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/KmsEcdhKeyringExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/KmsEcdhKeyringExample.class new file mode 100644 index 0000000000000000000000000000000000000000..1dd0ed0708059c54b464e3f2665dd8b410854073 GIT binary patch literal 10251 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 Cm-%`C literal 0 HcmV?d00001 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/MultiKeyringExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/MultiKeyringExample.class new file mode 100644 index 0000000000000000000000000000000000000000..a49ea3d055d959ae4326ceeb89daf02e877962c7 GIT binary patch literal 3538 zcmeHKU3(Kn6n-a7NwQ6)1PbLtSx`%w7J{`ZQWVotFf=KZlwz$4)6Fzp*pEE3o0j-X zy!XOey`k0m(0ecaJw863*B4rINgUydIH6OBEv|`vOte@MdkVEFX9BVE-{3 zNd17&{vM+JXdM8EI{F18px(>LH67d%uMlk)>E9K<(R8@&-dG84j2S1m!RYkt$>dIQ z{+GI1>bbWz$f851+7Og?`3eRfRJZLd$cxwZxo2WtP}zsZ|Eb*Tw$w0yLDlMxGYod= zEJ07Sx#=(*&o2M9&!~2Bis5{_T@)=#)VNiUwT3Mmf98pz4e>mQGYr=jTwOLCU3E)6 zYTIMF=@?d{D(J1ytJUy;=-jF5)Xxjjq3=4EHBZAy3~FFFn}&{a3`c9i5t1(Z@TOOt zj(YHk>_~|7h3=Qcn=}E~9ixHjt4X}gz%DDZ7t(kQhiL{-&d7R~a2e9i0nTwd7zWyr zM;(-AiV!zL9}ikk1Z=P?EQbDy&yB}rUJp({67SG3Qkbb|co**_Fu`zA`FIk|JbCIQ zx5Btxna2D0fc(^GNN_x#I|gCOcdKLIyQ_`K1U{shqaDZHhU1&I=%^gcBuD04-D?Z&lW?AUA4%t(z%t!rzi#q37J93B5x5RTH%vFDSY}i*@sz_6DSeA zcO|(ck;WYEFldxvx@c%PtP-N^$nuni&rnI=E)gY2-EOv}v4DFdxj|C`6)?Lz)t!_H z+-DdL47B2!b1Rf+nk&LQx9UK|B0f>=8BV{XoJ40LK~#`e8l}?qi&irV(lxZ(cqLnDU;d6u^oEqv``Ez!~(q&7>e}1 zC9OEUyO4Vp{|^1zIJuNLy@}U%ay{dvTztH|g*WC#$1Y~hXWrVvu!7YSz#1m^V7KZ2 z!7MaZLYmeAb_d7UJcd|>Zn}FIW{ZK-T<8K>jFA2@93{A;1Yn5ZkI^oMGbDErm&kTL z@W2L;R2N)?@)t6oQZ|vfyoK@E@98heHm)pXu8wZv+D?v!^=({V+C zZZm9QzC88=*-%+bVKIV!o@|3XAm|SXI>#V0=w7TM%T{rT35>I~0QN*soF06RC9*Jx uv(ZkYuU}x9>}IJFU*ap;jZ+X`Qvk6bfHY#o1QvfsUxH2~!voTf;o+ZN@G{Z> literal 0 HcmV?d00001 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/MultiMrkKeyringExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/MultiMrkKeyringExample.class new file mode 100644 index 0000000000000000000000000000000000000000..f1270eb0a83da22f96a9f9b1e8871392d0e5d768 GIT binary patch literal 3005 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 UlmAA4UQk0DrTlt;rf9nUA4}EYumAu6 literal 0 HcmV?d00001 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/searchableencryption/VirtualBeaconSearchableEncryptionExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/searchableencryption/VirtualBeaconSearchableEncryptionExample.class new file mode 100644 index 0000000000000000000000000000000000000000..d87d9606d8c561838d2b3e20eb12a3221d117d10 GIT binary patch literal 3585 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 E0bkzWyZ`_I literal 0 HcmV?d00001 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/searchableencryption/complexexample/QueryRequests.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/searchableencryption/complexexample/QueryRequests.class new file mode 100644 index 0000000000000000000000000000000000000000..fe85c293a1318faea03b690b835815d98f4653ca GIT binary patch literal 28889 zcmeHQ33wF6wmzr2VVW=~Fa(JrMnD!rAPFHrKoCMeWG4u+2uzY81hO%iK!S>Z3aE%H zf`}q6Ant${jJV)}iVN;5?s{E8uX?XumkaN&>YkqI$qb1?c;4?lKWVC~s;g`H|Fcw` z9-ce!(4$0@E|$4SFij{goe`Ml_4~Sci@ozpOS7xP9vXX2z+YHW(5J?`z4OY;^JinB{BsNQuwwaDCEnuF{M>GXRANwW zR#Bm^B+#d3Q=P}hVVX{KQyV&gsgd>Os#KYq=%$k$xoI-DotxS_a=Xji4sPn`$W52I zo!xY*Be#dl?c%0nM{b79?dGNwM{ZAfCC8twPZD6Di*0jR3pRuL#H>UM^=d?rX3 zM>FU+gJywr?aF4S8dQY$j~|`nOPA@3-78Z4d9B)iZ2nt~-Q}$u?Jop|rT|$>au0wiF4qpXJdL60J$Zjup)8({+ zsezg;rWTm15Nhoey^^V6X1+Jz!%|)i*o??YPD@EkOHS#ToRVhHwZUSfuZt+|WzcH0 zpE=*>FEwZlh6TE#Dc5-&(~v*Dy5X$^=e$p2T2HsS=oY4|!{}77 zIXB%#w*&J5i4;>DOgs`x8MW&MZNv-@$r+jqYOkkFZn{&wys#wSS1Dg^(B04)QU)ZR zmYC^F958ZFq9kbI!0d4ova?4fnro}_RWePsbFZ83lkK#e?W@WvEy-6hC%dxD?<+4? zEZz(<*rZPEm#EfQKDpIR56CB*&L}Jj`23+~WZ^b9ZKnsBTKVjzYy!*90`=pqsZzoW zf~n6RhJ4g{l5c;=O*`b<6QaCbiH~wwYk6aOlyRadGn3B-yh1rgqo}p)948m4ABM>MX>oc=q zd&DN;OjPWa<9q;QdyZak(eq46G5QnjF*m(PdtjcFDw)-i{5e3+f2uVG@~qW)4TH3 zdU@e|pRDwro8G4npvBM@lv*j&OiM>|L#=!?`4N5MqL1;uP?Nz@H+?FluU_J-3>frx zh)!F%PXp_uqW;27U(#0?Xn_xUwL`cNiLHaBF8xNTk$sUO-O?d0`j+Xq(3F|kmY$2F zf6xyu`rhG#m^Iw=BmEP~b*|L3qh{3JA?tl{w4Z*G9>C8`@!?~z$~%uY=od_9vCkKP zg$~neKmF#W-|0V4E#9&+UkMzYihk}zj$zb?BuAB$oW1{2P1H#gy9px}xj z7ad@bBFx~XfZpJu(o(;{&0+DRrWxDWNLlmaoa4lSKt zYE@a#Q|;lLhrTsn6mINVAnga=GPm~UVo0=_&Sf-Pvrj)DB^h*wwl=sMa58$B!5EMR zg>7(mWaJ>D2Y{35!wy1emCt8zPuylF<9=F7N~*!VEps5nV01YZO)0%^RS&BF*xEmc zp0r5xm{=2C$K1JU_*%KilN4ITt&D?z0027{;VW|*uw1H)?P zFD)%L_)M(uSd|(MmShH>&Q;trcqEuGFgYiCK=1j<~@OkqMwNIhJQ()fO!;-3-uGJ63TlnWW1>-CrTszO2{xO&~AuU;tIxq96rRuA{Jt{P|l%G zx9&nKCOlPo~{z!xhAA6a+7Z1xGY4+bSG7$ly6xJsZoA&-x&r#C`?DBJght zw)E(O3uQY8mmV=V+}Ap|bc5lU9+Qa;D}SIW-&(@^Tm~S=q@E3drCqn7Rf>75+qMsrx26hhp$mn4dsl-fUk0t9=bXJWk!1`-ujx z#QK}XQhWtRo)LZIp={^KGa^Qg`&vhyVenchK1%%s-V#`L!Li>21wJa$%QyIDrj+2& zosYyGd~h^9qmL$(?Ho(9qB z+{4s(w7*ntEGrk0??XnJnSo_U3wFF$^p1zJogMEL(Q(|@+VNfnZ-ZXTM!(^iC1Z+f zsHM%w}|qI0R? zy|b*Vl*sP2G_9dfez1R*nUrF8@K~#6sE5bLw0j_no|dx6WRt;g*4*QgL)IRL|& zU^Ck`0Be|vRu@D05nW7;>>@IPlNh^;fZi)+A1tK+HDUK5WLa1{0ahPE`4N2xnH<(M zh1ndj`v9W@E}q;JMe1E}X7n&5-jl)}XCs9LB|e`e1>xc~8&Fdcd}J9|cHLL|PES>>~l z`W{(1!;tt%eQ4DYPTz~uDw1%s1Q(-sU$ z#kLZ0!<6FHBQ~9xb z4gbLcWJsSnUl_`dcwtDpV;Tg>B9dS`Y|$xKNxL?>)G1Ys6zDX4q9%Ndt0opKgruLW{B~{J01ZO5y z&P-U#1LVG~*-WA|)~p7z;CNXE0N$1DFb6Ok3ojwX@0`z2e#Cr+ECOpj!%TwM^V!P~ z@a)`B^U6dik-OLeZe5en$sr>J-Gp=38KahRC#-64ZoFNe|)Ga#nNs?$jlj(4XQ)aH?KJ;LqK{r zQ7y;?lMmUW2w5M_QH1g%MiFV1q}9bLNduB9Aos1l1wD1U7a{w@*^5wqL@y%klC-+m zC20T$JWj{y8af7tGq{Bl?3j)3+F=kfESy~r`OkV}P5slHn#u9Zv?i@CPabcYX1< z{I6Ma-bQh2$fa*2UE4}cHzQM{=D0RgRT9X9w7{Ph_|t%d`*dh@8F+%LY^fXmmTfgS zbvw0`Pm3B)yUhyJiV{%X2wgeBe3(zcyJR;nJ2k1xgVb7GPg2*m>UxU0c2d_Qb?vII zsp^`pu07Q?Q(aF}*VENCOI-)6>rizauCAlhb*#FcrLJeI>tuDE8X7__I!x3W6LBKR zXq4u35^@reIvMdMZ4pP(4)G!F5%+Nl=CcEWG&&;mq7wotIwMTtR0KaHA*7)TLI#ql zh`N#=b5)5a7Emf(L}_#>;z;D=CYn<~UdqKCCWG=QUrpI%uQHQX#Y{axZ+`BBbbj*-tLb7v)r38Y zowUHLgt9AS*;UcYu90OcqnE9cW!Fb3dysB8wVG}QAU0If9r)|6YPtu1-Cs>x1SMC~ z-vlM-)l@Az^RVp9+RO$?2@R_05kZ*^w@}kHbV4(FHlg7*da{~!Gp(b>JLn}0`<2I3 zX@V?zwVK|9JPa$-GF(={UZ%`O8|j6FM%DD8d_zg5kzh3cteQR-a`4;e>m9UzBEa|E zcKTQIe{Z8-x6y%Z%-7RuJ;SA5(muiPFgj&F;b9kQtcmDLnyiM`Sk<_(hmW=I=xYx* zi}Fx+`H;u1#_^a-54Q?UW;Gu#DC|`j2%pHb=3t8IThn+~SfRwOuIP6!ut$hJGAI)m z>jV7s1uFXib^R%wP6uWO0IU6h)hrrKgJ>*biSm)2MMHqqGjK{aloler1W`k`pw{g) zita+qEr<)MM(v%HLr(+cFVb1`293b^-30oWCelHg!Y9yFZbQ?!H%(_Rc{!hQ8JOms zl+VwSk6)u1{3haSexhlRE3<@$W-A^{k@7^e2=V|aiw8)VJTP$3l*lK8FKO@++ajgY zTYMU~_^Qaf}Qy;1V-{*nb=hApOkIts^Ar;Q0 zGP(dyEJW=^kO~*ja=MW2Kp4p3h4$eqP2VtBA1?}oA_mfAMK@^`2$+d2k3fX&~4%b$R4RB zP3h3umJY3L>CoDi4lTGZxUNwKe-5c2rNf8#yPuK{UqL$bSJI&aq{Hb-It+*+9b_9) zI+$%p>0s6hmkt=nUtBsM9@df$w^`DmvJTS0!vj2=Wy_6hrNNY8;o%`39%`0^*%KZf zrX3IbDyg*;WO8Fg;QG#CK2J|X7rq|emkdT)2I&772mX%M17a_LiEfH0y(^f|AkFL)Py2}$)8e@9=7_VkVDLi6@&os~{)}69l;q=cL5J>9Q!Cjv@&Bj)wxy zhio^)cSuSvhDlBIGbsIUK>ioF8Na~^{vEEye_&=DfWz@S4Pv6fjG%E4a0=47+z?KH zi)J%S5N?FX^*CAxQZ8jTT>*k##mB%bXiC+Jr12nVOZt(ILx@%@J_#XQgZX$qms|41 z@Pk%^ytZ)wpUrZik+NI|q%79~N9J=C)jG1D=SiyJO$Jv=s?iN}fU6|c=xutO=S!*~ zEN@vP)l?gjYGxatnpG=Ewe{5SAf(sf7zedd?I0YuTHKFAdk*;i#bVm)7Sr|}DW=Ko z1rMJeQWar-goiIsrHi7J*5o1fD6mypw?ti>m0yxDyTIL z)S6EHk^vR<4K{`^fEl?kj50o(GCrF!KASS<@O2ht`td47nX6$O zuU3>ztPl#*oHsU zW*9!xGy$*OVFCW-KLGd}6yR?>0)SsvAAmpP&i4P78~JCqwh!Npybi}L#215GOTewA z;MOJJ)}`RqW#HCwaO+ZVYX!J<1-Nx3xU~Y@x)$7832t2nZmq^wl&iq6HQ?6`;MZF4 z>l*OuCh+TK@atCa>vr&K1NgNO{JI1D+5~>x36|Z3Ak@1NvUv|*4MnwuH}J!}nP1{9 zVVrx}=G@CR=U%os_bjisIJb#!F*yg9?^cs@aQSYtIQKL9U~;a8%ZDhm^%m!38z$#u ztsv)=nmQcL9i&?A(8J%t#%I(PYg<^XUHk`Fdq|hhG&OPT6y=~RsKf4vQd(1o9eqQz z&N}SQm^$okhYq{d>H28PMC*}!#sQf z=HX75hfl#g+y(RSX_$vk!908p=Hc@&4_^Ss_P{)R5$55`Fb`jWdH5>K!`(0sUx#`4 zCd|WkU>@#;dG;R6!}qZf@&U}Z524TA;}RVAEaFeYIJVg4*kYSwi*1h0=ld;=O$Ixq zuXi8x+7`tzd62kOaqK7PwFe}}VC2=*YqAYfugNw{Q&83la!l#9!!ZTxpx5w|0wzPm zmli{2*$jz!$Ya%z=e>v8`;et3P5yQ$B82uzw;y%oR%a%JZ;d#uxkGM^*t;BcvF5%6 z6TYH&{+inIK1$;Kl+52!3bq2XkRHn4(=h&lM)Hq1^86kQ_!&PF@NX*PU+}5^uVBJ& zw1j`B%lSXF5=Wn__#mwpOpghj_KJq|fpF0;!r-=|5uYOBcsQam$BQOhD2@q3{VW^x zvuxDQvQeMQ)e7}VIOuptp?(!mzeAyZJy8F!Lj4Co{Ub`V{1OHAvJHuPvkj?P%vuiA zKUTli9DXvxLj5Ne>ho>XALdqI9RP1{1wQ(J8t*uCH$*&nL`!NTT2V)lK%K?$)CC7} z{g56cPNc!24Gk41(G;X}MLY6gOMJFCh5Vue%@-YMq3A?QMQ6G~w56*=65Sw@5$lmc zZ-_K{TXd%%MLM@e+~!Flg9nT5JQ@+2dDu!1?dav(c+a=-o^RtF8b{&1BlN`M3h!3| z?@uVa-vGQnsqp?b@cxv-`;SrZF557rylg|_-K^!n`{C^9)j`VRw_q&1Z?f>--^P2m zly?aBUCL>Brf#BpcYQ$lzrhiog3EDP9Z&l(Q&N45D@-n=+8@D~3{kaVBMp zVKhPvr?bQenk+^F&Z7{Sat0NNF*H}?(6wR$-7hB6R-E$e5tHd>F@=5==kUp55+{l2 z+)sGJVB6n@ZGRiK{cYIx5f}*p}L`4HMHb5iAXO569YPssp}lN&T{dw}%1qqa0XP zXA7l%_nXu?j3@xiXF_5Z0^+kFt&1p06jN7GLIaQcT5f!vnTtFMdB6><(L?4MI^r=`%2gEY&C@$es#icw( zEal1KaxM`o!r)(O!@tyqf2j@s0)AD&zcWs9UQ_U23;4gT;J*Rze?!6lQ^5aC1^)w4 z;4j;d@Hg9#@HcBY;Qv(p!XLlMWx@ZS7X1A-{5|}Zhu^USDMHa$4iUar5#aqOB3#<$ zbs&I;KeXbfKK^fJKm&)j`sttYR!s(63kIx&pudjViq$~>^^`2uP>Q&LvXCAsZlq!2 zCK@T$kr(L#aVv!UZB!<1r%JH__R2j5$pD<4*7Qzg8>XEu+W-TsS`G$0Q@;$r&(E0*(4GPV8e_NMxiAJG;&q?R zfNwqgk0{YYKPU$LGX?{GQlMeQ4c1BDmeFM4XZ##9mj2?RS9u+)N!MPMzNxfJsj@7 z;$+`YZ)u;<$is(pUsbg=hfnmGAu&2SWXTY#sVAyUj>^U&(c`$4@81@nv z_A(gu3K;e(81@=15wFwb;teot53LgKf@OPYqj;ZoiI3=2@d-SGPw9Q}8T8GU^tlT`5$jZ12n?nD4Bu8 zEL$@pG;1YMBNa$|FEu_$H%8+i!XSR9jtD0{%Ox7>Dx$b?%~)RqNjznT6i=mC zHG(lXGB6-k9gO888JOHUMsLKg7-b^_eg_%d4s#>tGZ4n;kWLF%W8zpzQxPqUFN~&^ zq7sO8Kl11Lu0tIO{x`?hlwdswYh#Gtz`6gxeK`Qz?jW_pM>82n_tkXjuQi}-ts#xj zTy&OZ&}6L<OVg-GbJJYy7`j$#PWNjqXsZ@ad$gAHvvwT)sX&7*+Lqkzq$A`!26)CPN0EftT7*bv7l9?gY?*b3}vh|s>ru~Q(=F!osN z2@At#*@o%D$TmzDMn>EOHJFN}IUEDYp9$>u1@=z^_WJ?*{ek_{f&J4sNz3AX+MqDp*W$X1<1O5uEKV?SPp^sA z7VdY86D`~?$Ih6E`(v{R+0L@5nJxMjJCj`g7u8Xig|{6)NW6(ypL0K!KC;iIUnHinY4v6QUkP>ME= zvXCCCji+JS1RANGOnZu7LeriTbGL3TVT$m1G+d^+*3)0Y7PNq8<{%6xOS4>n3c&D(oXlkLc&5AR*_|yhux_W&V$h%R>s7Re zHXj^0mps~e&;sX!BNtG*wh&ri5%ty<({QB6Y8TNs?P8jsEdf6+0za0KU%P}Vv`c9j z(krwTbd`1m_;DrOq+LZDw5#b}?HYPOyOwrnE9pt?a@wV>qL;MmX}`9X8)-MOTU*B+ zwVQdgww`meTX;V1FVb%3RoaFy?yR;grPa2jwA!|mt`vh6chWgu3{l+K1@4@oxbqUY zGgNX1kd0T0u)mokZ`CX4%*AgT*>%4E*l9$sO^K#hu|c zcfxmglfyqZbhruXOCb^MOCcNf_F1zSRUbOR>8wY5B3xIUP|tW*7Qc2E@P0RR!adLl z_W|$sLnmy8PS^sSa6fdyHeh}`F#jM;(yC$cJVZ0K9aO44O!KtAQI+;6U8wDZ9(a-- z(RR^J?P=(OXIR&sWtX;_yJ}B!FYN^$ro9-3l!3ddEz zagM_Ag~0JRr2}>X$7d-Wur~^hWgDgrkZnjEVAgWrczyli82?a#iDRvmh2tfE3diH4 zh;Qo~dXG3edZGM?-XkVODU8B^DfPjCBV+d;g}5W_RWRT+FyM7C;7u^#EimA1FyI|9 z;4Ls z4wEG!+Sx|vI3w93@;t&9#XvHpeRP(1M1f*LVcnR3AGg4kkw+B&Wo;m?Uq-024ZQ&w zdP9oWUDQ@@L`ixaCF_kTMR!vc(nIxQXqbL1jl|CZc#$s9ThJ^$p33x=RH+|F3-wmC zOi!Q{`th_mB%1y(1^DXr|L;ONAD8G zfLhKrM5)C9oHr^4;A}(8Q4GM@hVUx}fSICPF(B&M2HG$gAlr}(Fl#v&P|s%@_$O*C z21MJ~2{9nt#IZhiuA_+)`0EPz@K27N;dIWUx`ljX_Vlwnpz&Qg@b_v^!Gt3I6e z=p*Q7eI)&=kK&W{;hdz8<$iij7;J0X*fBp2L_CEsKMq7phA=-4L`;S-KMq7p1`f$% zZ|uxfur=F|=FQQM$-qCMWWp9(1g49-wRZC+xp}nT3JQL`9}Uj7rE_i+5st#c`?;Wy z8-Onf>+J`Fj*Kl-zf`#sKO;ptz9Z5nfhvkHV>7jt|4BJQYP%mei$JX>GNCHgX6iTic>WxPdS z9!9mTwvDvawvo2lHqu?<0;M4`_~O@=FFTkXTI-T=6w79`73~RJo3WBuxS|;dBRPh@;d)u=xWJq zHKb8BdE>C9iub(Us0m9w5SHBLmR5S%l+T3RarItwGYlT_cU-M;y{f(_9*L4<=-t$G zO>QxCg(C%q?k7fB_|b(M0ra4kVIZgJ;(4=P6y^ah)&xT+XOwuYz)j6Qx0T)UP_r1e za(}}y!{E2syTlnLUNv>8)kQ(GG=h4p>xSe~Gju|l&KYJ^m2{he;g=RC{EQbNhOx_N z_ob=n)$OKMD+|+yVT$5viu?#-)DC-$VI-XU-8&O0_%VSgFD4oK9cxo+H8r2#%?5A_ z)5PB7dfBMk8bSz1+&3<6Wo(4o0o=hXC7w4LLN7BYoltIBGHp+%QonF_o|p^Z9_AT* z(r}Fo!#}|~Tqp~R4C?hOlBaMiA0iBU+|<+j#7ZC6t#s2;PAJdHS~?L=ZNw9aXfzdz zrH@5REym)pq^PVaPHN5FV-1S*9-4zwF5{X zNrj|l+m)hDKgAXdMrS$P^k%O1!oSkkJ+*+10MelD?=RH^*Yk~RcH1TM=0B3LzkBc^ z)qA2<;I*dnzpr#Yb@sl|q+&hQ>R`i literal 0 HcmV?d00001 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/TestCreateKeyStoreKeyExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/TestCreateKeyStoreKeyExample.class new file mode 100644 index 0000000000000000000000000000000000000000..766c7e5063d7f745ede5d9746c2c2269ced729a1 GIT binary patch literal 1022 zcmbtTZBNrs6n^g5=q$s*6chvzUqMqly3Mi8kRWKHG&6BHKi{>NQRv#Gy>rfg36U%@P42npo|osjr_cTM`^QfJMLbcEV0ab!N3zcYq4N&^>U+8s47$>9 z2fTYc(8U+t>AE7+4@D^V0>Py?5QB#FgUG%fMinF(=1%x$uDjf8>+f49!jcTrFCEX3 zI}B4Bn@xt~o^J~kQ@EBv3eyZ()A2;T*J+91khfgHkTZRYyG4>HiIz(aD^L)vr<9ozl)%1h5E@={UNj{Fm!>K9AG3b+X{3sna zOyeev?tG;Cb}PPf8jB1EJn*W#A68F0VYL@(eZtj@YN4F3l*$ETD{mC5r(&R2?8YnLMAQK+W``^BMsB4kf)PnWK&PSBmFH7tF%U8 zP{ItYnPCFiS@IaJQ#66>C~Gdx13ppv1nslA8}u!l;g(T|JyBMP>_N5z5r1C!OPU*D!L1qUL|CLV~ zAN&FSDC1qA!514I%p`Ya?zwa3+>c+sfBXc{z#{_%hEA5A>oHft<}v@0CU&4EL!Ay3 zA6`ss@tMcNNM!bz$n>!iT#HjN>FQL8Gv1HH+Zk@4$gp+EKXE(a$-sW!zZ8LHD7}=4 z)UOy;4xaWHipOavOsrt7f>o3lHhr0hccZv3)Rc~)>ZbvZdR)nze(o&l3z;#T`2Ry| zn_>UvY#4Swj1nzl(UX}Z8E=v#)m+OoAr*Umss^^EdQhT#flN!(Hc(}-m)H4G%P1@3 zHkI$Xu${0!&AW^phEuK*kB>9&D$cx7W{v4z%kk>1n%ivEox_^b@UFzfc0>2b<=nBH zb2qRW^`pSztwz%df@UkM^RRa4yfASO_YLeayk1V=zZ+h`13YBdzSca8oVUw8@E4=d z)k-FV_A;J)M9gkFQh_*;kzjaobDy5)zu+-wyl9|-0-b2A$QpFBX=k*rKKq99*C}k0 z&0%t4oor=(uHY8k7&ZtkU~?X|MSD)vA^QA{S>2{}=R58$*mj7C5PG$aBJq{5Mr-3Q Oc9Xm__C1O$VE+%@!SkH} literal 0 HcmV?d00001 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/TestGetEncryptedDataKeyDescriptionExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/TestGetEncryptedDataKeyDescriptionExample.class new file mode 100644 index 0000000000000000000000000000000000000000..ef6c3b9fcb6a0135a17fa0947e00a055f0957595 GIT binary patch literal 2034 zcmcgt>uwWA6#m9B*f>ien_B}UA)yI&(#<+?e2LAaNt{p<6KElp`lG7G>#Cfc}A~mHGgEsH$gnU1C5gRz>?~F6Vx}Gv~}7fByPAfNdPb5Mg-iyG?n@Jz??= z|H*Ys%jz= z`hvgWW}7=L^Kt!!uq4C9JGNuXdkkaARE;6J?>0mNW4NT@0xmLKsoIV>?se+Id&cW+ z!Jt=Ni??gsv(&+tw46Ng=5SpIm940GT19BFq%&Gv1IYS(dG$yNFk)O^+T zTBanVC~tnw3BW7Gpfk*#1M^gRw$s|{+3kk#;+SGs842J7CNQHwn`M|zR^K;RO4SmW z!}S=hF?<$qd(v*3CnuG%h8vh?NO;_7xE)0yl#{8@##^b9^027kCYGpdyxSE{gTWYf z6&AHL&Ze+9he9o%Zx0?B89GeWQ<-Wr^Zn-|_2MW95Na0z6TE|oG zD0r?3WRQ(vo1rjT*n8Z!ttY*p)53PrkVBpdNyLg29eN>ZV{nJd5yD&g@GX2QN~#ve z4nvGEGzh~4O1K-t9YS`ryheK18t&mf!$RvH#|*>I|7+_14noz0Ut(9o9`>nvR$FlA zq+2fUh1L81KTJVQ*NL~?L^Ha^+r40%elRL%P!9_p^A5>rs^8Al#s}AsnRx2<=#?MZ zYCvy%d|(bfg$?BzOQ7jbUk?zW6HR?uV{|iVXS82fdxQ8d0XspfVyktWRxK2u{W9GM zQKCn1WgvBxb~3~?Tq3i;!{0FRoj&;n(`WenH5OiDxvH-|(v!#fS~03`=xKdbUt8Cc zXV_Bbb$v}w>IHp+u`?8hxL=(|^9u81c^opG2M{4hV%A;vCW`LN+$>fKFrN#lY8eiW0v4=X9+{i3mCiC`GrVNL@|7X}?C||N>sK1{o zD-$u0siZkCl+u=4sTGac>1i`^Ev-qL@Kt58d8ddPgL`!%AFLdwCEQ?m!;K2~EDg?+ zG?=E&j3zjHLCb3&c&%2W(QY<_b1`?rrq}dE{M;F~hmo`Iw;Rqu>~Y8Qe7_Zi;a=>= zCEQ|obUar)(Z^v|EukqDGUx(<9C>sR^cE>{$uhF*Prst{Wl^rs zo0Tbv4SK6fzlu$Y7%?mm$kwuJn`{Pjv;YQ5wd=K;-*9_{RYRWY6{>HLSElaGKX6Ng Me}Q|Sx^me04e-I%d;kCd literal 0 HcmV?d00001 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/TestUtils.class b/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/TestUtils.class new file mode 100644 index 0000000000000000000000000000000000000000..83d3b7f290776a0420d214bebfcd3b7dd8b8abda GIT binary patch literal 3994 zcmb_f>wDVP9e$5vgD>Rfc3J4!ty#0yNvm*?ge07#!9ZeaY+S&0(>7&C(jg%RL4-)^ zUUvDkzh__8czd2b`?L@HpSEW|32x69iDF^>h3w;>K{ zUe^@`+pKf5Eg0Skny@uF$?!(7JGWPB^OF)NISJxnk&C z8;8U9qFT!xsrl9PYIIYP(Yt5WvZZ& zs>V*OQOr@DrsnbMNu`2Qp`@}C;hWC4S1K*;H1_<%K}vsfLa7)GtMf-IeK+vb4`?x8 zSRcE&omMlAT5+pTtj=TQgwCU)nmiGLn|4#tWhrBdw4~T+Thax^S+~-vF55~fBMgT3 zUahlQ%$K%H#jW~0KAc`{GM!N^T^N!|2TD?ssw(MCEh%MWEoF$L(X_cbuAM?*tx?ad zm4_5Fj~fi{7Y-cW=@!hQ6OdP{>y#W%xRxLybA9F-aZ2Q7%V~MH8P2R++hv%|cWtqV zGmv9QfDY^Va?250gN`ZO(T?SE*W&G6?zVhZ8V$~Rk6L|(RQZ(DN!)kNY76e{^vH{n zCprudRwgO(ry9AoyM$HTisB}NcG6bj$G*Lv=nMC0%OZlegBaRoVjRqTyCobihTHg< zA!-gk z9&vauJfQxSSm*smo4mJ(yO0<03CdAyFx;BjkPg*MJCXCKo0$Vo1U<|T(k4UcG@*H! zoU1P)RKcfFY%>&J%doM)7^fJPKwG2A(2Pzs_gJmDX>s(3OWKJXLvTZZ!K6E-1g9Ac_! z6Lu69!}{x*HvQ4B3SrsUBb=|#N+hldW% z>QAgK?{icq1_xb+MLJufOfmdvWqP6+mgR(BuV-w(M;BE=tbL)!U9aU)U!i;IFb_-p zuInA4i{S+UCC~+Lv|hk6ZgxeWMP%SnCd`z29y5e+uW0 z{!MQ9G*6K)IgW7iZQkz-V!Y^xRdEGW)b#6f4spyOLMTdT2J?g$PvE5xj?w(N5I#@% zVhAr2elvuBM)>C;e3|fDA^Z!%?}YF#3BMb{R|vls!dD5uAHp9Hz81pQ34avA68S_w zc1Y4QMII*T&FDRM{RgD~9Js8|(+>d1d6k~A;R0l!5n6x_gGOjGTgNP|0iHZZ_7Ha% z{(;r(+~08b{tsBsM&gkVpQ9ulVrvG6sQc5O`~^FE@!5ak?RexPnvBmL;{Ng3=lJsa zA@~g9kwZN6=l1=b538ar?nRST_yNoP(yo&4eeFL{3 z6Pv5}n2f)Jb^0#TwV;9`cBm75iF>e-N0VlHCC3N{C+O4HENQplVL+90i8|6#JfqPjmhd$WsE)p&m3|P1bKlb3cQmpD_HX}&LAQ{* cB=&n6n!)ezdwMU^SA|^rLu7#(#{>WUUsIrCH~;_u literal 0 HcmV?d00001 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/clientsupplier/TestClientSupplierExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/clientsupplier/TestClientSupplierExample.class new file mode 100644 index 0000000000000000000000000000000000000000..3ce48fa681c49221daf52e8de11bddb7eaa6d85e GIT binary patch literal 1962 zcmb_dZByGu5Pr^(*tkjp<}Ku%0Kq0WGO;nnrfCCq62Ku8V|V(Y!Y;GumVZ?09u+#4K@2mDzT-c0 z)#O%9eN%lWG|6yv!>|nbjA1Amt1t|2*}4d02qOxv;3~t7qG5@>R--DMLtZrnL!@YH z+^lfN@b=xqVfof@8TN}`HtHP1%%v%j?x1B!qaiAWYfvoDEz6c%8n#8D+%4KpO_hWP zWy{YrK18`7A`H`KaFnEDShdZTVd}yOVS-_DAdF#*VakJMnk=Hl{s(fgN*FV^9mFk$ z>%O)n4O1KUQwnx0Cgo^nCERCP_))^(m*&+xSns4H0_jBl|S#B+w7{_H<%A`GOlf-MmJ?wnWd zx8$}IjhDh-80x*%>98nwk@7tR_RBSR-^;m+Z^SAgydZisxg!maFh_(^2(O60uI)%~ z7sey(DA+}jI!iMJx5~|Ye$xw>;m7|G>3>HuC^m+%)4+B`yTZ+uKL;;#KZVOR&8DG5 z18B4#2!>#ns0>r*hiJR`X^_tM-P*Vq&@-Bf;ga1V2EH)7iG1(U5&6Um5woE2PQMl) zKoX60`UYvI(#mMPvh)F=-+XnLzMdKg<16|q9Rpgg(Tl1uKav}24m$yCtL*y0M zL4>~7F^*A8lCK%s&ylo%X)NLM|xMjR(}Wvq<70R>?9=lP`n&$Pr__ w9F{tyy3(nxL^_5;(gsle2njbMkN^Mx literal 0 HcmV?d00001 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/enhanced/TestEnhancedPutGetExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/enhanced/TestEnhancedPutGetExample.class new file mode 100644 index 0000000000000000000000000000000000000000..02c8061256f1f407460fcfd61dadc1e49e54d903 GIT binary patch literal 2063 zcmb`H>rNX-6vzK#NbEXJ0&6Zw8z7KCY^bva;|q2!4KYa^tfVTzQa@DH*dD_M@2s^u zE_L6b57RFRYNb9vAFAq^UB}Sc3Z%-HnVoZH&-u-{{q^_ne*)M#9(|jX5wbMU*+f~nn+6nH2G0rgYmjA@f zHkSwH>-t;KPz;wJSkh9D7{(IG8pHTgrzxTs!xu4J!exf*RZEIjUAr#aH@w~!3`W&y z@OF*6mOl4|dSk&%mH5;Hm)vvea-{jY&ivKGZnd=ZS6OXyf4@?W;TGl?qAr(B$JP>hRU#SK7~Cpp4+}Be#v>OkT9sQ_VuNk=o1`(y6UhmZ!4Wd_LEx*Ed@E zRs?GdE9IW#wo|U}NWZWtj}@te+YnUbu6FL%R}?9jVccgZUkrQD4B8@l?FL5PG2-iX${lKq@B@zY4trKztKksQChVcbm0oE zvETyjSLsA`LfR0n_is)3_kdr?Xo$X(e_--^BmN%KC%Ewr^Y5@!H4?_^+Sm!cHdc)d zV{^^OouF{)Eaw}(f;jEdWPX;6-@pV-F+H&2n8y?iqiHN*26sri3+ZBN&$0+q@8W@M+@{b*!Na-oA98XgHxr*oSS&C9= zM1JZCK`BIF(!r+~>?ogb+Uz)PL-+tL0)0S24#B^|@?#Ep4F+^YPvpCs74m;fol)#C4*Bx7$KC7!re}dSn&) znIV7g^&TE^Gls8li@{J{&&e?PPqBd%Lg5aB^=Uk55~?&#U?9%0#eJFQhe7^TE68_( z#36YT%lS+?x0=pmlF3{um479=Ry~zYWkqu-(a1II#7Z`oOsqE3JdsXkvl+WyUv6fb z1{N7^7rT@Z?t^wf1sNF1Rqz8flWFf8O3doR!ewD z3btLrWwl)_ZfZ~%o(=Z$A21n4Y1pD+`<6ObHt-!SgrIqX;FjqA;ESg7hK$3Rbg6c{ z4(a5f;|hjZEtO%e@9FD^>!8Pt-cw+N{^(JoZ-jOht&G+)3vXfk7P_PK)oxJ0Ir_$W z0koc{9icyRLpsEVR7^rcg+QJ*<8^P zi^s@NjJbA%bqX;zj`3jF`{-Z2rHxyK#fmOyHnKc47GX*<7Cw@(FCqxl4LT4 z8<<9#yjhqey(?J5EY>OFKIX7PQB}(LnQ(hTkxy|G&*@=#javvP`v7-BXr>7W8o3Y6 R1RB^vg&<=1p6nxd{5Pt~&kq0q literal 0 HcmV?d00001 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/itemencryptor/TestItemEncryptDecryptExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/itemencryptor/TestItemEncryptDecryptExample.class new file mode 100644 index 0000000000000000000000000000000000000000..032ddeb72d8be4017cc96f113d8d9a77e16cde2c GIT binary patch literal 1316 zcmb_c+foxj5IqwDi6IJvI|>Tk5^&i-$c4nRN{w0+@d~8M$4N2?1KHiw?yMO9$`_!t z$`A0PEPHpOfIt-wzRc`&_w?yGr+a_?`t}3B8VV7F7~VTpQyp+y=-l96EK{%B-Hx(a zHt+0qb@7=Sowjgvse~cSz-Q~*!ciM!c@bF3!gss~f+Gks4DazzTyJx;rN6E1iMnDK zcq~n+o-p(!Q&ooWbE_d@=)<)*`Z2&TRFS55;~F(#Z}VDPFeEBgowuvpmfpE%469w~ zFl<%+d*LO9iHl#xF#W+bl{7?EI+AL6YMPefN?InBGF!3imad2sdM!Wk_%xLwNH9#E z(6Oa#X||rZvfU7N6l0Y8QYvE@!GuT8B*S>J@^6w-sv5&IZbmS}aKrbyO1AZ#osDuF zw=l~Pv$@%@49`M*CR0I(^vG&6Z{l+bXGygS5tj0NSt9i8vr{2t&Q7VLuMoLzt|<+;@z8 zOpG33{1{V*m^;KmC6P=lE+rlvWBCMO&W9hwC}ka|oRgGs3d5KooLMA%F^pft-m9RY2se&# zhROHipTH<4d`u@9#!|I^Mk%Ko34DR+7^WCL3$z_+wzPV^T2U~A+f=E`EyHg65_*JG zI*ie?D*HFwQ80(Q^s3x(gk>vMc>RQn#t`s@Xs@a!CUCrlKbd?wK%c`y~7mOS?GE3R7638GM!xF=zt0lPM z3NFQYUPQZ7qacSo!|=JLXUDK}8QBo2a{sgTOZw3-57N-n-^fo1te_M_@tsLMIHKeX z1!X*B81z~~I5elJopd7(n%n!8Q;WClN^{c+_5)2q(D?pT*shO!7vrxPSSEpWRASg* z*uEMv1bMJs-rv~@HnGJp`!5zxgse)@e%=WP!_WT_vwjpmmc$2fo8h{{U1|DT;Cm`K zjveZM&vvDMN+6Azf~VM{$<$kdTXm;WS@#QL`0jtK$lu4qy~L;m8@$yC7I5G8poynU zs|Iy^$Yg0>?Askz7h9&kwC6s&M<4hRF$?+`2wE{h9Ib!)#^|gOWkd((-y;4CF%cx_ z>#Kn{KBcb`8W6osCjyGJ0~jJcN~ar066f2G5cNa;Nq$kHJHKJ{+vLr+`1}mF-eC3( z?$weD^sk;ld)njnMzMT`LUMIc4P^_-$7fhet|p%(s{y}zk=HRMDY8O$4PlJ#9>*{y zD5EJ_kTWEi#ZB6hBedpjLB%wcH$(g4HkL?}!yPP>wt%}di}z3>uT^S*$C$?&7O;Uu tRLE-!DOAbRuYEqOq+9z4`98yQs&$I&z9B9`H_hP%aRVgXCyxjY{std{HXr~1 literal 0 HcmV?d00001 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestKmsEcdhKeyringExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestKmsEcdhKeyringExample.class new file mode 100644 index 0000000000000000000000000000000000000000..7dbd7a73ad96a6eee0128449316b23aa36d9d5d9 GIT binary patch literal 2103 zcmb_e+fo}x5IqCf63TM1Fxbdod;uFdUQ6gMK}bMah$0~?+$zosHChd@M%q>Fu1v^x zk%i1>*&TMgkvj>L&=mp}P#XTHJOG*RV|T-{pCQ4^I_1{w$Z2y+mBleIWxZeyI`=2AEA z`25H4!n*<7!K4p&8HT+)ZP#c-c6N#d1tHvH2-w`LTTN*pg7e`{jB~F=nQB_WeauiQ z-f9W6&Y)gQ)lqD*d(soJBTkox7viCUM|ey+xK?MA;r74DE*x1L1jC$y8@S0ZQZ`Ic zX*X-a-sZK2R{%@rja_aV^4&8A(2uZ`LLp7vL&ISxmOoQ(P<3anY@98ZyN1p%x!E>d zqbYU`#~@HErfJC?>H>!8vSlAcTF+{GHOcLLrW^w$;FqF7$=J>IbJ8C+)wxb@?t{Th5 z)6r})9gi(UV~O06po_$y$o5iD)vZX717hTb;w!MYHx|Rwb>+=6Ba-0p(b=XkT|VcVT}D)+&qhVU3~X6#(sj*{)8zh@7+=UyiH9_c`stI?N0X8U59DRr287AIh>Mb7pj@jS5Gf(I@KoLP>bsQsj>RCY% zXo7X)L}+DXzwzuH=6lCvVvv(OB3;P=&+sL!4A05Z2bG?s*9%%DpkKTfjQhI z&k(_x#ynZWcua8SFiUUGFMtepL6*GOY=ZEWFGX7-IVGzh!bJ!@L>oQ&A;JPAiDrr% Z(^QEJ2I=pBLb~@P89JBbd-CqX=08imBmw{c literal 0 HcmV?d00001 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestKmsRsaKeyringExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestKmsRsaKeyringExample.class new file mode 100644 index 0000000000000000000000000000000000000000..096fa179abdc1bb8031de14c69493842e231f1b8 GIT binary patch literal 806 zcmb_a&rcIU6n;|*g%t&gAefMhx0V?9!pRa7WB6g%sDawV<8=FI2X|&RGqYg%uRM`x zB6t5NqiU~I_^X>cf?R(#QKYxAu0RVgOv;j2+ht8b)D`7DfN?aQqr*@osGqfTf zjbr>GRGy)WKjYX+J&e2P{E2d>PMlPpgDRr|bq1>!;!?z!puG3}3rszOg?*`|f5l*~ z)$TEiS zzDXEtpBCCng+1vcweVVN{CAgQoo4*s@00VWCia$NyoSvQM!cMX&~&VP{VmY_yWuh*cY% zu-xd(6gI^}8P>RSpS~|bEj$A{2|7c78hz0z(Ayv@CS-*3yEm}-wG2n}hA=<`59nR4 x5(poX#o!S|Yp^oOS|tobdqiK>e22A9&Gj4DxFv6mIHqiyf3Zb>*tW{7?ceDf-r@iN literal 0 HcmV?d00001 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestMrkDiscoveryMultiKeyringExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestMrkDiscoveryMultiKeyringExample.class new file mode 100644 index 0000000000000000000000000000000000000000..b9301121dba340de9775d79059c63c9859497fc1 GIT binary patch literal 1900 zcmb_d?NZxD6g>+h7OrVPe8p`EO(CfbapZsjV^h+ANlFl;Ex|MSk;$y34N)vh9%&Wo zzE%GuOgqyD=u`AbI=w3ya3F2yO#keM?%loTo_qJ`kH3EX9Y6_BQs`s&A@pC$BOVBY zxA@P#XIMd}E&aoQw_kM(@e^;gT@e~h(Fq*y(0D3Bxf?WVPH6dWM9|rdTZH=Swaf-y>X8 zrXL&{l4zpT`I#kVu9||*FnPw!zErGkM2>5VK*Jcr^helDV+0e5u}OyUoO%ALYQCOE z7N4i^8N;WsHIj~N92{)dGWY^h4C#P-w%<};h~iv6x#QHUsv=Bh@Fi|i&3L;lJe#4= z8!D-2wR4X~c44LJn^6Jv^ za3gOVQd7?Ub6znc%B!m39>ZW1 z7LF)>VL`(p!|htf<1N3|*z)2RLov2JDFRE->j@OlxL-9aG3@ZbtMH?+(rks5(`zcd z@GJDdj8@Prl#30!EG*lyON*riE@)S3tk~A7%}c9gzM^4;ffdtO1yNUF*u5NeClB}| z?UlhAzM<^mcirpTedCXW+?JyCeH2d&&0hYJI#(|?WlxL6gnoG6+Z7k@$k#R8rvkQl zARSfG7nG8Q2h?GqA4s)J<2E)ks9}qG-*N@_4%)Tah62p+{68T5cO)Oe#xQaUjHs$} zH;M)9!uuq++_HQU5E6^w^F%PD0&$oq$;A8W*J+<9;Ox0mYZn2nla{6T{fOG}p`)ZU zcL`y;tH9zWNTKNm0rb&|l$pj9?F^b3%~$5$LHi{(r)gAXU=W|sm`NOH9-7(y3evIpHapNt%GWFas=63ZWjeGinUb<75*O!k`ruDl1 zZM@!4vHPK7KZZ`@5JoA+I7Q1U<-!=HFpe2akp4{K7OqoQWRWAUc}$^z8crN9v6#fR$uC)p*0*WHy1zU94Lhr4jLcO3xjY<=L7&E&&#g)A@yR#xbif`c` zHJbPUK9uq776nBUV)W0wis*xs7{ScGyVSYL@8Y2WSXZuERo=w}#w!C!LS;pBPWcp*&5 zaNx4-*>ZtlUpCif=wI?Jk;Xn8%wRtbFbuS8Puz=KLj;ex;Rpt`<(u4T^T3YfEoHxa zZiftaTK@`fgJJy7zhOB3F!H4Binblv1mn8r`I1Z9_Xx#A%MaFcNnFrJ`L-pYr;&on zFt*LaBN?+G8X4zmA(@y$T3VeH$Cq9P2+}_6eRJ!>`4)rf{HVU zeUrLSaFO9I54<|x2KnW3^j~RmZ3Q)k!(ARoJ8r#a^a%yjxk~5zskC?RVf2DZEg6F=Zhq6KC@Vd#lE{2n78aO@pU zy~CN7npJ1iOX}=JHU9zgBvsXVa=yI%;zAPf5QZuK2%X0;NONfjC!o?88pbJleTuYa oaSZ3laslJWl63~7&@ho89VJ|ZU<>ImS+C(bA!b-4eIJ&-0U7b!jQ{`u literal 0 HcmV?d00001 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestMultiKeyringExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestMultiKeyringExample.class new file mode 100644 index 0000000000000000000000000000000000000000..da300785e39e80be30dd0c58a71f6d8947546474 GIT binary patch literal 1685 zcmb_c?NSp-6g`b-#yBbjSOmdu*+dKz3HcyVc8Nixh`U=LsoEb~ZYSyB=%gn#)3a>$ zef9zTqm)+p0Q*o|-ku2%6sxexKhx8FZ{K_R+;i`L|G)nTUGitG-Sv3)WzQ0S^G??hzV%x4JX`Ks&xNm^1&*>eql2}`A%!GO~r8Tp)GB-!f+;;sxu5fc3UEjGdOSJEY2}puGv!j5_B5Ed(InR6j}pi zJJ!z5M%Ba&W*Oohmo2xWPl&!`DvELFRn{4v52lK$Rqo#m3wR8C z7~-~xJGjeWC^s@Pj2|Q$xI(@^A{9fDq4I6j+Twew!auGn6ZbGr#O(?xJg!9KQ0Y+( zi0gy&(snIyBRv{PZ4K(~G5iuDG1b=QEjNHd~^uu^QQ2wjkOM(yd~vnO-Us zGwJ1aj;C|ELLuL5G#1;1wt*}I%fyjGA%;A|>gmuQbma-UGEu}b!}OqOU8oHuI==ls4Pw8D8_wkd7pRr2n zZaRX?oo=;S(I^@I_y%}`c~6IpVe}B#rs&nV6NKaEiw%Nl4!q?JQaut!MAOgYhOb$LXuhfPoA2H6sUF zFVc=!BkK?@_q|4F)q(z{pgMu|0i(Ys#@=CKA6MSu+FRVJ?PKm)Vj+>aKc86K#}fUP z5)Z@wm7|m^VMr5Wlwgtu$P^N|O1l}1V-^#*juG6V(>s{P99fcNNs(n9SFk`<4fRF@ Zp$}Ext>7_1o+O_t*21?xA-^H4e*(6^*yjKM literal 0 HcmV?d00001 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestRawAesKeyringExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestRawAesKeyringExample.class new file mode 100644 index 0000000000000000000000000000000000000000..1c31e921c221ebf6f08a59e0459dd8b6f582be5f GIT binary patch literal 1515 zcmb_c>rN9<5dKcNw3Z^U1{cig5={KFvu9?`%$)C=nP0!Z{{(O!DL;G+>s4!49&lUeyv)B?rk=NJ z6=@Z1UfHYZ;xjK-N}{TN6gAs0i~5eJ$}N7dBC4-E&6?-oM=L}3KL5n^5+}bmxqXqB z4DCyXX~<=UmRLN?(7I|BL=Y{w7D5}^8M@MjDK?#QPS`s7coOu`S1 zA##eswp5@c9ivnbb^yH$y%&KOL=XBEAQ6VXSo-|^L_8bBAcp-IVz};F9ch&GOlBh$ z!VN?jf;Kk`R#|BX!C2gjapILw8E%F!iZP;uS1Q6RFw8Zk@(4@RZ@L_wsoo87D})K$ zW(Y{jGtz_pCTqAtzEg<%5o1XH8(|lr6T&oR7{Wzi3Y$ye^8+D_zpr z-4!-5F~^`^ExGE13;|jVKxddt)l6QtQn@wL9R=cj!<53#3mOYs`MNzBz#Rs*pk8_} zMAP(uVfak-FNEBXqWsoz1;b_|+8%ldkEU~_H}l`DiDv_N#L!vcwlq|0exLyj;0aMv zwQQ+QLChi%!V;cR)8tEno0&=~l~gq`yuY-VMjD&*UPYtkyyv7aS`%4ba@@ggYHWrM z?rxGgn|)sVbAV8LZ(9x#ux_XY5mg+Vfx5nf=2d)*ftC#|IKW4Lv}EY(r;|>Sk!+hj zLg1Tg4$@bdfdD$_8}b}TcG8JpBdZTxb+2xcD$rL7suIloK+iiZe1yJZ3>;$Q5aa1% zOup9UXJ@p9W8Br|wTIec_kZy;;Ua}qslp^9G?s(VFhr+e^dgFGn$ZD_lXil%lcb%Z k36GQKEJoZSN4@0rBE#ghjAvAA1pRo975CLi%HYH5AH?RNod5s; literal 0 HcmV?d00001 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestRawEcdhKeyringExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestRawEcdhKeyringExample.class new file mode 100644 index 0000000000000000000000000000000000000000..d3bca5130c081cff415b72bc5055599c8bfab30e GIT binary patch literal 1072 zcmb_a&rcIU6#k|ZT2>UOqM`z;C-C52NKC9TF=hP`HySB6@i?81?ZEENW_DVvNB<*F zB%0{mKg#%K+fWXRQQ~FZuW!D2-<$XI*Vpd=cClGQh2eRwKiFe#WWW>tNvDA@_D+YP+R{DgVGfH+n8yOca->rEdYE*jIpEz`GBhGBc--Mexpy$d#h_vYkmMBOppH+$pHEU>)wAnO5 zW3;K`8pGRnsgb#kN3!P&on$I582!v>dLnt`dy8Rf??r29MzWnr;fsRY?@Islp4C40 zN7Dg$9#(PPP4foB+IBR1v~As&HQm_nIjvzfkcl)rK1Xf=+EcmEBWcE^pgL|deEze9 z`~n*ORWpOv)VJX}C RU$EUO>8(@BcBfFV@f&E|3>g3b literal 0 HcmV?d00001 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestRawRsaKeyringExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestRawRsaKeyringExample.class new file mode 100644 index 0000000000000000000000000000000000000000..9586549a51c94284b0ec57a14157e8b8b058eb73 GIT binary patch literal 1521 zcmb_c*-{fh6g?f5iE$7z?7O&N0>Xge0>K3cTN#mJNtISvR+F?aFquisbVU3Uzrbf- zfYK^Iz;CiFZ_k9yK$Tj)^m6a*zNgPUx4-}V@(sWk7BoZ{=6v_9+~uAyd4Yd$9W&?c z6{WlB@#5B=DcBo^qA{KOLwlhR-? zw4SiADivwdCCknWFN!9Hrt`>)A&wSBNGn5gBJ=zCR5BYwJ32LVFkA_|C285_`ubv8 zM;E#oVjg$$Zb4ay!9+5=<2Wj%GW6=Wiasg{FBXN9XBax2DlAy4d@`uv8T7#w*LB>$ zO@^p+Lnl4xDA}na6nhIv4GD(nzbn{z?C2Q4AVa6W<(BOHyl{larC1VW5iWDf3*_}m zWgXHntaN2;mg7RDsvr#`4CbHVQQ}x9j{PX^F!ZPQ9A0qK8?#Q(9VCTCM+z?|s8c)@ z8^|<@F$OlGVBFX701pZDnFq}axhO?pxfDzcfW3N{j09_%Sg0B(mHt1#Mj+ zYkI+|aD zG}jCqAo@9Q$7ob;P{3sx^)P_uI@%F!mFFin7G$QK3sfi4Yc+RxEGg85%0MxUkt literal 0 HcmV?d00001 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestSharedCacheAcrossHierarchicalKeyringsExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestSharedCacheAcrossHierarchicalKeyringsExample.class new file mode 100644 index 0000000000000000000000000000000000000000..b71237de640feac3913f787cdae3fa8c4a9f5bb5 GIT binary patch literal 2151 zcmcIl*-{%v6g|yiDT;_efC+XWU}GWy!)QgDaSRCCfV{*)s*08#x;iP zWy=;%JFU8q`@G&143V-!=4)J9-oAG@q#BmX@MHPoMp0ylUo~=u(DoZcw3X%9ZUAEp zv*$4E*h)y*X)9r#2{BB+=-A3?iJIkF6yt_%JBs`I3^Qd%9_otVClvWP$InPHfJug_ zbNdzLWoxrzHBBLdm||GDO4dS{z_gc%n+%iD@`rYdv04aUU^ajmhR=L%M_En1THPsy z@g?RccFAqiX?Z7KCoOUJE0IG{e{_=S+@a_ad@gq>BA%?LX;9zc@_8gMQ<` zgpflafc$&?z26|`%rJ_$$1vox?avwN4Zjt$k*Kc`cxwknN=s)_d5xPHq2*IKGn3B>GnqPWf*C5sVr~G{6L@tQKoKk z9jUxs2r)bj;~Ab)pBqiV?P|MJ+Vlcr`0gV{{ik zt^lngv?IWXJBaH<57BNE5u!Z#aaui-f0Lef)y5x~_%?Fm9X>z7t+$wei@W8>GX1p^ z=uak)IYBnEzTzK!9nqE}8zuXaziDM)qmHSQQ-2y3j&*p&%=oFs7t*G zOTlFVJEj}kt1{~NJXW@1hXfvW49&7N!)&RFrTtwc1sMXn9qvXN565T?Ct7LoXl|_9 zmJQ{NU02`RZ`*RKr5VR|yU#;%e(` zW=4L%YW?1F?EQJI-aOV6S&uy~iWfWGc-FK+hrGXo7bx9_op&JtTp#QJC!Iw^({v>eNYd3z&2midXXYrxH0pM78 z)R$lnzYRo5L~D>joL<3K5O1#FtBAK(@HNEO|G)%$;d(IM#Ev5VNv!kqE9`!mOYC8c X1py80W6UfP;5OVrMBpyQHMsW+=;P>g literal 0 HcmV?d00001 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/searchableencryption/TestBasicSearchableEncryptionExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/searchableencryption/TestBasicSearchableEncryptionExample.class new file mode 100644 index 0000000000000000000000000000000000000000..d277b9019c86c6dedfaab5ff3f178331143f1168 GIT binary patch literal 1595 zcmcIk>rN9v6#fRNTh|Iwk(+W6ytG1HXbYt+V!U8ds8=qU7-NRrk*>76&FoaHPvBo4 z#Xm~?;REB=A1d_eCPJ#=eO?wvbb%agW+}Hzfrqf3X9kH2j8=7 z*{mynTk?9PX^Ho|RO}b@IncfMAt>2?()F3*V^3WHg|ddsevwrb8q=O zZdJLrZ9U$4D{RGZYSHyvwZzbwNNzH8-SZt`q7$cMh~N}MPucavqeg8@$aQU&Azt=v zUftx<)#uh_m#Vk{126w)7)1inhTDS1U@pJ6MO{%W0t3AaqlY+4o)S_v>Pk3mA%>x6 z4Nti>vFQdbfw<#&zT)9~hLN%_w=G36r7-bBP8jB*feQ>T{sHB2InszWlv@p=7$AVF zqPeDgDegO4VR)k$Vp!$UEAZW*uu}^PjUcs4Z&K+(CO4Cx%VpBDGwEz$M>MUxlV8Yl zo=&CTuncLa+5qN6rnz$@BBv-lelW&%5RmtULoh47_Q+uLnNTis8by$ zR+5`0l9)1ZgP}Wgr9mOKHa1H4W0*#Y%0_a}@oV~q$~w`q+?Fcp_f`xum}Q76e;))x z-+^S(cenZ;gfve|9 zvfaoz5Xnl$JkFyH@#$)N50d@qSu^dl)YFVSEo0dq{l2&4=;yRD3YrKfQHG;6#fF#t!ovn$VCP5Uevm!EtIy3qkuDodM%(YKBT*WuC%+IY*wtlz*m2Y zFUt7f5Aa7ho-C#4zyqT*CNs%N^5xvm`SJ7HcK~@jFwn=a5%?Qwn@eHw7XRRTmMuGN z zF#WK=Y5Ufc+YI6uq0p^}PEGkzEIReb=W&cNtZ?a-_;yg*Y6Yb*NN>}hbheZ$WQsF| zTy{E>&6l=B$0|C-xgzJ;bata?r}McvJIxFEnY3-s6r3D)GSk^v6BjUU;3C8P(JWbz zf-AA77wz3tOJD+*7|!gy^l%Kzsp@_dYD&7^X89;LQwKpYsv#O@Kbp9T>jtj0Bf zQqD=>25vIM0;-xeC3k9hYTd*XZX3A8a4J$IBo|w2Yn82Qq=W(Y7zQ z^s8C(Lurf0uI@M)?X%ytJgi*0$#++C#br=Ki}It7C~9Q18g#a3XSBy|eMS5;5q&Ue z)z2Wn30f1o0NPK|iL!)V`!PuL0G&=FNtDK)rCqc9MC`SwtI1)SqdPcX9m3=euIwQ7 z1$Un$v$vC@$>BRY$nOiBjhLS#@u!IGATdmkB16P}7$X>?d7kD4T%y?YX_%Q4abfMjCW@p9v3w-sb z_@cxIe}F&AcxEX@f{8>EXOfvSGvA#1Ip2SL{RSY1dj>ifs)4_$cDWQ5uk-i5XW6pZ zQ2v(WjcU^p?|8jY6M+>7F6}Dcs0rak2$!I%B2bHdz2S$R^FVOh_g31lU<6kf&L6zAaSV@AmBT2kDCv4zrIXx@9S6mzj%Zx?VB$J%8n|&J!B?xK zoRh#U+-8UcR5=Yw@6@BQbrWNlFfh(=Hc}-d7h7v<<)s8Bk*2hf+;jZ8zM*VSwIsJu zCH>z@U>Y+FapmtD!O(kvjOwdpS{zx1{xvGGvKKU{;wTw)Sfc=%m_^>e9D{Q*fB&`( zoVW!fFpmPm=<`tNYIzX~+0?`XpfD5LHrXD9WZIt&mh1V zS`+&K+PmpQxk9g<=pnj`PUny$O5-oku33I0_FB~SWFO6eJzT2v;_4no_mKLGsVB+I zL~34R<_Lyy1p^qRRV#RPUtCK; WldwgUNTGhZxkHq;_%7i(u<#R2)Z0M- literal 0 HcmV?d00001 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/searchableencryption/TestVirtualBeaconSearchableEncryptionExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/searchableencryption/TestVirtualBeaconSearchableEncryptionExample.class new file mode 100644 index 0000000000000000000000000000000000000000..4b424b11b9f9dbd9bbfe5b351beed61e42b7ed7a GIT binary patch literal 1644 zcmcgs%Tg0T6g>^ZiDMLq$U_Acd;~QPB!Q4bv3y_^5TAkQ#ziyJCZowrs;5VcU*OhH zaif$AKfsT&ygdn_tgxW8%IT`^+udjGz2`pq=dbTS0OWAjzyL!n@ZYFiE``OL{G;z# zwrsbQUz5C5Z(HI6Z?+mDumZuQUFSOuA-o9T5_C%hs_IG=^2U9^ZQrZ(P-{KZT1SO} zA%>B+{5`iC+^bnnciswHF&w+?dahb!7);Gq8HOJCjxaHZ;|auYjA6L!dg4jg+!1n1 zn`cOteVaF`T)KMSJseVXH(+qf|A|hCVX}{Ymnws~_Q4h{MKKBtj55p|@LuF%(j)= z2;!KatZj;RMfp-ZbatX}$1%mQ$)#81yFu|?Gbn~ZdYAr5XNuYULSZSN%`7fta>aL| zZ55otN`doCI`gJrr*qjAJI(XCrL=7?<(({d78WzhCeC5nz~ z2WPRb(GTmHZUx@bs&NVQphZP8KoUJuzzLcY9RRH- zX-B0(w}Tiad5Cr+NRp)Sr)kwHKa+ZGYA!iWV{#8?%VW5>huJ-(zT(#7WadV4GC6*8 z54i(_%aQVvWd0PX9VUeda%7Cuk7EK;G|tjEhx0UMFpUeC#4OF)!HXSpT?b9V7EvOH QCg|igNt*E;!VO^cH?h~(ZU6uP literal 0 HcmV?d00001 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/searchableencryption/complexexample/ComplexSearchableEncryptionTestUtils.class b/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/searchableencryption/complexexample/ComplexSearchableEncryptionTestUtils.class new file mode 100644 index 0000000000000000000000000000000000000000..d5df468eb9748e9cd2c0aeaded3181858bc787ab GIT binary patch literal 584 zcmcgpxlRKy6ddO!2MOVjDCr0VZsi1vSIu$6jSX~689%qq~u2|?=B`949Da3>uOg4#I;yAzQ4|9@>`KQ(4U6;2WeDsYU<* literal 0 HcmV?d00001 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/searchableencryption/complexexample/TestComplexSearchableEncryptionExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/searchableencryption/complexexample/TestComplexSearchableEncryptionExample.class new file mode 100644 index 0000000000000000000000000000000000000000..111c6f57c430d8aa730499346315c9bfc638f12d GIT binary patch literal 2004 zcmcgt?Q+vb6g`{7$TfxpLqeb=KtHHWBIM6Fwkec^07(p?IPt&_er%*oBCsXRN+wC4 zpzqNq=%3(eXZiqrs7~+7iWBM#e8Hu;$G2NTI3dDTP*(*HB9O5u{9w5^)#$@l z`tX(ByEKe3OuXYCxY6RyuCcNGPM871x%;+b2M-uV)0rm2*s^Ph1V-^y5;2@(7_Zxo zc+qKZ3%RLyFr@0P$y-e>Z8eT2$AUfEXOQ(TomY(rol+pmmLainUO;T zKkL|3PFsQ9^5eKl2e&Q`8-XjuV{1E9JdSG&>s&fjzVBDxxBY6z*Y|0Sp05_l*-EKg z$mg>8V)eZ^G%8kQvBG&?&+k-By;xW@bzUx(bki)Atpc~Qx%@%`Ut>nY4TcB9WwI;< z55zGqY9r~Bn8i(oOUIEuj$tibKRJa)AZ=&2Hq1WVCmf4GKWoK+@R3rK zY8p8WD-6zX4^ku#s dQohwA5K&f^et`|5n4y`M)KeP#OcY1(>R&obOGE$w literal 0 HcmV?d00001 diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/clientsupplier/ClientSupplierExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/clientsupplier/ClientSupplierExample.java index 7d75d2f9b2..1922791908 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/clientsupplier/ClientSupplierExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/clientsupplier/ClientSupplierExample.java @@ -49,7 +49,9 @@ public static void ClientSupplierPutItemGetItem( String ddbTableName, String keyArn, List accountIds, - List regions + List regions, + String partitionKeyValue, + String sortKeyValue ) { // 1. Create a single MRK multi-keyring. // This can be either a single-region KMS key or an MRK. @@ -166,9 +168,9 @@ public static void ClientSupplierPutItemGetItem( final HashMap item = new HashMap<>(); item.put( "partition_key", - AttributeValue.builder().s("clientSupplierItem").build() + AttributeValue.builder().s(partitionKeyValue).build() ); - item.put("sort_key", AttributeValue.builder().n("0").build()); + item.put("sort_key", AttributeValue.builder().n(sortKeyValue).build()); item.put( "sensitive_data", AttributeValue.builder().s("encrypt and sign me!").build() @@ -191,9 +193,9 @@ public static void ClientSupplierPutItemGetItem( final HashMap keyToGet = new HashMap<>(); keyToGet.put( "partition_key", - AttributeValue.builder().s("clientSupplierItem").build() + AttributeValue.builder().s(partitionKeyValue).build() ); - keyToGet.put("sort_key", AttributeValue.builder().n("0").build()); + keyToGet.put("sort_key", AttributeValue.builder().n(sortKeyValue).build()); final GetItemRequest getRequest = GetItemRequest .builder() @@ -289,11 +291,11 @@ public static void ClientSupplierPutItemGetItem( new HashMap<>(); onlyReplicaKeyKeyToGet.put( "partition_key", - AttributeValue.builder().s("awsKmsMrkMultiKeyringItem").build() + AttributeValue.builder().s(partitionKeyValue).build() ); onlyReplicaKeyKeyToGet.put( "sort_key", - AttributeValue.builder().n("0").build() + AttributeValue.builder().n(sortKeyValue).build() ); final GetItemRequest onlyReplicaKeyGetRequest = GetItemRequest @@ -347,6 +349,6 @@ public static void main(final String[] args) { ) { regions.add(args[i]); } - ClientSupplierPutItemGetItem(ddbTableName, keyArn, accounts, regions); + ClientSupplierPutItemGetItem(ddbTableName, keyArn, accounts, regions, "clientSupplierItem", "0"); } } diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/enhanced/EnhancedPutGetExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/enhanced/EnhancedPutGetExample.java index 3474b3094b..1e107480cb 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/enhanced/EnhancedPutGetExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/enhanced/EnhancedPutGetExample.java @@ -38,7 +38,7 @@ and uses the high level putItem() and getItem() APIs to demonstrate */ public class EnhancedPutGetExample { - public static void PutItemGetItem(String kmsKeyId, String ddbTableName) { + public static void PutItemGetItem(String kmsKeyId, String ddbTableName, String partitionKeyValue, int sortKeyValue) { // 1. Create a Keyring. This Keyring will be responsible for protecting the data keys that protect your data. // For this example, we will create a AWS KMS Keyring with the AWS KMS Key we want to use. // We will use the `CreateMrkMultiKeyring` method to create this keyring, @@ -153,8 +153,8 @@ public static void PutItemGetItem(String kmsKeyId, String ddbTableName) { // The item will be encrypted client-side according to your // configuration above before it is sent to DynamoDb. final SimpleClass4 item = new SimpleClass4(); - item.setPartitionKey("EnhancedPutGetExample"); - item.setSortKey(0); + item.setPartitionKey(partitionKeyValue); + item.setSortKey(sortKeyValue); item.setAttribute1("encrypt and sign me!"); item.setAttribute2("sign me!"); item.setAttribute3("ignore me!"); @@ -167,8 +167,8 @@ public static void PutItemGetItem(String kmsKeyId, String ddbTableName) { // original item. final Key key = Key .builder() - .partitionValue("EnhancedPutGetExample") - .sortValue(0) + .partitionValue(partitionKeyValue) + .sortValue(sortKeyValue) .build(); final SimpleClass4 result = @@ -181,7 +181,7 @@ public static void PutItemGetItem(String kmsKeyId, String ddbTableName) { // retrieve the same record via a Query PageIterable items = table.query( - QueryConditional.keyEqualTo(k -> k.partitionValue("EnhancedPutGetExample") + QueryConditional.keyEqualTo(k -> k.partitionValue(partitionKeyValue) ) ); List itemList = new ArrayList(); @@ -199,6 +199,6 @@ public static void main(final String[] args) { } final String kmsKeyId = args[0]; final String ddbTableName = args[1]; - PutItemGetItem(kmsKeyId, ddbTableName); + PutItemGetItem(kmsKeyId, ddbTableName, "EnhancedPutGetExample", 0); } } diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/enhanced/LombokPutGetExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/enhanced/LombokPutGetExample.java index 4eff731ad1..f412f37f94 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/enhanced/LombokPutGetExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/enhanced/LombokPutGetExample.java @@ -48,7 +48,7 @@ and uses the high level putItem() and getItem() APIs to demonstrate */ public class LombokPutGetExample { - public static void PutItemGetItem(String kmsKeyId, String ddbTableName) { + public static void PutItemGetItem(String kmsKeyId, String ddbTableName, String partitionKeyValue, int sortKeyValue) { // 1. Create a Keyring. This Keyring will be responsible for protecting the data keys that protect your data. // For this example, we will create a AWS KMS Keyring with the AWS KMS Key we want to use. // We will use the `CreateMrkMultiKeyring` method to create this keyring, @@ -163,8 +163,8 @@ public static void PutItemGetItem(String kmsKeyId, String ddbTableName) { // configuration above before it is sent to DynamoDb. final SimpleViaLombok.SimpleViaLombokBuilder itemBuilder = SimpleViaLombok.builder(); - itemBuilder.partitionKey("LombokPutGetExample"); - itemBuilder.sortKey(0); + itemBuilder.partitionKey(partitionKeyValue); + itemBuilder.sortKey(sortKeyValue); itemBuilder.attribute1("encrypt and sign me!"); itemBuilder.attribute2("sign me!"); itemBuilder.attribute3("ignore me!"); @@ -176,8 +176,8 @@ public static void PutItemGetItem(String kmsKeyId, String ddbTableName) { // original item. final Key key = Key .builder() - .partitionValue("LombokPutGetExample") - .sortValue(0) + .partitionValue(partitionKeyValue) + .sortValue(sortKeyValue) .build(); final SimpleViaLombok decrypted = @@ -252,6 +252,6 @@ public static void main(final String[] args) { } final String kmsKeyId = args[0]; final String ddbTableName = args[1]; - PutItemGetItem(kmsKeyId, ddbTableName); + PutItemGetItem(kmsKeyId, ddbTableName, "LombokPutGetExample", 0); } } diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/enhanced/SingleTableExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/enhanced/SingleTableExample.java index c0657017c0..d0469b3e86 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/enhanced/SingleTableExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/enhanced/SingleTableExample.java @@ -37,7 +37,7 @@ and uses the high level putItem() and getItem() APIs to demonstrate */ public class SingleTableExample { - public static void TransactWriteItems(String kmsKeyId, String ddbTableName) { + public static void TransactWriteItems(String kmsKeyId, String ddbTableName, String partitionKeyPrefix, int sortKeyValue) { // 1. Create a Keyring. This Keyring will be responsible for protecting the data keys that protect your data. // For this example, we will create a AWS KMS Keyring with the AWS KMS Key we want to use. // We will use the `CreateMrkMultiKeyring` method to create this keyring, @@ -168,22 +168,22 @@ public static void TransactWriteItems(String kmsKeyId, String ddbTableName) { // The item will be encrypted client-side according to your // configuration above before it is sent to DynamoDb. final SimpleClass item1 = new SimpleClass(); - item1.setPartitionKey("EnhancedPutGetExample1"); - item1.setSortKey(0); + item1.setPartitionKey(partitionKeyPrefix + "1"); + item1.setSortKey(sortKeyValue); item1.setAttribute1("item1 encrypt and sign me!"); item1.setAttribute2("item1 sign me!"); item1.setAttribute3("item1 ignore me!"); final SimpleClass2 item2 = new SimpleClass2(); - item2.setPartitionKey("EnhancedPutGetExample2"); - item2.setSortKey(0); + item2.setPartitionKey(partitionKeyPrefix + "2"); + item2.setSortKey(sortKeyValue); item2.setAttribute4("item2 encrypt and sign me!"); item2.setAttribute5("item2 sign me!"); item2.setAttribute3("item2 ignore me!"); final SimpleClass3 item3 = new SimpleClass3(); - item3.setPartitionKey("EnhancedPutGetExample3"); - item3.setSortKey(0); + item3.setPartitionKey(partitionKeyPrefix + "3"); + item3.setSortKey(sortKeyValue); item3.setAttribute6("item3 encrypt and sign me!"); item3.setAttribute2("item3 sign me!"); item3.setAttribute7("item3 sign and include me!"); @@ -202,16 +202,16 @@ public static void TransactWriteItems(String kmsKeyId, String ddbTableName) { // The item will be decrypted client-side, and you will get back the // original item. final SimpleClass key1 = new SimpleClass(); - key1.setPartitionKey("EnhancedPutGetExample1"); - key1.setSortKey(0); + key1.setPartitionKey(partitionKeyPrefix + "1"); + key1.setSortKey(sortKeyValue); final SimpleClass2 key2 = new SimpleClass2(); - key2.setPartitionKey("EnhancedPutGetExample2"); - key2.setSortKey(0); + key2.setPartitionKey(partitionKeyPrefix + "2"); + key2.setSortKey(sortKeyValue); final SimpleClass3 key3 = new SimpleClass3(); - key3.setPartitionKey("EnhancedPutGetExample3"); - key3.setSortKey(0); + key3.setPartitionKey(partitionKeyPrefix + "3"); + key3.setSortKey(sortKeyValue); final TransactGetItemsEnhancedRequest getRequest = TransactGetItemsEnhancedRequest @@ -240,6 +240,6 @@ public static void main(final String[] args) { } final String kmsKeyId = args[0]; final String ddbTableName = args[1]; - TransactWriteItems(kmsKeyId, ddbTableName); + TransactWriteItems(kmsKeyId, ddbTableName, "EnhancedPutGetExample", 0); } } diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/enhanced/TableSchemaBuilderPutGetExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/enhanced/TableSchemaBuilderPutGetExample.java index 2ec8e61675..35f4f179c8 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/enhanced/TableSchemaBuilderPutGetExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/enhanced/TableSchemaBuilderPutGetExample.java @@ -52,7 +52,7 @@ and uses the high level putItem() and getItem() APIs to demonstrate */ public class TableSchemaBuilderPutGetExample { - public static void PutItemGetItem(String kmsKeyId, String ddbTableName) { + public static void PutItemGetItem(String kmsKeyId, String ddbTableName, String partitionKeyValue, int sortKeyValue) { // 1. Create a Keyring. This Keyring will be responsible for protecting the data keys that protect your data. // For this example, we will create a AWS KMS Keyring with the AWS KMS Key we want to use. // We will use the `CreateMrkMultiKeyring` method to create this keyring, @@ -212,8 +212,8 @@ public static void PutItemGetItem(String kmsKeyId, String ddbTableName) { // The item will be encrypted client-side according to your // configuration above before it is sent to DynamoDb. final SimpleClass item = new SimpleClass(); - item.setPartitionKey("TableSchemaBuilderPutGetExample"); - item.setSortKey(0); + item.setPartitionKey(partitionKeyValue); + item.setSortKey(sortKeyValue); item.setAttribute1("encrypt and sign me!"); item.setAttribute2("sign me!"); item.setAttribute3("ignore me!"); @@ -224,8 +224,8 @@ public static void PutItemGetItem(String kmsKeyId, String ddbTableName) { // original item. final Key key = Key .builder() - .partitionValue("TableSchemaBuilderPutGetExample") - .sortValue(0) + .partitionValue(partitionKeyValue) + .sortValue(sortKeyValue) .build(); final SimpleClass decrypted = @@ -303,6 +303,6 @@ public static void main(final String[] args) { } final String kmsKeyId = args[0]; final String ddbTableName = args[1]; - PutItemGetItem(kmsKeyId, ddbTableName); + PutItemGetItem(kmsKeyId, ddbTableName, "TableSchemaBuilderPutGetExample", 0); } } diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/itemencryptor/ItemEncryptDecryptExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/itemencryptor/ItemEncryptDecryptExample.java index ea6b296054..59848ecbf1 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/itemencryptor/ItemEncryptDecryptExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/itemencryptor/ItemEncryptDecryptExample.java @@ -34,7 +34,7 @@ */ public class ItemEncryptDecryptExample { - public static void PutItemGetItem(String kmsKeyId, String ddbTableName) { + public static void PutItemGetItem(String kmsKeyId, String ddbTableName, String partitionKeyValue, String sortKeyValue) { // 1. Create a Keyring. This Keyring will be responsible for protecting the data keys that protect your data. // For this example, we will create a AWS KMS Keyring with the AWS KMS Key we want to use. // We will use the `CreateMrkMultiKeyring` method to create this keyring, @@ -124,9 +124,9 @@ public static void PutItemGetItem(String kmsKeyId, String ddbTableName) { final Map originalItem = new HashMap<>(); originalItem.put( "partition_key", - AttributeValue.builder().s("ItemEncryptDecryptExample").build() + AttributeValue.builder().s(partitionKeyValue).build() ); - originalItem.put("sort_key", AttributeValue.builder().n("0").build()); + originalItem.put("sort_key", AttributeValue.builder().n(sortKeyValue).build()); originalItem.put( "attribute1", AttributeValue.builder().s("encrypt and sign me!").build() @@ -150,8 +150,8 @@ public static void PutItemGetItem(String kmsKeyId, String ddbTableName) { assert encryptedItem .get("partition_key") .s() - .equals("ItemEncryptDecryptExample"); - assert encryptedItem.get("sort_key").n().equals("0"); + .equals(partitionKeyValue); + assert encryptedItem.get("sort_key").n().equals(sortKeyValue); assert encryptedItem.get("attribute1").b() != null; // 7. Directly decrypt the encrypted item using the DynamoDb Item Encryptor @@ -165,8 +165,8 @@ public static void PutItemGetItem(String kmsKeyId, String ddbTableName) { assert decryptedItem .get("partition_key") .s() - .equals("ItemEncryptDecryptExample"); - assert decryptedItem.get("sort_key").n().equals("0"); + .equals(partitionKeyValue); + assert decryptedItem.get("sort_key").n().equals(sortKeyValue); assert decryptedItem.get("attribute1").s().equals("encrypt and sign me!"); } @@ -178,6 +178,6 @@ public static void main(final String[] args) { } final String kmsKeyId = args[0]; final String ddbTableName = args[1]; - PutItemGetItem(kmsKeyId, ddbTableName); + PutItemGetItem(kmsKeyId, ddbTableName, "ItemEncryptDecryptExample", "0"); } } diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/HierarchicalKeyringExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/HierarchicalKeyringExample.java index a0ad297bb3..1178e61c35 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/HierarchicalKeyringExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/HierarchicalKeyringExample.java @@ -76,7 +76,9 @@ public static void HierarchicalKeyringGetItemPutItem( String tenant2BranchKeyId, String keyStoreTableName, String logicalKeyStoreName, - String kmsKeyId + String kmsKeyId, + String partitionKeyValue, + String sortKeyValue ) { // Initial KeyStore Setup: This example requires that you have already // created your KeyStore, and have populated it with two new branch keys. @@ -235,8 +237,8 @@ public static void HierarchicalKeyringGetItemPutItem( // based on the code we wrote in the ExampleBranchKeySupplier, // `tenant1BranchKeyId` will be used to encrypt this item. final HashMap item = new HashMap<>(); - item.put("partition_key", AttributeValue.builder().s("tenant1Id").build()); - item.put("sort_key", AttributeValue.builder().n("0").build()); + item.put("partition_key", AttributeValue.builder().s(partitionKeyValue).build()); + item.put("sort_key", AttributeValue.builder().n(sortKeyValue).build()); item.put( "tenant_sensitive_data", AttributeValue.builder().s("encrypt and sign me!").build() @@ -262,9 +264,9 @@ public static void HierarchicalKeyringGetItemPutItem( final HashMap keyToGet = new HashMap<>(); keyToGet.put( "partition_key", - AttributeValue.builder().s("tenant1Id").build() + AttributeValue.builder().s(partitionKeyValue).build() ); - keyToGet.put("sort_key", AttributeValue.builder().n("0").build()); + keyToGet.put("sort_key", AttributeValue.builder().n(sortKeyValue).build()); final GetItemRequest getRequest = GetItemRequest .builder() @@ -302,7 +304,9 @@ public static void main(final String[] args) { tenant2BranchKeyId, keyStoreTableName, logicalKeyStoreName, - kmsKeyId + kmsKeyId, + "tenant1Id", + "0" ); } } diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/KmsEcdhKeyringExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/KmsEcdhKeyringExample.java index bb9978d4db..c6a51e2335 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/KmsEcdhKeyringExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/KmsEcdhKeyringExample.java @@ -111,7 +111,9 @@ public static void KmsEcdhKeyringGetItemPutItem( String ddbTableName, String eccKeyArn, String eccPublicKeySenderFileName, - String eccPublicKeyRecipientFileName + String eccPublicKeyRecipientFileName, + String partitionKeyValue, + String sortKeyValue ) { // Load UTF-8 encoded public key PEM files as DER encoded bytes. // You may provide your own PEM files to use here. If you provide this, it MUST @@ -174,7 +176,7 @@ public static void KmsEcdhKeyringGetItemPutItem( createAwsKmsEcdhKeyringInput ); - PutGetItemWithKeyring(kmsEcdhKeyring, ddbTableName); + PutGetItemWithKeyring(kmsEcdhKeyring, ddbTableName, partitionKeyValue, sortKeyValue); } /* @@ -200,7 +202,9 @@ public static void KmsEcdhKeyringGetItemPutItem( */ public static void KmsEcdhDiscoveryGetItem( String ddbTableName, - String eccRecipientKeyArn + String eccRecipientKeyArn, + String partitionKeyValue, + String sortKeyValue ) { // Create a KMS ECDH keyring. // This keyring uses the KmsPublicKeyDiscovery configuration. @@ -240,12 +244,14 @@ public static void KmsEcdhDiscoveryGetItem( createAwsKmsEcdhKeyringInput ); - GetItemWithKeyring(kmsEcdhKeyring, ddbTableName); + GetItemWithKeyring(kmsEcdhKeyring, ddbTableName, partitionKeyValue, sortKeyValue); } private static void GetItemWithKeyring( IKeyring kmsEcdhKeyring, - String ddbTableName + String ddbTableName, + String partitionKeyValue, + String sortKeyValue ) { // Configure which attributes are encrypted and/or signed when writing new items. // For each attribute that may exist on the items we plan to write to our DynamoDbTable, @@ -339,9 +345,9 @@ private static void GetItemWithKeyring( final HashMap keyToGet = new HashMap<>(); keyToGet.put( "partition_key", - AttributeValue.builder().s("awsKmsEcdhKeyringItem").build() + AttributeValue.builder().s(partitionKeyValue).build() ); - keyToGet.put("sort_key", AttributeValue.builder().n("0").build()); + keyToGet.put("sort_key", AttributeValue.builder().n(sortKeyValue).build()); final GetItemRequest getRequest = GetItemRequest .builder() @@ -362,7 +368,9 @@ private static void GetItemWithKeyring( private static void PutGetItemWithKeyring( IKeyring awsKmsEcdhKeyring, - String ddbTableName + String ddbTableName, + String partitionKeyValue, + String sortKeyValue ) { // Configure which attributes are encrypted and/or signed when writing new items. // For each attribute that may exist on the items we plan to write to our DynamoDbTable, @@ -456,9 +464,9 @@ private static void PutGetItemWithKeyring( final HashMap item = new HashMap<>(); item.put( "partition_key", - AttributeValue.builder().s("awsKmsEcdhKeyringItem").build() + AttributeValue.builder().s(partitionKeyValue).build() ); - item.put("sort_key", AttributeValue.builder().n("0").build()); + item.put("sort_key", AttributeValue.builder().n(sortKeyValue).build()); item.put( "sensitive_data", AttributeValue.builder().s("encrypt and sign me!").build() @@ -481,9 +489,9 @@ private static void PutGetItemWithKeyring( final HashMap keyToGet = new HashMap<>(); keyToGet.put( "partition_key", - AttributeValue.builder().s("awsKmsEcdhKeyringItem").build() + AttributeValue.builder().s(partitionKeyValue).build() ); - keyToGet.put("sort_key", AttributeValue.builder().n("0").build()); + keyToGet.put("sort_key", AttributeValue.builder().n(sortKeyValue).build()); final GetItemRequest getRequest = GetItemRequest .builder() @@ -548,7 +556,9 @@ public static void KmsEcdhKeyringGetItemPutItem( ddbTableName, eccKeyArn, EXAMPLE_ECC_PUBLIC_KEY_SENDER_FILENAME, - EXAMPLE_ECC_PUBLIC_KEY_RECIPIENT_FILENAME + EXAMPLE_ECC_PUBLIC_KEY_RECIPIENT_FILENAME, + "awsKmsEcdhKeyringItem", + "0" ); } @@ -609,7 +619,9 @@ public static void main(final String[] args) { ddbTableName, eccKeyArn, eccPublicKeySenderFilename, - eccPublicKeyRecipientFilename + eccPublicKeyRecipientFilename, + "awsKmsEcdhKeyringItem", + "0" ); } diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/KmsRsaKeyringExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/KmsRsaKeyringExample.java index cd02dd4595..7367c815a0 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/KmsRsaKeyringExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/KmsRsaKeyringExample.java @@ -68,7 +68,9 @@ public class KmsRsaKeyringExample { public static void KmsRsaKeyringGetItemPutItem( String ddbTableName, String rsaKeyArn, - String rsaPublicKeyFilename + String rsaPublicKeyFilename, + String partitionKeyValue, + String sortKeyValue ) { // 1. Load UTF-8 encoded public key PEM file. // You may have an RSA public key file already defined. @@ -201,9 +203,9 @@ public static void KmsRsaKeyringGetItemPutItem( final HashMap item = new HashMap<>(); item.put( "partition_key", - AttributeValue.builder().s("awsKmsRsaKeyringItem").build() + AttributeValue.builder().s(partitionKeyValue).build() ); - item.put("sort_key", AttributeValue.builder().n("0").build()); + item.put("sort_key", AttributeValue.builder().n(sortKeyValue).build()); item.put( "sensitive_data", AttributeValue.builder().s("encrypt and sign me!").build() @@ -226,9 +228,9 @@ public static void KmsRsaKeyringGetItemPutItem( final HashMap keyToGet = new HashMap<>(); keyToGet.put( "partition_key", - AttributeValue.builder().s("awsKmsRsaKeyringItem").build() + AttributeValue.builder().s(partitionKeyValue).build() ); - keyToGet.put("sort_key", AttributeValue.builder().n("0").build()); + keyToGet.put("sort_key", AttributeValue.builder().n(sortKeyValue).build()); final GetItemRequest getRequest = GetItemRequest .builder() @@ -254,7 +256,9 @@ public static void KmsRsaKeyringGetItemPutItem( KmsRsaKeyringGetItemPutItem( ddbTableName, rsaKeyArn, - DEFAULT_EXAMPLE_RSA_PUBLIC_KEY_FILENAME + DEFAULT_EXAMPLE_RSA_PUBLIC_KEY_FILENAME, + "awsKmsRsaKeyringItem", + "0" ); } @@ -280,7 +284,7 @@ public static void main(final String[] args) { writePublicKeyPemForRsaKey(rsaKeyArn, rsaPublicKeyFilename); } - KmsRsaKeyringGetItemPutItem(ddbTableName, rsaKeyArn, rsaPublicKeyFilename); + KmsRsaKeyringGetItemPutItem(ddbTableName, rsaKeyArn, rsaPublicKeyFilename, "awsKmsRsaKeyringItem", "0"); } static boolean shouldGetNewPublicKey() { diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/MrkDiscoveryMultiKeyringExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/MrkDiscoveryMultiKeyringExample.java index 7f896876c3..95c142f1f6 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/MrkDiscoveryMultiKeyringExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/MrkDiscoveryMultiKeyringExample.java @@ -50,7 +50,9 @@ public static void MultiMrkDiscoveryKeyringGetItemPutItem( String ddbTableName, String keyArn, List accountIds, - List regions + List regions, + String partitionKeyValue, + String sortKeyValue ) { // 1. Create a single MRK multi-keyring using the key arn. // Although this example demonstrates use of the MRK discovery multi-keyring, @@ -157,9 +159,9 @@ public static void MultiMrkDiscoveryKeyringGetItemPutItem( final HashMap item = new HashMap<>(); item.put( "partition_key", - AttributeValue.builder().s("awsKmsMrkDiscoveryMultiKeyringItem").build() + AttributeValue.builder().s(partitionKeyValue).build() ); - item.put("sort_key", AttributeValue.builder().n("0").build()); + item.put("sort_key", AttributeValue.builder().n(sortKeyValue).build()); item.put( "sensitive_data", AttributeValue.builder().s("encrypt and sign me!").build() @@ -250,9 +252,9 @@ public static void MultiMrkDiscoveryKeyringGetItemPutItem( final HashMap keyToGet = new HashMap<>(); keyToGet.put( "partition_key", - AttributeValue.builder().s("awsKmsMrkDiscoveryMultiKeyringItem").build() + AttributeValue.builder().s(partitionKeyValue).build() ); - keyToGet.put("sort_key", AttributeValue.builder().n("0").build()); + keyToGet.put("sort_key", AttributeValue.builder().n(sortKeyValue).build()); final GetItemRequest getRequest = GetItemRequest .builder() @@ -307,7 +309,9 @@ public static void main(final String[] args) { ddbTableName, mrkArn, accounts, - regions + regions, + "awsKmsMrkDiscoveryMultiKeyringItem", + "0" ); } } diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/MultiKeyringExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/MultiKeyringExample.java index 635f637c23..cfae59e4a0 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/MultiKeyringExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/MultiKeyringExample.java @@ -65,7 +65,9 @@ public class MultiKeyringExample { public static void MultiKeyringGetItemPutItem( String ddbTableName, String keyArn, - ByteBuffer aesKeyBytes + ByteBuffer aesKeyBytes, + String partitionKeyValue, + String sortKeyValue ) { // 1. Create the raw AES keyring. final MaterialProviders matProv = MaterialProviders @@ -203,9 +205,9 @@ public static void MultiKeyringGetItemPutItem( final HashMap item = new HashMap<>(); item.put( "partition_key", - AttributeValue.builder().s("multiKeyringItem").build() + AttributeValue.builder().s(partitionKeyValue).build() ); - item.put("sort_key", AttributeValue.builder().n("0").build()); + item.put("sort_key", AttributeValue.builder().n(sortKeyValue).build()); item.put( "sensitive_data", AttributeValue.builder().s("encrypt and sign me!").build() @@ -230,9 +232,9 @@ public static void MultiKeyringGetItemPutItem( final HashMap keyToGet = new HashMap<>(); keyToGet.put( "partition_key", - AttributeValue.builder().s("multiKeyringItem").build() + AttributeValue.builder().s(partitionKeyValue).build() ); - keyToGet.put("sort_key", AttributeValue.builder().n("0").build()); + keyToGet.put("sort_key", AttributeValue.builder().n(sortKeyValue).build()); final GetItemRequest getRequest = GetItemRequest .builder() @@ -298,11 +300,11 @@ public static void MultiKeyringGetItemPutItem( new HashMap<>(); onlyAesKeyringKeyToGet.put( "partition_key", - AttributeValue.builder().s("multiKeyringItem").build() + AttributeValue.builder().s(partitionKeyValue).build() ); onlyAesKeyringKeyToGet.put( "sort_key", - AttributeValue.builder().n("0").build() + AttributeValue.builder().n(sortKeyValue).build() ); final GetItemRequest onlyAesKeyringGetRequest = GetItemRequest @@ -336,7 +338,7 @@ public static void main(final String[] args) { // Generate a new AES key ByteBuffer aesKeyBytes = generateAesKeyBytes(); - MultiKeyringGetItemPutItem(ddbTableName, keyArn, aesKeyBytes); + MultiKeyringGetItemPutItem(ddbTableName, keyArn, aesKeyBytes, "multiKeyringItem", "0"); } static ByteBuffer generateAesKeyBytes() { diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/MultiMrkKeyringExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/MultiMrkKeyringExample.java index 3024a67397..aad5170462 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/MultiMrkKeyringExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/MultiMrkKeyringExample.java @@ -73,7 +73,9 @@ public static void MultiMrkKeyringGetItemPutItem( String ddbTableName, String mrkKeyArn, String keyArn, - String mrkReplicaKeyArn + String mrkReplicaKeyArn, + String partitionKeyValue, + String sortKeyValue ) { // 1. Create a single MRK multi-keyring using the MRK arn and the single-region key arn. final MaterialProviders matProv = MaterialProviders @@ -187,9 +189,9 @@ public static void MultiMrkKeyringGetItemPutItem( final HashMap item = new HashMap<>(); item.put( "partition_key", - AttributeValue.builder().s("awsKmsMrkMultiKeyringItem").build() + AttributeValue.builder().s(partitionKeyValue).build() ); - item.put("sort_key", AttributeValue.builder().n("0").build()); + item.put("sort_key", AttributeValue.builder().n(sortKeyValue).build()); item.put( "sensitive_data", AttributeValue.builder().s("encrypt and sign me!").build() @@ -214,9 +216,9 @@ public static void MultiMrkKeyringGetItemPutItem( final HashMap keyToGet = new HashMap<>(); keyToGet.put( "partition_key", - AttributeValue.builder().s("awsKmsMrkMultiKeyringItem").build() + AttributeValue.builder().s(partitionKeyValue).build() ); - keyToGet.put("sort_key", AttributeValue.builder().n("0").build()); + keyToGet.put("sort_key", AttributeValue.builder().n(sortKeyValue).build()); final GetItemRequest getRequest = GetItemRequest .builder() @@ -296,11 +298,11 @@ public static void MultiMrkKeyringGetItemPutItem( new HashMap<>(); onlyReplicaKeyKeyToGet.put( "partition_key", - AttributeValue.builder().s("awsKmsMrkMultiKeyringItem").build() + AttributeValue.builder().s(partitionKeyValue).build() ); onlyReplicaKeyKeyToGet.put( "sort_key", - AttributeValue.builder().n("0").build() + AttributeValue.builder().n(sortKeyValue).build() ); final GetItemRequest onlyReplicaKeyGetRequest = GetItemRequest @@ -378,9 +380,9 @@ public static void MultiMrkKeyringGetItemPutItem( final HashMap onlySrkKeyToGet = new HashMap<>(); onlySrkKeyToGet.put( "partition_key", - AttributeValue.builder().s("awsKmsMrkMultiKeyringItem").build() + AttributeValue.builder().s(partitionKeyValue).build() ); - onlySrkKeyToGet.put("sort_key", AttributeValue.builder().n("0").build()); + onlySrkKeyToGet.put("sort_key", AttributeValue.builder().n(sortKeyValue).build()); final GetItemRequest onlySrkGetRequest = GetItemRequest .builder() @@ -416,7 +418,9 @@ public static void main(final String[] args) { ddbTableName, mrkKeyArn, srkArn, - mrkReplicaKeyArn + mrkReplicaKeyArn, + "awsKmsMrkMultiKeyringItem", + "0" ); } } diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/RawAesKeyringExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/RawAesKeyringExample.java index 5ef15b1f1b..fa4f01b22e 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/RawAesKeyringExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/RawAesKeyringExample.java @@ -52,7 +52,9 @@ public class RawAesKeyringExample { public static void RawAesKeyringGetItemPutItem( String ddbTableName, - ByteBuffer aesKeyBytes + ByteBuffer aesKeyBytes, + String partitionKeyValue, + String sortKeyValue ) { // 1. Create the keyring. // The DynamoDb encryption client uses this to encrypt and decrypt items. @@ -156,9 +158,9 @@ public static void RawAesKeyringGetItemPutItem( final HashMap item = new HashMap<>(); item.put( "partition_key", - AttributeValue.builder().s("rawAesKeyringItem").build() + AttributeValue.builder().s(partitionKeyValue).build() ); - item.put("sort_key", AttributeValue.builder().n("0").build()); + item.put("sort_key", AttributeValue.builder().n(sortKeyValue).build()); item.put( "sensitive_data", AttributeValue.builder().s("encrypt and sign me!").build() @@ -181,9 +183,9 @@ public static void RawAesKeyringGetItemPutItem( final HashMap keyToGet = new HashMap<>(); keyToGet.put( "partition_key", - AttributeValue.builder().s("rawAesKeyringItem").build() + AttributeValue.builder().s(partitionKeyValue).build() ); - keyToGet.put("sort_key", AttributeValue.builder().n("0").build()); + keyToGet.put("sort_key", AttributeValue.builder().n(sortKeyValue).build()); final GetItemRequest getRequest = GetItemRequest .builder() @@ -213,7 +215,7 @@ public static void main(final String[] args) { // Generate a new AES key ByteBuffer aesKeyBytes = generateAesKeyBytes(); - RawAesKeyringGetItemPutItem(ddbTableName, aesKeyBytes); + RawAesKeyringGetItemPutItem(ddbTableName, aesKeyBytes, "rawAesKeyringItem", "0"); } static ByteBuffer generateAesKeyBytes() { diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/RawEcdhKeyringExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/RawEcdhKeyringExample.java index 97fbac6f0c..a88d56d721 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/RawEcdhKeyringExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/RawEcdhKeyringExample.java @@ -101,7 +101,9 @@ public class RawEcdhKeyringExample { */ public static void RawEcdhKeyringGetItemPutItem( String ddbTableName, - ECDHCurveSpec curveSpec + ECDHCurveSpec curveSpec, + String partitionKeyValue, + String sortKeyValue ) { // Load key pair from UTF-8 encoded PEM files. // You may provide your own PEM files to use here. If you provide this, it MUST @@ -190,7 +192,7 @@ public static void RawEcdhKeyringGetItemPutItem( .build(); IKeyring rawEcdhKeyring = matProv.CreateRawEcdhKeyring(keyringInput); - PutGetExampleWithKeyring(rawEcdhKeyring, ddbTableName); + PutGetExampleWithKeyring(rawEcdhKeyring, ddbTableName, partitionKeyValue, sortKeyValue); } /* @@ -205,7 +207,9 @@ public static void RawEcdhKeyringGetItemPutItem( */ public static void EphemeralRawEcdhKeyringPutItem( String ddbTableName, - ECDHCurveSpec ecdhCurveSpec + ECDHCurveSpec ecdhCurveSpec, + String partitionKeyValue, + String sortKeyValue ) { // Load public key from UTF-8 encoded PEM files into a DER encoded public key. // You may provide your own PEM files to use here. If you provide this, it MUST @@ -278,7 +282,7 @@ public static void EphemeralRawEcdhKeyringPutItem( // A raw ecdh keyring with Ephemeral configuration cannot decrypt data since the key pair // used as the sender is ephemeral. This means that at decrypt time it does not have // the private key that corresponds to the public key that is stored on the message. - PutExampleWithKeyring(rawEcdhKeyring, ddbTableName); + PutExampleWithKeyring(rawEcdhKeyring, ddbTableName, partitionKeyValue, sortKeyValue); } /* @@ -293,7 +297,9 @@ public static void EphemeralRawEcdhKeyringPutItem( */ public static void DiscoveryRawEcdhKeyringGetItem( String ddbTableName, - ECDHCurveSpec ecdhCurveSpec + ECDHCurveSpec ecdhCurveSpec, + String partitionKeyValue, + String sortKeyValue ) { // Load key pair from UTF-8 encoded PEM files. // You may provide your own PEM files to use here. If you provide this, it MUST @@ -344,12 +350,14 @@ public static void DiscoveryRawEcdhKeyringGetItem( // A raw ecdh keyring with discovery configuration cannot encrypt data since the keyring // looks for its configured public key on the message. - GetExampleWithKeyring(rawEcdhKeyring, ddbTableName); + GetExampleWithKeyring(rawEcdhKeyring, ddbTableName, partitionKeyValue, sortKeyValue); } public static void PutGetExampleWithKeyring( IKeyring rawEcdhKeyring, - String ddbTableName + String ddbTableName, + String partitionKeyValue, + String sortKeyValue ) { // Configure which attributes are encrypted and/or signed when writing new items. // For each attribute that may exist on the items we plan to write to our DynamoDbTable, @@ -438,9 +446,9 @@ public static void PutGetExampleWithKeyring( final HashMap item = new HashMap<>(); item.put( "partition_key", - AttributeValue.builder().s("rawEcdhKeyringItem").build() + AttributeValue.builder().s(partitionKeyValue).build() ); - item.put("sort_key", AttributeValue.builder().n("0").build()); + item.put("sort_key", AttributeValue.builder().n(sortKeyValue).build()); item.put( "sensitive_data", AttributeValue.builder().s("encrypt and sign me!").build() @@ -463,9 +471,9 @@ public static void PutGetExampleWithKeyring( final HashMap keyToGet = new HashMap<>(); keyToGet.put( "partition_key", - AttributeValue.builder().s("rawEcdhKeyringItem").build() + AttributeValue.builder().s(partitionKeyValue).build() ); - keyToGet.put("sort_key", AttributeValue.builder().n("0").build()); + keyToGet.put("sort_key", AttributeValue.builder().n(sortKeyValue).build()); final GetItemRequest getRequest = GetItemRequest .builder() @@ -486,7 +494,9 @@ public static void PutGetExampleWithKeyring( public static void PutExampleWithKeyring( IKeyring rawEcdhKeyring, - String ddbTableName + String ddbTableName, + String partitionKeyValue, + String sortKeyValue ) { // Configure which attributes are encrypted and/or signed when writing new items. // For each attribute that may exist on the items we plan to write to our DynamoDbTable, @@ -575,9 +585,9 @@ public static void PutExampleWithKeyring( final HashMap item = new HashMap<>(); item.put( "partition_key", - AttributeValue.builder().s("rawEcdhKeyringItem").build() + AttributeValue.builder().s(partitionKeyValue).build() ); - item.put("sort_key", AttributeValue.builder().n("0").build()); + item.put("sort_key", AttributeValue.builder().n(sortKeyValue).build()); item.put( "sensitive_data", AttributeValue.builder().s("encrypt and sign me!").build() @@ -597,7 +607,9 @@ public static void PutExampleWithKeyring( public static void GetExampleWithKeyring( IKeyring rawEcdhKeyring, - String ddbTableName + String ddbTableName, + String partitionKeyValue, + String sortKeyValue ) { // Configure which attributes are encrypted and/or signed when writing new items. // For each attribute that may exist on the items we plan to write to our DynamoDbTable, @@ -685,9 +697,9 @@ public static void GetExampleWithKeyring( final HashMap keyToGet = new HashMap<>(); keyToGet.put( "partition_key", - AttributeValue.builder().s("rawEcdhKeyringItem").build() + AttributeValue.builder().s(partitionKeyValue).build() ); - keyToGet.put("sort_key", AttributeValue.builder().n("0").build()); + keyToGet.put("sort_key", AttributeValue.builder().n(sortKeyValue).build()); final GetItemRequest getRequest = GetItemRequest .builder() @@ -720,7 +732,7 @@ public static void main(final String[] args) { } final String ddbTableName = args[0]; - RawEcdhKeyringGetItemPutItem(ddbTableName, ECDHCurveSpec.ECC_NIST_P256); + RawEcdhKeyringGetItemPutItem(ddbTableName, ECDHCurveSpec.ECC_NIST_P256, "rawEcdhKeyringItem", "0"); } public static boolean shouldGenerateNewEccKeyPairs() { diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/RawRsaKeyringExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/RawRsaKeyringExample.java index e5b9e608e3..064152110e 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/RawRsaKeyringExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/RawRsaKeyringExample.java @@ -76,7 +76,7 @@ public class RawRsaKeyringExample { private static String EXAMPLE_RSA_PUBLIC_KEY_FILENAME = "RawRsaKeyringExamplePublicKey.pem"; - public static void RawRsaKeyringGetItemPutItem(String ddbTableName) { + public static void RawRsaKeyringGetItemPutItem(String ddbTableName, String partitionKeyValue, String sortKeyValue) { // 1. Load key pair from UTF-8 encoded PEM files. // You may provide your own PEM files to use here. // If you do not, the main method in this class will generate PEM @@ -210,9 +210,9 @@ public static void RawRsaKeyringGetItemPutItem(String ddbTableName) { final HashMap item = new HashMap<>(); item.put( "partition_key", - AttributeValue.builder().s("rawRsaKeyringItem").build() + AttributeValue.builder().s(partitionKeyValue).build() ); - item.put("sort_key", AttributeValue.builder().n("0").build()); + item.put("sort_key", AttributeValue.builder().n(sortKeyValue).build()); item.put( "sensitive_data", AttributeValue.builder().s("encrypt and sign me!").build() @@ -235,9 +235,9 @@ public static void RawRsaKeyringGetItemPutItem(String ddbTableName) { final HashMap keyToGet = new HashMap<>(); keyToGet.put( "partition_key", - AttributeValue.builder().s("rawRsaKeyringItem").build() + AttributeValue.builder().s(partitionKeyValue).build() ); - keyToGet.put("sort_key", AttributeValue.builder().n("0").build()); + keyToGet.put("sort_key", AttributeValue.builder().n(sortKeyValue).build()); final GetItemRequest getRequest = GetItemRequest .builder() @@ -272,7 +272,7 @@ public static void main(final String[] args) { generateRsaKeyPair(); } - RawRsaKeyringGetItemPutItem(ddbTableName); + RawRsaKeyringGetItemPutItem(ddbTableName, "rawRsaKeyringItem", "0"); } static boolean shouldGenerateNewRsaKeyPair() { diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/SharedCacheAcrossHierarchicalKeyringsExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/SharedCacheAcrossHierarchicalKeyringsExample.java index dfed4b84de..8db2515d73 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/SharedCacheAcrossHierarchicalKeyringsExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/SharedCacheAcrossHierarchicalKeyringsExample.java @@ -100,7 +100,9 @@ public static void SharedCacheAcrossHierarchicalKeyringsGetItemPutItem( String keyStoreTableName, String logicalKeyStoreName, String partitionId, - String kmsKeyId + String kmsKeyId, + String partitionKeyValue, + String sortKeyValue ) { // 1. Create the CryptographicMaterialsCache (CMC) to share across multiple Hierarchical Keyrings // using the Material Providers Library @@ -202,7 +204,7 @@ public static void SharedCacheAcrossHierarchicalKeyringsGetItemPutItem( ); // 6. Encrypt Decrypt roundtrip with ddbClient1 - PutGetItems(ddbTableName, ddbClient1); + PutGetItems(ddbTableName, ddbClient1, partitionKeyValue, sortKeyValue); // Through the above encrypt and decrypt roundtrip, the cache will be populated and // the cache entries can be used by another Hierarchical Keyring with the @@ -270,7 +272,7 @@ public static void SharedCacheAcrossHierarchicalKeyringsGetItemPutItem( ); // 10. Encrypt Decrypt roundtrip with ddbClient2 - PutGetItems(ddbTableName, ddbClient2); + PutGetItems(ddbTableName, ddbClient2, partitionKeyValue, sortKeyValue); } public static DynamoDbClient GetDdbClient( @@ -350,7 +352,9 @@ public static DynamoDbClient GetDdbClient( public static void PutGetItems( String ddbTableName, - DynamoDbClient ddbClient + DynamoDbClient ddbClient, + String partitionKeyValue, + String sortKeyValue ) { // Put an item into our table using the given ddb client. // Before the item gets sent to DynamoDb, it will be encrypted @@ -359,8 +363,8 @@ public static void PutGetItems( // BranchKeyIdSupplier as per your use-case. See the HierarchicalKeyringsExample.java for more // information. final HashMap item = new HashMap<>(); - item.put("partition_key", AttributeValue.builder().s("id").build()); - item.put("sort_key", AttributeValue.builder().n("0").build()); + item.put("partition_key", AttributeValue.builder().s(partitionKeyValue).build()); + item.put("sort_key", AttributeValue.builder().n(sortKeyValue).build()); item.put( "sensitive_data", AttributeValue.builder().s("encrypt and sign me!").build() @@ -384,8 +388,8 @@ public static void PutGetItems( // BranchKeyIdSupplier as per your use-case. See the HierarchicalKeyringsExample.java for more // information. final HashMap keyToGet = new HashMap<>(); - keyToGet.put("partition_key", AttributeValue.builder().s("id").build()); - keyToGet.put("sort_key", AttributeValue.builder().n("0").build()); + keyToGet.put("partition_key", AttributeValue.builder().s(partitionKeyValue).build()); + keyToGet.put("sort_key", AttributeValue.builder().n(sortKeyValue).build()); final GetItemRequest getRequest = GetItemRequest .builder() @@ -423,7 +427,9 @@ public static void main(final String[] args) { keyStoreTableName, logicalKeyStoreName, partitionId, - kmsKeyId + kmsKeyId, + "id", + "0" ); } } diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/searchableencryption/BasicSearchableEncryptionExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/searchableencryption/BasicSearchableEncryptionExample.java index 8434693712..afe7382afb 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/searchableencryption/BasicSearchableEncryptionExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/searchableencryption/BasicSearchableEncryptionExample.java @@ -66,7 +66,8 @@ public static void PutItemQueryItemWithBeacon( String ddbTableName, String branchKeyId, String branchKeyWrappingKmsKeyArn, - String branchKeyDdbTableName + String branchKeyDdbTableName, + String workId ) { // 1. Configure Beacons. // The beacon name must be the name of a table attribute that will be encrypted. @@ -318,7 +319,7 @@ public static void PutItemQueryItemWithBeacon( final HashMap item = new HashMap<>(); item.put( "work_id", - AttributeValue.builder().s("1313ba89-5661-41eb-ba6c-cb1b4cb67b2d").build() + AttributeValue.builder().s(workId).build() ); item.put( "inspection_date", @@ -416,7 +417,8 @@ public static void main(final String[] args) { ddbTableName, branchKeyId, branchKeyWrappingKmsKeyArn, - branchKeyDdbTableName + branchKeyDdbTableName, + "1313ba89-5661-41eb-ba6c-cb1b4cb67b2d" ); } } diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/searchableencryption/BeaconStylesSearchableEncryptionExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/searchableencryption/BeaconStylesSearchableEncryptionExample.java index 65714e0eba..d1bcd00f70 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/searchableencryption/BeaconStylesSearchableEncryptionExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/searchableencryption/BeaconStylesSearchableEncryptionExample.java @@ -77,7 +77,8 @@ public static void PutItemQueryItemWithBeaconStyles( String ddbTableName, String branchKeyId, String branchKeyWrappingKmsKeyArn, - String branchKeyDdbTableName + String branchKeyDdbTableName, + String workId ) { // 1. Create Beacons. List standardBeaconList = new ArrayList<>(); @@ -276,7 +277,7 @@ public static void PutItemQueryItemWithBeaconStyles( // 8. Create item one, specifically with "dessert != fruit", and "fruit in basket". final HashMap item1 = new HashMap<>(); - item1.put("work_id", AttributeValue.builder().s("1").build()); + item1.put("work_id", AttributeValue.builder().s(workId + "-1").build()); item1.put( "inspection_date", AttributeValue.builder().s("2023-06-13").build() @@ -297,7 +298,7 @@ public static void PutItemQueryItemWithBeaconStyles( // 9. Create item two, specifically with "dessert == fruit", and "fruit not in basket". final HashMap item2 = new HashMap<>(); - item2.put("work_id", AttributeValue.builder().s("2").build()); + item2.put("work_id", AttributeValue.builder().s(workId + "-2").build()); item2.put( "inspection_date", AttributeValue.builder().s("2023-06-13").build() @@ -460,7 +461,7 @@ public static void PutItemQueryItemWithBeaconStyles( // 17. Test the compound beacon 'work_unit' : expressionAttributeValues.put( ":value", - AttributeValue.builder().s("I-1.T-small").build() + AttributeValue.builder().s("I-" + workId + "-1.T-small").build() ); scanRequest = @@ -495,7 +496,8 @@ public static void main(final String[] args) { ddbTableName, branchKeyId, branchKeyWrappingKmsKeyId, - branchKeyDdbTableName + branchKeyDdbTableName, + "beacon-styles-test" ); } } diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/searchableencryption/CompoundBeaconSearchableEncryptionExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/searchableencryption/CompoundBeaconSearchableEncryptionExample.java index ce837a51e5..96daec1805 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/searchableencryption/CompoundBeaconSearchableEncryptionExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/searchableencryption/CompoundBeaconSearchableEncryptionExample.java @@ -85,7 +85,8 @@ public static void PutItemQueryItemWithCompoundBeacon( String ddbTableName, String branchKeyId, String branchKeyWrappingKmsKeyArn, - String branchKeyDdbTableName + String branchKeyDdbTableName, + String workId ) { // 1. Create Beacons. // These are the same beacons as in the "BasicSearchableEncryptionExample" in this directory. @@ -286,7 +287,7 @@ public static void PutItemQueryItemWithCompoundBeacon( final HashMap item = new HashMap<>(); item.put( "work_id", - AttributeValue.builder().s("9ce39272-8068-4efd-a211-cd162ad65d4c").build() + AttributeValue.builder().s(workId).build() ); item.put( "inspection_date", @@ -448,7 +449,8 @@ public static void main(final String[] args) { ddbTableName, branchKeyId, branchKeyWrappingKmsKeyId, - branchKeyDdbTableName + branchKeyDdbTableName, + "9ce39272-8068-4efd-a211-cd162ad65d4c" ); } } diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/searchableencryption/VirtualBeaconSearchableEncryptionExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/searchableencryption/VirtualBeaconSearchableEncryptionExample.java index 0d9f23da14..3500ba0e58 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/searchableencryption/VirtualBeaconSearchableEncryptionExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/searchableencryption/VirtualBeaconSearchableEncryptionExample.java @@ -134,7 +134,8 @@ public static void PutItemQueryItemWithVirtualBeacon( String ddbTableName, String branchKeyId, String branchKeyWrappingKmsKeyArn, - String branchKeyDdbTableName + String branchKeyDdbTableName, + String customerId ) { // 1. Construct a length-1 prefix virtual transform. // `hasTestResult` is a binary attribute, containing either `true` or `false`. @@ -366,7 +367,7 @@ public static void PutItemQueryItemWithVirtualBeacon( new HashMap<>(); itemWithHasTestResult.put( "customer_id", - AttributeValue.builder().s("ABC-123").build() + AttributeValue.builder().s(customerId + "-1").build() ); itemWithHasTestResult.put( "create_time", @@ -386,7 +387,7 @@ public static void PutItemQueryItemWithVirtualBeacon( new HashMap<>(); itemWithNoHasTestResult.put( "customer_id", - AttributeValue.builder().s("DEF-456").build() + AttributeValue.builder().s(customerId + "-2").build() ); itemWithNoHasTestResult.put( "create_time", @@ -561,7 +562,8 @@ public static void main(final String[] args) { ddbTableName, branchKeyId, branchKeyWrappingKmsKeyArn, - branchKeyDdbTableName + branchKeyDdbTableName, + "virtual-beacon-test" ); } } diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/searchableencryption/complexexample/ComplexSearchableEncryptionExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/searchableencryption/complexexample/ComplexSearchableEncryptionExample.java index 6f32430a95..d621afbe86 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/searchableencryption/complexexample/ComplexSearchableEncryptionExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/searchableencryption/complexexample/ComplexSearchableEncryptionExample.java @@ -18,7 +18,8 @@ public static void runExample( String ddbTableName, String branchKeyId, String branchKeyWrappingKmsKeyArn, - String branchKeyDdbTableName + String branchKeyDdbTableName, + String partitionKeyPrefix ) { DynamoDbClient ddb = BeaconConfig.SetupBeaconConfig( ddbTableName, @@ -26,26 +27,28 @@ public static void runExample( branchKeyWrappingKmsKeyArn, branchKeyDdbTableName ); - PutRequests.putAllItemsToTable(ddbTableName, ddb); - QueryRequests.runQueries(ddbTableName, ddb); + PutRequests.putAllItemsToTable(ddbTableName, ddb, partitionKeyPrefix); + QueryRequests.runQueries(ddbTableName, ddb, partitionKeyPrefix); } public static void main(final String[] args) { if (args.length <= 1) { throw new IllegalArgumentException( "To run this example, include ddbTableName as args[0], " + - "branchKeyId as args[1], branchKeyWrappingKmsKeyId as args[2], and branchKeyDdbTableName as args[3]" + "branchKeyId as args[1], branchKeyWrappingKmsKeyId as args[2], branchKeyDdbTableName as args[3], and partitionKeyPrefix as args[4]" ); } final String ddbTableName = args[0]; final String branchKeyId = args[1]; final String branchKeyWrappingKmsKeyId = args[2]; final String branchKeyDdbTableName = args[3]; + final String partitionKeyPrefix = args.length > 4 ? args[4] : ""; runExample( ddbTableName, branchKeyId, branchKeyWrappingKmsKeyId, - branchKeyDdbTableName + branchKeyDdbTableName, + partitionKeyPrefix ); } } diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/searchableencryption/complexexample/PutRequests.java b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/searchableencryption/complexexample/PutRequests.java index 09a716358f..36383800f4 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/searchableencryption/complexexample/PutRequests.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/searchableencryption/complexexample/PutRequests.java @@ -28,20 +28,22 @@ public class PutRequests { public static void putAllItemsToTable( String ddbTableName, - DynamoDbClient ddb + DynamoDbClient ddb, + String partitionKeyPrefix ) { - putAllMeetingItemsToTable(ddbTableName, ddb); - putAllEmployeeItemsToTable(ddbTableName, ddb); - putAllProjectItemsToTable(ddbTableName, ddb); - putAllReservationItemsToTable(ddbTableName, ddb); - putAllTicketItemsToTable(ddbTableName, ddb); - putAllTimecardItemsToTable(ddbTableName, ddb); + putAllMeetingItemsToTable(ddbTableName, ddb, partitionKeyPrefix); + putAllEmployeeItemsToTable(ddbTableName, ddb, partitionKeyPrefix); + putAllProjectItemsToTable(ddbTableName, ddb, partitionKeyPrefix); + putAllReservationItemsToTable(ddbTableName, ddb, partitionKeyPrefix); + putAllTicketItemsToTable(ddbTableName, ddb, partitionKeyPrefix); + putAllTimecardItemsToTable(ddbTableName, ddb, partitionKeyPrefix); } // emeeting.json public static void putAllMeetingItemsToTable( String ddbTableName, - DynamoDbClient ddb + DynamoDbClient ddb, + String partitionKeyPrefix ) { final List meeting1AttendeeList = new ArrayList<>(); meeting1AttendeeList.add( @@ -58,7 +60,7 @@ public static void putAllMeetingItemsToTable( final HashMap meeting1 = new HashMap<>(); meeting1.put( "partition_key", - AttributeValue.builder().s("meeting1").build() + AttributeValue.builder().s(partitionKeyPrefix + "meeting1").build() ); meeting1.put("EmployeeID", AttributeValue.builder().s("emp_001").build()); meeting1.put( @@ -99,7 +101,7 @@ public static void putAllMeetingItemsToTable( final HashMap meeting2 = new HashMap<>(); meeting2.put( "partition_key", - AttributeValue.builder().s("meeting2").build() + AttributeValue.builder().s(partitionKeyPrefix + "meeting2").build() ); meeting2.put("EmployeeID", AttributeValue.builder().s("emp_002").build()); meeting2.put( @@ -140,7 +142,7 @@ public static void putAllMeetingItemsToTable( final HashMap meeting3 = new HashMap<>(); meeting3.put( "partition_key", - AttributeValue.builder().s("meeting3").build() + AttributeValue.builder().s(partitionKeyPrefix + "meeting3").build() ); meeting3.put("EmployeeID", AttributeValue.builder().s("emp_003").build()); meeting3.put( @@ -181,7 +183,7 @@ public static void putAllMeetingItemsToTable( final HashMap meeting4 = new HashMap<>(); meeting4.put( "partition_key", - AttributeValue.builder().s("meeting4").build() + AttributeValue.builder().s(partitionKeyPrefix + "meeting4").build() ); meeting4.put("EmployeeID", AttributeValue.builder().s("emp_004").build()); meeting4.put( @@ -222,7 +224,7 @@ public static void putAllMeetingItemsToTable( final HashMap meeting5 = new HashMap<>(); meeting5.put( "partition_key", - AttributeValue.builder().s("meeting5").build() + AttributeValue.builder().s(partitionKeyPrefix + "meeting5").build() ); meeting5.put("EmployeeID", AttributeValue.builder().s("emp_002").build()); meeting5.put( @@ -263,7 +265,7 @@ public static void putAllMeetingItemsToTable( final HashMap meeting6 = new HashMap<>(); meeting6.put( "partition_key", - AttributeValue.builder().s("meeting6").build() + AttributeValue.builder().s(partitionKeyPrefix + "meeting6").build() ); meeting6.put("EmployeeID", AttributeValue.builder().s("emp_003").build()); meeting6.put( @@ -293,7 +295,8 @@ public static void putAllMeetingItemsToTable( // employee.json public static void putAllEmployeeItemsToTable( String ddbTableName, - DynamoDbClient ddb + DynamoDbClient ddb, + String partitionKeyPrefix ) { final HashMap employee1Location = new HashMap<>(); employee1Location.put("Building", AttributeValue.builder().s("44").build()); @@ -307,7 +310,7 @@ public static void putAllEmployeeItemsToTable( final HashMap employee1 = new HashMap<>(); employee1.put( "partition_key", - AttributeValue.builder().s("employee1").build() + AttributeValue.builder().s(partitionKeyPrefix + "employee1").build() ); employee1.put("EmployeeID", AttributeValue.builder().s("emp_001").build()); employee1.put( @@ -344,7 +347,7 @@ public static void putAllEmployeeItemsToTable( final HashMap employee2 = new HashMap<>(); employee2.put( "partition_key", - AttributeValue.builder().s("employee2").build() + AttributeValue.builder().s(partitionKeyPrefix + "employee2").build() ); employee2.put("EmployeeID", AttributeValue.builder().s("emp_002").build()); employee2.put( @@ -381,7 +384,7 @@ public static void putAllEmployeeItemsToTable( final HashMap employee3 = new HashMap<>(); employee3.put( "partition_key", - AttributeValue.builder().s("employee3").build() + AttributeValue.builder().s(partitionKeyPrefix + "employee3").build() ); employee3.put("EmployeeID", AttributeValue.builder().s("emp_003").build()); employee3.put( @@ -415,7 +418,7 @@ public static void putAllEmployeeItemsToTable( final HashMap employee4 = new HashMap<>(); employee4.put( "partition_key", - AttributeValue.builder().s("employee4").build() + AttributeValue.builder().s(partitionKeyPrefix + "employee4").build() ); employee4.put("EmployeeID", AttributeValue.builder().s("emp_004").build()); employee4.put( @@ -444,12 +447,13 @@ public static void putAllEmployeeItemsToTable( // project.json public static void putAllProjectItemsToTable( String ddbTableName, - DynamoDbClient ddb + DynamoDbClient ddb, + String partitionKeyPrefix ) { final HashMap project1 = new HashMap<>(); project1.put( "partition_key", - AttributeValue.builder().s("project1").build() + AttributeValue.builder().s(partitionKeyPrefix + "project1").build() ); project1.put( "ProjectName", @@ -479,7 +483,7 @@ public static void putAllProjectItemsToTable( final HashMap project2 = new HashMap<>(); project2.put( "partition_key", - AttributeValue.builder().s("project2").build() + AttributeValue.builder().s(partitionKeyPrefix + "project2").build() ); project2.put( "ProjectName", @@ -506,7 +510,7 @@ public static void putAllProjectItemsToTable( final HashMap project3 = new HashMap<>(); project3.put( "partition_key", - AttributeValue.builder().s("project3").build() + AttributeValue.builder().s(partitionKeyPrefix + "project3").build() ); project3.put( "ProjectName", @@ -530,7 +534,7 @@ public static void putAllProjectItemsToTable( final HashMap project4 = new HashMap<>(); project4.put( "partition_key", - AttributeValue.builder().s("project4").build() + AttributeValue.builder().s(partitionKeyPrefix + "project4").build() ); project4.put( "ProjectName", @@ -555,7 +559,8 @@ public static void putAllProjectItemsToTable( // reservation.json public static void putAllReservationItemsToTable( String ddbTableName, - DynamoDbClient ddb + DynamoDbClient ddb, + String partitionKeyPrefix ) { final List reservation1AttendeeList = new ArrayList<>(); reservation1AttendeeList.add( @@ -577,7 +582,7 @@ public static void putAllReservationItemsToTable( final HashMap reservation1 = new HashMap<>(); reservation1.put( "partition_key", - AttributeValue.builder().s("reservation1").build() + AttributeValue.builder().s(partitionKeyPrefix + "reservation1").build() ); reservation1.put( "Location", @@ -629,7 +634,7 @@ public static void putAllReservationItemsToTable( final HashMap reservation2 = new HashMap<>(); reservation2.put( "partition_key", - AttributeValue.builder().s("reservation2").build() + AttributeValue.builder().s(partitionKeyPrefix + "reservation2").build() ); reservation2.put( "Location", @@ -662,10 +667,11 @@ public static void putAllReservationItemsToTable( // ticket.json public static void putAllTicketItemsToTable( String ddbTableName, - DynamoDbClient ddb + DynamoDbClient ddb, + String partitionKeyPrefix ) { final HashMap ticket1 = new HashMap<>(); - ticket1.put("partition_key", AttributeValue.builder().s("ticket1").build()); + ticket1.put("partition_key", AttributeValue.builder().s(partitionKeyPrefix + "ticket1").build()); ticket1.put( "TicketNumber", AttributeValue.builder().s("ticket_001").build() @@ -694,7 +700,7 @@ public static void putAllTicketItemsToTable( ); final HashMap ticket2 = new HashMap<>(); - ticket2.put("partition_key", AttributeValue.builder().s("ticket2").build()); + ticket2.put("partition_key", AttributeValue.builder().s(partitionKeyPrefix + "ticket2").build()); ticket2.put( "TicketNumber", AttributeValue.builder().s("ticket_001").build() @@ -723,7 +729,7 @@ public static void putAllTicketItemsToTable( ); final HashMap ticket3 = new HashMap<>(); - ticket3.put("partition_key", AttributeValue.builder().s("ticket3").build()); + ticket3.put("partition_key", AttributeValue.builder().s(partitionKeyPrefix + "ticket3").build()); ticket3.put( "TicketNumber", AttributeValue.builder().s("ticket_002").build() @@ -752,7 +758,7 @@ public static void putAllTicketItemsToTable( ); final HashMap ticket4 = new HashMap<>(); - ticket4.put("partition_key", AttributeValue.builder().s("ticket4").build()); + ticket4.put("partition_key", AttributeValue.builder().s(partitionKeyPrefix + "ticket4").build()); ticket4.put( "TicketNumber", AttributeValue.builder().s("ticket_002").build() @@ -784,12 +790,13 @@ public static void putAllTicketItemsToTable( // timecard.json public static void putAllTimecardItemsToTable( String ddbTableName, - DynamoDbClient ddb + DynamoDbClient ddb, + String partitionKeyPrefix ) { final HashMap timecard1 = new HashMap<>(); timecard1.put( "partition_key", - AttributeValue.builder().s("timecard1").build() + AttributeValue.builder().s(partitionKeyPrefix + "timecard1").build() ); timecard1.put( "ProjectName", @@ -813,7 +820,7 @@ public static void putAllTimecardItemsToTable( final HashMap timecard2 = new HashMap<>(); timecard2.put( "partition_key", - AttributeValue.builder().s("timecard2").build() + AttributeValue.builder().s(partitionKeyPrefix + "timecard2").build() ); timecard2.put( "ProjectName", @@ -837,7 +844,7 @@ public static void putAllTimecardItemsToTable( final HashMap timecard3 = new HashMap<>(); timecard3.put( "partition_key", - AttributeValue.builder().s("timecard3").build() + AttributeValue.builder().s(partitionKeyPrefix + "timecard3").build() ); timecard3.put( "ProjectName", @@ -861,7 +868,7 @@ public static void putAllTimecardItemsToTable( final HashMap timecard4 = new HashMap<>(); timecard4.put( "partition_key", - AttributeValue.builder().s("timecard4").build() + AttributeValue.builder().s(partitionKeyPrefix + "timecard4").build() ); timecard4.put( "ProjectName", diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/searchableencryption/complexexample/QueryRequests.java b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/searchableencryption/complexexample/QueryRequests.java index 353d7d3ddd..ec6e340a4e 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/searchableencryption/complexexample/QueryRequests.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/searchableencryption/complexexample/QueryRequests.java @@ -24,33 +24,33 @@ public class QueryRequests { - public static void runQueries(String ddbTableName, DynamoDbClient ddb) { - runQuery1(ddbTableName, ddb); - runQuery2(ddbTableName, ddb); - runQuery3(ddbTableName, ddb); - runQuery4(ddbTableName, ddb); - runQuery5(ddbTableName, ddb); - runQuery6(ddbTableName, ddb); - runQuery7(ddbTableName, ddb); - runQuery8(ddbTableName, ddb); - runQuery9(ddbTableName, ddb); - runQuery10(ddbTableName, ddb); - runQuery11(ddbTableName, ddb); - runQuery12(ddbTableName, ddb); - runQuery13(ddbTableName, ddb); - runQuery14(ddbTableName, ddb); - runQuery15(ddbTableName, ddb); - runQuery16(ddbTableName, ddb); - runQuery17(ddbTableName, ddb); - runQuery18(ddbTableName, ddb); - runQuery19(ddbTableName, ddb); - runQuery20(ddbTableName, ddb); - runQuery21(ddbTableName, ddb); - runQuery22(ddbTableName, ddb); - runQuery23(ddbTableName, ddb); + public static void runQueries(String ddbTableName, DynamoDbClient ddb, String partitionKeyPrefix) { + runQuery1(ddbTableName, ddb, partitionKeyPrefix); + runQuery2(ddbTableName, ddb, partitionKeyPrefix); + runQuery3(ddbTableName, ddb, partitionKeyPrefix); + runQuery4(ddbTableName, ddb, partitionKeyPrefix); + runQuery5(ddbTableName, ddb, partitionKeyPrefix); + runQuery6(ddbTableName, ddb, partitionKeyPrefix); + runQuery7(ddbTableName, ddb, partitionKeyPrefix); + runQuery8(ddbTableName, ddb, partitionKeyPrefix); + runQuery9(ddbTableName, ddb, partitionKeyPrefix); + runQuery10(ddbTableName, ddb, partitionKeyPrefix); + runQuery11(ddbTableName, ddb, partitionKeyPrefix); + runQuery12(ddbTableName, ddb, partitionKeyPrefix); + runQuery13(ddbTableName, ddb, partitionKeyPrefix); + runQuery14(ddbTableName, ddb, partitionKeyPrefix); + runQuery15(ddbTableName, ddb, partitionKeyPrefix); + runQuery16(ddbTableName, ddb, partitionKeyPrefix); + runQuery17(ddbTableName, ddb, partitionKeyPrefix); + runQuery18(ddbTableName, ddb, partitionKeyPrefix); + runQuery19(ddbTableName, ddb, partitionKeyPrefix); + runQuery20(ddbTableName, ddb, partitionKeyPrefix); + runQuery21(ddbTableName, ddb, partitionKeyPrefix); + runQuery22(ddbTableName, ddb, partitionKeyPrefix); + runQuery23(ddbTableName, ddb, partitionKeyPrefix); } - public static void runQuery1(String ddbTableName, DynamoDbClient ddb) { + public static void runQuery1(String ddbTableName, DynamoDbClient ddb, String partitionKeyPrefix) { // Query 1: Get meetings by date and email // Key condition: PK1=email SK1 between(date1, date2) // Filter condition: duration > 0 @@ -93,7 +93,7 @@ public static void runQuery1(String ddbTableName, DynamoDbClient ddb) { // Known value test: Assert some properties on one of the items boolean foundKnownValueItemQuery1 = false; for (Map item : query1Response.items()) { - if (item.get("partition_key").s().equals("meeting1")) { + if (item.get("partition_key").s().equals(partitionKeyPrefix + "meeting1")) { foundKnownValueItemQuery1 = true; assert item.get("Subject").s().equals("Scan Beacons"); assert item.get("Location").m().get("Floor").s().equals("12"); @@ -106,7 +106,7 @@ public static void runQuery1(String ddbTableName, DynamoDbClient ddb) { assert foundKnownValueItemQuery1; } - public static void runQuery2(String ddbTableName, DynamoDbClient ddb) { + public static void runQuery2(String ddbTableName, DynamoDbClient ddb, String partitionKeyPrefix) { // Query 2: Get meetings by date and employeeID // Key condition: PK=employeeID SK between(date1, date2) // Filter condition: duration > 0 @@ -151,7 +151,7 @@ public static void runQuery2(String ddbTableName, DynamoDbClient ddb) { // Known value test: Assert some properties on one of the items boolean foundKnownValueItemQuery2 = false; for (Map item : query2Response.items()) { - if (item.get("partition_key").s().equals("meeting1")) { + if (item.get("partition_key").s().equals(partitionKeyPrefix + "meeting1")) { foundKnownValueItemQuery2 = true; assert item.get("Subject").s().equals("Scan Beacons"); assert item.get("Location").m().get("Floor").s().equals("12"); @@ -164,7 +164,7 @@ public static void runQuery2(String ddbTableName, DynamoDbClient ddb) { assert foundKnownValueItemQuery2; } - public static void runQuery3(String ddbTableName, DynamoDbClient ddb) { + public static void runQuery3(String ddbTableName, DynamoDbClient ddb, String partitionKeyPrefix) { // Query 3: Get meetings by date and building/floor/room // Key condition: PK=employeeID SK between(date1, date2) // Filter condition: SK contains building.floor.room (see NOTE) @@ -228,7 +228,7 @@ public static void runQuery3(String ddbTableName, DynamoDbClient ddb) { // Known value test: Assert some properties on one of the items boolean foundKnownValueItemQuery3 = false; for (Map item : query3Response.items()) { - if (item.get("partition_key").s().equals("reservation1")) { + if (item.get("partition_key").s().equals(partitionKeyPrefix + "reservation1")) { foundKnownValueItemQuery3 = true; assert item.get("Subject").s().equals("Scan beacons"); assert item.get("Location").m().get("Building").s().equals("SEA33"); @@ -241,7 +241,7 @@ public static void runQuery3(String ddbTableName, DynamoDbClient ddb) { assert foundKnownValueItemQuery3; } - public static void runQuery4(String ddbTableName, DynamoDbClient ddb) { + public static void runQuery4(String ddbTableName, DynamoDbClient ddb, String partitionKeyPrefix) { // Query 4: Get employee data by email // Key condition: PK1=email SK1=employee ID Map query4AttributeNames = new HashMap<>(); @@ -276,7 +276,7 @@ public static void runQuery4(String ddbTableName, DynamoDbClient ddb) { // Known value test: Assert some properties on one of the items boolean foundKnownValueItemQuery4 = false; for (Map item : query4Response.items()) { - if (item.get("partition_key").s().equals("employee1")) { + if (item.get("partition_key").s().equals(partitionKeyPrefix + "employee1")) { foundKnownValueItemQuery4 = true; assert item.get("EmployeeID").s().equals("emp_001"); assert item.get("Location").m().get("Desk").s().equals("3"); @@ -285,7 +285,7 @@ public static void runQuery4(String ddbTableName, DynamoDbClient ddb) { assert foundKnownValueItemQuery4; } - public static void runQuery5(String ddbTableName, DynamoDbClient ddb) { + public static void runQuery5(String ddbTableName, DynamoDbClient ddb, String partitionKeyPrefix) { // Query 5: Get meetings by email // Key condition: PK1=email SK1 > 30 days ago Map query5AttributeNames = new HashMap<>(); @@ -326,7 +326,7 @@ public static void runQuery5(String ddbTableName, DynamoDbClient ddb) { // Known value test: Assert some properties on one of the items boolean foundKnownValueItemQuery5 = false; for (Map item : query5Response.items()) { - if (item.get("partition_key").s().equals("meeting1")) { + if (item.get("partition_key").s().equals(partitionKeyPrefix + "meeting1")) { foundKnownValueItemQuery5 = true; assert item.get("Subject").s().equals("Scan Beacons"); assert item.get("Location").m().get("Floor").s().equals("12"); @@ -339,7 +339,7 @@ public static void runQuery5(String ddbTableName, DynamoDbClient ddb) { assert foundKnownValueItemQuery5; } - public static void runQuery6(String ddbTableName, DynamoDbClient ddb) { + public static void runQuery6(String ddbTableName, DynamoDbClient ddb, String partitionKeyPrefix) { // Query 6: Get tickets by email // Key condition: PK1=email SK1 > 30 days ago Map query6AttributeNames = new HashMap<>(); @@ -375,7 +375,7 @@ public static void runQuery6(String ddbTableName, DynamoDbClient ddb) { // Known value test: Assert some properties on one of the items boolean foundKnownValueItemQuery6 = false; for (Map item : query6Response.items()) { - if (item.get("partition_key").s().equals("ticket1")) { + if (item.get("partition_key").s().equals(partitionKeyPrefix + "ticket1")) { foundKnownValueItemQuery6 = true; assert item.get("TicketNumber").s().equals("ticket_001"); } @@ -383,7 +383,7 @@ public static void runQuery6(String ddbTableName, DynamoDbClient ddb) { assert foundKnownValueItemQuery6; } - public static void runQuery7(String ddbTableName, DynamoDbClient ddb) { + public static void runQuery7(String ddbTableName, DynamoDbClient ddb, String partitionKeyPrefix) { // Query 7: Get reservations by email // Key condition: PK1=organizeremail SK1 > 30 days ago Map query7AttributeNames = new HashMap<>(); @@ -420,7 +420,7 @@ public static void runQuery7(String ddbTableName, DynamoDbClient ddb) { // Known value test: Assert some properties on one of the items boolean foundKnownValueItemQuery7 = false; for (Map item : query7Response.items()) { - if (item.get("partition_key").s().equals("reservation1")) { + if (item.get("partition_key").s().equals(partitionKeyPrefix + "reservation1")) { foundKnownValueItemQuery7 = true; assert item.get("Subject").s().equals("Scan beacons"); assert item.get("Location").m().get("Floor").s().equals("12"); @@ -433,7 +433,7 @@ public static void runQuery7(String ddbTableName, DynamoDbClient ddb) { assert foundKnownValueItemQuery7; } - public static void runQuery8(String ddbTableName, DynamoDbClient ddb) { + public static void runQuery8(String ddbTableName, DynamoDbClient ddb, String partitionKeyPrefix) { // Query 8: Get time cards by email // Key condition: PK1=employeeemail SK1 > 30 days ago Map query8AttributeNames = new HashMap<>(); @@ -474,7 +474,7 @@ public static void runQuery8(String ddbTableName, DynamoDbClient ddb) { // Known value test: Assert some properties on one of the items boolean foundKnownValueItemQuery8 = false; for (Map item : query8Response.items()) { - if (item.get("partition_key").s().equals("timecard1")) { + if (item.get("partition_key").s().equals(partitionKeyPrefix + "timecard1")) { foundKnownValueItemQuery8 = true; assert item.get("ProjectName").s().equals("project_002"); } @@ -482,7 +482,7 @@ public static void runQuery8(String ddbTableName, DynamoDbClient ddb) { assert foundKnownValueItemQuery8; } - public static void runQuery9(String ddbTableName, DynamoDbClient ddb) { + public static void runQuery9(String ddbTableName, DynamoDbClient ddb, String partitionKeyPrefix) { // Query 9: Get employee info by employee ID // Key condition: PK1=employeeID SK starts with "E-" Map query9AttributeNames = new HashMap<>(); @@ -517,7 +517,7 @@ public static void runQuery9(String ddbTableName, DynamoDbClient ddb) { // Known value test: Assert some properties on one of the items boolean foundKnownValueItemQuery9 = false; for (Map item : query9Response.items()) { - if (item.get("partition_key").s().equals("employee1")) { + if (item.get("partition_key").s().equals(partitionKeyPrefix + "employee1")) { foundKnownValueItemQuery9 = true; assert item.get("EmployeeID").s().equals("emp_001"); } @@ -525,7 +525,7 @@ public static void runQuery9(String ddbTableName, DynamoDbClient ddb) { assert foundKnownValueItemQuery9; } - public static void runQuery10(String ddbTableName, DynamoDbClient ddb) { + public static void runQuery10(String ddbTableName, DynamoDbClient ddb, String partitionKeyPrefix) { // Query 10: Get employee info by email // Key condition: PK1=email // Filter condition: SK starts with "E-" @@ -561,7 +561,7 @@ public static void runQuery10(String ddbTableName, DynamoDbClient ddb) { // Known value test: Assert some properties on one of the items boolean foundKnownValueItemQuery10 = false; for (Map item : query10Response.items()) { - if (item.get("partition_key").s().equals("employee1")) { + if (item.get("partition_key").s().equals(partitionKeyPrefix + "employee1")) { foundKnownValueItemQuery10 = true; assert item.get("EmployeeID").s().equals("emp_001"); } @@ -569,7 +569,7 @@ public static void runQuery10(String ddbTableName, DynamoDbClient ddb) { assert foundKnownValueItemQuery10; } - public static void runQuery11(String ddbTableName, DynamoDbClient ddb) { + public static void runQuery11(String ddbTableName, DynamoDbClient ddb, String partitionKeyPrefix) { // Query 11: Get ticket history by ticket number // Key condition: PK=TicketNumber Map query11AttributeNames = new HashMap<>(); @@ -600,7 +600,7 @@ public static void runQuery11(String ddbTableName, DynamoDbClient ddb) { // Known value test: Assert some properties on one of the items boolean foundKnownValueItemQuery11 = false; for (Map item : query11Response.items()) { - if (item.get("partition_key").s().equals("ticket1")) { + if (item.get("partition_key").s().equals(partitionKeyPrefix + "ticket1")) { foundKnownValueItemQuery11 = true; assert item.get("TicketNumber").s().equals("ticket_001"); } @@ -608,7 +608,7 @@ public static void runQuery11(String ddbTableName, DynamoDbClient ddb) { assert foundKnownValueItemQuery11; } - public static void runQuery12(String ddbTableName, DynamoDbClient ddb) { + public static void runQuery12(String ddbTableName, DynamoDbClient ddb, String partitionKeyPrefix) { // Query 12: Get Ticket History by employee email // Key condition: PK1=CreatorEmail // Filter condition: PK=TicketNumber @@ -645,7 +645,7 @@ public static void runQuery12(String ddbTableName, DynamoDbClient ddb) { // Known value test: Assert some properties on one of the items boolean foundKnownValueItemQuery12 = false; for (Map item : query12Response.items()) { - if (item.get("partition_key").s().equals("ticket1")) { + if (item.get("partition_key").s().equals(partitionKeyPrefix + "ticket1")) { foundKnownValueItemQuery12 = true; assert item.get("TicketNumber").s().equals("ticket_001"); } @@ -653,7 +653,7 @@ public static void runQuery12(String ddbTableName, DynamoDbClient ddb) { assert foundKnownValueItemQuery12; } - public static void runQuery13(String ddbTableName, DynamoDbClient ddb) { + public static void runQuery13(String ddbTableName, DynamoDbClient ddb, String partitionKeyPrefix) { // Query 13: Get ticket history by assignee email // Key condition: PK=AssigneeEmail // Filter condition: PK=ticketNumber @@ -690,7 +690,7 @@ public static void runQuery13(String ddbTableName, DynamoDbClient ddb) { // Known value test: Assert some properties on one of the items boolean foundKnownValueItemQuery13 = false; for (Map item : query13Response.items()) { - if (item.get("partition_key").s().equals("ticket1")) { + if (item.get("partition_key").s().equals(partitionKeyPrefix + "ticket1")) { foundKnownValueItemQuery13 = true; assert item.get("Subject").s().equals("Bad bug"); } @@ -698,7 +698,7 @@ public static void runQuery13(String ddbTableName, DynamoDbClient ddb) { assert foundKnownValueItemQuery13; } - public static void runQuery14(String ddbTableName, DynamoDbClient ddb) { + public static void runQuery14(String ddbTableName, DynamoDbClient ddb, String partitionKeyPrefix) { // Query 14: Get employees by city.building.floor.desk // Key condition: PK3=city SK3 begins_with(building.floor.desk) Map query14AttributeNames = new HashMap<>(); @@ -745,7 +745,7 @@ public static void runQuery14(String ddbTableName, DynamoDbClient ddb) { // Known value test: Assert some properties on one of the items boolean foundKnownValueItemQuery14 = false; for (Map item : query14Response.items()) { - if (item.get("partition_key").s().equals("employee1")) { + if (item.get("partition_key").s().equals(partitionKeyPrefix + "employee1")) { foundKnownValueItemQuery14 = true; assert item.get("EmployeeID").s().equals("emp_001"); assert item.get("Location").m().get("Desk").s().equals("3"); @@ -756,7 +756,7 @@ public static void runQuery14(String ddbTableName, DynamoDbClient ddb) { } } - public static void runQuery15(String ddbTableName, DynamoDbClient ddb) { + public static void runQuery15(String ddbTableName, DynamoDbClient ddb, String partitionKeyPrefix) { // Query 15: Get employees by manager email // Key condition: PK2 = ManagerEmail Map query15AttributeNames = new HashMap<>(); @@ -787,7 +787,7 @@ public static void runQuery15(String ddbTableName, DynamoDbClient ddb) { // Known value test: Assert some properties on one of the items boolean foundKnownValueItemQuery15 = false; for (Map item : query15Response.items()) { - if (item.get("partition_key").s().equals("employee1")) { + if (item.get("partition_key").s().equals(partitionKeyPrefix + "employee1")) { foundKnownValueItemQuery15 = true; assert item.get("EmployeeID").s().equals("emp_001"); assert item.get("Location").m().get("Desk").s().equals("3"); @@ -796,7 +796,7 @@ public static void runQuery15(String ddbTableName, DynamoDbClient ddb) { assert foundKnownValueItemQuery15; } - public static void runQuery16(String ddbTableName, DynamoDbClient ddb) { + public static void runQuery16(String ddbTableName, DynamoDbClient ddb, String partitionKeyPrefix) { // Query 16: Get assigned tickets by assignee email // Key condition: PK2 = AssigneeEmail Map query16AttributeNames = new HashMap<>(); @@ -827,7 +827,7 @@ public static void runQuery16(String ddbTableName, DynamoDbClient ddb) { // Known value test: Assert some properties on one of the items boolean foundKnownValueItemQuery16 = false; for (Map item : query16Response.items()) { - if (item.get("partition_key").s().equals("ticket1")) { + if (item.get("partition_key").s().equals(partitionKeyPrefix + "ticket1")) { foundKnownValueItemQuery16 = true; assert item.get("TicketNumber").s().equals("ticket_001"); } @@ -835,7 +835,7 @@ public static void runQuery16(String ddbTableName, DynamoDbClient ddb) { assert foundKnownValueItemQuery16; } - public static void runQuery17(String ddbTableName, DynamoDbClient ddb) { + public static void runQuery17(String ddbTableName, DynamoDbClient ddb, String partitionKeyPrefix) { // Query 17: Get tickets updated within the last 24 hours // Key condition: PK3 = Severity, SK3 > 24 hours ago // (For the sake of this example, we will assume @@ -875,7 +875,7 @@ public static void runQuery17(String ddbTableName, DynamoDbClient ddb) { // Known value test: Assert some properties on one of the items boolean foundKnownValueItemQuery17 = false; for (Map item : query17Response.items()) { - if (item.get("partition_key").s().equals("ticket1")) { + if (item.get("partition_key").s().equals(partitionKeyPrefix + "ticket1")) { foundKnownValueItemQuery17 = true; assert item.get("TicketNumber").s().equals("ticket_001"); } @@ -883,7 +883,7 @@ public static void runQuery17(String ddbTableName, DynamoDbClient ddb) { assert foundKnownValueItemQuery17; } - public static void runQuery18(String ddbTableName, DynamoDbClient ddb) { + public static void runQuery18(String ddbTableName, DynamoDbClient ddb, String partitionKeyPrefix) { // Query 18: Get projects by status, start and target date // Key condition: PK1 = Status, SK1 > StartDate // Filter condition: TargetDelivery < TargetDate @@ -925,7 +925,7 @@ public static void runQuery18(String ddbTableName, DynamoDbClient ddb) { // Known value test: Assert some properties on one of the items boolean foundKnownValueItemQuery18 = false; for (Map item : query18Response.items()) { - if (item.get("partition_key").s().equals("project1")) { + if (item.get("partition_key").s().equals(partitionKeyPrefix + "project1")) { foundKnownValueItemQuery18 = true; assert item.get("ProjectName").s().equals("project_001"); } @@ -933,7 +933,7 @@ public static void runQuery18(String ddbTableName, DynamoDbClient ddb) { assert foundKnownValueItemQuery18; } - public static void runQuery19(String ddbTableName, DynamoDbClient ddb) { + public static void runQuery19(String ddbTableName, DynamoDbClient ddb, String partitionKeyPrefix) { // Query 19: Get projects by name // Key condition: PK = ProjectName, SK = ProjectName Map query19AttributeNames = new HashMap<>(); @@ -964,7 +964,7 @@ public static void runQuery19(String ddbTableName, DynamoDbClient ddb) { // Known value test: Assert some properties on one of the items boolean foundKnownValueItemQuery19 = false; for (Map item : query19Response.items()) { - if (item.get("partition_key").s().equals("project1")) { + if (item.get("partition_key").s().equals(partitionKeyPrefix + "project1")) { foundKnownValueItemQuery19 = true; assert item.get("ProjectName").s().equals("project_001"); } @@ -972,7 +972,7 @@ public static void runQuery19(String ddbTableName, DynamoDbClient ddb) { assert foundKnownValueItemQuery19; } - public static void runQuery20(String ddbTableName, DynamoDbClient ddb) { + public static void runQuery20(String ddbTableName, DynamoDbClient ddb, String partitionKeyPrefix) { // Query 20: Get Project History by date range (against timecard record) // Key condition: PK = ProjectName, SK between(date1, date2) Map query20AttributeNames = new HashMap<>(); @@ -1014,7 +1014,7 @@ public static void runQuery20(String ddbTableName, DynamoDbClient ddb) { // Known value test: Assert some properties on one of the items boolean foundKnownValueItemQuery20 = false; for (Map item : query20Response.items()) { - if (item.get("partition_key").s().equals("timecard1")) { + if (item.get("partition_key").s().equals(partitionKeyPrefix + "timecard1")) { foundKnownValueItemQuery20 = true; assert item.get("ProjectName").s().equals("project_002"); } @@ -1022,7 +1022,7 @@ public static void runQuery20(String ddbTableName, DynamoDbClient ddb) { assert foundKnownValueItemQuery20; } - public static void runQuery21(String ddbTableName, DynamoDbClient ddb) { + public static void runQuery21(String ddbTableName, DynamoDbClient ddb, String partitionKeyPrefix) { // Query 21: Get Project History by role // Key condition: PK = ProjectName // Filter condition: role=rolename @@ -1059,7 +1059,7 @@ public static void runQuery21(String ddbTableName, DynamoDbClient ddb) { // Known value test: Assert some properties on one of the items boolean foundKnownValueItemQuery21 = false; for (Map item : query21Response.items()) { - if (item.get("partition_key").s().equals("timecard1")) { + if (item.get("partition_key").s().equals(partitionKeyPrefix + "timecard1")) { foundKnownValueItemQuery21 = true; assert item.get("ProjectName").s().equals("project_002"); } @@ -1067,7 +1067,7 @@ public static void runQuery21(String ddbTableName, DynamoDbClient ddb) { assert foundKnownValueItemQuery21; } - public static void runQuery22(String ddbTableName, DynamoDbClient ddb) { + public static void runQuery22(String ddbTableName, DynamoDbClient ddb, String partitionKeyPrefix) { // Query 22: Get reservations by building ID // Key condition: PK = Building ID Map query22AttributeNames = new HashMap<>(); @@ -1098,7 +1098,7 @@ public static void runQuery22(String ddbTableName, DynamoDbClient ddb) { // Known value test: Assert some properties on one of the items boolean foundKnownValueItemQuery22 = false; for (Map item : query22Response.items()) { - if (item.get("partition_key").s().equals("reservation1")) { + if (item.get("partition_key").s().equals(partitionKeyPrefix + "reservation1")) { foundKnownValueItemQuery22 = true; assert item.get("Subject").s().equals("Scan beacons"); } @@ -1106,7 +1106,7 @@ public static void runQuery22(String ddbTableName, DynamoDbClient ddb) { assert foundKnownValueItemQuery22; } - public static void runQuery23(String ddbTableName, DynamoDbClient ddb) { + public static void runQuery23(String ddbTableName, DynamoDbClient ddb, String partitionKeyPrefix) { // Query 23: Get reservations by building ID and time range // Key condition: PK = Building ID, SK between(date1, date2) // Filter condition: Duration > 0 @@ -1155,7 +1155,7 @@ public static void runQuery23(String ddbTableName, DynamoDbClient ddb) { // Known value test: Assert some properties on one of the items boolean foundKnownValueItemQuery23 = false; for (Map item : query23Response.items()) { - if (item.get("partition_key").s().equals("reservation1")) { + if (item.get("partition_key").s().equals(partitionKeyPrefix + "reservation1")) { foundKnownValueItemQuery23 = true; assert item.get("Subject").s().equals("Scan beacons"); } diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/clientsupplier/TestClientSupplierExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/clientsupplier/TestClientSupplierExample.java index 6c7a4069ed..d087b3935c 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/clientsupplier/TestClientSupplierExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/clientsupplier/TestClientSupplierExample.java @@ -2,6 +2,7 @@ import java.util.Collections; import java.util.List; +import java.util.UUID; import org.testng.annotations.Test; import software.amazon.awssdk.regions.Region; import software.amazon.cryptography.examples.TestUtils; @@ -10,6 +11,7 @@ public class TestClientSupplierExample { @Test public void TestClientSupplierExample() { + final String partitionKeyValue = "ClientSupplierExample" + UUID.randomUUID(); List accounts = Collections.singletonList( TestUtils.TEST_AWS_ACCOUNT_ID ); @@ -21,7 +23,17 @@ public void TestClientSupplierExample() { TestUtils.TEST_MRK_REPLICA_KEY_ID_US_EAST_1, accounts, // ...and access its replica in eu-west-1 - regions + regions, + partitionKeyValue, + "0" + ); + + TestUtils.cleanUpDDBItem( + TestUtils.TEST_DDB_TABLE_NAME, + "partition_key", + "sort_key", + partitionKeyValue, + "0" ); } } diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/enhanced/TestEnhancedPutGetExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/enhanced/TestEnhancedPutGetExample.java index 0bf211d424..f1ffa79475 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/enhanced/TestEnhancedPutGetExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/enhanced/TestEnhancedPutGetExample.java @@ -1,5 +1,6 @@ package software.amazon.cryptography.examples.enhanced; +import java.util.UUID; import org.testng.annotations.Test; import software.amazon.cryptography.examples.TestUtils; @@ -7,25 +8,55 @@ public class TestEnhancedPutGetExample { @Test public void TestEnhancedPutGet() { + final String partitionKeyValue = "EnhancedPutGetExample" + UUID.randomUUID(); EnhancedPutGetExample.PutItemGetItem( TestUtils.TEST_KMS_KEY_ID, - TestUtils.TEST_DDB_TABLE_NAME + TestUtils.TEST_DDB_TABLE_NAME, + partitionKeyValue, + 0 + ); + TestUtils.cleanUpDDBItem( + TestUtils.TEST_DDB_TABLE_NAME, + "partition_key", + "sort_key", + partitionKeyValue, + "0" ); } @Test public void TestLombokPutGet() { + final String partitionKeyValue = "LombokPutGetExample" + UUID.randomUUID(); LombokPutGetExample.PutItemGetItem( TestUtils.TEST_KMS_KEY_ID, - TestUtils.TEST_DDB_TABLE_NAME + TestUtils.TEST_DDB_TABLE_NAME, + partitionKeyValue, + 0 + ); + TestUtils.cleanUpDDBItem( + TestUtils.TEST_DDB_TABLE_NAME, + "partition_key", + "sort_key", + partitionKeyValue, + "0" ); } @Test public void TestTableSchemaBuilderPutGet() { + final String partitionKeyValue = "TableSchemaBuilderPutGetExample" + UUID.randomUUID(); TableSchemaBuilderPutGetExample.PutItemGetItem( TestUtils.TEST_KMS_KEY_ID, - TestUtils.TEST_DDB_TABLE_NAME + TestUtils.TEST_DDB_TABLE_NAME, + partitionKeyValue, + 0 + ); + TestUtils.cleanUpDDBItem( + TestUtils.TEST_DDB_TABLE_NAME, + "partition_key", + "sort_key", + partitionKeyValue, + "0" ); } } diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/enhanced/TestSingleTableExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/enhanced/TestSingleTableExample.java index 7b64a049f9..a365118c34 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/enhanced/TestSingleTableExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/enhanced/TestSingleTableExample.java @@ -1,5 +1,6 @@ package software.amazon.cryptography.examples.enhanced; +import java.util.UUID; import org.testng.annotations.Test; import software.amazon.cryptography.examples.TestUtils; @@ -7,9 +8,33 @@ public class TestSingleTableExample { @Test public void TestEnhancedSingleTable() { + final String partitionKeyPrefix = "SingleTableExample" + UUID.randomUUID(); SingleTableExample.TransactWriteItems( TestUtils.TEST_KMS_KEY_ID, - TestUtils.TEST_DDB_TABLE_NAME + TestUtils.TEST_DDB_TABLE_NAME, + partitionKeyPrefix, + 0 + ); + TestUtils.cleanUpDDBItem( + TestUtils.TEST_DDB_TABLE_NAME, + "partition_key", + "sort_key", + partitionKeyPrefix + "1", + "0" + ); + TestUtils.cleanUpDDBItem( + TestUtils.TEST_DDB_TABLE_NAME, + "partition_key", + "sort_key", + partitionKeyPrefix + "2", + "0" + ); + TestUtils.cleanUpDDBItem( + TestUtils.TEST_DDB_TABLE_NAME, + "partition_key", + "sort_key", + partitionKeyPrefix + "3", + "0" ); } } diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/itemencryptor/TestItemEncryptDecryptExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/itemencryptor/TestItemEncryptDecryptExample.java index 92b1b7add2..ac2249826d 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/itemencryptor/TestItemEncryptDecryptExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/itemencryptor/TestItemEncryptDecryptExample.java @@ -1,5 +1,6 @@ package software.amazon.cryptography.examples.itemencryptor; +import java.util.UUID; import org.testng.annotations.Test; import software.amazon.cryptography.examples.TestUtils; @@ -7,9 +8,12 @@ public class TestItemEncryptDecryptExample { @Test public void TestItemEncryptDecrypt() { + final String partitionKeyValue = "ItemEncryptDecryptExample" + UUID.randomUUID(); ItemEncryptDecryptExample.PutItemGetItem( TestUtils.TEST_KMS_KEY_ID, - TestUtils.TEST_DDB_TABLE_NAME + TestUtils.TEST_DDB_TABLE_NAME, + partitionKeyValue, + "0" ); } } diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestHierarchicalKeyringExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestHierarchicalKeyringExample.java index 92f0d7f629..1da6a10f39 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestHierarchicalKeyringExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestHierarchicalKeyringExample.java @@ -1,5 +1,6 @@ package software.amazon.cryptography.examples.keyring; +import java.util.UUID; import org.testng.annotations.Test; import software.amazon.cryptography.examples.CreateKeyStoreKeyExample; import software.amazon.cryptography.examples.TestUtils; @@ -8,6 +9,7 @@ public class TestHierarchicalKeyringExample { @Test public void TestHierarchicalKeyringExample() throws InterruptedException { + final String partitionKeyValue = "HierarchicalKeyringExample" + UUID.randomUUID(); // Create new branch keys for test String keyId1 = CreateKeyStoreKeyExample.KeyStoreCreateKey( TestUtils.TEST_KEYSTORE_NAME, @@ -30,7 +32,17 @@ public void TestHierarchicalKeyringExample() throws InterruptedException { keyId2, TestUtils.TEST_KEYSTORE_NAME, TestUtils.TEST_LOGICAL_KEYSTORE_NAME, - TestUtils.TEST_KEYSTORE_KMS_KEY_ID + TestUtils.TEST_KEYSTORE_KMS_KEY_ID, + partitionKeyValue, + "0" + ); + + TestUtils.cleanUpDDBItem( + TestUtils.TEST_DDB_TABLE_NAME, + "partition_key", + "sort_key", + partitionKeyValue, + "0" ); } } diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestKmsEcdhKeyringExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestKmsEcdhKeyringExample.java index 7495261af3..4e9f05c0fe 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestKmsEcdhKeyringExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestKmsEcdhKeyringExample.java @@ -5,11 +5,15 @@ import static software.amazon.cryptography.examples.keyring.KmsEcdhKeyringExample.shouldGetNewPublicKeys; import static software.amazon.cryptography.examples.keyring.KmsEcdhKeyringExample.writePublicKeyPemForEccKey; +import java.util.UUID; import org.testng.annotations.Test; import software.amazon.cryptography.examples.TestUtils; public class TestKmsEcdhKeyringExample { + private static final String partitionKeyValue = "KmsEcdhKeyringExample" + UUID.randomUUID(); + private static final String sortKeyValue = "0"; + @Test public void TestKmsEcdhKeyringExampleStatic() { // You may provide your own ECC public keys at @@ -31,7 +35,11 @@ public void TestKmsEcdhKeyringExampleStatic() { KmsEcdhKeyringExample.KmsEcdhKeyringGetItemPutItem( TestUtils.TEST_DDB_TABLE_NAME, - TestUtils.TEST_KMS_ECDH_KEY_ID_P256_SENDER + TestUtils.TEST_KMS_ECDH_KEY_ID_P256_SENDER, + EXAMPLE_ECC_PUBLIC_KEY_SENDER_FILENAME, + EXAMPLE_ECC_PUBLIC_KEY_RECIPIENT_FILENAME, + partitionKeyValue, + sortKeyValue ); } @@ -43,7 +51,9 @@ public void TestKmsEcdhKeyringExampleDiscovery() { // to write an item meant for the recipient. KmsEcdhKeyringExample.KmsEcdhDiscoveryGetItem( TestUtils.TEST_DDB_TABLE_NAME, - TestUtils.TEST_KMS_ECDH_KEY_ID_P256_RECIPIENT + TestUtils.TEST_KMS_ECDH_KEY_ID_P256_RECIPIENT, + partitionKeyValue, + sortKeyValue ); } } diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestKmsRsaKeyringExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestKmsRsaKeyringExample.java index 9f0156d9d3..f9095482e9 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestKmsRsaKeyringExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestKmsRsaKeyringExample.java @@ -3,6 +3,7 @@ import static software.amazon.cryptography.examples.keyring.KmsRsaKeyringExample.shouldGetNewPublicKey; import static software.amazon.cryptography.examples.keyring.KmsRsaKeyringExample.writePublicKeyPemForRsaKey; +import java.util.UUID; import org.testng.annotations.Test; import software.amazon.cryptography.examples.TestUtils; @@ -10,6 +11,7 @@ public class TestKmsRsaKeyringExample { @Test public void TestKmsRsaKeyringExample() { + final String partitionKeyValue = "KmsRsaKeyringExample" + UUID.randomUUID(); // You may provide your own RSA public key at EXAMPLE_RSA_PUBLIC_KEY_FILENAME. // This must be the public key for the RSA key represented at rsaKeyArn. // If this file is not present, this will write a UTF-8 encoded PEM file for you. @@ -19,7 +21,17 @@ public void TestKmsRsaKeyringExample() { software.amazon.cryptography.examples.keyring.KmsRsaKeyringExample.KmsRsaKeyringGetItemPutItem( TestUtils.TEST_DDB_TABLE_NAME, - TestUtils.TEST_KMS_RSA_KEY_ID + TestUtils.TEST_KMS_RSA_KEY_ID, + partitionKeyValue, + "0" + ); + + TestUtils.cleanUpDDBItem( + TestUtils.TEST_DDB_TABLE_NAME, + "partition_key", + "sort_key", + partitionKeyValue, + "0" ); } } diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestMrkDiscoveryMultiKeyringExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestMrkDiscoveryMultiKeyringExample.java index ceace75fa3..fcd7803517 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestMrkDiscoveryMultiKeyringExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestMrkDiscoveryMultiKeyringExample.java @@ -2,6 +2,7 @@ import java.util.Collections; import java.util.List; +import java.util.UUID; import org.testng.annotations.Test; import software.amazon.cryptography.examples.TestUtils; @@ -9,6 +10,7 @@ public class TestMrkDiscoveryMultiKeyringExample { @Test public void TestMrkDiscoveryMultiKeyringExample() { + final String partitionKeyValue = "MrkDiscoveryMultiKeyringExample" + UUID.randomUUID(); List accounts = Collections.singletonList( TestUtils.TEST_AWS_ACCOUNT_ID ); @@ -18,7 +20,17 @@ public void TestMrkDiscoveryMultiKeyringExample() { TestUtils.TEST_DDB_TABLE_NAME, TestUtils.TEST_MRK_KEY_ID, accounts, - regions + regions, + partitionKeyValue, + "0" + ); + + TestUtils.cleanUpDDBItem( + TestUtils.TEST_DDB_TABLE_NAME, + "partition_key", + "sort_key", + partitionKeyValue, + "0" ); } } diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestMrkMultiKeyringExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestMrkMultiKeyringExample.java index c4f313ac4b..275e508e3c 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestMrkMultiKeyringExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestMrkMultiKeyringExample.java @@ -1,5 +1,6 @@ package software.amazon.cryptography.examples.keyring; +import java.util.UUID; import org.testng.annotations.Test; import software.amazon.cryptography.examples.TestUtils; @@ -7,11 +8,23 @@ public class TestMrkMultiKeyringExample { @Test public void TestMrkMultiKeyringExample() { + final String partitionKeyValue = "MrkMultiKeyringExample" + UUID.randomUUID(); + MultiMrkKeyringExample.MultiMrkKeyringGetItemPutItem( TestUtils.TEST_DDB_TABLE_NAME, TestUtils.TEST_MRK_KEY_ID, TestUtils.TEST_KMS_KEY_ID, - TestUtils.TEST_MRK_REPLICA_KEY_ID_US_EAST_1 + TestUtils.TEST_MRK_REPLICA_KEY_ID_US_EAST_1, + partitionKeyValue, + "0" + ); + + TestUtils.cleanUpDDBItem( + TestUtils.TEST_DDB_TABLE_NAME, + "partition_key", + "sort_key", + partitionKeyValue, + "0" ); } } diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestMultiKeyringExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestMultiKeyringExample.java index 0c54c4a89d..745ea61743 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestMultiKeyringExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestMultiKeyringExample.java @@ -1,6 +1,7 @@ package software.amazon.cryptography.examples.keyring; import java.nio.ByteBuffer; +import java.util.UUID; import org.testng.annotations.Test; import software.amazon.cryptography.examples.TestUtils; @@ -8,13 +9,24 @@ public class TestMultiKeyringExample { @Test public void TestMultiKeyringExample() { + final String partitionKeyValue = "MultiKeyringExample" + UUID.randomUUID(); // Generate a new AES key ByteBuffer aesKeyBytes = RawAesKeyringExample.generateAesKeyBytes(); MultiKeyringExample.MultiKeyringGetItemPutItem( TestUtils.TEST_DDB_TABLE_NAME, TestUtils.TEST_KMS_KEY_ID, - aesKeyBytes + aesKeyBytes, + partitionKeyValue, + "0" + ); + + TestUtils.cleanUpDDBItem( + TestUtils.TEST_DDB_TABLE_NAME, + "partition_key", + "sort_key", + partitionKeyValue, + "0" ); } } diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestRawAesKeyringExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestRawAesKeyringExample.java index 4f31ef9a7c..23b8aa3b82 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestRawAesKeyringExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestRawAesKeyringExample.java @@ -1,6 +1,7 @@ package software.amazon.cryptography.examples.keyring; import java.nio.ByteBuffer; +import java.util.UUID; import org.testng.annotations.Test; import software.amazon.cryptography.examples.TestUtils; @@ -8,12 +9,23 @@ public class TestRawAesKeyringExample { @Test public void TestRawAesKeyringExample() { + final String partitionKeyValue = "RawAesKeyringExample" + UUID.randomUUID(); // Generate a new AES key ByteBuffer aesKeyBytes = RawAesKeyringExample.generateAesKeyBytes(); RawAesKeyringExample.RawAesKeyringGetItemPutItem( TestUtils.TEST_DDB_TABLE_NAME, - aesKeyBytes + aesKeyBytes, + partitionKeyValue, + "0" + ); + + TestUtils.cleanUpDDBItem( + TestUtils.TEST_DDB_TABLE_NAME, + "partition_key", + "sort_key", + partitionKeyValue, + "0" ); } } diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestRawEcdhKeyringExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestRawEcdhKeyringExample.java index a6ee1aff65..76fba3b55a 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestRawEcdhKeyringExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestRawEcdhKeyringExample.java @@ -2,6 +2,7 @@ import java.nio.ByteBuffer; import java.security.spec.ECGenParameterSpec; +import java.util.UUID; import org.testng.annotations.Test; import software.amazon.cryptography.examples.TestUtils; import software.amazon.cryptography.primitives.model.ECDHCurveSpec; @@ -20,11 +21,16 @@ public void TestStaticRawEcdhKeyringExample() { RawEcdhKeyringExample.generateEccKeyPairs(); } + String partitionKeyValue = "RawEcdhKeyringExample" + UUID.randomUUID(); + String sortKeyValue = "0"; + // Part of using these keyrings is knowing which curve the keys used in the key agreement // lie on. The keyring will fail if the keys do not lie on the configured curve. RawEcdhKeyringExample.RawEcdhKeyringGetItemPutItem( TestUtils.TEST_DDB_TABLE_NAME, - ECDHCurveSpec.ECC_NIST_P256 + ECDHCurveSpec.ECC_NIST_P256, + partitionKeyValue, + sortKeyValue ); } @@ -39,11 +45,16 @@ public void TestEphemeralRawEcdhKeyringExample() { RawEcdhKeyringExample.generateEccKeyPairs(); } + String partitionKeyValue = "RawEcdhKeyringExample" + UUID.randomUUID(); + String sortKeyValue = "0"; + // Part of using these keyrings is knowing which curve the keys used in the key agreement // lie on. The keyring will fail if the keys do not lie on the configured curve. RawEcdhKeyringExample.EphemeralRawEcdhKeyringPutItem( TestUtils.TEST_DDB_TABLE_NAME, - ECDHCurveSpec.ECC_NIST_P256 + ECDHCurveSpec.ECC_NIST_P256, + partitionKeyValue, + sortKeyValue ); } @@ -59,6 +70,9 @@ public void TestDiscoveryRawEcdhKeyringExample() { RawEcdhKeyringExample.generateEccKeyPairs(); } + String partitionKeyValue = "RawEcdhKeyringExample" + UUID.randomUUID(); + String sortKeyValue = "0"; + // The discovery configuration is not allowed to encrypt // To understand this example best, we will write a record with the ephemeral configuration // in the previous example. This means that the recipient public key configured on @@ -69,7 +83,9 @@ public void TestDiscoveryRawEcdhKeyringExample() { // The recipient will be able to decrypt the message RawEcdhKeyringExample.EphemeralRawEcdhKeyringPutItem( TestUtils.TEST_DDB_TABLE_NAME, - ECDHCurveSpec.ECC_NIST_P256 + ECDHCurveSpec.ECC_NIST_P256, + partitionKeyValue, + sortKeyValue ); // In this call we are reading a record that was written with the recipient's public key. @@ -77,7 +93,9 @@ public void TestDiscoveryRawEcdhKeyringExample() { // calculate the appropriate shared secret to successfully decrypt the message. RawEcdhKeyringExample.DiscoveryRawEcdhKeyringGetItem( TestUtils.TEST_DDB_TABLE_NAME, - ECDHCurveSpec.ECC_NIST_P256 + ECDHCurveSpec.ECC_NIST_P256, + partitionKeyValue, + sortKeyValue ); } } diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestRawRsaKeyringExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestRawRsaKeyringExample.java index 5baea772c2..43fc971503 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestRawRsaKeyringExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestRawRsaKeyringExample.java @@ -1,5 +1,6 @@ package software.amazon.cryptography.examples.keyring; +import java.util.UUID; import org.testng.annotations.Test; import software.amazon.cryptography.examples.TestUtils; @@ -7,6 +8,7 @@ public class TestRawRsaKeyringExample { @Test public void TestRawRsaKeyringExample() { + final String partitionKeyValue = "RawRsaKeyringExample" + UUID.randomUUID(); // You may provide your own RSA key pair in the files located at // - EXAMPLE_RSA_PRIVATE_KEY_FILENAME // - EXAMPLE_RSA_PUBLIC_KEY_FILENAME @@ -16,7 +18,17 @@ public void TestRawRsaKeyringExample() { } RawRsaKeyringExample.RawRsaKeyringGetItemPutItem( - TestUtils.TEST_DDB_TABLE_NAME + TestUtils.TEST_DDB_TABLE_NAME, + partitionKeyValue, + "0" + ); + + TestUtils.cleanUpDDBItem( + TestUtils.TEST_DDB_TABLE_NAME, + "partition_key", + "sort_key", + partitionKeyValue, + "0" ); } } diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestSharedCacheAcrossHierarchicalKeyringsExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestSharedCacheAcrossHierarchicalKeyringsExample.java index 452da3f36b..1c5f8a7d77 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestSharedCacheAcrossHierarchicalKeyringsExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/keyring/TestSharedCacheAcrossHierarchicalKeyringsExample.java @@ -1,5 +1,6 @@ package software.amazon.cryptography.examples.keyring; +import java.util.UUID; import org.testng.annotations.Test; import software.amazon.cryptography.examples.CreateKeyStoreKeyExample; import software.amazon.cryptography.examples.TestUtils; @@ -9,6 +10,7 @@ public class TestSharedCacheAcrossHierarchicalKeyringsExample { @Test public void TestSharedCacheAcrossHierarchicalKeyringsExample() throws InterruptedException { + final String partitionKeyValue = "SharedCacheAcrossHierarchicalKeyringsExample" + UUID.randomUUID(); // Create new branch key for test String keyId = CreateKeyStoreKeyExample.KeyStoreCreateKey( TestUtils.TEST_KEYSTORE_NAME, @@ -26,7 +28,17 @@ public void TestSharedCacheAcrossHierarchicalKeyringsExample() TestUtils.TEST_KEYSTORE_NAME, TestUtils.TEST_LOGICAL_KEYSTORE_NAME, TestUtils.TEST_PARTITION_ID, - TestUtils.TEST_KEYSTORE_KMS_KEY_ID + TestUtils.TEST_KEYSTORE_KMS_KEY_ID, + partitionKeyValue, + "0" + ); + + TestUtils.cleanUpDDBItem( + TestUtils.TEST_DDB_TABLE_NAME, + "partition_key", + "sort_key", + partitionKeyValue, + "0" ); } } diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/searchableencryption/TestBasicSearchableEncryptionExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/searchableencryption/TestBasicSearchableEncryptionExample.java index 57539f58d4..d817525944 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/searchableencryption/TestBasicSearchableEncryptionExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/searchableencryption/TestBasicSearchableEncryptionExample.java @@ -1,5 +1,6 @@ package software.amazon.cryptography.examples.searchableencryption; +import java.util.UUID; import org.testng.annotations.Test; import software.amazon.cryptography.examples.CreateKeyStoreKeyExample; @@ -18,11 +19,14 @@ public void TestBasicExample() throws InterruptedException { // our test fails due to eventual consistency issues. Thread.sleep(5000); + final String workId = UUID.randomUUID().toString(); + BasicSearchableEncryptionExample.PutItemQueryItemWithBeacon( SearchableEncryptionTestUtils.UNIT_INSPECTION_TEST_DDB_TABLE_NAME, keyId, SearchableEncryptionTestUtils.TEST_BRANCH_KEY_WRAPPING_KMS_KEY_ARN, - SearchableEncryptionTestUtils.TEST_BRANCH_KEYSTORE_DDB_TABLE_NAME + SearchableEncryptionTestUtils.TEST_BRANCH_KEYSTORE_DDB_TABLE_NAME, + workId ); } } diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/searchableencryption/TestBeaconStylesSearchableEncryptionExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/searchableencryption/TestBeaconStylesSearchableEncryptionExample.java index 82f7be3408..17b7bd0dc1 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/searchableencryption/TestBeaconStylesSearchableEncryptionExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/searchableencryption/TestBeaconStylesSearchableEncryptionExample.java @@ -1,5 +1,6 @@ package software.amazon.cryptography.examples.searchableencryption; +import java.util.UUID; import org.testng.annotations.Test; import software.amazon.cryptography.examples.CreateKeyStoreKeyExample; @@ -18,11 +19,14 @@ public void TestCompoundItemEncryptDecrypt() throws InterruptedException { // our test fails due to eventual consistency issues. Thread.sleep(5000); + final String workId = UUID.randomUUID().toString(); + BeaconStylesSearchableEncryptionExample.PutItemQueryItemWithBeaconStyles( SearchableEncryptionTestUtils.UNIT_INSPECTION_TEST_DDB_TABLE_NAME, keyId, SearchableEncryptionTestUtils.TEST_BRANCH_KEY_WRAPPING_KMS_KEY_ARN, - SearchableEncryptionTestUtils.TEST_BRANCH_KEYSTORE_DDB_TABLE_NAME + SearchableEncryptionTestUtils.TEST_BRANCH_KEYSTORE_DDB_TABLE_NAME, + workId ); } } diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/searchableencryption/TestCompoundBeaconSearchableEncryptionExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/searchableencryption/TestCompoundBeaconSearchableEncryptionExample.java index 9661c1f8f0..bb52c705f6 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/searchableencryption/TestCompoundBeaconSearchableEncryptionExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/searchableencryption/TestCompoundBeaconSearchableEncryptionExample.java @@ -1,5 +1,6 @@ package software.amazon.cryptography.examples.searchableencryption; +import java.util.UUID; import org.testng.annotations.Test; import software.amazon.cryptography.examples.CreateKeyStoreKeyExample; @@ -18,11 +19,14 @@ public void TestCompoundItemEncryptDecrypt() throws InterruptedException { // our test fails due to eventual consistency issues. Thread.sleep(5000); + final String workId = UUID.randomUUID().toString(); + CompoundBeaconSearchableEncryptionExample.PutItemQueryItemWithCompoundBeacon( SearchableEncryptionTestUtils.UNIT_INSPECTION_TEST_DDB_TABLE_NAME, keyId, SearchableEncryptionTestUtils.TEST_BRANCH_KEY_WRAPPING_KMS_KEY_ARN, - SearchableEncryptionTestUtils.TEST_BRANCH_KEYSTORE_DDB_TABLE_NAME + SearchableEncryptionTestUtils.TEST_BRANCH_KEYSTORE_DDB_TABLE_NAME, + workId ); } } diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/searchableencryption/TestVirtualBeaconSearchableEncryptionExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/searchableencryption/TestVirtualBeaconSearchableEncryptionExample.java index 0ba8587802..aa26118bec 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/searchableencryption/TestVirtualBeaconSearchableEncryptionExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/searchableencryption/TestVirtualBeaconSearchableEncryptionExample.java @@ -1,5 +1,6 @@ package software.amazon.cryptography.examples.searchableencryption; +import java.util.UUID; import org.testng.annotations.Test; import software.amazon.cryptography.examples.CreateKeyStoreKeyExample; @@ -18,11 +19,14 @@ public void TestVirtualBeaconExample() throws InterruptedException { // our test fails due to eventual consistency issues. Thread.sleep(5000); + final String customerId = UUID.randomUUID().toString(); + VirtualBeaconSearchableEncryptionExample.PutItemQueryItemWithVirtualBeacon( SearchableEncryptionTestUtils.SIMPLE_BEACON_TEST_DDB_TABLE_NAME, keyId, SearchableEncryptionTestUtils.TEST_BRANCH_KEY_WRAPPING_KMS_KEY_ARN, - SearchableEncryptionTestUtils.TEST_BRANCH_KEYSTORE_DDB_TABLE_NAME + SearchableEncryptionTestUtils.TEST_BRANCH_KEYSTORE_DDB_TABLE_NAME, + customerId ); } } diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/searchableencryption/complexexample/TestComplexSearchableEncryptionExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/searchableencryption/complexexample/TestComplexSearchableEncryptionExample.java index 06174d0bb4..1fa9324783 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/searchableencryption/complexexample/TestComplexSearchableEncryptionExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/test/java/software/amazon/cryptography/examples/searchableencryption/complexexample/TestComplexSearchableEncryptionExample.java @@ -1,5 +1,6 @@ package software.amazon.cryptography.examples.searchableencryption.complexexample; +import java.util.UUID; import org.testng.annotations.Test; import software.amazon.cryptography.examples.CreateKeyStoreKeyExample; import software.amazon.cryptography.examples.searchableencryption.SearchableEncryptionTestUtils; @@ -19,11 +20,15 @@ public void TestComplexExample() throws InterruptedException { // our test fails due to eventual consistency issues. Thread.sleep(5000); + // Generate UUID-based partition key prefix for test isolation + String partitionKeyPrefix = UUID.randomUUID().toString() + "-"; + ComplexSearchableEncryptionExample.runExample( ComplexSearchableEncryptionTestUtils.TEST_DDB_TABLE_NAME, keyId, SearchableEncryptionTestUtils.TEST_BRANCH_KEY_WRAPPING_KMS_KEY_ARN, - SearchableEncryptionTestUtils.TEST_BRANCH_KEYSTORE_DDB_TABLE_NAME + SearchableEncryptionTestUtils.TEST_BRANCH_KEYSTORE_DDB_TABLE_NAME, + partitionKeyPrefix ); } } From 95e41d54f784dcc692babf53350b8f32ddad8fb9 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 24 Feb 2026 13:32:52 -0800 Subject: [PATCH 2/3] rm bin --- .../examples/BasicPutGetExample.class | Bin 2272 -> 0 bytes .../cryptography/examples/ConfigUtils.class | Bin 975 -> 0 bytes .../examples/CreateKeyStoreKeyExample.class | Bin 1266 -> 0 bytes .../examples/CreateKeyStoreTableExample.class | Bin 1261 -> 0 bytes ...etEncryptedDataKeyDescriptionExample.class | Bin 2082 -> 0 bytes ...ipulationUtils$ManipulationException.class | Bin 873 -> 0 bytes .../examples/ManipulationUtils.class | Bin 4158 -> 0 bytes .../examples/ScanErrorExample.class | Bin 2419 -> 0 bytes .../ClientSupplierExample.class | Bin 3324 -> 0 bytes .../RegionalRoleClientSupplier.class | Bin 1251 -> 0 bytes .../RegionalRoleClientSupplierConfig.class | Bin 1195 -> 0 bytes .../enhanced/EnhancedPutGetExample.class | Bin 1688 -> 0 bytes .../enhanced/LombokPutGetExample.class | Bin 1774 -> 0 bytes .../examples/enhanced/SimpleClass.class | Bin 2257 -> 0 bytes .../examples/enhanced/SimpleClass2.class | Bin 2260 -> 0 bytes .../examples/enhanced/SimpleClass3.class | Bin 2260 -> 0 bytes .../examples/enhanced/SimpleClass4.class | Bin 2654 -> 0 bytes ...mpleViaLombok$SimpleViaLombokBuilder.class | Bin 2232 -> 0 bytes .../examples/enhanced/SimpleViaLombok.class | Bin 4100 -> 0 bytes .../enhanced/SingleTableExample.class | Bin 1683 -> 0 bytes .../TableSchemaBuilderPutGetExample.class | Bin 3361 -> 0 bytes .../ItemEncryptDecryptExample.class | Bin 1991 -> 0 bytes .../keyring/ExampleBranchKeyIdSupplier.class | Bin 1608 -> 0 bytes .../keyring/HierarchicalKeyringExample.class | Bin 2690 -> 0 bytes .../keyring/KmsEcdhKeyringExample.class | Bin 10251 -> 0 bytes .../keyring/KmsRsaKeyringExample.class | Bin 5977 -> 0 bytes .../MrkDiscoveryMultiKeyringExample.class | Bin 3388 -> 0 bytes .../keyring/MultiKeyringExample.class | Bin 3538 -> 0 bytes .../keyring/MultiMrkKeyringExample.class | Bin 3005 -> 0 bytes .../keyring/RawAesKeyringExample.class | Bin 2862 -> 0 bytes .../keyring/RawEcdhKeyringExample.class | Bin 8975 -> 0 bytes .../keyring/RawRsaKeyringExample.class | Bin 6233 -> 0 bytes ...cheAcrossHierarchicalKeyringsExample.class | Bin 7747 -> 0 bytes .../BasicSearchableEncryptionExample.class | Bin 2851 -> 0 bytes ...conStylesSearchableEncryptionExample.class | Bin 3787 -> 0 bytes ...undBeaconSearchableEncryptionExample.class | Bin 8670 -> 0 bytes ...ualBeaconSearchableEncryptionExample.class | Bin 3585 -> 0 bytes .../complexexample/BeaconConfig.class | Bin 3655 -> 0 bytes .../ComplexSearchableEncryptionExample.class | Bin 2197 -> 0 bytes .../complexexample/PutRequests.class | Bin 17039 -> 0 bytes .../complexexample/QueryRequests.class | Bin 28889 -> 0 bytes .../complexexample/README.md | 24 ------------------ .../examples/TestBasicPutGetExample.class | Bin 1467 -> 0 bytes .../TestCreateKeyStoreKeyExample.class | Bin 1022 -> 0 bytes .../TestCreateKeyStoreTableExample.class | Bin 896 -> 0 bytes ...etEncryptedDataKeyDescriptionExample.class | Bin 2034 -> 0 bytes .../examples/TestScanErrorExample.class | Bin 811 -> 0 bytes .../cryptography/examples/TestUtils.class | Bin 3994 -> 0 bytes .../TestClientSupplierExample.class | Bin 1962 -> 0 bytes .../enhanced/TestEnhancedPutGetExample.class | Bin 2063 -> 0 bytes .../enhanced/TestSingleTableExample.class | Bin 1734 -> 0 bytes .../TestItemEncryptDecryptExample.class | Bin 1316 -> 0 bytes .../TestHierarchicalKeyringExample.class | Bin 2028 -> 0 bytes .../keyring/TestKmsEcdhKeyringExample.class | Bin 2103 -> 0 bytes .../keyring/TestKmsRsaKeyringExample.class | Bin 806 -> 0 bytes .../TestMrkDiscoveryMultiKeyringExample.class | Bin 1900 -> 0 bytes .../keyring/TestMrkMultiKeyringExample.class | Bin 1704 -> 0 bytes .../keyring/TestMultiKeyringExample.class | Bin 1685 -> 0 bytes .../keyring/TestRawAesKeyringExample.class | Bin 1515 -> 0 bytes .../keyring/TestRawEcdhKeyringExample.class | Bin 1072 -> 0 bytes .../keyring/TestRawRsaKeyringExample.class | Bin 1521 -> 0 bytes ...cheAcrossHierarchicalKeyringsExample.class | Bin 2151 -> 0 bytes .../SearchableEncryptionTestUtils.class | Bin 886 -> 0 bytes ...TestBasicSearchableEncryptionExample.class | Bin 1595 -> 0 bytes ...conStylesSearchableEncryptionExample.class | Bin 1643 -> 0 bytes ...undBeaconSearchableEncryptionExample.class | Bin 1653 -> 0 bytes ...ualBeaconSearchableEncryptionExample.class | Bin 1644 -> 0 bytes ...ComplexSearchableEncryptionTestUtils.class | Bin 584 -> 0 bytes ...stComplexSearchableEncryptionExample.class | Bin 2004 -> 0 bytes 69 files changed, 24 deletions(-) delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/BasicPutGetExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/ConfigUtils.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/CreateKeyStoreKeyExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/CreateKeyStoreTableExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/GetEncryptedDataKeyDescriptionExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/ManipulationUtils$ManipulationException.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/ManipulationUtils.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/ScanErrorExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/clientsupplier/ClientSupplierExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/clientsupplier/RegionalRoleClientSupplier.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/clientsupplier/RegionalRoleClientSupplierConfig.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/EnhancedPutGetExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/LombokPutGetExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/SimpleClass.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/SimpleClass2.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/SimpleClass3.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/SimpleClass4.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/SimpleViaLombok$SimpleViaLombokBuilder.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/SimpleViaLombok.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/SingleTableExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/TableSchemaBuilderPutGetExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/itemencryptor/ItemEncryptDecryptExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/ExampleBranchKeyIdSupplier.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/HierarchicalKeyringExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/KmsEcdhKeyringExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/KmsRsaKeyringExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/MrkDiscoveryMultiKeyringExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/MultiKeyringExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/MultiMrkKeyringExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/RawAesKeyringExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/RawEcdhKeyringExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/RawRsaKeyringExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/SharedCacheAcrossHierarchicalKeyringsExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/searchableencryption/BasicSearchableEncryptionExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/searchableencryption/BeaconStylesSearchableEncryptionExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/searchableencryption/CompoundBeaconSearchableEncryptionExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/searchableencryption/VirtualBeaconSearchableEncryptionExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/searchableencryption/complexexample/BeaconConfig.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/searchableencryption/complexexample/ComplexSearchableEncryptionExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/searchableencryption/complexexample/PutRequests.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/searchableencryption/complexexample/QueryRequests.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/searchableencryption/complexexample/README.md delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/TestBasicPutGetExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/TestCreateKeyStoreKeyExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/TestCreateKeyStoreTableExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/TestGetEncryptedDataKeyDescriptionExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/TestScanErrorExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/TestUtils.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/clientsupplier/TestClientSupplierExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/enhanced/TestEnhancedPutGetExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/enhanced/TestSingleTableExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/itemencryptor/TestItemEncryptDecryptExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestHierarchicalKeyringExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestKmsEcdhKeyringExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestKmsRsaKeyringExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestMrkDiscoveryMultiKeyringExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestMrkMultiKeyringExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestMultiKeyringExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestRawAesKeyringExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestRawEcdhKeyringExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestRawRsaKeyringExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestSharedCacheAcrossHierarchicalKeyringsExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/searchableencryption/SearchableEncryptionTestUtils.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/searchableencryption/TestBasicSearchableEncryptionExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/searchableencryption/TestBeaconStylesSearchableEncryptionExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/searchableencryption/TestCompoundBeaconSearchableEncryptionExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/searchableencryption/TestVirtualBeaconSearchableEncryptionExample.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/searchableencryption/complexexample/ComplexSearchableEncryptionTestUtils.class delete mode 100644 Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/searchableencryption/complexexample/TestComplexSearchableEncryptionExample.class diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/BasicPutGetExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/BasicPutGetExample.class deleted file mode 100644 index def02a53367ed3e560eb047eb714ceded3a4cba1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2272 zcmd5--)|d55dPM`eNEcLB@Kp_9&Lf->eSS2rQ#x_Gznm8he|1tswxlb^VYfM?$+8{ zr)fAZE`_?WPVbl|Ve)?(FP-v)|0k&V2Fb=l1}dM=6U0 z!^KG6)VH}3WghTPWLS1pucKvK@y=$iEI#Hz#}`rgGLJm>YFED}^h#fsMT%kS7T@M& zpNH-8hs|5U)eM=pz0lL|FeK;Z*BMevvL!4ek)J>s8HPi3FBGfYpefWf-t+}Sp)OtS zuXE*@^+1`@n_k3Ftv@fnOAH5za7~MVNSld4&eey6*R=A&_N9MMGryk2G&wxHaz!br zayZPA4?hZ(h@`(QTDB{Lj^}gj$xHfg%(#!>tGxGcpP{gk8IgY+{_KZE7}>G9=W$OF0Dj33cT7{6sot9^g* z=->J;u~vTh^2(y$mdewc!CKeTqDBv4pY$FEdza(TwOUAz#1)haYF~W+dHho>aU6|i zG`w@)a9S3oFk=ec5r&yD#U`$Z0rx_NBXc*NEIp=Vyu@%~STbt9FWTH+RPAmcLMpz- zSNf$n9A&t3P1>p(+NM_8gIZm(z0mc$EkRmgZv_#(CyFhPY_8hTjW;(+cB|D-kX0Ut zM;m8pqr;W6}4n$li37!Hh(XP6#65K|)?gA;@0B_nl;=?xZRWCtX=}GL>q|$yTaqCs(OvPL~#nsbadAxr0{>(PT{Y0~AR9lFU7z ztG*(N4=|0dF@taDM}CWAc!(4D4sYOll<*@K@DtA9XY%_OoW-v=hu?4kKj0#MkEy=j zCkC4$2C{OB&?kv@ku;}BN|42)c#Wha?abnJl2T;7K;KDfgc5Pj>Wabf}ufdZuzxwo_jECeTldTEPP$$UutkT|a0O}dr6Ywd0e;a_p8 z1QOi&QHZfa>K=RuTxLAG^Pc9-KL7gt?FWFDcmND{imsHiDePgug;2vW; z$I1w+vrBOrraCWV#vP3l7DkiM+`bBf?tGR8<}l?-X%{9UyrywFagKi$X>yrzM!XlBTFOoZ`ku$`5--v*5@q^lQHz(N^8jnN3?c}O^~(e&jCF8B1=>Bsfs8w%FEkV=zOiN1B&G}(7`Q= zy;%e0+f;RN2PNTwY0ff08 AWB>pF diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/CreateKeyStoreKeyExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/CreateKeyStoreKeyExample.class deleted file mode 100644 index 6e276b20c8480eae4d5282e73fddd8355771f3ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1266 zcmbtTT~8B16g|@x+O9=P`A`saM8vkDO^8oo2$g`M1s{qSVq!Ag4rO6?W;5L)^?&#a z`~^N?G=X>D{6ogOZE1~djEOJvaX-#I_s*H`Kfj&>c!XRW5r);eJ_z0mBMZV4AG9ji zrs)T|W`uv(EXY&g`L3)N){PW_d?}mdK$~#iXnW#_F{F>gi72>2)e5gFN74=$hMzdf z304`R+1wsOY+YBSg(#9K3}KjIwB#tc)9@V zkL3!(*d_OFCk!vLr5^KgU>sFj`4>yBKPZkdYO05}VT?8jj5GXrt&FT|_e55?tv%my zMc`<~eWR&Qul|@@$xCkB7E0-WS0wM|1eyyTG=2Hku%2^Ws{^Mt0Et4j%WZGNv^n&b zvy$EUY$?AH48pOH#$@=8Qw);>M%a3APdJKUD*Lv7R=K@6W*Fvs)7o-fSrcy2)Eb^t z!N#dA{cuPL%rd;&)!Z}`52e66f?VQ`vfV~il2!8Kjx1ZE*%6*x;;ybaB&W;4wv9qn z`LS0gW6>x=;KJ1E7N#+2f#FsPS20Rj4Xq601DKPH`f7#B?RC;o5v31cz>w^gXBa65 z!am*>en;z8SvQO=H=Xb|%ypmPj}P}StcBaeH%h-4w6gF=(Hf^)fp$jwQ2q>w&vb~u zqBV2_Gq^%)svSW42;Gul&twUc^8^-xTHlb~&t%RpaY47=5f)kqkyhR{T<_$4q^ua( z7V_t@PZ;@z>HW-&Gt6D&qsygyYA@G=d=qktwm2MJI5VPEjnjDzG%U@6j=W>@PvY BQD6W7 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/CreateKeyStoreTableExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/CreateKeyStoreTableExample.class deleted file mode 100644 index 862b72bd59347650d7f387d49a142d36f9e4c40a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1261 zcmbtT-A)rh6#k|yl&&D9{3wb#f?%m=6XK0xj8IXLf)_;+Vq!Ag4rO6?W;5L)^*MY4 zpTH}OByjHo_&CP1yM;n%jEOh%bAG<_oipG3{Qct?z+=p&kzjby(A&W$VPsKw;Z*NyOZT19yvJl~a#V#!Dm$W_^@1lq_AQFY~V>`NoXklhvgqUZ`$FTShpN;_ca zedZ`9c+QZ_&u%iLO1dU3B$4Sy4|*8}%Z`%kO|L3V1jmpoYg@RR!Z;y(+n5S=oCd>E z`G0vXFbtpakGpACc#M{xz)QENQjv)Vm;2$XX@#Hciao zayct=@p)I2-we8eS;%5Ee7`Y<(Jo_)9@-O*Vi?PRxIDygWH%TlJ0n|hU0E0IqNz7M zsej83N;8-=Rz zJ+DE=MWYCT3sY}c7{{muhCBVZib2w7XeF6+Va_mgsaB}iPA6^UPgBD6EFN#5hSm7__qRFVUK&Tak7~dr#pIec$Mi zfJJNQ2Cm}@t^IKT?E`engk6&*OfC>u2x=W6yOqlwV&sHw=MknOghZ5gjqu{UFO-!c z+f?B=^%Vn07~jg>JjAV&LUO)bNX@Smdgj+3%su>$+aaZ7L}`Xf14~4$ME93Or$oYf zjS;*d;1x{ZEhe!V6)eQ?;M6xLVvsyjR6K0x9-R^toyIhsl9-7quq?Un(=mbk9~&l5 A&Hw-a diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/GetEncryptedDataKeyDescriptionExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/GetEncryptedDataKeyDescriptionExample.class deleted file mode 100644 index 2f334f498dd72ff510b8ecfdf829e79004ab363b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2082 zcmd5-TW=dh6#mBd-6qsYNLvGKmxfESb#2M25OS+RNlazMNsH22s(2djPMmFbXIHc9 zG%ojx_#sIA0G@)V)V?F}JNOrfGq!6Rb(JE-0}nfME_2SD@60)8fBW;-rvR>^UPOjr zI}Z1gM_h?I5BTFy)*UsBlCZCMbTF)oBOXM)i0ijR(vl;UaJP8Ex5aQv#E$Z!#0zC> ze5{BZL-_$e9&Z@+dHz?s!t{4uYOg zcX`hj49lI+;eMAZPxBLDE;;aGhMmrT81glS3;h$ZG5oaNnPJ*XlqdVw{%?|vZV^kA z$yuN+r9xH03S)oVlS;&)e<)nb34_Sh}`fVEFxRXsLm;bXQuFK~c3l>G%Uzkd!{%yt_OQ zRV(5u@pRSE;P^Y&<$g5|RYHpK(FsHH0U3&;h-QdzNqt9!hn_1`+f5hC{cxuENO9>L zkX75YxOAs}rt+>(u`Vc2T3q#G6BVqQV7Rz|S8$r9l$J8Aq$G;Lm_pODYL>9cbYNJR z2TXlA&k{0*Q*)T<_&jKOy;Rf;XVc^ao5Fmqnc{1^4Ch{uPEa!}?j_uLxWl8#a5eYB zfpWyho*uvU$wfRF_ce_hZ&J>(^g{uyOwV&#i^SDwXSC<-W0Za-A_J3Ftp*k9DOwlC z2WVd;&d_-$i8i+N-+^}X3Cj1Emyhx4Gvekwyf^ZY8QGo1xv?Eh|_z{aw zP`SVS`Z3Nwv$Ktkoonpa`NpnYXf$(nvC+)irAD)0mx(XhWfGL^GD(cf)hm@;C0{92 zij`8u_yrdPMh+`#Af z0AJuke2JU*3Y+*EEqsGp_!ez^hi!b19ejp6_+bQXe+&c`WfnlWN GQ2PrxHeJyG diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/ManipulationUtils$ManipulationException.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/ManipulationUtils$ManipulationException.class deleted file mode 100644 index 8d6256a285b349632410458b46988a6f284bc22d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 873 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 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/clientsupplier/ClientSupplierExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/clientsupplier/ClientSupplierExample.class deleted file mode 100644 index e3eeb38b57838c9115b371465cf7fe46f7cebf15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3324 zcmeHKTXz#x6#jOaWHLj65=fyyVL-$-6jG}erL`DB!Pt~rfLh8zPAAha?OfuSNg+PN zn{WOCmk&PsRF$>h-6wyC{s(c-Bq42SDO8tFu9bD>T=wmJ`<%1C{Px$c&j5UgNd+;& z7rwU;JQUK*2}gY6xj92NYJpdkqV}MXGam`3W}AM_ur1RK{Ccg%9hoac!*Xjl*_2Wc zC-f|eWs$RmTg_daUo?$?kQ}#ME0`d34Gi8U#0y@<)X)XB8wn%{yGxd9Ua33tro1WU zZIh5Ld4{lW3u%Sp)?_?*VEKen>EDZZjBt4ER<6~9VqiL#&FDi|8Yp!(R1T!&R>wA* zsRx#wD_MTfl2|{EK-ttr2#s2{s;&s?k}>#hJD$g1jcsCmG_R4_DnbQ&Ib9td#d&`xk@7c>{MK?UBX4xXJJXfztk2C1_=X6b-7J`w!L+NEV_Ik4U=(~TV&^Lbvxc7T>OsDO@Uz*%Qw7bQ#LMHHV3vVfG8>eUs0us6atXZybFY?+!P^QB z6OMNt`l4-{Rbl64weBzvn0yr88ouT!93kAi>FKiW>S2A>TZ~~yw_L-nS4^HY^-87r zJ`CwgW+N}%Aw54+)`eksbtV-*c*ir71O+wq7hbD z4LZ~vIDwN2-X-knh=i-%cnl85_KlLY8Splhw3oOj!6+7$VTH2Ev(c z?80v5D`7Ys#s)wUy4zd3BAkf0bTDgGdgedPO|uC%A~{zVxB}%{n`duDuBq*n8%-1l zsWv)HshSz;&AplZqm2B5cVd`%tWZYDB>V4w|KiWKXfz&8Wm2PRD6M2OYFk>R zjG9Sh;w=8hsiD3^pOPL-pZXc6!_CK|a27d0P@W0%1!z=2H-CHR686z$zUNaoNG0^s z6`Z827^LesO*b%1w=hm+oag=|UBl-zgX{DqX6O#)Xb$)29v0~?9PS4+i-&X{k4Z$Z z)S~tY=VF*+*oUw2K1LX#190#G_hKB+690|(h+*!>1B`Mnj+6KbXYn!Tau9d%3C|^Q zny>OX?kTv=@?*TJV20B;&T}cu;c&F7;#2n1%XXVKCfG((euCxC^V(S?dS2itQVKp( dkmnzff)m7tV%G~CfwpeGy~aToSUrY|e*+du=->bV diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/clientsupplier/RegionalRoleClientSupplier.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/clientsupplier/RegionalRoleClientSupplier.class deleted file mode 100644 index 7241e7d06be26ceea03ae25abf041ec1417ba593..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1251 zcmb_cOK%e~5dNHmya-JR6ev)-g-d$LUN{kigd!dhp%qPN#nIWgiQ8R!WjiV1k0F5s zcYYLN@={0|a-oOy&e${adA^zPuixK(0CY(}6NuMx zM9}WPN3JsBn8>axni4Cmqe*>BQ_4-y8)mS}u(1f7!5-CMsRbAc@1?a=q88QMVh=P5 z^iU*_$2Fu$$|Hm9c!&5Sjp6$EAxV-%r{7WdRNDB8&7WhNTePMpC%8>=VJdIo4rvT` lagWwngaqwPB5bdSu(KjU5)a5Hfrr?kKk%5oH0h7v{Q=Icd^P|8 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/clientsupplier/RegionalRoleClientSupplierConfig.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/clientsupplier/RegionalRoleClientSupplierConfig.class deleted file mode 100644 index 4a84f1c8d80ea5e3a80f6fb27e82465a8dabe641..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1195 zcmb_bYflqV5Iwi8^uZ!fdHX)Q_iIpm@UG3+?jfqTMjq47F@Z<$)vZZ=%2 zX7k2jQxoraygwvVVnJQy2WC_CDXNxfG*!=0 z1$SIEqrTkG)nn0gsCIFuyjQ$LCG-dEMule?ZR80IfWmpbRvi7Zo&t|e(ocbOran%-rI6s&!bKp2Ax`jL!cn4v!yc~Eza zJBL&|fgudW!7!$v2iN1cg*#E)W|+LH5L$t=f2_5-aoSo?Fpj%K|7^hwQ>DMUxtO3* z_Y~a61BQ^?XBbFLcQ)3Ihe$;+MbbFuPP`RNBTcO~Jkr;b)P;*J(Jgi&7qhny`RzVd zpawmhX~JKSG{q~gUJ>>-uNbtHWXY;>W0%{~_uF8^J(Q%Ty^fCm%WI;QCUncQtKzxz zDNO$9`OWwf!UQcdOiw+GF@ST;CEAmHcqxTi1*PSDFjKfHwZB)1EX&) zeTsqfcMQEb#mHxjraxiyBW`}dL^AdjlVR+&kVih!-9kPD8E4225eMH!Fidquh}|f% U#6%-hY30W(GUPGLkqsgH8~+MKS^xk5 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/EnhancedPutGetExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/EnhancedPutGetExample.class deleted file mode 100644 index 7d64729e91f94c1ea6e58ea9f567b63d182f70ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1688 zcmb_cTTc@~6h6}yX;*HRi-5NQZ%_$U;u9DXgkl<6B|%Ay@nO0h%E0bSGdl~^Xa9)) z1D`OGz=N20`A^0(+m>Q1kq}>I=FH4@=KJPce*F4;000jm(+M#Gi-B41p>VVA^Ee=FLC{Xl{`)$T~IFb)|eL7ZfqvZ zh6o5O75)d;IRZUMK5w{>0_;R!cB0TCziPCQmASL*tX*orHc8d;d~u z9w={{m#M4#s_>W*O46!UD9sOMsgo))!%?cYqSdx2a~)8ZNvRAiae53kiZW_yRerYn zZEh_nxh^Vgd^@QH&5^_WPO$6;MZHxFJtLNR&3-{%RzuSUL{AVp2i!^J8xQ=$_hL;l zUoDoJDHml!PDTleA9<>%ll;!>!$~bZ$<2EerG?q>S3_ZV9>aJ_aJC!yil}4GO`3U$ zA$B>|ls*+-4{i%vueAkFaA{hC+rXRgYeCyQds-YF2l`;pmf{eB!8Roj)vV8iBrr7b z`tO3U**{8Pyp{cV&*K&5&Ff0&TkgA7IL0aoR|%}VP*jJK+G?ha&N4-XbiJ_5ahKCA zKfu($k7fa7x)Qv;|AsPIrsZ-e3jQr9S#{hTXB92}43pjV9m9nC6$AUBHEP=DL4}GuF z={*=YMC+u7>BvJY!d-^p2JRiAESa&)LB|K^-iMJ_=_`A1?JyIcDP$5e#d}lf>+w%O zEunZsXdIHb{({7g(Ef^KjxdG3!2o#t9r0pLF5h9E)UNuajO8>V@l`RuKd zc~`fZM%6WIZnyG$kNHiH2YD{HnRIzAUsirqHC99OjGJQTb_h}g#&_5*%X>`L^DnA9 z+%*IS9|V9>#XW=0@<>1nYY2TuyUkK znQajeD3t%7=^}wqq+T-INBVXn@Nll&rM_mgkoCpmXiD=NLvR|S=%R~SE1iZ3lKA~n zY91(Wm)EGP{HE}j5lYggRv4HcJfu#h!VJeiy;ZGtMUCr#x=c!CXqD3=uu+sz(`xeL zy^nddtmKxc$Jll<%bFvHr8mKIKd9(NCG?DV&Rg~iO0pT67!d6tbON}ODMb$cVY|?h z%vXhKF{-*_zY`3>cp2zFVThjH=w?DIIzZEMX4HpTlt}CiTN$sSd z(agF{g>=2J#!<^@!w<0VFpVsrOxJ_gcQ+}MHCn4x+oiR_e13FyZ_|NuFqMWY1SVnz zo&yAChG7)OaH?5r_$(#}0_j7ycC>Y4iKYyJ;a>LyM%D~-8x_`!CZDsWLM)%B!p_F& z7$SG9O_)JCNgU~bE3u;$*CCYhxD(t5a{G|}fQJM)xY}!gdvFTZ;m!lxM^MVxkWgd6 zIW(5S-8q2qSJ~`7OnyPB*TRFgg+v>77N#TIJ49JBGr7+L?_uNs&b`WB*oRABa><2q zF11j(bvt`G`4Olklx!24g*2YOA+hf$|3EU|v3!2QB>Y0NzkwoOOO|#F!z^4yX%Z=4 agX`#a8j0V)QvzNoq@-Q& zt6r!|KKC}Ow)n`)o+|=d$W1N_qG;zFnpk#u5G0|K!N7aI#ch|%lD(dPFA5<8)8l^V zgpQJrMU}zeT4PHt^c`86V~`A#AL?bc%D~_uF61krm}(wOHxFhQbk94|2^Sc2q%#`~ zI+s;Z7|;O&CYaFAAhqU5@w8IT3;zYryMoSE1@3Ne-=T4BvNPOt0tWMI|6e**kSdAr z*lC2*~(#3<8V8*U3?p9FF{(5KMeh}4OU@&Sz7j&ZgmVbjg`nw z^yP4^sjG4;rmZ7u2d#M^^?kx_=bVyUmu__~36rQ-<4!#AedYH6CVl-<`XW&7mMB^U zRrVZL`^55mg~lmoEu*)6UaO$3VdaHYPZBDNTVd4`h5p^w0goT~T*@z9}5KhX4# zx=uPXcyuTZTM}H(!8ts)1OK31kRb2lTY?;>BYH6if$QN8qKqKRs z*ol4aYFkxPl} z_FrUoV#%^GWb?6P^GLRD2l9Q*3U^z*wh%>KM%0xysC1DSroFGlS=4udW|jc{07h@( AE&u=k diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/SimpleClass2.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/SimpleClass2.class deleted file mode 100644 index 607ea42fa314d3ccf594158c12e4b49b21564d8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2260 zcmb`HS#Q%o5XWcJBdzO_QtlqqK!Kzj2ATprDD*-q6p9E`0v^yNSyF?uYuQdAd?p@1 zYE=m&c;`bQX0~Y(9ES(!i^qF-_Ba3euYdmf`W*nWu#|)ZgV{j63Ey*H*u2a?Drpz| zsu!w~&%Mp6Ek5wF=Ze4j&3?y4WkfaOyJ;97!TimUnp8fUKzJ4dFy})49gf8etHG-%b$I`80P}>aD zEw|r&>?HR8(SZQhk|J&oxoe;Bya`F@!E=$Yer{)am00?brCw*2>X|U1m+I-q-HnyV zPBi9lt*NVWE2ga@Yx}KPk@`kqw{uQOu1mK%n}lnqSL0Hw_`dRc;0A-2&!sN{y&n2i|L5w(Glg;5$Q1Y;TQOe!sj6z*%%qd zu8CbpebL(vl;e!kNe235?wnmv&&J!DHyz(^%q|&Oii2xyM9rR6Lbpp(G8uv$(59cdmtQ z{1dJ=(~ZZ{U4V-%bi+F^9;HhoL#7QKwS?%>s9jX}ZOBArx*Q8~DPE>b6yzF$TyFzH zo*A)GC31uD4eS?#*LPv^2acL0nrtF7>Xw*_C%YLXn?|ykHe}>d zBD?(u*>o(~ObppvEZH2A?b(5RU$erURk_xU7(pofZxyR B;@JQI diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/SimpleClass3.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/SimpleClass3.class deleted file mode 100644 index 28e0c67437d1110ad8c880f515eb0b2719bcd874..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2260 zcmb`HT~pIQ6o${1k3tAm5WfH=Dr$>JR1g#pMbH@(!J*2Gdf{x_wM5h1Op=22H+i8m zFwW?V-ut5*&sj=a)6@&)CMWxmv(I_YyZQO+>vsT{f~6!R7|aFgO}N8-Ve=CIproDm zD_*FIKKHgNws_A=o+|=d$Sp4OqF`qonpkpq5KJbaox#z!e4E=YmqmL$_g3UX2BydT z&hsuC92YB6&#_a(0P(p73p6 z|J+{IYsuO77Kfz&q&yPb84a$UNWxg=aez3P|Zf$uB73oz-+=h7E}a<@gn z%Bzy+xY{R{=PNW$Y1T5jTj#a%+8S0)ShXafvbYsiJYg7M!xY_W(J z$JiH0eb(Fh@Y$&+Q_zp^=Kcma1_L-^a2!tHAt&)Yh4B=|(>OaAz)&RPE)0Ld)dbWt z4#s9Y3nQ3;a29ZP0%Pacl|2})^B8*eES5N;GY|n$?laLF6;GvDC`p~}JnpK}U1*{k z{fMiLbfd9!m*8>}-OwJ4M(NVXkZD0jEg`xzY8MrL7cxn%XY z69h7@n|M`=$Y25^$v=f&A~zV{z<$wx{R>R~z)_<_lMQ4>%@Q}`$)=-Zw~=hN1sS=N z$Zq{Xb~~1AHim3ImTVr$_U%BvuUg?wv)2})s7r{t+ya#@62r9jv^b0UF3`+E>-#*J!Ai(CE9a=)|E?-UuN z*B$BT4F)6mg+m6TTdFP$7=d#pWZ^vqxjjdU{Z_Lo{71a%3Ib6z?jCaAA-}UYs*jw2 z!R@_wCf4wbv zQ`M_>lY5@VrUY~z@CfXCg;3E^pAdS@s z;?=m2A1ns7&A_@CSSq8PqC6W~rz#2qK8bqQ~nkb!ahE)w>>JDM*OOBPvrdETOY z7EPF-e6n~t+KHV+mCkgUT9(HNZJpigwq{3$I1PCq-F7JhDEVA8Av?aW{Bc0F z|L|D)B2ezJs9QDF^c*+TiRJkUh0|QKjEUiKty(Azt17Hs5Unh3>9!{f18%}9&50Gu zZJDzE(gY*Sy1yO>G?$Raw%S)XK{(Unu+HGew_)zZcr$bi6@ez#diTZ(fq!GdNU7a5!KBoTifZ{avFp%< zcCP<6ULp-KxPKw~5Aw_eIPbr$7(BfQ#7L^iOEPQB@5^WaW#9J7D zbLiP<8QQVJYnb{iJT{HL>2Prh-p6P2^72}$YBy=cZ9kzsI{--s5^+dI|P*micmLCq25VE l-AX{cmx#KPT*Tct**=mT3?ZWtXPEH4ux;gV4rt{*z`qNYJm~-c diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/SimpleViaLombok$SimpleViaLombokBuilder.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/SimpleViaLombok$SimpleViaLombokBuilder.class deleted file mode 100644 index 47326d21394b5a4e6cc0994093e42620b6591be2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2232 zcmcIk>rN9<5dKa}X{n1~<)$q{6|^mdm5bK`3MjbRXd+sJ|4!Q@EVR4Lc8lUuX~HFu z#0T)9jB~mhDcdSd2tRgrW_Hduw{Om`-#>l=n8V8;d<^fa<|q3zw}i^e{HtlG1#7Qj zo0}G|Z0)Jy3olnnqN)mGiyH+|RM&NB$mu+5mh7}Bug6LrA-R8SoEpcO0 zeUsl71)D*saLd+h-85c_J%&j3#AV&KbYnBa5Pe%SY`rWrV^^>0`I1;N4AbWFP*ol& z)dQ<*!Vng>MUjpKtEOew5t+si<~CvFYqpqfRAw5LS%%Je-O%kt27e-%W9V2hiy{m^ zA_^{}hoL8{8{&1XoEO$RPHD*4W`UP-+|s4)8awPQo$~sSy^uyyaXX3TE+sE0S{E3u zDF~pG;bTI($S^SlT?os7Hxyh#r<6t&D2{YfLAOjIke7sFSWcWbmrM}185Yksr7*^k zko-t8WLwNdYaUfQ7RkSmZ8|H!&_~5KEk+QN41->?yKf<=40E1cobu?dZ=!Jr7s5zm zT2@5s(chw?WKMd_DY%FGv@^U?5eCg;vXyI7(r&~|2oGub(xdL0)`LElkVNm8q}e~p zqJs+z-RaSjja~@h$!XIJnU+qQX34a|z>+fe=L%Aop!n-%%_@jhU9NJUr#DkF1G=9y zgKm|T60cSTE%kuM%dH1-;;Nr6(ExmMS4azzCch#2`XsTNY(()U8KlnZ zc%cRy7Z-}0-P#$|d!7DyvpWHe9w6E_sM9<~cfy&O4z~^Jbe{%%Ht0y(pw9S+dS`>i z+Xi*!&u|N4Eqc02U6#X*9b_WxeZg|eRYcw{t3+8)9y-_op1=HRz?21_} ztXPtnS$d>d z!hE-7)abaw(ToWab$;S%n!!1tV+xNm)2MN!os^7bNeZ9P@g&9>B?>P^vRX!dM#lv5 z67`gh$1pCbr*-^Z;`f<1EhR-A^Ieh|0paYgkkB>()$ulDln%+rkHt#Lm&KSvJ}_EI z!vQSHih)>RaS&NC5Uq@Z$QoSnjLPPc(FikC+c26N?W%Z5$BWXb>ZRq<(s@>{Yc^Xo z_J+Zj(F0>q>mn~#C;wr$j% zYPnFCE^rG*rzsZB`Lc86Xic!UT)Zzz&$R2B8r3bM){@8H3*p><|@8-b7eEPr^It|M$X%AnCUb;Twz-GFzlRjfkht7)Pdq&(#&Xh zU*Pp$V$z<*AGe9wz2daoiut@Hht^1}eru>_lOKavpHl^Ae>ZBPTtnjGXiSn^WF@bH@8`PI$i4{OK4(AAUtD z!S9Fo9_H_T@+2aczk@^h$sLU3M|W@}KedCS`K+>ohw@o<2cusQ(}!R4DZd8w{D#ld z!MDiaI9Jr-+au*U-=aRBk~T?ubMoc^#iyiQD(@tZ;L#pdjgu$;X?HQUb_c)vC+Y6p zB}T}(*F!^r5^0B;{}M;zpAY)R>j8jf9rqP+ly)l;ACNad`OakibEwMg$^Srn3bp_C zc1GsD&OGHE$CBOWf#-_H$==9RYGQqiL5FyiEog( zg~6@y>!D1-WDlwBgBHNKWmd7m1fsd3>Wdf@|06A{ zwnZn4315`h6ERf$YP7d^Ukt1Yz1xo)c$r?|9HEaEN%dg_*RVvtNbfG;0x5-OoW?~` zDk^x89+uvfUi$~M@99v5UK4_z;_G`pJL^8lI1IH7Xk(Q9tPqxnz&gk{Hv}j5gFE;h z0)E0Xa^`nO3QcJ?&r-UJ<+aSKcd#mBw2QUOn|#Qq?c(iBIiP1HzZ%eUlD-zuCndeX z$1bk_SUs0Q#|wFF=El*6SECU_G_cOMO_Q7^8h#gyc8ig?_Ds)i!5jMl+TZPHce}J7 zkx3J6W!awEd4&%hndZCc+Z{CQ+0dEkyYSXBTX*o@zhWA55sm3RZ}93L+AB3~hZ?0v w2Iz^<8#jG>_iyos9$P%xV~c+L(KqBzXe<4IiXW-qLwrPm{0n4^zds}O1N_ddD*ylh diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/SingleTableExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/enhanced/SingleTableExample.class deleted file mode 100644 index bed07f136b1f150da11ab4ddeb9f1a0c76ec2c22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1683 zcmbtUTTc@~6h6}yX;%;|cdr8~LPe{@Com>hs%dDEq=+Gehv{}G3%fJT>?}~9{UiDh ze8NZq@BS7s@$zguvn`Z_5(&P{{rk>$=3Ku1`LYiHPa)L~5dt&5T+`c3@ig<;J1Nq( zs#UeDC{|ssrTGr?sxJ4_T&y!;^K!cAh>FV>S;^(u`ei%B2y}0-EtYnfsH9()Hn^<` zTzcjRM?WVJ9UEUF5X;Ciw;&3M4rqf*1iJE$;PZi3;wq#gkjzV)xl2qrhQ4ta)9a2; zAd~-Zq0?w#Q8D2&TfbF~<~hwhq@EhfH`N!lLJz0UbCMfhYKN=nNE4k^N~$>YkjRHO zLUCWZTf9td=~W$0>%PDi^Q=17PH7#*^4Azn|s%uq# zzV|I&Wu#bhDlNFJL`HGcFthE?d454{76Mm0bG&B0ASbGUZULev1YH1bC2|b||KOgj z3FgV!QnrzK^^_A~dg4c(>C{Pm7v-=LvoEqUZbf32tb4`4tN3%0!u#%cU^*^UUMNcTZL=7=pey+(z|BIkFJwR~+qzP0IoT z!yRx1y0G~eJ_0>0+#nD?GHg0f)0;*oAkcAA0D;b;X7*-*RT~Y;D#`#u{L*nbfq~Qg z@sXi~VN?^vz6&@K(*SX7$6Xp{f^%DH7vi6A5djNFa}6*GmvQW-}6DZX*ls`!;iScQBUD}1a-OJv#SihKw zCi?D&@go@L{*){B3Jv;TVqf;MoB7Sm&d&U1?)%TrUjg7HJkLRfz@aZs^#xVTqAvX? zg=MS0r)67FuhX~K2kLqb^DQPiRM@O#HE7deb-Tk{y4&SWi>c$Te#3MnlFUJtz`_~r zQOlvCZ5=hwn5_xSZgau)D*`iX>n8-VW!YjmC=e(nvK6JI%EMhU`{S)p%$H7&wM<*O z9(SnbQkb5SXx;TUO{380Fq6BURN5R|p%h)AG<=0ptI0%ofC~K9xoJ}&q&Az(9GIBu z8hY~oB3>@lOmXU9KJ_@Ju>VI{G1YdpnhxUV9$yn(Q%jSYy6-WgFo}GMR9T8s-cEhF zvSR4N&V|44`UmR#pzCP9&-#jsc2#&?odOzm=oWCJP>l`Tpu5i7;z&6C22FE)*o!@R zD0K&2ovi1neMz(qs z>kc^_QJ3}x>|7OCl{UlfqsHQ+j7hLjS1LQ437uRx1#T3gS52TPX2&H*;%!wkH?}je zmp5Sy1M+Zh4(`A_fu*%t(h=)ANZGBRV-{;%u*0s~WGZ}J0*f_iQ|BZOXndH(jPVH^ z*9JZD@3i$T0`u7CgPUNl4?YAoQ#>8@ee|Tdev*e}GSir#$xlKJ!$~}e{FF+5AAp7< znAAs9T2m?+VX}XjN^rDxDHjBm*WQnoUQl@}1Xi!FJe;lx7>jw zQb1X-3OL^5uLa;rkj-Xs&4s@j!5+Z)0{M4~#wVEjhPwJ8OeoVM9QD=*!I9JNKSBclOTNzy5yp2EauuPa?SP>W&fdcDE`Yizp6dQVpz(r0VUNYMrcF&svk2v(^ioM1f)Eq1YAG zP^eDzR_mekEyIB;feP$ZhWz5v7DHiGx21iA?0fxhkK*^hF)RN}5XoZrY+|a%V zw}c6t-FFu3c91aKYW%09FEbq4NUbaChRi00^~J`ZicM<*)w%p-o~5lxd_@%w;A+Nb zQ^XOL|K*M{GST6#Y;#{naS#d{XvJfrspu%V#Jy5eSV@-Fs*%KD8)1HIN8hOgtyk1-HH^(dWg~=5^u04r(Pqsc9lX11!^UmRO{%!l zINlfDWgaL$Oxu#YlJ7(bJqx;Gk#J!;$-VRUxlnE1ZnrXlyeT62e($II9_BGu#J3Fd zL!Iz%!7k!713T}5;mi~c;V_A_gJw7~q9TUkI}T2v2Zi+&l3{9?3&ZrL75+|B#C-wx zHg#%zc|C9ve`+kNA00AI6RAA?sz4)i{|Oo=$*R)KXr8F-q4+y3a`0$$+rSwdq;aYj zK=U+NC07`ETyllL3N(AKF>|+E-oxx$vW5{V8A2}0JBH)^yq_t{ky)s`nfMjcuQ7kO zd}0qL-&XP$8kNF@=DFqasWN|w1;;3#F_ek8)nZZtlLF;M|oUFCs=#K+ETWeYRyq|-&mKW3td zzWd;B@fR5H%t|0(ClZW_57TLH?>%kLJ@7mXr zb#&00wZ>L)fw3Rk+RD^K2eQXQ6DKMXP8rP;Yl29|=|k?gf zHG6^7g@FLl-aZe7*2eKb^1~zkU##|OrbTR414`zItd4jKcZLh@vPAl|=h7VuTDK-% z?d3?D1D6ck8H3yU?6IW>`#vTyT}KrcNoFHdlxt?HqqKZIhy!W6f@F}Z)Py415mx2v z-^Ov*S1H4b&Y>#)wsuJQvt?8=JXz|LZ5C9mESK&N=~$`a8pHQfD8B5RQd&P+WI2gvL7gylp942Vy!z=z3+Nq*OqhIvuvBJ;)jLA2R^B*zw zwTNoaI6*$3=u0%#i@A@>n4uNJ6}tNPmj diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/HierarchicalKeyringExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/HierarchicalKeyringExample.class deleted file mode 100644 index 6eabc07c9c26b8c79ce572eb0f50a1f25d8c8568..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2690 zcmc&$-A@}w5dRJSz`j5M6QC|_bC9N(!(ea{MS`jlB{aA(G^#05l&AH1u`k?*wRa|= z|3n}9+&`jERE?Cp_Ydl0)w#2Y9r=K$>c`9N?(EF$?>9F)v%mlO+iL*#us(_r!k+IP z2QP$@CE;IK3AB|#) zy3n#a!feSyPPG`;`~&5&=-5G|6su6_ zRiBv6cj1NAY}<@(!PTj?6BWK|R8MKCaMRlol2xb$BRa{e!E8j)EVY||M?X##`u4#7~lBH5_H0lxhq8>_#18mk8p#(V_gLv$9a_vqs5ZY*kETF9<^7Pe45Lhq5k5xWi{nqkzw`#02J8QsCJL=AmPmX9*tX fIT%YwvhFNac$VVz6pB1cV>QA`Vbs=mI)c()zSKLC diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/KmsEcdhKeyringExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/KmsEcdhKeyringExample.class deleted file mode 100644 index 1dd0ed0708059c54b464e3f2665dd8b410854073..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10251 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 Cm-%`C diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/MultiKeyringExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/MultiKeyringExample.class deleted file mode 100644 index a49ea3d055d959ae4326ceeb89daf02e877962c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3538 zcmeHKU3(Kn6n-a7NwQ6)1PbLtSx`%w7J{`ZQWVotFf=KZlwz$4)6Fzp*pEE3o0j-X zy!XOey`k0m(0ecaJw863*B4rINgUydIH6OBEv|`vOte@MdkVEFX9BVE-{3 zNd17&{vM+JXdM8EI{F18px(>LH67d%uMlk)>E9K<(R8@&-dG84j2S1m!RYkt$>dIQ z{+GI1>bbWz$f851+7Og?`3eRfRJZLd$cxwZxo2WtP}zsZ|Eb*Tw$w0yLDlMxGYod= zEJ07Sx#=(*&o2M9&!~2Bis5{_T@)=#)VNiUwT3Mmf98pz4e>mQGYr=jTwOLCU3E)6 zYTIMF=@?d{D(J1ytJUy;=-jF5)Xxjjq3=4EHBZAy3~FFFn}&{a3`c9i5t1(Z@TOOt zj(YHk>_~|7h3=Qcn=}E~9ixHjt4X}gz%DDZ7t(kQhiL{-&d7R~a2e9i0nTwd7zWyr zM;(-AiV!zL9}ikk1Z=P?EQbDy&yB}rUJp({67SG3Qkbb|co**_Fu`zA`FIk|JbCIQ zx5Btxna2D0fc(^GNN_x#I|gCOcdKLIyQ_`K1U{shqaDZHhU1&I=%^gcBuD04-D?Z&lW?AUA4%t(z%t!rzi#q37J93B5x5RTH%vFDSY}i*@sz_6DSeA zcO|(ck;WYEFldxvx@c%PtP-N^$nuni&rnI=E)gY2-EOv}v4DFdxj|C`6)?Lz)t!_H z+-DdL47B2!b1Rf+nk&LQx9UK|B0f>=8BV{XoJ40LK~#`e8l}?qi&irV(lxZ(cqLnDU;d6u^oEqv``Ez!~(q&7>e}1 zC9OEUyO4Vp{|^1zIJuNLy@}U%ay{dvTztH|g*WC#$1Y~hXWrVvu!7YSz#1m^V7KZ2 z!7MaZLYmeAb_d7UJcd|>Zn}FIW{ZK-T<8K>jFA2@93{A;1Yn5ZkI^oMGbDErm&kTL z@W2L;R2N)?@)t6oQZ|vfyoK@E@98heHm)pXu8wZv+D?v!^=({V+C zZZm9QzC88=*-%+bVKIV!o@|3XAm|SXI>#V0=w7TM%T{rT35>I~0QN*soF06RC9*Jx uv(ZkYuU}x9>}IJFU*ap;jZ+X`Qvk6bfHY#o1QvfsUxH2~!voTf;o+ZN@G{Z> diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/MultiMrkKeyringExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/keyring/MultiMrkKeyringExample.class deleted file mode 100644 index f1270eb0a83da22f96a9f9b1e8871392d0e5d768..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3005 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 UlmAA4UQk0DrTlt;rf9nUA4}EYumAu6 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/searchableencryption/VirtualBeaconSearchableEncryptionExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/searchableencryption/VirtualBeaconSearchableEncryptionExample.class deleted file mode 100644 index d87d9606d8c561838d2b3e20eb12a3221d117d10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3585 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 E0bkzWyZ`_I diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/searchableencryption/complexexample/QueryRequests.class b/Examples/runtimes/java/DynamoDbEncryption/bin/main/software/amazon/cryptography/examples/searchableencryption/complexexample/QueryRequests.class deleted file mode 100644 index fe85c293a1318faea03b690b835815d98f4653ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28889 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 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/TestCreateKeyStoreKeyExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/TestCreateKeyStoreKeyExample.class deleted file mode 100644 index 766c7e5063d7f745ede5d9746c2c2269ced729a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1022 zcmbtTZBNrs6n^g5=q$s*6chvzUqMqly3Mi8kRWKHG&6BHKi{>NQRv#Gy>rfg36U%@P42npo|osjr_cTM`^QfJMLbcEV0ab!N3zcYq4N&^>U+8s47$>9 z2fTYc(8U+t>AE7+4@D^V0>Py?5QB#FgUG%fMinF(=1%x$uDjf8>+f49!jcTrFCEX3 zI}B4Bn@xt~o^J~kQ@EBv3eyZ()A2;T*J+91khfgHkTZRYyG4>HiIz(aD^L)vr<9ozl)%1h5E@={UNj{Fm!>K9AG3b+X{3sna zOyeev?tG;Cb}PPf8jB1EJn*W#A68F0VYL@(eZtj@YN4F3l*$ETD{mC5r(&R2?8YnLMAQK+W``^BMsB4kf)PnWK&PSBmFH7tF%U8 zP{ItYnPCFiS@IaJQ#66>C~Gdx13ppv1nslA8}u!l;g(T|JyBMP>_N5z5r1C!OPU*D!L1qUL|CLV~ zAN&FSDC1qA!514I%p`Ya?zwa3+>c+sfBXc{z#{_%hEA5A>oHft<}v@0CU&4EL!Ay3 zA6`ss@tMcNNM!bz$n>!iT#HjN>FQL8Gv1HH+Zk@4$gp+EKXE(a$-sW!zZ8LHD7}=4 z)UOy;4xaWHipOavOsrt7f>o3lHhr0hccZv3)Rc~)>ZbvZdR)nze(o&l3z;#T`2Ry| zn_>UvY#4Swj1nzl(UX}Z8E=v#)m+OoAr*Umss^^EdQhT#flN!(Hc(}-m)H4G%P1@3 zHkI$Xu${0!&AW^phEuK*kB>9&D$cx7W{v4z%kk>1n%ivEox_^b@UFzfc0>2b<=nBH zb2qRW^`pSztwz%df@UkM^RRa4yfASO_YLeayk1V=zZ+h`13YBdzSca8oVUw8@E4=d z)k-FV_A;J)M9gkFQh_*;kzjaobDy5)zu+-wyl9|-0-b2A$QpFBX=k*rKKq99*C}k0 z&0%t4oor=(uHY8k7&ZtkU~?X|MSD)vA^QA{S>2{}=R58$*mj7C5PG$aBJq{5Mr-3Q Oc9Xm__C1O$VE+%@!SkH} diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/TestGetEncryptedDataKeyDescriptionExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/TestGetEncryptedDataKeyDescriptionExample.class deleted file mode 100644 index ef6c3b9fcb6a0135a17fa0947e00a055f0957595..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2034 zcmcgt>uwWA6#m9B*f>ien_B}UA)yI&(#<+?e2LAaNt{p<6KElp`lG7G>#Cfc}A~mHGgEsH$gnU1C5gRz>?~F6Vx}Gv~}7fByPAfNdPb5Mg-iyG?n@Jz??= z|H*Ys%jz= z`hvgWW}7=L^Kt!!uq4C9JGNuXdkkaARE;6J?>0mNW4NT@0xmLKsoIV>?se+Id&cW+ z!Jt=Ni??gsv(&+tw46Ng=5SpIm940GT19BFq%&Gv1IYS(dG$yNFk)O^+T zTBanVC~tnw3BW7Gpfk*#1M^gRw$s|{+3kk#;+SGs842J7CNQHwn`M|zR^K;RO4SmW z!}S=hF?<$qd(v*3CnuG%h8vh?NO;_7xE)0yl#{8@##^b9^027kCYGpdyxSE{gTWYf z6&AHL&Ze+9he9o%Zx0?B89GeWQ<-Wr^Zn-|_2MW95Na0z6TE|oG zD0r?3WRQ(vo1rjT*n8Z!ttY*p)53PrkVBpdNyLg29eN>ZV{nJd5yD&g@GX2QN~#ve z4nvGEGzh~4O1K-t9YS`ryheK18t&mf!$RvH#|*>I|7+_14noz0Ut(9o9`>nvR$FlA zq+2fUh1L81KTJVQ*NL~?L^Ha^+r40%elRL%P!9_p^A5>rs^8Al#s}AsnRx2<=#?MZ zYCvy%d|(bfg$?BzOQ7jbUk?zW6HR?uV{|iVXS82fdxQ8d0XspfVyktWRxK2u{W9GM zQKCn1WgvBxb~3~?Tq3i;!{0FRoj&;n(`WenH5OiDxvH-|(v!#fS~03`=xKdbUt8Cc zXV_Bbb$v}w>IHp+u`?8hxL=(|^9u81c^opG2M{4hV%A;vCW`LN+$>fKFrN#lY8eiW0v4=X9+{i3mCiC`GrVNL@|7X}?C||N>sK1{o zD-$u0siZkCl+u=4sTGac>1i`^Ev-qL@Kt58d8ddPgL`!%AFLdwCEQ?m!;K2~EDg?+ zG?=E&j3zjHLCb3&c&%2W(QY<_b1`?rrq}dE{M;F~hmo`Iw;Rqu>~Y8Qe7_Zi;a=>= zCEQ|obUar)(Z^v|EukqDGUx(<9C>sR^cE>{$uhF*Prst{Wl^rs zo0Tbv4SK6fzlu$Y7%?mm$kwuJn`{Pjv;YQ5wd=K;-*9_{RYRWY6{>HLSElaGKX6Ng Me}Q|Sx^me04e-I%d;kCd diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/TestUtils.class b/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/TestUtils.class deleted file mode 100644 index 83d3b7f290776a0420d214bebfcd3b7dd8b8abda..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3994 zcmb_f>wDVP9e$5vgD>Rfc3J4!ty#0yNvm*?ge07#!9ZeaY+S&0(>7&C(jg%RL4-)^ zUUvDkzh__8czd2b`?L@HpSEW|32x69iDF^>h3w;>K{ zUe^@`+pKf5Eg0Skny@uF$?!(7JGWPB^OF)NISJxnk&C z8;8U9qFT!xsrl9PYIIYP(Yt5WvZZ& zs>V*OQOr@DrsnbMNu`2Qp`@}C;hWC4S1K*;H1_<%K}vsfLa7)GtMf-IeK+vb4`?x8 zSRcE&omMlAT5+pTtj=TQgwCU)nmiGLn|4#tWhrBdw4~T+Thax^S+~-vF55~fBMgT3 zUahlQ%$K%H#jW~0KAc`{GM!N^T^N!|2TD?ssw(MCEh%MWEoF$L(X_cbuAM?*tx?ad zm4_5Fj~fi{7Y-cW=@!hQ6OdP{>y#W%xRxLybA9F-aZ2Q7%V~MH8P2R++hv%|cWtqV zGmv9QfDY^Va?250gN`ZO(T?SE*W&G6?zVhZ8V$~Rk6L|(RQZ(DN!)kNY76e{^vH{n zCprudRwgO(ry9AoyM$HTisB}NcG6bj$G*Lv=nMC0%OZlegBaRoVjRqTyCobihTHg< zA!-gk z9&vauJfQxSSm*smo4mJ(yO0<03CdAyFx;BjkPg*MJCXCKo0$Vo1U<|T(k4UcG@*H! zoU1P)RKcfFY%>&J%doM)7^fJPKwG2A(2Pzs_gJmDX>s(3OWKJXLvTZZ!K6E-1g9Ac_! z6Lu69!}{x*HvQ4B3SrsUBb=|#N+hldW% z>QAgK?{icq1_xb+MLJufOfmdvWqP6+mgR(BuV-w(M;BE=tbL)!U9aU)U!i;IFb_-p zuInA4i{S+UCC~+Lv|hk6ZgxeWMP%SnCd`z29y5e+uW0 z{!MQ9G*6K)IgW7iZQkz-V!Y^xRdEGW)b#6f4spyOLMTdT2J?g$PvE5xj?w(N5I#@% zVhAr2elvuBM)>C;e3|fDA^Z!%?}YF#3BMb{R|vls!dD5uAHp9Hz81pQ34avA68S_w zc1Y4QMII*T&FDRM{RgD~9Js8|(+>d1d6k~A;R0l!5n6x_gGOjGTgNP|0iHZZ_7Ha% z{(;r(+~08b{tsBsM&gkVpQ9ulVrvG6sQc5O`~^FE@!5ak?RexPnvBmL;{Ng3=lJsa zA@~g9kwZN6=l1=b538ar?nRST_yNoP(yo&4eeFL{3 z6Pv5}n2f)Jb^0#TwV;9`cBm75iF>e-N0VlHCC3N{C+O4HENQplVL+90i8|6#JfqPjmhd$WsE)p&m3|P1bKlb3cQmpD_HX}&LAQ{* cB=&n6n!)ezdwMU^SA|^rLu7#(#{>WUUsIrCH~;_u diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/clientsupplier/TestClientSupplierExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/clientsupplier/TestClientSupplierExample.class deleted file mode 100644 index 3ce48fa681c49221daf52e8de11bddb7eaa6d85e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1962 zcmb_dZByGu5Pr^(*tkjp<}Ku%0Kq0WGO;nnrfCCq62Ku8V|V(Y!Y;GumVZ?09u+#4K@2mDzT-c0 z)#O%9eN%lWG|6yv!>|nbjA1Amt1t|2*}4d02qOxv;3~t7qG5@>R--DMLtZrnL!@YH z+^lfN@b=xqVfof@8TN}`HtHP1%%v%j?x1B!qaiAWYfvoDEz6c%8n#8D+%4KpO_hWP zWy{YrK18`7A`H`KaFnEDShdZTVd}yOVS-_DAdF#*VakJMnk=Hl{s(fgN*FV^9mFk$ z>%O)n4O1KUQwnx0Cgo^nCERCP_))^(m*&+xSns4H0_jBl|S#B+w7{_H<%A`GOlf-MmJ?wnWd zx8$}IjhDh-80x*%>98nwk@7tR_RBSR-^;m+Z^SAgydZisxg!maFh_(^2(O60uI)%~ z7sey(DA+}jI!iMJx5~|Ye$xw>;m7|G>3>HuC^m+%)4+B`yTZ+uKL;;#KZVOR&8DG5 z18B4#2!>#ns0>r*hiJR`X^_tM-P*Vq&@-Bf;ga1V2EH)7iG1(U5&6Um5woE2PQMl) zKoX60`UYvI(#mMPvh)F=-+XnLzMdKg<16|q9Rpgg(Tl1uKav}24m$yCtL*y0M zL4>~7F^*A8lCK%s&ylo%X)NLM|xMjR(}Wvq<70R>?9=lP`n&$Pr__ w9F{tyy3(nxL^_5;(gsle2njbMkN^Mx diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/enhanced/TestEnhancedPutGetExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/enhanced/TestEnhancedPutGetExample.class deleted file mode 100644 index 02c8061256f1f407460fcfd61dadc1e49e54d903..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2063 zcmb`H>rNX-6vzK#NbEXJ0&6Zw8z7KCY^bva;|q2!4KYa^tfVTzQa@DH*dD_M@2s^u zE_L6b57RFRYNb9vAFAq^UB}Sc3Z%-HnVoZH&-u-{{q^_ne*)M#9(|jX5wbMU*+f~nn+6nH2G0rgYmjA@f zHkSwH>-t;KPz;wJSkh9D7{(IG8pHTgrzxTs!xu4J!exf*RZEIjUAr#aH@w~!3`W&y z@OF*6mOl4|dSk&%mH5;Hm)vvea-{jY&ivKGZnd=ZS6OXyf4@?W;TGl?qAr(B$JP>hRU#SK7~Cpp4+}Be#v>OkT9sQ_VuNk=o1`(y6UhmZ!4Wd_LEx*Ed@E zRs?GdE9IW#wo|U}NWZWtj}@te+YnUbu6FL%R}?9jVccgZUkrQD4B8@l?FL5PG2-iX${lKq@B@zY4trKztKksQChVcbm0oE zvETyjSLsA`LfR0n_is)3_kdr?Xo$X(e_--^BmN%KC%Ewr^Y5@!H4?_^+Sm!cHdc)d zV{^^OouF{)Eaw}(f;jEdWPX;6-@pV-F+H&2n8y?iqiHN*26sri3+ZBN&$0+q@8W@M+@{b*!Na-oA98XgHxr*oSS&C9= zM1JZCK`BIF(!r+~>?ogb+Uz)PL-+tL0)0S24#B^|@?#Ep4F+^YPvpCs74m;fol)#C4*Bx7$KC7!re}dSn&) znIV7g^&TE^Gls8li@{J{&&e?PPqBd%Lg5aB^=Uk55~?&#U?9%0#eJFQhe7^TE68_( z#36YT%lS+?x0=pmlF3{um479=Ry~zYWkqu-(a1II#7Z`oOsqE3JdsXkvl+WyUv6fb z1{N7^7rT@Z?t^wf1sNF1Rqz8flWFf8O3doR!ewD z3btLrWwl)_ZfZ~%o(=Z$A21n4Y1pD+`<6ObHt-!SgrIqX;FjqA;ESg7hK$3Rbg6c{ z4(a5f;|hjZEtO%e@9FD^>!8Pt-cw+N{^(JoZ-jOht&G+)3vXfk7P_PK)oxJ0Ir_$W z0koc{9icyRLpsEVR7^rcg+QJ*<8^P zi^s@NjJbA%bqX;zj`3jF`{-Z2rHxyK#fmOyHnKc47GX*<7Cw@(FCqxl4LT4 z8<<9#yjhqey(?J5EY>OFKIX7PQB}(LnQ(hTkxy|G&*@=#javvP`v7-BXr>7W8o3Y6 R1RB^vg&<=1p6nxd{5Pt~&kq0q diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/itemencryptor/TestItemEncryptDecryptExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/itemencryptor/TestItemEncryptDecryptExample.class deleted file mode 100644 index 032ddeb72d8be4017cc96f113d8d9a77e16cde2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1316 zcmb_c+foxj5IqwDi6IJvI|>Tk5^&i-$c4nRN{w0+@d~8M$4N2?1KHiw?yMO9$`_!t z$`A0PEPHpOfIt-wzRc`&_w?yGr+a_?`t}3B8VV7F7~VTpQyp+y=-l96EK{%B-Hx(a zHt+0qb@7=Sowjgvse~cSz-Q~*!ciM!c@bF3!gss~f+Gks4DazzTyJx;rN6E1iMnDK zcq~n+o-p(!Q&ooWbE_d@=)<)*`Z2&TRFS55;~F(#Z}VDPFeEBgowuvpmfpE%469w~ zFl<%+d*LO9iHl#xF#W+bl{7?EI+AL6YMPefN?InBGF!3imad2sdM!Wk_%xLwNH9#E z(6Oa#X||rZvfU7N6l0Y8QYvE@!GuT8B*S>J@^6w-sv5&IZbmS}aKrbyO1AZ#osDuF zw=l~Pv$@%@49`M*CR0I(^vG&6Z{l+bXGygS5tj0NSt9i8vr{2t&Q7VLuMoLzt|<+;@z8 zOpG33{1{V*m^;KmC6P=lE+rlvWBCMO&W9hwC}ka|oRgGs3d5KooLMA%F^pft-m9RY2se&# zhROHipTH<4d`u@9#!|I^Mk%Ko34DR+7^WCL3$z_+wzPV^T2U~A+f=E`EyHg65_*JG zI*ie?D*HFwQ80(Q^s3x(gk>vMc>RQn#t`s@Xs@a!CUCrlKbd?wK%c`y~7mOS?GE3R7638GM!xF=zt0lPM z3NFQYUPQZ7qacSo!|=JLXUDK}8QBo2a{sgTOZw3-57N-n-^fo1te_M_@tsLMIHKeX z1!X*B81z~~I5elJopd7(n%n!8Q;WClN^{c+_5)2q(D?pT*shO!7vrxPSSEpWRASg* z*uEMv1bMJs-rv~@HnGJp`!5zxgse)@e%=WP!_WT_vwjpmmc$2fo8h{{U1|DT;Cm`K zjveZM&vvDMN+6Azf~VM{$<$kdTXm;WS@#QL`0jtK$lu4qy~L;m8@$yC7I5G8poynU zs|Iy^$Yg0>?Askz7h9&kwC6s&M<4hRF$?+`2wE{h9Ib!)#^|gOWkd((-y;4CF%cx_ z>#Kn{KBcb`8W6osCjyGJ0~jJcN~ar066f2G5cNa;Nq$kHJHKJ{+vLr+`1}mF-eC3( z?$weD^sk;ld)njnMzMT`LUMIc4P^_-$7fhet|p%(s{y}zk=HRMDY8O$4PlJ#9>*{y zD5EJ_kTWEi#ZB6hBedpjLB%wcH$(g4HkL?}!yPP>wt%}di}z3>uT^S*$C$?&7O;Uu tRLE-!DOAbRuYEqOq+9z4`98yQs&$I&z9B9`H_hP%aRVgXCyxjY{std{HXr~1 diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestKmsEcdhKeyringExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestKmsEcdhKeyringExample.class deleted file mode 100644 index 7dbd7a73ad96a6eee0128449316b23aa36d9d5d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2103 zcmb_e+fo}x5IqCf63TM1Fxbdod;uFdUQ6gMK}bMah$0~?+$zosHChd@M%q>Fu1v^x zk%i1>*&TMgkvj>L&=mp}P#XTHJOG*RV|T-{pCQ4^I_1{w$Z2y+mBleIWxZeyI`=2AEA z`25H4!n*<7!K4p&8HT+)ZP#c-c6N#d1tHvH2-w`LTTN*pg7e`{jB~F=nQB_WeauiQ z-f9W6&Y)gQ)lqD*d(soJBTkox7viCUM|ey+xK?MA;r74DE*x1L1jC$y8@S0ZQZ`Ic zX*X-a-sZK2R{%@rja_aV^4&8A(2uZ`LLp7vL&ISxmOoQ(P<3anY@98ZyN1p%x!E>d zqbYU`#~@HErfJC?>H>!8vSlAcTF+{GHOcLLrW^w$;FqF7$=J>IbJ8C+)wxb@?t{Th5 z)6r})9gi(UV~O06po_$y$o5iD)vZX717hTb;w!MYHx|Rwb>+=6Ba-0p(b=XkT|VcVT}D)+&qhVU3~X6#(sj*{)8zh@7+=UyiH9_c`stI?N0X8U59DRr287AIh>Mb7pj@jS5Gf(I@KoLP>bsQsj>RCY% zXo7X)L}+DXzwzuH=6lCvVvv(OB3;P=&+sL!4A05Z2bG?s*9%%DpkKTfjQhI z&k(_x#ynZWcua8SFiUUGFMtepL6*GOY=ZEWFGX7-IVGzh!bJ!@L>oQ&A;JPAiDrr% Z(^QEJ2I=pBLb~@P89JBbd-CqX=08imBmw{c diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestKmsRsaKeyringExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestKmsRsaKeyringExample.class deleted file mode 100644 index 096fa179abdc1bb8031de14c69493842e231f1b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 806 zcmb_a&rcIU6n;|*g%t&gAefMhx0V?9!pRa7WB6g%sDawV<8=FI2X|&RGqYg%uRM`x zB6t5NqiU~I_^X>cf?R(#QKYxAu0RVgOv;j2+ht8b)D`7DfN?aQqr*@osGqfTf zjbr>GRGy)WKjYX+J&e2P{E2d>PMlPpgDRr|bq1>!;!?z!puG3}3rszOg?*`|f5l*~ z)$TEiS zzDXEtpBCCng+1vcweVVN{CAgQoo4*s@00VWCia$NyoSvQM!cMX&~&VP{VmY_yWuh*cY% zu-xd(6gI^}8P>RSpS~|bEj$A{2|7c78hz0z(Ayv@CS-*3yEm}-wG2n}hA=<`59nR4 x5(poX#o!S|Yp^oOS|tobdqiK>e22A9&Gj4DxFv6mIHqiyf3Zb>*tW{7?ceDf-r@iN diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestMrkDiscoveryMultiKeyringExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestMrkDiscoveryMultiKeyringExample.class deleted file mode 100644 index b9301121dba340de9775d79059c63c9859497fc1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1900 zcmb_d?NZxD6g>+h7OrVPe8p`EO(CfbapZsjV^h+ANlFl;Ex|MSk;$y34N)vh9%&Wo zzE%GuOgqyD=u`AbI=w3ya3F2yO#keM?%loTo_qJ`kH3EX9Y6_BQs`s&A@pC$BOVBY zxA@P#XIMd}E&aoQw_kM(@e^;gT@e~h(Fq*y(0D3Bxf?WVPH6dWM9|rdTZH=Swaf-y>X8 zrXL&{l4zpT`I#kVu9||*FnPw!zErGkM2>5VK*Jcr^helDV+0e5u}OyUoO%ALYQCOE z7N4i^8N;WsHIj~N92{)dGWY^h4C#P-w%<};h~iv6x#QHUsv=Bh@Fi|i&3L;lJe#4= z8!D-2wR4X~c44LJn^6Jv^ za3gOVQd7?Ub6znc%B!m39>ZW1 z7LF)>VL`(p!|htf<1N3|*z)2RLov2JDFRE->j@OlxL-9aG3@ZbtMH?+(rks5(`zcd z@GJDdj8@Prl#30!EG*lyON*riE@)S3tk~A7%}c9gzM^4;ffdtO1yNUF*u5NeClB}| z?UlhAzM<^mcirpTedCXW+?JyCeH2d&&0hYJI#(|?WlxL6gnoG6+Z7k@$k#R8rvkQl zARSfG7nG8Q2h?GqA4s)J<2E)ks9}qG-*N@_4%)Tah62p+{68T5cO)Oe#xQaUjHs$} zH;M)9!uuq++_HQU5E6^w^F%PD0&$oq$;A8W*J+<9;Ox0mYZn2nla{6T{fOG}p`)ZU zcL`y;tH9zWNTKNm0rb&|l$pj9?F^b3%~$5$LHi{(r)gAXU=W|sm`NOH9-7(y3evIpHapNt%GWFas=63ZWjeGinUb<75*O!k`ruDl1 zZM@!4vHPK7KZZ`@5JoA+I7Q1U<-!=HFpe2akp4{K7OqoQWRWAUc}$^z8crN9v6#fR$uC)p*0*WHy1zU94Lhr4jLcO3xjY<=L7&E&&#g)A@yR#xbif`c` zHJbPUK9uq776nBUV)W0wis*xs7{ScGyVSYL@8Y2WSXZuERo=w}#w!C!LS;pBPWcp*&5 zaNx4-*>ZtlUpCif=wI?Jk;Xn8%wRtbFbuS8Puz=KLj;ex;Rpt`<(u4T^T3YfEoHxa zZiftaTK@`fgJJy7zhOB3F!H4Binblv1mn8r`I1Z9_Xx#A%MaFcNnFrJ`L-pYr;&on zFt*LaBN?+G8X4zmA(@y$T3VeH$Cq9P2+}_6eRJ!>`4)rf{HVU zeUrLSaFO9I54<|x2KnW3^j~RmZ3Q)k!(ARoJ8r#a^a%yjxk~5zskC?RVf2DZEg6F=Zhq6KC@Vd#lE{2n78aO@pU zy~CN7npJ1iOX}=JHU9zgBvsXVa=yI%;zAPf5QZuK2%X0;NONfjC!o?88pbJleTuYa oaSZ3laslJWl63~7&@ho89VJ|ZU<>ImS+C(bA!b-4eIJ&-0U7b!jQ{`u diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestMultiKeyringExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestMultiKeyringExample.class deleted file mode 100644 index da300785e39e80be30dd0c58a71f6d8947546474..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1685 zcmb_c?NSp-6g`b-#yBbjSOmdu*+dKz3HcyVc8Nixh`U=LsoEb~ZYSyB=%gn#)3a>$ zef9zTqm)+p0Q*o|-ku2%6sxexKhx8FZ{K_R+;i`L|G)nTUGitG-Sv3)WzQ0S^G??hzV%x4JX`Ks&xNm^1&*>eql2}`A%!GO~r8Tp)GB-!f+;;sxu5fc3UEjGdOSJEY2}puGv!j5_B5Ed(InR6j}pi zJJ!z5M%Ba&W*Oohmo2xWPl&!`DvELFRn{4v52lK$Rqo#m3wR8C z7~-~xJGjeWC^s@Pj2|Q$xI(@^A{9fDq4I6j+Twew!auGn6ZbGr#O(?xJg!9KQ0Y+( zi0gy&(snIyBRv{PZ4K(~G5iuDG1b=QEjNHd~^uu^QQ2wjkOM(yd~vnO-Us zGwJ1aj;C|ELLuL5G#1;1wt*}I%fyjGA%;A|>gmuQbma-UGEu}b!}OqOU8oHuI==ls4Pw8D8_wkd7pRr2n zZaRX?oo=;S(I^@I_y%}`c~6IpVe}B#rs&nV6NKaEiw%Nl4!q?JQaut!MAOgYhOb$LXuhfPoA2H6sUF zFVc=!BkK?@_q|4F)q(z{pgMu|0i(Ys#@=CKA6MSu+FRVJ?PKm)Vj+>aKc86K#}fUP z5)Z@wm7|m^VMr5Wlwgtu$P^N|O1l}1V-^#*juG6V(>s{P99fcNNs(n9SFk`<4fRF@ Zp$}Ext>7_1o+O_t*21?xA-^H4e*(6^*yjKM diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestRawAesKeyringExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestRawAesKeyringExample.class deleted file mode 100644 index 1c31e921c221ebf6f08a59e0459dd8b6f582be5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1515 zcmb_c>rN9<5dKcNw3Z^U1{cig5={KFvu9?`%$)C=nP0!Z{{(O!DL;G+>s4!49&lUeyv)B?rk=NJ z6=@Z1UfHYZ;xjK-N}{TN6gAs0i~5eJ$}N7dBC4-E&6?-oM=L}3KL5n^5+}bmxqXqB z4DCyXX~<=UmRLN?(7I|BL=Y{w7D5}^8M@MjDK?#QPS`s7coOu`S1 zA##eswp5@c9ivnbb^yH$y%&KOL=XBEAQ6VXSo-|^L_8bBAcp-IVz};F9ch&GOlBh$ z!VN?jf;Kk`R#|BX!C2gjapILw8E%F!iZP;uS1Q6RFw8Zk@(4@RZ@L_wsoo87D})K$ zW(Y{jGtz_pCTqAtzEg<%5o1XH8(|lr6T&oR7{Wzi3Y$ye^8+D_zpr z-4!-5F~^`^ExGE13;|jVKxddt)l6QtQn@wL9R=cj!<53#3mOYs`MNzBz#Rs*pk8_} zMAP(uVfak-FNEBXqWsoz1;b_|+8%ldkEU~_H}l`DiDv_N#L!vcwlq|0exLyj;0aMv zwQQ+QLChi%!V;cR)8tEno0&=~l~gq`yuY-VMjD&*UPYtkyyv7aS`%4ba@@ggYHWrM z?rxGgn|)sVbAV8LZ(9x#ux_XY5mg+Vfx5nf=2d)*ftC#|IKW4Lv}EY(r;|>Sk!+hj zLg1Tg4$@bdfdD$_8}b}TcG8JpBdZTxb+2xcD$rL7suIloK+iiZe1yJZ3>;$Q5aa1% zOup9UXJ@p9W8Br|wTIec_kZy;;Ua}qslp^9G?s(VFhr+e^dgFGn$ZD_lXil%lcb%Z k36GQKEJoZSN4@0rBE#ghjAvAA1pRo975CLi%HYH5AH?RNod5s; diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestRawEcdhKeyringExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestRawEcdhKeyringExample.class deleted file mode 100644 index d3bca5130c081cff415b72bc5055599c8bfab30e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1072 zcmb_a&rcIU6#k|ZT2>UOqM`z;C-C52NKC9TF=hP`HySB6@i?81?ZEENW_DVvNB<*F zB%0{mKg#%K+fWXRQQ~FZuW!D2-<$XI*Vpd=cClGQh2eRwKiFe#WWW>tNvDA@_D+YP+R{DgVGfH+n8yOca->rEdYE*jIpEz`GBhGBc--Mexpy$d#h_vYkmMBOppH+$pHEU>)wAnO5 zW3;K`8pGRnsgb#kN3!P&on$I582!v>dLnt`dy8Rf??r29MzWnr;fsRY?@Islp4C40 zN7Dg$9#(PPP4foB+IBR1v~As&HQm_nIjvzfkcl)rK1Xf=+EcmEBWcE^pgL|deEze9 z`~n*ORWpOv)VJX}C RU$EUO>8(@BcBfFV@f&E|3>g3b diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestRawRsaKeyringExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestRawRsaKeyringExample.class deleted file mode 100644 index 9586549a51c94284b0ec57a14157e8b8b058eb73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1521 zcmb_c*-{fh6g?f5iE$7z?7O&N0>Xge0>K3cTN#mJNtISvR+F?aFquisbVU3Uzrbf- zfYK^Iz;CiFZ_k9yK$Tj)^m6a*zNgPUx4-}V@(sWk7BoZ{=6v_9+~uAyd4Yd$9W&?c z6{WlB@#5B=DcBo^qA{KOLwlhR-? zw4SiADivwdCCknWFN!9Hrt`>)A&wSBNGn5gBJ=zCR5BYwJ32LVFkA_|C285_`ubv8 zM;E#oVjg$$Zb4ay!9+5=<2Wj%GW6=Wiasg{FBXN9XBax2DlAy4d@`uv8T7#w*LB>$ zO@^p+Lnl4xDA}na6nhIv4GD(nzbn{z?C2Q4AVa6W<(BOHyl{larC1VW5iWDf3*_}m zWgXHntaN2;mg7RDsvr#`4CbHVQQ}x9j{PX^F!ZPQ9A0qK8?#Q(9VCTCM+z?|s8c)@ z8^|<@F$OlGVBFX701pZDnFq}axhO?pxfDzcfW3N{j09_%Sg0B(mHt1#Mj+ zYkI+|aD zG}jCqAo@9Q$7ob;P{3sx^)P_uI@%F!mFFin7G$QK3sfi4Yc+RxEGg85%0MxUkt diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestSharedCacheAcrossHierarchicalKeyringsExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/keyring/TestSharedCacheAcrossHierarchicalKeyringsExample.class deleted file mode 100644 index b71237de640feac3913f787cdae3fa8c4a9f5bb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2151 zcmcIl*-{%v6g|yiDT;_efC+XWU}GWy!)QgDaSRCCfV{*)s*08#x;iP zWy=;%JFU8q`@G&143V-!=4)J9-oAG@q#BmX@MHPoMp0ylUo~=u(DoZcw3X%9ZUAEp zv*$4E*h)y*X)9r#2{BB+=-A3?iJIkF6yt_%JBs`I3^Qd%9_otVClvWP$InPHfJug_ zbNdzLWoxrzHBBLdm||GDO4dS{z_gc%n+%iD@`rYdv04aUU^ajmhR=L%M_En1THPsy z@g?RccFAqiX?Z7KCoOUJE0IG{e{_=S+@a_ad@gq>BA%?LX;9zc@_8gMQ<` zgpflafc$&?z26|`%rJ_$$1vox?avwN4Zjt$k*Kc`cxwknN=s)_d5xPHq2*IKGn3B>GnqPWf*C5sVr~G{6L@tQKoKk z9jUxs2r)bj;~Ab)pBqiV?P|MJ+Vlcr`0gV{{ik zt^lngv?IWXJBaH<57BNE5u!Z#aaui-f0Lef)y5x~_%?Fm9X>z7t+$wei@W8>GX1p^ z=uak)IYBnEzTzK!9nqE}8zuXaziDM)qmHSQQ-2y3j&*p&%=oFs7t*G zOTlFVJEj}kt1{~NJXW@1hXfvW49&7N!)&RFrTtwc1sMXn9qvXN565T?Ct7LoXl|_9 zmJQ{NU02`RZ`*RKr5VR|yU#;%e(` zW=4L%YW?1F?EQJI-aOV6S&uy~iWfWGc-FK+hrGXo7bx9_op&JtTp#QJC!Iw^({v>eNYd3z&2midXXYrxH0pM78 z)R$lnzYRo5L~D>joL<3K5O1#FtBAK(@HNEO|G)%$;d(IM#Ev5VNv!kqE9`!mOYC8c X1py80W6UfP;5OVrMBpyQHMsW+=;P>g diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/searchableencryption/TestBasicSearchableEncryptionExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/searchableencryption/TestBasicSearchableEncryptionExample.class deleted file mode 100644 index d277b9019c86c6dedfaab5ff3f178331143f1168..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1595 zcmcIk>rN9v6#fRNTh|Iwk(+W6ytG1HXbYt+V!U8ds8=qU7-NRrk*>76&FoaHPvBo4 z#Xm~?;REB=A1d_eCPJ#=eO?wvbb%agW+}Hzfrqf3X9kH2j8=7 z*{mynTk?9PX^Ho|RO}b@IncfMAt>2?()F3*V^3WHg|ddsevwrb8q=O zZdJLrZ9U$4D{RGZYSHyvwZzbwNNzH8-SZt`q7$cMh~N}MPucavqeg8@$aQU&Azt=v zUftx<)#uh_m#Vk{126w)7)1inhTDS1U@pJ6MO{%W0t3AaqlY+4o)S_v>Pk3mA%>x6 z4Nti>vFQdbfw<#&zT)9~hLN%_w=G36r7-bBP8jB*feQ>T{sHB2InszWlv@p=7$AVF zqPeDgDegO4VR)k$Vp!$UEAZW*uu}^PjUcs4Z&K+(CO4Cx%VpBDGwEz$M>MUxlV8Yl zo=&CTuncLa+5qN6rnz$@BBv-lelW&%5RmtULoh47_Q+uLnNTis8by$ zR+5`0l9)1ZgP}Wgr9mOKHa1H4W0*#Y%0_a}@oV~q$~w`q+?Fcp_f`xum}Q76e;))x z-+^S(cenZ;gfve|9 zvfaoz5Xnl$JkFyH@#$)N50d@qSu^dl)YFVSEo0dq{l2&4=;yRD3YrKfQHG;6#fF#t!ovn$VCP5Uevm!EtIy3qkuDodM%(YKBT*WuC%+IY*wtlz*m2Y zFUt7f5Aa7ho-C#4zyqT*CNs%N^5xvm`SJ7HcK~@jFwn=a5%?Qwn@eHw7XRRTmMuGN z zF#WK=Y5Ufc+YI6uq0p^}PEGkzEIReb=W&cNtZ?a-_;yg*Y6Yb*NN>}hbheZ$WQsF| zTy{E>&6l=B$0|C-xgzJ;bata?r}McvJIxFEnY3-s6r3D)GSk^v6BjUU;3C8P(JWbz zf-AA77wz3tOJD+*7|!gy^l%Kzsp@_dYD&7^X89;LQwKpYsv#O@Kbp9T>jtj0Bf zQqD=>25vIM0;-xeC3k9hYTd*XZX3A8a4J$IBo|w2Yn82Qq=W(Y7zQ z^s8C(Lurf0uI@M)?X%ytJgi*0$#++C#br=Ki}It7C~9Q18g#a3XSBy|eMS5;5q&Ue z)z2Wn30f1o0NPK|iL!)V`!PuL0G&=FNtDK)rCqc9MC`SwtI1)SqdPcX9m3=euIwQ7 z1$Un$v$vC@$>BRY$nOiBjhLS#@u!IGATdmkB16P}7$X>?d7kD4T%y?YX_%Q4abfMjCW@p9v3w-sb z_@cxIe}F&AcxEX@f{8>EXOfvSGvA#1Ip2SL{RSY1dj>ifs)4_$cDWQ5uk-i5XW6pZ zQ2v(WjcU^p?|8jY6M+>7F6}Dcs0rak2$!I%B2bHdz2S$R^FVOh_g31lU<6kf&L6zAaSV@AmBT2kDCv4zrIXx@9S6mzj%Zx?VB$J%8n|&J!B?xK zoRh#U+-8UcR5=Yw@6@BQbrWNlFfh(=Hc}-d7h7v<<)s8Bk*2hf+;jZ8zM*VSwIsJu zCH>z@U>Y+FapmtD!O(kvjOwdpS{zx1{xvGGvKKU{;wTw)Sfc=%m_^>e9D{Q*fB&`( zoVW!fFpmPm=<`tNYIzX~+0?`XpfD5LHrXD9WZIt&mh1V zS`+&K+PmpQxk9g<=pnj`PUny$O5-oku33I0_FB~SWFO6eJzT2v;_4no_mKLGsVB+I zL~34R<_Lyy1p^qRRV#RPUtCK; WldwgUNTGhZxkHq;_%7i(u<#R2)Z0M- diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/searchableencryption/TestVirtualBeaconSearchableEncryptionExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/searchableencryption/TestVirtualBeaconSearchableEncryptionExample.class deleted file mode 100644 index 4b424b11b9f9dbd9bbfe5b351beed61e42b7ed7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1644 zcmcgs%Tg0T6g>^ZiDMLq$U_Acd;~QPB!Q4bv3y_^5TAkQ#ziyJCZowrs;5VcU*OhH zaif$AKfsT&ygdn_tgxW8%IT`^+udjGz2`pq=dbTS0OWAjzyL!n@ZYFiE``OL{G;z# zwrsbQUz5C5Z(HI6Z?+mDumZuQUFSOuA-o9T5_C%hs_IG=^2U9^ZQrZ(P-{KZT1SO} zA%>B+{5`iC+^bnnciswHF&w+?dahb!7);Gq8HOJCjxaHZ;|auYjA6L!dg4jg+!1n1 zn`cOteVaF`T)KMSJseVXH(+qf|A|hCVX}{Ymnws~_Q4h{MKKBtj55p|@LuF%(j)= z2;!KatZj;RMfp-ZbatX}$1%mQ$)#81yFu|?Gbn~ZdYAr5XNuYULSZSN%`7fta>aL| zZ55otN`doCI`gJrr*qjAJI(XCrL=7?<(({d78WzhCeC5nz~ z2WPRb(GTmHZUx@bs&NVQphZP8KoUJuzzLcY9RRH- zX-B0(w}Tiad5Cr+NRp)Sr)kwHKa+ZGYA!iWV{#8?%VW5>huJ-(zT(#7WadV4GC6*8 z54i(_%aQVvWd0PX9VUeda%7Cuk7EK;G|tjEhx0UMFpUeC#4OF)!HXSpT?b9V7EvOH QCg|igNt*E;!VO^cH?h~(ZU6uP diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/searchableencryption/complexexample/ComplexSearchableEncryptionTestUtils.class b/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/searchableencryption/complexexample/ComplexSearchableEncryptionTestUtils.class deleted file mode 100644 index d5df468eb9748e9cd2c0aeaded3181858bc787ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 584 zcmcgpxlRKy6ddO!2MOVjDCr0VZsi1vSIu$6jSX~689%qq~u2|?=B`949Da3>uOg4#I;yAzQ4|9@>`KQ(4U6;2WeDsYU<* diff --git a/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/searchableencryption/complexexample/TestComplexSearchableEncryptionExample.class b/Examples/runtimes/java/DynamoDbEncryption/bin/test/software/amazon/cryptography/examples/searchableencryption/complexexample/TestComplexSearchableEncryptionExample.class deleted file mode 100644 index 111c6f57c430d8aa730499346315c9bfc638f12d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2004 zcmcgt?Q+vb6g`{7$TfxpLqeb=KtHHWBIM6Fwkec^07(p?IPt&_er%*oBCsXRN+wC4 zpzqNq=%3(eXZiqrs7~+7iWBM#e8Hu;$G2NTI3dDTP*(*HB9O5u{9w5^)#$@l z`tX(ByEKe3OuXYCxY6RyuCcNGPM871x%;+b2M-uV)0rm2*s^Ph1V-^y5;2@(7_Zxo zc+qKZ3%RLyFr@0P$y-e>Z8eT2$AUfEXOQ(TomY(rol+pmmLainUO;T zKkL|3PFsQ9^5eKl2e&Q`8-XjuV{1E9JdSG&>s&fjzVBDxxBY6z*Y|0Sp05_l*-EKg z$mg>8V)eZ^G%8kQvBG&?&+k-By;xW@bzUx(bki)Atpc~Qx%@%`Ut>nY4TcB9WwI;< z55zGqY9r~Bn8i(oOUIEuj$tibKRJa)AZ=&2Hq1WVCmf4GKWoK+@R3rK zY8p8WD-6zX4^ku#s dQohwA5K&f^et`|5n4y`M)KeP#OcY1(>R&obOGE$w From f6ec8f389c689567da91aef05a65930de1bf8974 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Wed, 25 Feb 2026 15:23:51 -0800 Subject: [PATCH 3/3] m --- .../examples/keyring/KmsRsaKeyringExample.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/KmsRsaKeyringExample.java b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/KmsRsaKeyringExample.java index 7367c815a0..80af96885e 100644 --- a/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/KmsRsaKeyringExample.java +++ b/Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/keyring/KmsRsaKeyringExample.java @@ -251,14 +251,16 @@ public static void KmsRsaKeyringGetItemPutItem( public static void KmsRsaKeyringGetItemPutItem( String ddbTableName, - String rsaKeyArn + String rsaKeyArn, + String partitionKeyValue, + String sortKeyValue ) { KmsRsaKeyringGetItemPutItem( ddbTableName, rsaKeyArn, DEFAULT_EXAMPLE_RSA_PUBLIC_KEY_FILENAME, - "awsKmsRsaKeyringItem", - "0" + partitionKeyValue, + sortKeyValue ); }