From 5b625d79a7aff0749be8d1f930c8ea18aebb49cf Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 3 Jul 2026 17:44:26 +0000 Subject: [PATCH] Add test vectors for c2sp.org/chunked-encryption These are the test vectors from the chunked reference implementation (https://github.com/FiloSottile/chunked), for use by the chunked encryption recipe being added in #15144. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01Uyk58oD6F8BJwKHE4qCMA8 --- docs/development/test-vectors.rst | 2 + .../chunked-encryption/vectors.json | 1222 +++++++++++++++++ 2 files changed, 1224 insertions(+) create mode 100644 vectors/cryptography_vectors/chunked-encryption/vectors.json diff --git a/docs/development/test-vectors.rst b/docs/development/test-vectors.rst index 952986e1e7d6..2c7b93083291 100644 --- a/docs/development/test-vectors.rst +++ b/docs/development/test-vectors.rst @@ -1166,6 +1166,7 @@ Recipes ~~~~~~~ * Fernet from its `specification repository`_. +* Chunked encryption from the `chunked reference implementation`_. Symmetric ciphers ~~~~~~~~~~~~~~~~~ @@ -1267,6 +1268,7 @@ header format (substituting the correct information): .. _`RIPEMD website`: https://homes.esat.kuleuven.be/~bosselae/ripemd160.html .. _`draft RFC`: https://datatracker.ietf.org/doc/html/draft-josefsson-scrypt-kdf-01 .. _`Specification repository`: https://github.com/fernet/spec +.. _`chunked reference implementation`: https://github.com/FiloSottile/chunked .. _`errata`: https://www.rfc-editor.org/errata_search.php?rfc=6238 .. _`enc-rsa-pkcs8.pem`: https://gitlab.com/gnutls/gnutls/blob/f8d943b38bf74eaaa11d396112daf43cb8aa82ae/tests/pkcs8-decode/encpkcs8.pem .. _`enc2-rsa-pkcs8.pem`: https://gitlab.com/gnutls/gnutls/blob/f8d943b38bf74eaaa11d396112daf43cb8aa82ae/tests/pkcs8-decode/enc2pkcs8.pem diff --git a/vectors/cryptography_vectors/chunked-encryption/vectors.json b/vectors/cryptography_vectors/chunked-encryption/vectors.json new file mode 100644 index 000000000000..556a044bdc07 --- /dev/null +++ b/vectors/cryptography_vectors/chunked-encryption/vectors.json @@ -0,0 +1,1222 @@ +{ + "vectors": [ + { + "name": "aes128gcm_empty_payload", + "comment": "empty message", + "aead": "AEAD_AES_128_GCM", + "expect": "success", + "key": "59454c4c4f57205355424d4152494e45", + "aead_key": "e50ac3fa498a7a1cfb59851d26b67c3e", + "base_nonce": "e591e4e05c7075e3a19630e6", + "context": "", + "ciphertext": "jQt2TAuv8FiToAHpzHi2zqzwup5z5iife2mFj+stihVmHR5Hc3jre1OJdlXQUJhVzUy1khXwlat6spy/j3yoa8otwlOhTc3H", + "payload_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "payload_length": 0 + }, + { + "name": "aes128gcm_short_payload", + "comment": "short message, single chunk", + "aead": "AEAD_AES_128_GCM", + "expect": "success", + "key": "59454c4c4f57205355424d4152494e45", + "aead_key": "a3318c4bfff63943d2c6d7dbc0e86eb8", + "base_nonce": "edd82a9b7ef856142912b929", + "context": "", + "ciphertext": "AHAM7+0CDakyGfMj6F5PgnRdZkMfCJ1BqrkLqS+nidSQ0EfZqwtXwohAQtpjD9Aj9i7in0CUMPaImrI6VRpl3eHmF2fnSi0dt6tiW5kB3A==", + "payload_sha256": "59fdd34a0b323f6044e147b843d8ca246a9414d2c7a06c8e95a7e04c3cdaf395", + "payload_length": 7 + }, + { + "name": "aes128gcm_two_chunks", + "comment": "full chunk followed by short chunk", + "aead": "AEAD_AES_128_GCM", + "expect": "success", + "key": "59454c4c4f57205355424d4152494e45", + "aead_key": "308c8f6563289c0e9f9c0cad5bd994de", + "base_nonce": "db0bbcd9f3a0f036b50bee48", + "context": "", + "ciphertext": "eNrswKFKAwEAANADuXKC4i+IIlhEDIJYtXtoEA0HoiiC+AGiQYNRgyA2LWqwCMLBgWNcWBljDLa2cAy2ld0PrOwzVt47LWbit+rvQxKkZ1v7yUc7XZhrfe/0bpq1//Usyv/Cx4PB1+XRZ+V6vPK6lh0vbV+sNl72AgAAAAAAAAAAAAAAAAAAAGDqNvr1u8POyWI5HMXd8Hk5iM53n943r8qf23z+PixmJwEAAP//ZeQrLw==", + "compressed": true, + "payload_sha256": "b59a4422f3d676333de5a458bf65f7918320cb5a95bff656cbfaf1894455af06", + "payload_length": 16385 + }, + { + "name": "aes128gcm_two_chunks_full", + "comment": "two full chunks followed by empty terminating chunk", + "aead": "AEAD_AES_128_GCM", + "expect": "success", + "key": "59454c4c4f57205355424d4152494e45", + "aead_key": "214ae1532c5ebaed1bca7010c3bca5f8", + "base_nonce": "17f4af4d8ec4fb341177f0d6", + "context": "", + "ciphertext": "eNrs0D8rBnEAAGD/k95SBmWRPxvpzWLw7pZ3FJMY9MZAlA/wG5iVolxcJll0JkKRziZKFAZlsOrsZzgf45bn+QjP6OnPYqWytdoIrbuDQ79/x3Htte1s//N7buSi0XE//hTNVutZ8jLW/7a8dFLtmQm3C89pPN8EAAAAAAAAAAAAAAAAAAAAlG4grOed71nzcLRx+HDQt2IEAAAAAAAAAAAAAAAAAAAAynf5NTlRrH1s7vTe1I+6i6u97WSqqxbups/ztKX9+vE/AAD//50GMyQ=", + "compressed": true, + "payload_sha256": "bb713cec0f111f25ce4f0cee267f50768aafa6666495bb7a53e16a1eed95bb3b", + "payload_length": 32768 + }, + { + "name": "aes128gcm_three_chunks", + "comment": "two full chunks followed by short chunk", + "aead": "AEAD_AES_128_GCM", + "expect": "success", + "key": "59454c4c4f57205355424d4152494e45", + "aead_key": "538c1e5a2195e6e9654a08a992b35ce3", + "base_nonce": "3b5b056f3fc1a8939bb4b6ee", + "context": "", + "ciphertext": "eNrs0DErRAEAAOArpWx0w1vpUDZG1A0Gm7r5lFGUm9jUlcUNuk3qeoOU8bHwlmcQPYMeA4uiMKhHvUFZ0f2Mt3zfT/iKqPd1tlS9P1mtLs6m3enz4ZvDbH7h4eNi/a5ZyzcGblszx2vB28rU/s9kXP89TZLBzuXfdQUAAAAAAAAAAAAAAAAAAAAoXWPvoGjH7bFe+HSVRs8NIwAAAAAAAAAAAAAAAAAAAFC+2lz4Wu8Gy5tb40edx/fdSjAyNPHZ2mkW/6Pb2fdL3g8AAP//sBE3XQ==", + "compressed": true, + "payload_sha256": "557fa49d6cee598323afadcde088f37832a0035141e228542ff9c2854ce3bc12", + "payload_length": 32769 + }, + { + "name": "aes128gcm_last_chunk_empty", + "comment": "full chunk followed by empty terminating chunk", + "aead": "AEAD_AES_128_GCM", + "expect": "success", + "key": "59454c4c4f57205355424d4152494e45", + "aead_key": "e316653548a1ca7df73142c31ba8d118", + "base_nonce": "713b3e8cf56dbab08828ef3b", + "context": "", + "ciphertext": "eNrswK9KA3EAAODDIoIPYFMxWQ60GEWuiCDKgcVkM4h/ihyHeAjaNCkICgYR4UBfwGQw+SsLx2BhbQyWNsZYG2yPsfJ91+vN9tFhfP6yvVU9NMbJ/ONNcrBSPc8UZ+H38rUX12drq+XC3dsoW9rtbg5PlvOdcq5/HAEAAAAAAAAAAAAAAAAAAABT95GF06/O3n34/7sIiz8bt+n3U3EVpdFg//0zX2tNAgAA///GBywp", + "compressed": true, + "payload_sha256": "713b16aed63fe6e47ded43d6aee66c698fa7c3bd602054bb088f2fbf006d4f66", + "payload_length": 16384 + }, + { + "name": "aes128gcm_257_chunks", + "comment": "256 full chunks plus short chunk, tests counter rollover past 0xFF", + "aead": "AEAD_AES_128_GCM", + "expect": "success", + "key": "59454c4c4f57205355424d4152494e45", + "aead_key": "a4872c2cff146bb0eab9aeeed55674ab", + "base_nonce": "316c5dd75c34290a7a7fd553", + "context": "", + "ciphertext": "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", + "compressed": true, + "payload_sha256": "fb806a337e0c032cf40e66d16e8062f838b4a2a060cf721cb8ff4bb4f6efacbc", + "payload_length": 4194305 + }, + { + "name": "aes128gcm_context", + "comment": "short message with non-empty context string", + "aead": "AEAD_AES_128_GCM", + "expect": "success", + "key": "59454c4c4f57205355424d4152494e45", + "aead_key": "c38fde39fcd892a92057a3d6e768ea4f", + "base_nonce": "d973660dd9034d867626bc35", + "context": "test context", + "ciphertext": "1lgyAO+0kNXLBqyZ1WWh+JJH0pOgIWlaSNDXzPf3LEffjYoRwNh41ppe3vvtTERAukV7gLI5se0xB5lHl5cW4WxtG8XIaf606QQaJExwJA==", + "payload_sha256": "59fdd34a0b323f6044e147b843d8ca246a9414d2c7a06c8e95a7e04c3cdaf395", + "payload_length": 7 + }, + { + "name": "aes128gcm_context_with_null", + "comment": "short message with context containing a null byte", + "aead": "AEAD_AES_128_GCM", + "expect": "success", + "key": "59454c4c4f57205355424d4152494e45", + "aead_key": "84a5472309c80a259d4d75e0ba9b471e", + "base_nonce": "ff1f32b0a550be249d40bdb4", + "context": "test\u0000context", + "ciphertext": "Dwxc2Tg7OSbSD+dCEAOPTK+PEdGwXb2HGe7Mglm9Atu30qWq5wOc4gjOv4OC2+XD3DQ2bkuM7nyYE65adSOEH26q5v1Elbq2BnlwC1AFkA==", + "payload_sha256": "59fdd34a0b323f6044e147b843d8ca246a9414d2c7a06c8e95a7e04c3cdaf395", + "payload_length": 7 + }, + { + "name": "aes128gcm_bad_tag", + "comment": "single chunk with flipped ciphertext bit", + "aead": "AEAD_AES_128_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e45", + "aead_key": "b2e9863437a68aa9fbf5ea05cd31bda8", + "base_nonce": "cde5f24b64e8321240b049d3", + "context": "", + "ciphertext": "r/DJIBW7v/j5VIt9+bAmoZWz7ZqsuFSuE9eQIjnr2BUAuOIUQrITv54GVypcneh6XIzozp5ubM0ACOYNIAtV4a7hwfahg2Lw4g==" + }, + { + "name": "aes128gcm_bad_tag_second_chunk", + "comment": "full chunk followed by corrupted short chunk", + "aead": "AEAD_AES_128_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e45", + "aead_key": "cd7ceea3fc2dcf327fe60d41834b0121", + "base_nonce": "1f4c8991a519c51af1d69674", + "context": "", + "ciphertext": "eNrswCFKxWAAAOCHwSIIgsFgsCgKYrA9BDFsWS+wMjAM0bXdQdOCsGZRBDEZxGQRYawIM8hWDApi2fi7xWO88n37zWH/08b9eBxtdcsXc9dh9+9r5WzncqMcno6aaO1ufiEt2uSjGE6qzfu8Og3l+mP2OQEAAAAAAAAAAAAAAAAAAABmrns+f6mTsLd4M30/2A7pZLy9ilfrh6W3OPv9nr7m/wEAAP//kHQuWQ==", + "compressed": true, + "payload_sha256": "d8221c92b177e1ce310a662a0e201261093da403e0219523083aa67a47846c84", + "payload_length": 16384 + }, + { + "name": "aes128gcm_bad_tag_second_chunk_full", + "comment": "two full chunks with empty terminator, second chunk corrupted", + "aead": "AEAD_AES_128_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e45", + "aead_key": "f97891346ff84d8b9b6446e267dcfd01", + "base_nonce": "91ed8e8c37ee364dc0b37b95", + "context": "", + "ciphertext": "eNrs0D8rBQEAAHCy+JNXBoPbDS/lz+DZJG9UBs97lreZnkGmKwaF09VlMygZb7CSum+gW678GaRTyioLA7H4GLf8fh/h9xlk21MDzbHremN2slxs9qffb/FRfFnf2VqOl77mwjy7bd98FO3hq5UkWTt53Xw6G9wfWu0DAAAAAAAAAAAAAAAAAAAAKle7+2k9d/KF9fOge9zqTBsBAAAAAAAAAAAAAAAAAACA6u29/PbC8Y0ySoO/kdPu4cNEo9Z7jw4eL3aLmfv50f8AAAD//94jMHo=", + "compressed": true, + "payload_sha256": "6752377acf4d3f1397809da9320fe59cb9da38d57bf5084faf8f40123ed9c135", + "payload_length": 16384 + }, + { + "name": "aes128gcm_bad_tag_empty_final_chunk", + "comment": "full chunk followed by empty terminating chunk with corrupted tag", + "aead": "AEAD_AES_128_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e45", + "aead_key": "0a2359fc5b14a1057e7b64261f269392", + "base_nonce": "22fcf8cc054e15ae48d5c1a1", + "context": "", + "ciphertext": "eNrswKFKAwEAAFANHhhMIqIY9Cwm8UQNVoOIRVAsgojFLgZRLIrNcKLpwKDBZjDv0tJgLG0MFsaxsrQb7NLKYJ+x8t79/lP1cfflLE6y9vp5J33Inl/DjzD//I2CuevpYTkuNWfSq0Fwe1zZW9486v7d3L2vzv5MAQAAAAAAAAAAAAAAAAAAABO3VhzuLLQu69HG4tb3f37a7y3NF2/J1+hiu3FQWzkZBwAA//+/+CoA", + "compressed": true, + "payload_sha256": "38667ebf422a8d9acd6bceff14e8660f9c04a92d2e27ff26c5fc04499263f7d7", + "payload_length": 16384 + }, + { + "name": "aes128gcm_bad_tag_first_chunk", + "comment": "corrupted first chunk followed by valid short chunk", + "aead": "AEAD_AES_128_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e45", + "aead_key": "fe05acb7cbb14b3d5f8213fe35dab3ef", + "base_nonce": "a6a030c00e46fbd1a0c8caec", + "context": "", + "ciphertext": "eNrswK1KxAAAAOD500QYKDKRBTGYZhEMSwaDFoPJJmgQxex/EGFBwWbRaBLmrAqCFtOt7TFubVeOcQf3GFe+ryxOq0H29Pl3t9POLh53Xifi/4eleu3nvZrvT24m09dx+phc5Vl9frK8EV00veb59vtyOwAAAAAAAAAAAAAAAAAAAADG7mxlaxi+7K+2b3Ppwc3vTBDt5R9fh/dhebTenVrYLUYBAAD//7sEKMY=", + "compressed": true + }, + { + "name": "aes128gcm_missing_tag", + "comment": "single chunk truncated to remove authentication tag", + "aead": "AEAD_AES_128_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e45", + "aead_key": "5b36623605cf46073355532bf80bda6f", + "base_nonce": "cb97897fb35b760289229b8f", + "context": "", + "ciphertext": "piPFkDbzc3VpFp/qrptl7aJOIz/hB6RvrArS4fdUXyxuOuFoubWJNTFvPicBo81MawkPGIBtitwA" + }, + { + "name": "aes128gcm_short_chunk", + "comment": "payload shorter than one authentication tag", + "aead": "AEAD_AES_128_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e45", + "aead_key": "f105a70ae83f6f149a5ca42bae65efbf", + "base_nonce": "9d39131341c482ee3e53b852", + "context": "", + "ciphertext": "BDb1hsveQNznRPwG6M0sFkGQgwfPPtyqUpPr9Y91HOG/vNfUt4ziag0zv4y4N1PmodHUa/ka8Zh9xGngGkfjdT+LfZ0=" + }, + { + "name": "aes128gcm_trailing_garbage_long", + "comment": "valid chunk followed by 20 trailing bytes", + "aead": "AEAD_AES_128_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e45", + "aead_key": "9670ca4cf8c9e929ccf177b413a6a416", + "base_nonce": "ae41e8a73635dcac730a3187", + "context": "", + "ciphertext": "eNrswDErRHEAAHAWMcmAkuUNWEwiZTJ63qgwUIov4Nk8j9VAXskmyqBe4r8ZDJSkqxtvuDdc9yWu64Zb7mPc8vs1soeV9ebLc7l2tPR5ufw1Ov7495EuhN/bg/NQzNRP+mfbvfZcZyrer51eVN3du8mb1+vp1REAAAAAAAAAAAAAAAAAAABg6KJo42fs6j9Z3NrL57+Pq8MQv8+2yqe3bDNP7ot8YiekgwAAAP//NN8rXg==", + "compressed": true, + "payload_sha256": "be98adf457975dfb6ed854cc2743a8ab032d66853db27268eccb881bdd29d777", + "payload_length": 16384 + }, + { + "name": "aes128gcm_trailing_garbage_short", + "comment": "valid chunk followed by 12 trailing bytes", + "aead": "AEAD_AES_128_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e45", + "aead_key": "982f03149a7fc53207fb848ca0b85171", + "base_nonce": "d89e6705a1a9d7f19af00052", + "context": "", + "ciphertext": "eNrswKFKAwEAAFBtlvMTbCLGQxGDYlGD4UBN2g7O4onpgojZcoqIIGc9TIKCGweLC1sYDJbG6urq0mCw7TNW3qv28iTbD88ORuV8c7Kx2o7f3p/CcVTVZ9nnTdSMX4dfwU92fXJ1nx49vnTy0/Ok/7vzvQIAAAAAAAAAAAAAAAAAAAAs3dpftzfY+iinF0X6sH3bCC5r/8Xzemv37vhwEQAA///BUijV", + "compressed": true, + "payload_sha256": "88515d647daaea32a4cb7ba62c9573c7f51eaf4e8b665de454804dfdd2c4c381", + "payload_length": 16384 + }, + { + "name": "aes128gcm_no_chunks", + "comment": "header only, no encrypted chunks", + "aead": "AEAD_AES_128_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e45", + "aead_key": "5d7a4ae5b65cb979a8f068ae748774fc", + "base_nonce": "3db5eece8c4e97c356ee6862", + "context": "", + "ciphertext": "VLeZd2Y8CKWt1Ln2cS+lVFj03AGXI3cMmhNWFArMUp2FeqWWQxWoJI3/JrWldOcu7MWy6b2hCbU=" + }, + { + "name": "aes128gcm_wrong_commitment", + "comment": "valid ciphertext with wrong commitment", + "aead": "AEAD_AES_128_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e45", + "context": "", + "ciphertext": "OKeE0NzfhC50CHp1KYJuw6+1DaPcrLFH6Tjl8YHo9zlqXWiy4kiKrJfWmxSQp/RfNO18TmIJQ4cAiWvvGqMwfLEDtoSbEkCFlQ==" + }, + { + "name": "aes128gcm_wrong_key", + "comment": "valid ciphertext decrypted with wrong key", + "aead": "AEAD_AES_128_GCM", + "expect": "failure", + "key": "4f52414e4745205355424d4152494e45", + "context": "", + "ciphertext": "RR55WIyDDbWhomd4BbFUAYiojlLz1jKcLSOeNmuSPy89LWXJ93JhJlYdcbgy/2qIeoaub0BK2jYAuOUG0YVo8dhqLSgmPSFKGw==" + }, + { + "name": "aes128gcm_short_key", + "comment": "valid ciphertext encrypted with too-short key", + "aead": "AEAD_AES_128_GCM", + "expect": "failure", + "key": "4f52414e4745205355424d4152494e", + "context": "", + "ciphertext": "dEqJqritKX23zD+htNL1eeZ4PZG3cezcmaiIxHaWDKVrc/et96r1G1KTUiugUF+Vh475fRWa0aUAtzXoT3I3j1LktQzEuc/ewQ==" + }, + { + "name": "aes128gcm_long_key", + "comment": "valid ciphertext encrypted with too-long key", + "aead": "AEAD_AES_128_GCM", + "expect": "failure", + "key": "4f52414e4745205355424d4152494e4520", + "context": "", + "ciphertext": "7TvgC88MJ+em5pYQW9a452ovyygpRZqspM6I6C+K3UFp1n97c8Vnm/4k1dUBOSqEBCDdF/RzPdwARs+hpqBqu4HVsW3uw7dBrQ==" + }, + { + "name": "aes128gcm_wrong_context", + "comment": "valid ciphertext decrypted with wrong context", + "aead": "AEAD_AES_128_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e45", + "context": "wrong context", + "ciphertext": "gCmYLJZtErk/cb+/eR31ClVV3/Svq4s+KKhg7tez1f3iCBC6x9oNk55aitAqgNUOHicfJXI3CeQArwoRcCKyr1Ck5JPTQsdIdg==" + }, + { + "name": "aes128gcm_wrong_salt", + "comment": "valid ciphertext with corrupted salt", + "aead": "AEAD_AES_128_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e45", + "context": "", + "ciphertext": "kRmAWOJk9RMSK3mW1H3IwGrcyxNWdFQsO/OrtLDoFYvgkYqvgNG06NPXRxA33+WF83rNMypC22QAhravTpR2FU9ARXc1y+UUpQ==" + }, + { + "name": "aes128gcm_empty_message", + "comment": "zero-length ciphertext, too short for header", + "aead": "AEAD_AES_128_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e45", + "context": "", + "ciphertext": null + }, + { + "name": "aes128gcm_short_header_no_commitment", + "comment": "only salt, no commitment", + "aead": "AEAD_AES_128_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e45", + "context": "", + "ciphertext": "xDl3n+CNRpjiejc4P0vNmcue5xq+gB/M" + }, + { + "name": "aes128gcm_short_header_partial_commitment", + "comment": "salt and partial commitment (40 of 56 header bytes)", + "aead": "AEAD_AES_128_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e45", + "context": "", + "ciphertext": "IZcs6rgvQrgbH7zFUGNpgLxE82xzvyqw7AD4wuqhZh3cVaLIq6YPSw==" + }, + { + "name": "aes128gcm_short_header_no_salt", + "comment": "too short to contain even the salt", + "aead": "AEAD_AES_128_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e45", + "context": "", + "ciphertext": "IMFBqEkcK0lWSQ==" + }, + { + "name": "aes128gcm_truncated_at_chunk_boundary", + "comment": "full chunk without terminating empty chunk", + "aead": "AEAD_AES_128_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e45", + "aead_key": "d6fab8eef1bfce823de286e9597a1e0e", + "base_nonce": "3755007176bff57cccefb340", + "context": "", + "ciphertext": "eNrswK1qAgEAAODVMdje4BiDwW1l4dhYXd8Gg6WLh2CweEmvGwRBREEfQcNdslnuEQTBYNAo+Fd8Ah/D8n3hdtdZB+3/WhnPHvbNeX5XiZL6NPkpGsv8fdR9XPzdHs/DcfkSfcbV4O31Odt8p7+tGwAAAAAAAAAAAAAAAAAAAODqsvu0d/h4CsvBV7E6TfqXAAAA///khCKJ", + "compressed": true, + "payload_sha256": "48979362d2ab899a947ee88a0ab62d1595926df911cb4bd064a14c26b12226b5", + "payload_length": 16384 + }, + { + "name": "aes128gcm_truncated_mid_chunk", + "comment": "full chunk followed by second chunk truncated mid-body", + "aead": "AEAD_AES_128_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e45", + "aead_key": "edd3bc71735e72a458ec64ad8e053ff5", + "base_nonce": "3fd935aee5bb1f7b3028b036", + "context": "", + "ciphertext": "eNrs0KFqAgEAANCLK2u3lcH2BwtjDI4NFre+sh0LYybBYDGImBWLoNlwdsEDNVqMyhWxXLksRpNg8DMEee8T3tugVdz1H9u7cvpw7L2E+c/Noch/a//vrx/pPoy+noaz5/X39eJv+dmMkyzdZPfJ1bQeAAAAAAAAAAAAAAAAAAAAAGc3aXSqo25lG63GpSCe3xoBAAAAAAAAgMtzCgAA///SBCON", + "compressed": true, + "payload_sha256": "07ee4a408f1573a4276b05f96d053123526a7f2a726b05ef12e36ec4b49ebc95", + "payload_length": 16384 + }, + { + "name": "aes128gcm_swapped_chunks", + "comment": "two full chunks plus short final chunk, chunks 0 and 1 swapped", + "aead": "AEAD_AES_128_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e45", + "aead_key": "058cc3468774d7dfa2c125880c4a4dc8", + "base_nonce": "e5c4c09e33f3f8af86211465", + "context": "", + "ciphertext": "eNrs0D8rBQEAAPC3yJvUM1hMT3wAk/wflU/wSq48MXiLxW1KmCh/RqtBuStSluvI4BalbsBiIKEkBuvVlY9xy+/3EX4D/Y2f3fPDtevX8b5kKi2SfLl9Ofk78vi5+H4Tdy52gk55cvC9GpSth7u95vRfGjbPto+GawAAAAAAAAAAAAAAAAAAAEDl7rOt/ZXb4Or0I85eFsK2EQAAAAAAAAAAAAAAAAAAAKjeUFFfz8eeovh5sGu+t/FW2/jaTEbrE909UWvpeG525j8AAP//F+E2uw==", + "compressed": true + }, + { + "name": "aes128gcm_duplicated_chunk", + "comment": "chunk 0 duplicated in place of chunk 1, followed by short final chunk", + "aead": "AEAD_AES_128_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e45", + "aead_key": "058f8385b872cfee8147c6531211e731", + "base_nonce": "1c669359c4d0281a532ee431", + "context": "", + "ciphertext": "eNrs3K9KxAAAgHH/oPgSMxksBg12QVAwisEZDLYFp1mGCDY1KIYFjaLNpOwRnGUgPoFOw7FwdxwcHMfuHuAeYOX3e4TvAb7TznM+t5sWdfCw/333U9+fJUd/8/8Hm1tre0vH08Xt+W+8cXW5nbd7Wfj2utwK11cHZZ1MAQAAAAAAAAAAAAAAAAAAAI2r0mD09HKz8vH4Ppw9qb4UAQAAAAAAAAAAAAAAAAAAgOZN/AD6i91opjiMyuv4M9tZuBgHAAD///X1Ot4=", + "compressed": true, + "payload_sha256": "3f95544bde9526985b6f1e796a54a47d9d74918ecc326bb49abbd1b0358edd72", + "payload_length": 16384 + }, + { + "name": "aes128gcm_extension_after_final", + "comment": "valid full chunk and short final chunk followed by extra encrypted chunk", + "aead": "AEAD_AES_128_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e45", + "aead_key": "ef2e79c97a30635371207686ab0093b3", + "base_nonce": "09879d3dbd6f25b46fd0221b", + "context": "", + "ciphertext": "eNrswD+LgXEAwPHf/emGW67nuqu76erquuV6rm6460xmxUBPFitJ2ZSJ6FGKSGyekNGgKMmghPFBkSTDU55VZFImXobl+4k0XpRqq7aYW9/y7utucuKNvfqi9ceMbZkOqt9Fffvw9H+7OQnz5zDTj/FPJVWoSMOBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF9fWwprlXvv6U5xXzVGgI3qGa/+cMNWp//fdk+1/iHHpbpXbOSQjJN+U5bX9HAAA///5lzLy", + "compressed": true, + "payload_sha256": "db6c8c61df64eb22f1b6df060603b16847740f16f36f3b7e21f6905683113f2a", + "payload_length": 16384 + }, + { + "name": "aes256gcm_empty_payload", + "comment": "empty message", + "aead": "AEAD_AES_256_GCM", + "expect": "success", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "9743f764ac9fccfaf733617c989c67bc67ee7e21f7fedbc864bab26356630e78", + "base_nonce": "d8857bff507d0677f95e6d44", + "context": "", + "ciphertext": "ywP6x9b2OJx41zv5+eI56OCUyutMsyrW15x/qLVxATbZ/Inn/1A4+xyTZAiS8dLXMbLiXoESwh+lCH82PQ49AvclLt4QmC1T", + "payload_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "payload_length": 0 + }, + { + "name": "aes256gcm_short_payload", + "comment": "short message, single chunk", + "aead": "AEAD_AES_256_GCM", + "expect": "success", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "a35b71410a61ad877058f19e01d825ed422c68c07af14ba954b63e9cc4b0968b", + "base_nonce": "c03301c264f2fe9f7a403950", + "context": "", + "ciphertext": "suFSoW47uFy+w4rGMCbiWA1DrxUXIw4oCx2wJll6qVcRLXPdurkBJemLtkDKHhYRajeA3pd/QdQI9vxs6/0ELHVDhRXzH+agv2axUdZiXw==", + "payload_sha256": "59fdd34a0b323f6044e147b843d8ca246a9414d2c7a06c8e95a7e04c3cdaf395", + "payload_length": 7 + }, + { + "name": "aes256gcm_two_chunks", + "comment": "full chunk followed by short chunk", + "aead": "AEAD_AES_256_GCM", + "expect": "success", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "f6cef21f1185077e66ebb4bbcbfbc9541ba64516df19dd0a20d9e6dcc593cf63", + "base_nonce": "312deb2cd6b5055d2fbf18b6", + "context": "", + "ciphertext": "eNrswK1KAwEAAOALckmwqCgGMSpYhEv+BMMhHAhi1HLhsPoEihi0KdyhoFWDTSyCHFZBX0ARMY3jyhY22BY29hgr33e81H1/KsKN/dnV8ubi8+ftZDneyg4PknZYrfSfH8tGL//f+Z1PPx6S+2zQXPiL0uLq/CUAAAAAAAAAAAAAAAAAAAAAxq61np9Vk3uvd5vx1NrE5Vfw3Ylmtut6uDs3fbt4enQ9CgAA//8oGCxn", + "compressed": true, + "payload_sha256": "1ce894764f93155e8b85833f1b594e764d5567d216d5018da2bfc67db58cb70b", + "payload_length": 16385 + }, + { + "name": "aes256gcm_two_chunks_full", + "comment": "two full chunks followed by empty terminating chunk", + "aead": "AEAD_AES_256_GCM", + "expect": "success", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "373a3a7172d3291a26eddf0e7ec0b87188de0d86df36b042248c28531fb79585", + "base_nonce": "01832db2f3dea0657f087a0b", + "context": "", + "ciphertext": "eNrs0D8rRAEAAPC7ZFOuLKSOSV2d19WVokzKaL1ZTKQQZdPLYvANkFOW17NRrwzKIs/Cquff9F4yqrdY7mO85ff7CL+34zR7mOp2yvK9tznWmPh5OdtbT+NWEZ0Hh91e/WA+CfL/r3Dx7qj2GnSW/6ZXbz4uR4oaAAAAAAAAAAAAAAAAAAAAULnZ652h52RtOGz3d7M4OjUCAAAAAAAAAAAAAAAAAAAA1Ws//jZnynp/KRzN7zeuGgvb4/tbF08r383P25PJudYgAAD//3iLMpU=", + "compressed": true, + "payload_sha256": "f4dfc3421ebf2d9ad6d037d1f90b297db37a8d29f2685b8ba9cb67549c54676b", + "payload_length": 32768 + }, + { + "name": "aes256gcm_three_chunks", + "comment": "two full chunks followed by short chunk", + "aead": "AEAD_AES_256_GCM", + "expect": "success", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "2ac96fb765fc43fc06e7d465f2e5081d9bdd0c528cf608e9eac648493a8fd4be", + "base_nonce": "99b58c12b2cdb2893746e14a", + "context": "", + "ciphertext": "eNrs0D8rRAEAAPAblCQpk0nUDXILX+ANV1cMROlK12W4GbsYJEdy0vsA8ob3SqIserPF4N+ivDK9TSxKeQODj/GW3+8j/LKHg1awtt6dS5sfj4tLC9/57WbreX9nI73bqq6G3ae/5kkQTUd759l8e+omCcJGfaDW+KoAAAAAAAAAAAAAAAAAAAAApYsHO/XX2kzyu3z6M/p+eWgEAAAAAAAAAAAAAAAAAAAAyvd5VAyNzO5edCaqvbfr8e1KEa/098auXvryyfbx8Nn9fwAAAP//qn80BQ==", + "compressed": true, + "payload_sha256": "29e424acbf77bc348ed413d29584b50f1cbba33f42403a55ce6a84d55f33edac", + "payload_length": 32769 + }, + { + "name": "aes256gcm_last_chunk_empty", + "comment": "full chunk followed by empty terminating chunk", + "aead": "AEAD_AES_256_GCM", + "expect": "success", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "846af20b2f784e91b4136bb28de5b072f30f93e2d2bf9a135eaf60ca642b80ba", + "base_nonce": "05c60cf16effe1e445f253ae", + "context": "", + "ciphertext": "eNrswCFKxQAAAFB1YVWGiGCyGEyKYNAxRGxiHYMZxGCQWcSiCILJ5AEEByuC2Z1hZQsmiyDIugyj++Ef45f3su2uDJ6Oh5PTPt//2ArGr8W6j9s0OjsYfsL6fae6O/9efjtqx+f5auMijO+zl644/JsDAAAAAAAAAAAAAAAAAAAAZu46uYxuV8q119X/yV78mOx+Lmw2RXrTFOu/Vw/50jQAAP//5agojw==", + "compressed": true, + "payload_sha256": "f067f04b8007380ce33bb0bc96388b20e5f916a79bfee2120f4d84f87088ef32", + "payload_length": 16384 + }, + { + "name": "aes256gcm_257_chunks", + "comment": "256 full chunks plus short chunk, tests counter rollover past 0xFF", + "aead": "AEAD_AES_256_GCM", + "expect": "success", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "1826a248c5a781ad41a30f4f071ec07a425e9b7ed2eb585eb2881ea97fd15931", + "base_nonce": "d57d44ec94e237c4f255c77c", + "context": "", + "ciphertext": "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", + "compressed": true, + "payload_sha256": "0d87b1a3284db8f05b00ea545c6bac4f4a92a2608338f38957ce944cbdec25c6", + "payload_length": 4194305 + }, + { + "name": "aes256gcm_context", + "comment": "short message with non-empty context string", + "aead": "AEAD_AES_256_GCM", + "expect": "success", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "e737c97791f2f2f0ef0509ca69ce3b7e3c6ebe31753529036b73e3008648d693", + "base_nonce": "126c05620c70118d873a6df9", + "context": "test context", + "ciphertext": "GA1TJvATqklZ7lqcqKqSzF4ouqucGUWeVnzA+ndS+VYdZX9POhuwJj3eU0eVBmjl/nUgrx98MtzL5n834d2cHmC/HecYez+b+nQhLMDGig==", + "payload_sha256": "59fdd34a0b323f6044e147b843d8ca246a9414d2c7a06c8e95a7e04c3cdaf395", + "payload_length": 7 + }, + { + "name": "aes256gcm_context_with_null", + "comment": "short message with context containing a null byte", + "aead": "AEAD_AES_256_GCM", + "expect": "success", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "afcb19473c602dbb6c725832e16cdbce23f4bc203f8f872a3dd5bb11eca52bff", + "base_nonce": "0512bdfed1515fd0b3db6a07", + "context": "test\u0000context", + "ciphertext": "PRokUv90yZjdQGUbt9huocj2xki72padNUsZmQJSA0VyZgOsxvt4huUCW+WVwKAvlmQQ3CjrScIUo8Nych7oR3QwgqKX/sWQfFbIqMLhxQ==", + "payload_sha256": "59fdd34a0b323f6044e147b843d8ca246a9414d2c7a06c8e95a7e04c3cdaf395", + "payload_length": 7 + }, + { + "name": "aes256gcm_bad_tag", + "comment": "single chunk with flipped ciphertext bit", + "aead": "AEAD_AES_256_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "26964c7452dd712cfa087c64b8ec85ef45e4eb1d4e50b303ee9d07a898416fa7", + "base_nonce": "2d0029bf377372357f1bc35b", + "context": "", + "ciphertext": "TIX64gfRT6+gCgIUzAyPv7zQPNoyWA76r4iXPoeaRfJk6jCNwtQ+ZG7XcY3v3MAj/+RybNksaV0Ag3q6z0CBKZFurS8sv2iiyg==" + }, + { + "name": "aes256gcm_bad_tag_second_chunk", + "comment": "full chunk followed by corrupted short chunk", + "aead": "AEAD_AES_256_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "826556cde7b1b2d6ee6bc66b55be084ecf7bbc0135f40e858dc34d99c1feffe2", + "base_nonce": "5dea0b186ad827a38afd6bf7", + "context": "", + "ciphertext": "eNrswCtLxAAAAOBZrIpgdAMfySYmkwsaBMEigjCTYUGD1bRiUExiUGyC2eKC+EBBYajRO7jVu7a2dBzc42dc+b7eMC5a2dZx+PG2P/H/m67+nM5FyX1//nKQvm5eT5f1Rpw8VF+dg6Xo5fDvZLLMP2fvipUAAAAAAAAAAAAAAAAAAAAAGLvw6egxe8+r58Xb5tlMdypY395baNTna1ffy+3dm52LUQAAAP//bJwt0Q==", + "compressed": true, + "payload_sha256": "035af54121de0dba1f6a09aadcf97f611d83124a398505968fb9531041598a0b", + "payload_length": 16384 + }, + { + "name": "aes256gcm_bad_tag_second_chunk_full", + "comment": "two full chunks with empty terminator, second chunk corrupted", + "aead": "AEAD_AES_256_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "94bd6a9015cb08e7797c99b7f10f99f9e58ce8cc72ca2552d6a859ede2bcb80c", + "base_nonce": "a18ed0bb3bc8247b1c4353ea", + "context": "", + "ciphertext": "eNrs0L8rBQEAAGAp5ZUfSYbHcGV4RYpsTGxGKSODZHh+xJsMjKYXpQyK8cox0JkUIcNZLlHmK4NF3XTM3p9xy/f9Cd/Mx2tRP61Uw9rwW95YDfLvr2zh4mwgGRrZq3cvvdye706cHK21Px92/cXj+3dT79Mrl+n2fxsAAAAAAAAAAAAAAAAAAABQumBruVp73OhtJleN2fvrByMAAAAAAAAAAAAAAAAAAABQvmhn82ZwPutYb4bRYl/6M9oZ/B4Unz1P/XFlcux4rhUAAP//72Exxg==", + "compressed": true, + "payload_sha256": "4df25f0a1b8d53719abc426422837b6f565fbcd696fd2f4e273c7e662929dcf5", + "payload_length": 16384 + }, + { + "name": "aes256gcm_bad_tag_empty_final_chunk", + "comment": "full chunk followed by empty terminating chunk with corrupted tag", + "aead": "AEAD_AES_256_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "bed04b2cebceee8d4d6bffb71cd44d345f8d0cb76c33e442da921750223a24d6", + "base_nonce": "b63019adf7d92e08669a1a3d", + "context": "", + "ciphertext": "eNrswK1KxAAAAOAVMZhkVtEyi1jMFhcsahHF4kAmGMQkLCrYxCIYxKCwoAZZGmZNuuwDCMYbx8GFg/uBG/cYV74vLud7zdzV00uTvPWL8Wb8uteqo+Pd9fDvsb1y2k0eLj7z9CMcVjcHxff17P/W8329tngXAAAAAAAAAAAAAAAAAAAAAFOX/+6XS8tn2eHovVo43zlJo8uZo+zna9AJbje2V4NJAAAA///fjyw/", + "compressed": true, + "payload_sha256": "bdb6cdc8979b418663b9a2b6ff5a1d1905d6a90ba7097761a7802d7e98e2ffb7", + "payload_length": 16384 + }, + { + "name": "aes256gcm_bad_tag_first_chunk", + "comment": "corrupted first chunk followed by valid short chunk", + "aead": "AEAD_AES_256_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "e69876448132e0f8cdf8acece50037dc0745975b7ddd8281e8608fc5c478dab8", + "base_nonce": "3a483cc226d5e5df74a8bdaa", + "context": "", + "ciphertext": "eNrswKFKAwEAANCLokE0CMopGCz6AYcYlAuKoF5RLHLVbjDYbJo8EUQuGL1iUYPJdCAG69jlwdjCwhhcWdj2GSvv3W1eNGdehjfl09FafrJbzf/831bxX9Lvfu/k17Odh2jusB5F8UbYLlYH5+n79v7XXuvjOAAAAAAAAAAAAAAAAAAAAACm7vP18qB+zBbSxspWdv82Dsrn9GqxSLLw9Hdpubd+NgkAAP//8uYqxg==", + "compressed": true + }, + { + "name": "aes256gcm_missing_tag", + "comment": "single chunk truncated to remove authentication tag", + "aead": "AEAD_AES_256_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "62430951c6812a7c90a56bd264c18ab9a95b4345c3b4d73170e05af51fd0b6bf", + "base_nonce": "cbb102cac379a19ab8a37574", + "context": "", + "ciphertext": "jO72KAtilFAcTVGZsOpEFrPWxd7OqTUH2W/evs1s6ypurdgviiv6zZnqw3ULUHCtL0grSkWaFBYA" + }, + { + "name": "aes256gcm_short_chunk", + "comment": "payload shorter than one authentication tag", + "aead": "AEAD_AES_256_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "26659dc41fc55964f091b6e829dec44f2e5a70d95b1cda64a9c2ceb57475a124", + "base_nonce": "b5e9bcc8d88dfebc973d233c", + "context": "", + "ciphertext": "GAbSLIu/OyWYwErmtHcQD0BKjfzapm4FNIx5XIYCKzFz1ZKR47hSSMbsQrH5aH5oWzU8SPrvOeQN11jO/ELvT8w7HHQ=" + }, + { + "name": "aes256gcm_trailing_garbage_long", + "comment": "valid chunk followed by 20 trailing bytes", + "aead": "AEAD_AES_256_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "5dd8c5c4b4a69f866c4f5c6dfdc262d0c2e65d86c2b2a983403cda68bd8380e6", + "base_nonce": "f85d0234273b77ce9b154e53", + "context": "", + "ciphertext": "eNrswCtLxAAAAGBFi2VB0V8gFg3LNmFWEbQrsrSyoEYfRZhF04JJ03wxLGYFg8IQ30EQi8Lg4trBwt3PuPJ9D+vnozOvm0d7+dvL/NJ/+PS+MbV/GwUn5fLP1250Wt/FzUT6uRCunX1ns+Viuzp9X1+OJ0MAAAAAAAAAAAAAAAAAAADAwP1VwWHRXvUm45GsWBlr0pvr452t3+dutT130Mkvko/hx34AAAD//2YwMUw=", + "compressed": true, + "payload_sha256": "0270a965c0c35a70e8c5320f2185b940c0011f2685711bd8eab0e468a5315361", + "payload_length": 16384 + }, + { + "name": "aes256gcm_trailing_garbage_short", + "comment": "valid chunk followed by 12 trailing bytes", + "aead": "AEAD_AES_256_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "a23ec5edbf6cd719631e7d106ac0de83b77cb2769313688033928702a93a64b8", + "base_nonce": "823792fc5825a77871924c2d", + "context": "", + "ciphertext": "eNrswK1KAwEAAODT4w68csmgGAQRgyD4BuoJChosFsFkEYPJ36Lt+iVBg2V9ZWzsAVaWVhY3WBhcGlu7tO0xVr7vc5GP4trG2nP7Jz3eeqv/Fi/vUZbf/Jfx4frDJGkF5wff+yfz8e3pZnVRzK6v9i772TQNAAAAAAAAAAAAAAAAAAAAgJVrdo6SRhQ+9nbDbhy93pV/Tzvb9x9fg2F1tgwAAP//5UEjYA==", + "compressed": true, + "payload_sha256": "66c1331db069e58cac31358da02a3bba3fd4a19604054d0193d9794b87bdfaac", + "payload_length": 16384 + }, + { + "name": "aes256gcm_no_chunks", + "comment": "header only, no encrypted chunks", + "aead": "AEAD_AES_256_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "b546dffc4dd012e760f98f305ca033ba5780a44237c2e8822173cb0098e91cb5", + "base_nonce": "40881952f3209bc7bebe4915", + "context": "", + "ciphertext": "ZWYh3wMyKzNduAJ9/u7azJ+rhs8Zirn5yH0aSnzBmsvMTlr+o2F2IytkcvfvEoFPa0e+RPQUNYU=" + }, + { + "name": "aes256gcm_wrong_commitment", + "comment": "valid ciphertext with wrong commitment", + "aead": "AEAD_AES_256_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "context": "", + "ciphertext": "kTRJAxMTTGMDYykK5xSJmL9rrXuRVrfodPqIjq3eMzHB4nlsTR5i83MMtfuQ1iUOgExUgk8UhzwAYBXaRn0yH4gvPNbSIQjS9w==" + }, + { + "name": "aes256gcm_wrong_key", + "comment": "valid ciphertext decrypted with wrong key", + "aead": "AEAD_AES_256_GCM", + "expect": "failure", + "key": "4f52414e4745205355424d4152494e45204f52414e4745205355424d4152494e", + "context": "", + "ciphertext": "xPgV6Mr+H2LhoXKr3ZGmd/THlx6KWaf06vW+ZCc9KKv1ii+j+1Lj492WOodYkHTosXGLYfkoG58ApumQwEPg5/rOMlIU2gqyCw==" + }, + { + "name": "aes256gcm_short_key", + "comment": "valid ciphertext encrypted with too-short key", + "aead": "AEAD_AES_256_GCM", + "expect": "failure", + "key": "4f52414e4745205355424d4152494e45204f52414e4745205355424d415249", + "context": "", + "ciphertext": "nr7kWY3emyAukT291rU2p3q+iZFY+tGtI6CuIMCX4zBuShcKNf8C5YM9dh1kPrhq9rJ+f3TA6XwAXpQpzNgx9QdFRsbWBzffEQ==" + }, + { + "name": "aes256gcm_long_key", + "comment": "valid ciphertext encrypted with too-long key", + "aead": "AEAD_AES_256_GCM", + "expect": "failure", + "key": "4f52414e4745205355424d4152494e45204f52414e4745205355424d4152494e45", + "context": "", + "ciphertext": "D4hBHLAJlMkMKu2wkuIjQ9OM+9xCRYf4m1JI9aC2JkjuYoMY8JAE6tk9QYBZwoDcHgvJkwAFzHEAlrP5DeJRihLpcBjksi2S8Q==" + }, + { + "name": "aes256gcm_wrong_context", + "comment": "valid ciphertext decrypted with wrong context", + "aead": "AEAD_AES_256_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "context": "wrong context", + "ciphertext": "nbvkZ2ehnJXerUMmqVk/efRVLDKurXFAynnnv7w2gzMxsfGLW4Wq5Ikt6snwGlQXlQfEx+XJR6UAeCTQDaArZ9LSvOTUZiVWRg==" + }, + { + "name": "aes256gcm_wrong_salt", + "comment": "valid ciphertext with corrupted salt", + "aead": "AEAD_AES_256_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "context": "", + "ciphertext": "xhwm6MgnKH/b4FINGeCM2ez7fkIE3QC9FBfzjgFjnpIAcZv1UDWmmeoKHynt++PUz9EQCAErFfEA/zR/Bx88aJbp0nR0Spm7Rg==" + }, + { + "name": "aes256gcm_empty_message", + "comment": "zero-length ciphertext, too short for header", + "aead": "AEAD_AES_256_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "context": "", + "ciphertext": null + }, + { + "name": "aes256gcm_short_header_no_commitment", + "comment": "only salt, no commitment", + "aead": "AEAD_AES_256_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "context": "", + "ciphertext": "gv8oWXmkqxVDVHzTt+Kv1kgZcgbKZt77" + }, + { + "name": "aes256gcm_short_header_partial_commitment", + "comment": "salt and partial commitment (40 of 56 header bytes)", + "aead": "AEAD_AES_256_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "context": "", + "ciphertext": "Wjyy40iVmOxO81hJ2Em7O6taPJYKm/BwYMLuXKbDHJ9EXn0xP2rpCA==" + }, + { + "name": "aes256gcm_short_header_no_salt", + "comment": "too short to contain even the salt", + "aead": "AEAD_AES_256_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "context": "", + "ciphertext": "n+ZRtH24yAG72g==" + }, + { + "name": "aes256gcm_truncated_at_chunk_boundary", + "comment": "full chunk without terminating empty chunk", + "aead": "AEAD_AES_256_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "03e56665069566eff4192a155cf077552e419e1eb587cba4f73b5de60d08ee58", + "base_nonce": "76cda30fbda03afd6ddf7e16", + "context": "", + "ciphertext": "eNrswKFOAgEAAFCDJssVk276C4YrzubcWQyW232CVavppLORGI3AGBuBI3NsMLYj0ShQjgs0Nhj8AJ9Bea81r/29HcPl428ZvETDw9fN7P3jOXodD6oqSzqLIk9vH4rpddn/z0679ij4/I6367x5BQAAAAAAAAAAAAAAAAAAAFxcvOqm+7vGpFf/Ce+Tp805AAD//80zJhI=", + "compressed": true, + "payload_sha256": "908c218876cf72ca132226f2a2c965d8aebc67d02863922cbd19c8d6812606b7", + "payload_length": 16384 + }, + { + "name": "aes256gcm_truncated_mid_chunk", + "comment": "full chunk followed by second chunk truncated mid-body", + "aead": "AEAD_AES_256_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "4509629ad199464abaf5f06fa8af5e54a058b84e1517044cac5e8771ba7f4d68", + "base_nonce": "30d40b41852ab93a0f921acd", + "context": "", + "ciphertext": "eNrs0C1qQgEAAOCFwRgbb2WDbXlpZYPtAEu7wGNtBsVgE5MgJkEML2q0iIhBUZBXLGqwqtFg9AfxAlaPIcj3HeHbL9tBeRuNi62HQhjOh6WX3tv7z+vfZ7X53B191T9mme9O4zG/ucnm7hf9SSodJ6PjLr4CAAAAAAAAAAAAAAAAAAAAzm41Hax/727D4PD0X7lO1IwAAAAAAAAAwOU5BQAA//+GvSI+", + "compressed": true, + "payload_sha256": "315e602bd3f6c2c23f759f439e5245b90237eee9c01028bb67f785a81f9d1819", + "payload_length": 16384 + }, + { + "name": "aes256gcm_swapped_chunks", + "comment": "two full chunks plus short final chunk, chunks 0 and 1 swapped", + "aead": "AEAD_AES_256_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "6dc5390d0196633c7599abfdb6fc20de9c03a6e1fa511832991f15921bd04612", + "base_nonce": "9a5ab8b205c5758de3d09067", + "context": "", + "ciphertext": "eNrs0DFHBQEAAOATFSVpeENKSS1vaHmKSEvDtSdeJIqWJLc11ZsaItJ0S7QkIkVLe47jRBxxNDXkhnIUDYnoZ9zyfT/hC6LOydhr9P7z8nsws/qWhNvF5sPGeqeYvW70nY0/9rb+yvbgaHa1le4OZN9Lcf/iZHPn6z4AAAAAAAAAAAAAAAAAAAAAane0X03sTYdDF9H81PBnnhkBAAAAAAAAAAAAAAAAAACA+l22D7tHWsnyx13+dPN83AiK83Bhbe60WZW3K109afwfAAD//w+qMmU=", + "compressed": true + }, + { + "name": "aes256gcm_duplicated_chunk", + "comment": "chunk 0 duplicated in place of chunk 1, followed by short final chunk", + "aead": "AEAD_AES_256_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "73991192206aee59d3bbe493efd301575bd0996149477a99ee759fd03f47cc6b", + "base_nonce": "89be846d565fd40d313eed43", + "context": "", + "ciphertext": "eNrs3K9KxAAAgHGLf4LiAwjCXsCyB7ApCANBmFEQhIGo1SXRJCaxCcpgIqIWEWFtyWByXUGmYLtwx4VbOI57gHuAld/vEb4H+PZWD9aT06eVsCzmnwfZV5E1Zy8Li+nFsPpfrjb7b2lcl4/hd/Aan1zns+939VESTZ+vTQEAAAAAAAAAAAAAAAAAAACty7e7G8ef98FHZ+cvOlzqKQIAAAAAAAAAAAAAAAAAAADtm/gBpA+jm+Cy+fm9vdrd35qbGQcAAP//WpM33Q==", + "compressed": true, + "payload_sha256": "234d5876fd9db9d9f5a2ec544f9eb49c9e47b56077c31313fb31f315cf7233b9", + "payload_length": 16384 + }, + { + "name": "aes256gcm_extension_after_final", + "comment": "valid full chunk and short final chunk followed by extra encrypted chunk", + "aead": "AEAD_AES_256_GCM", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "6267c7c6ff19011398d30ca27a2663bf25c4e66c6dac9ac76fe4b9619e7c65e6", + "base_nonce": "52b4efd70543237d6344ea1b", + "context": "", + "ciphertext": "eNrswKtrAnEAwPFfGKxsbGHskRc2tqWlsTGDqFzRbDiQU1BQgyBouaLRqpxRg3aTaFCQUxAFbaJiuHbnowhqUBH/DMv3o6uFh6rj/WYaMK5F50eeT34TJSXvrSw8t5br8/H5aSClQ3WboseCf2Lnl+6WWbfdGRYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAODiZh9f7YM6arxsU32fdtwIzTK661W52BzHX79b0TdR25/M5L1uXuV6EXn4nzkHAAD//y0DNe0=", + "compressed": true, + "payload_sha256": "5221295bb6c8c43d61d879537a5be6ee73ca8dccf639968ef5dfcdc08dcd7cbd", + "payload_length": 16384 + }, + { + "name": "chacha20poly1305_empty_payload", + "comment": "empty message", + "aead": "AEAD_CHACHA20_POLY1305", + "expect": "success", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "29b1fe3a98010dab3e4dde5da5a45c67d8e28399dbc1a9b4507d09f17074e585", + "base_nonce": "1176144246c5a239da7417be", + "context": "", + "ciphertext": "s0ViaDZWDjAPnCjzNDUMGD+i8+jsjI2xtNT4pP6XOjVoKLroLwc4fcOGhEOYUWmpcEfKKdUe9IVwNZieFui/BmAqSkc2x2fJ", + "payload_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "payload_length": 0 + }, + { + "name": "chacha20poly1305_short_payload", + "comment": "short message, single chunk", + "aead": "AEAD_CHACHA20_POLY1305", + "expect": "success", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "d6988033fb747a3bf6cdc064c4a6ab6d10fa7622065be4f755acced119e48a04", + "base_nonce": "843e9baf83ce4564a7164308", + "context": "", + "ciphertext": "xCZeqXGgx1RkBO9AaRDhHGV2Sy3wN/anY/CtyzDhjHQzceincw8cR8Kif17NLvkCsFy55TBW091tSc5Pv90ZQwpT8YCWYTtfuu0+wmhZ5w==", + "payload_sha256": "59fdd34a0b323f6044e147b843d8ca246a9414d2c7a06c8e95a7e04c3cdaf395", + "payload_length": 7 + }, + { + "name": "chacha20poly1305_two_chunks", + "comment": "full chunk followed by short chunk", + "aead": "AEAD_CHACHA20_POLY1305", + "expect": "success", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "fd6b6636fa5794e6dc622ab141e86e615e0e0a27ce79b8217b0e5d22546ec974", + "base_nonce": "6f9f266fd6bdc29e57cada34", + "context": "", + "ciphertext": "eNrswKFKAwEAANADEeHAZDsVq2DQIhzY1HCi/sGB2WLSJH6BiiBiMQgGDSaTaDAJJk/lDmRhYTC4MMbCFjbYsX3GyntHX2+rx/2t742d1zRbbu6flb3zIn+uZg7/WnEURle10d30y0eyt7R+mjz9dE6m4rXbx/t6AAAAAAAAAAAAAAAAAAAAAEzc5m774WLuJiv/D95/qzANVhYX5hvd6+3PvBjMXg7TcQAAAP//OWYu8A==", + "compressed": true, + "payload_sha256": "06ff79ed53d2ced268c0071d977cf524c27fd7de4d9d116f533bd5c36bf04d54", + "payload_length": 16385 + }, + { + "name": "chacha20poly1305_two_chunks_full", + "comment": "two full chunks followed by empty terminating chunk", + "aead": "AEAD_CHACHA20_POLY1305", + "expect": "success", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "24b15e8a033d7bfa0238844b0c5b29e211110533df3ed8b863b48935bfd12158", + "base_nonce": "bf29082e06931ad424e3b492", + "context": "", + "ciphertext": "eNrs0D0rBgEAAGBFBmV5FzHoveH1DgyXQVkUpcSgWE03MPkLLAaLUpiUj5QOxaIkZtncdl35uMXXlZXi0vszbnmen/Akz/XaZPy2+bt/fRUc3ASNxaewK579//yJ5npm5odq0xtn+d3O9/LE6/rY7UD7431/dNIcKdsAAAAAAAAAAAAAAAAAAACAyqXpcRIWDx0vu3l5ftEdGQEAAAAAAAAAAAAAAAAAAIDq7X2tHL5/FAvZeONvdS04muod7bscHqxvbTc7T7OlrBUAAP//9z82Dw==", + "compressed": true, + "payload_sha256": "6dca3d27bedf69a00722ed7e5bc110f45c2e764d516343774fa7042badc8137f", + "payload_length": 32768 + }, + { + "name": "chacha20poly1305_three_chunks", + "comment": "two full chunks followed by short chunk", + "aead": "AEAD_CHACHA20_POLY1305", + "expect": "success", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "14e12b402def474e051fa0775b6cbdf221489e157716396c5c2b9335153b58f8", + "base_nonce": "c7e0551333f78cbb879676dd", + "context": "", + "ciphertext": "eNrs0D8rRAEAAPAr3HbTUSbsupLZqDOhpMsm5QPIwk1vUyYh5PxJyXhRBv/ipTe+Xj3Jogwmz6qewVt8jLf8fh/hlzW36hO3k63OSM/i0EXU3hw+O29+PR+Mzr53x5PlbKNvu2jcdF8eB3eDpH/n529gqho0xg4rAAAAAAAAAAAAAAAAAAAAQOmCKF5aed3vrT2cfh91Zu6MAAAAAAAAAAAAAAAAAAAAQPnW2vXL43T6emHuqvhspauV2snv0/r8Xv7xVo3D/D78DwAA//8YiDby", + "compressed": true, + "payload_sha256": "7e8fcca4f20784d9af819133eab97c5f1d012bfa5fd2db5f90cff5ecb8469cd3", + "payload_length": 32769 + }, + { + "name": "chacha20poly1305_last_chunk_empty", + "comment": "full chunk followed by empty terminating chunk", + "aead": "AEAD_CHACHA20_POLY1305", + "expect": "success", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "f69ee0b9d296ee3f93cd86ee50c5c3b78b4a03ef1c9c527d5195ce5242d59a72", + "base_nonce": "6a99473aeeb47d641d626b09", + "context": "", + "ciphertext": "eNrswK1KAwEAAGARTQYRVA4EQdBqthjUcMUkHHj+YDFdEJNyeMloF59DVGwaPBQUw5b2c1tY22Btg8Ex2GOsfN/g5PHvK9+6Pz9aaneqvYPgOokOy+7KfON7tXbZ/3kLt3eeT18WXvfLJN04vn0Yx2e7e1fFDAAAAAAAAAAAAAAAAAAAADB1ixcfzafZ4VoWLsfR5vt/pZ7dpTe/RToK1uc+W/kkAAD//wOmLKU=", + "compressed": true, + "payload_sha256": "33e57adffefaf62425d03313b09de2d197fc18c1a1386bea348a3dd5ac36f5fc", + "payload_length": 16384 + }, + { + "name": "chacha20poly1305_257_chunks", + "comment": "256 full chunks plus short chunk, tests counter rollover past 0xFF", + "aead": "AEAD_CHACHA20_POLY1305", + "expect": "success", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "91a5bc77d2ae127c276a9d1b5d13e5baafacb73c107305500a18dba54b070bdb", + "base_nonce": "3759e10053f5a8662318ebe1", + "context": "", + "ciphertext": "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", + "compressed": true, + "payload_sha256": "f8ab201c19ebbd257e65b1dfa5b37cc33c269a619a169675cbd0db30a2536d54", + "payload_length": 4194305 + }, + { + "name": "chacha20poly1305_context", + "comment": "short message with non-empty context string", + "aead": "AEAD_CHACHA20_POLY1305", + "expect": "success", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "339a2e9e3a4bccaa605ae48590d5e62fd58d4157c7d16e5b67fadc7d9749902e", + "base_nonce": "92abd1408cc60e19bbeb8fae", + "context": "test context", + "ciphertext": "dHOI2ZCl4wR7W8ppUKnlzjyLQbS3lB4PO48s5AhvETZrv+n6ezwznzdfs0OlwN0X+UB/qZtOUmTT85S49gSYF0vlmCh0aPWGScZq7PuA5g==", + "payload_sha256": "59fdd34a0b323f6044e147b843d8ca246a9414d2c7a06c8e95a7e04c3cdaf395", + "payload_length": 7 + }, + { + "name": "chacha20poly1305_context_with_null", + "comment": "short message with context containing a null byte", + "aead": "AEAD_CHACHA20_POLY1305", + "expect": "success", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "5d86e9044e517229d76b8e51f32a4d3e2098d4a3f3d04ea05f71cc04eaf35c8f", + "base_nonce": "56b55f87aeb3297147d45084", + "context": "test\u0000context", + "ciphertext": "yHPDjQIiXUn9y6Hd+cgwfaiAdXEATuXF/Rg0lPGNTSPbqoKzyjWMhV+75NmaKU+CZM9LwyvtRN+sVW0F8YNldi8Gd7vKVLoOMuRsd/AdLA==", + "payload_sha256": "59fdd34a0b323f6044e147b843d8ca246a9414d2c7a06c8e95a7e04c3cdaf395", + "payload_length": 7 + }, + { + "name": "chacha20poly1305_bad_tag", + "comment": "single chunk with flipped ciphertext bit", + "aead": "AEAD_CHACHA20_POLY1305", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "1774c705288021fb06b9b95dcacd737ee857099140aa2bc5a215e652c2e166df", + "base_nonce": "9cfdef8aef05c2f748d7c54c", + "context": "", + "ciphertext": "HqWW7HlSNrQrbcZ1pqZosSNksUkSiOlXBmtnFNnw4tWTkY319a0E5WG0tzQdme0Wu8x9GPtGD1gAXA4yFkGJNp5ey4yCPWkbpg==" + }, + { + "name": "chacha20poly1305_bad_tag_second_chunk", + "comment": "full chunk followed by corrupted short chunk", + "aead": "AEAD_CHACHA20_POLY1305", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "a8b1654e3bccbd8a3ab96a90febbbf26677c7f3c49352d821715e394fcd8ce40", + "base_nonce": "0cc608576385a77a442595c0", + "context": "", + "ciphertext": "eNrswKFKxAAAANBp0GCyTYwaLcatiVaFGcSFoXXFYDGKZXU4HNjEJorNJDbBKCgYTCJ3HJe2dhwc4+4zrrz3+P18dfFxc3/Z7E9/k2qcB6dZtptuv7Y7vfM4XDt4Oqm/wuj69idOlw9ftpLB5nBj4b0MAAAAAAAAAAAAAAAAAAAAgLkroqX6rMqbolzsVtrVh6B7u/vcO+6vT9K/0VGc/c8CAAD//7ruLEY=", + "compressed": true, + "payload_sha256": "2f98aca443b9af8c1c6211d04d83a9a3b2d3106a2e23f5444d707d99288240d0", + "payload_length": 16384 + }, + { + "name": "chacha20poly1305_bad_tag_second_chunk_full", + "comment": "two full chunks with empty terminator, second chunk corrupted", + "aead": "AEAD_CHACHA20_POLY1305", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "309cc51722e75b34bb0ddf2eb0f11071a6232708be4aeed8e153b1a0d23d863f", + "base_nonce": "40287e741934d201b64d0367", + "context": "", + "ciphertext": "eNrs0DErRHEAAHCvK4uSlMXCRPnX1XWUgbpPIFEo3WXUUcpGKaNVGW/BoIc6dd4ib3pJxpfN+Mr8KBaTj/GW3+8j/F7j8LIznJ/XPyYHZ8lNpx0nC/O9OOqf7I2HWjesTWw83f2VjZ+Dx4fuaON0/6v1XOtcXgwBAAAAAAAAAAAAAAAAAAAAlbu/nvteXT7avWr+fi62e6kRAAAAAAAAAAAAAAAAAAAAqN7Y9GHRKo6zla2lrH+7Xc68R/WpQTS7madvzfWR8B8AAP//QbEwXA==", + "compressed": true, + "payload_sha256": "b1431f20745da571201b57ccfa5d4cf8a369cfc9bbe039df0d15ad7ca59e027c", + "payload_length": 16384 + }, + { + "name": "chacha20poly1305_bad_tag_empty_final_chunk", + "comment": "full chunk followed by empty terminating chunk with corrupted tag", + "aead": "AEAD_CHACHA20_POLY1305", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "4907606b0acd797fce981a2ae9b78a8fbc6d72f1ffd7e9ecfb8184b4734f9322", + "base_nonce": "fe7946f46705ff96435c4e03", + "context": "", + "ciphertext": "eNrswK1KAwEAAOCzePjDNatcFMSLgiiKQS4pGFQEDRcEwSQKlxQUtAti0cN0IMgFkxbbxlgYC4sLa3uChaVtj7Hyfdnd/H2ytBxGte7i1f5Gc1A8rv1eZuV4trG+cxh+Rye3P8lc9VHP/4ef2/3jg+viNN/7eg8AAAAAAAAAAAAAAAAAAACAqeu8pS/xqBWcve7ePKXlUe/572HzfKV9ka/OxNXC1iQAAP//uScmkg==", + "compressed": true, + "payload_sha256": "8efa4bff3196a8b5d41837e3ddd61b685f8f5d9a986b4842b198d06948fb5377", + "payload_length": 16384 + }, + { + "name": "chacha20poly1305_bad_tag_first_chunk", + "comment": "corrupted first chunk followed by valid short chunk", + "aead": "AEAD_CHACHA20_POLY1305", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "4ed6b4c32026b00e8c38ca2f3ec3d071d245907087848f75a82f27a01a1dc4f6", + "base_nonce": "89f335d5478f0b605a6b0647", + "context": "", + "ciphertext": "eNrswK1KAwEAAOCLB6KCoGe1mEWf4IqYFA7zJYvF4CEGRbAommynoOJPNl0QhDMpyAkG2/YCY1fGYGFsbOwxVr5ve5iX9+H/bHGb10nUTB7O5093qp+VmWL5dX9zNM47vcbH0cvN9/Vgd6l/8v601n1Mt7LFAAAAAAAAAAAAAAAAAAAAAJi6+G3ub2EjWi3Ti6+rMPsNPqusdbh+EN8dt88u9+rnSQAAAP//KiguEA==", + "compressed": true + }, + { + "name": "chacha20poly1305_missing_tag", + "comment": "single chunk truncated to remove authentication tag", + "aead": "AEAD_CHACHA20_POLY1305", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "3560387cb105df5e3ae107ed647fca6df215f54987db09340a915b6fe7ded933", + "base_nonce": "8fb93dc990cd019c18edcbc6", + "context": "", + "ciphertext": "L3XebRHkp7FK82VZu6MeDNJq27DVwKOOopQD62zzziFg+Lnn7ponYOSBclMwvTA/Lf0SHA37sc0A" + }, + { + "name": "chacha20poly1305_short_chunk", + "comment": "payload shorter than one authentication tag", + "aead": "AEAD_CHACHA20_POLY1305", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "6ba9bd5c4546cd87644422ba91b965baf98e901c3cfd58358a1010b099eaa883", + "base_nonce": "46076bf77ce022243b92ebbc", + "context": "", + "ciphertext": "rzfE4842jgNqtdKDNHYerjO+GXt2314UsjF30Kah3l+8KhYhttMW4ZTH59P0owlVKPl4UC4UqxhyHmnQB7R91b2wxXQ=" + }, + { + "name": "chacha20poly1305_trailing_garbage_long", + "comment": "valid chunk followed by 20 trailing bytes", + "aead": "AEAD_CHACHA20_POLY1305", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "13131047ceddefb788330dbee5c51aa77833cf7f80699264c06a6fcf536fb8ce", + "base_nonce": "2e71f289c47f4791a5686e25", + "context": "", + "ciphertext": "eNrswD8rRAEAAHBlYOEDGOkp6SmLDEZ6hvcB3uIDoKyKMFuUP1mlLE9KPHmDhQgDi15G6v4M19Ut77aru/sYt/x+5f3Ee+UrTXa2GrXJ642XuPcQzYxli7eHy+f1teGn4OT3aC4PZ7PT8O856LRHx/+Lm+7n6hAAAAAAAAAAAAAAAAAAAAAwcK18++rj7jgp4+b368jK+uPe9NnmwkFxmc5Xp5be9n92o4t+AAAA//8ivzH9", + "compressed": true, + "payload_sha256": "fd901e05f2ee1eb477157c27797452d3b159c5d5d192a36fa93a2cd1cd913ac1", + "payload_length": 16384 + }, + { + "name": "chacha20poly1305_trailing_garbage_short", + "comment": "valid chunk followed by 12 trailing bytes", + "aead": "AEAD_CHACHA20_POLY1305", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "fc0433296d820863e766afd19d9a2055ec1e642f356a97ff23fd877854a4f9f0", + "base_nonce": "5d27289305ee6896ea6dc69d", + "context": "", + "ciphertext": "eNrswKFKAwEAAFCLIOiJcF42KWLTyyJoOjEJBrGZxKZBi0HhBE2mw6RF4Zpc8gvWNvYBOwaDcbuDpcWl7TNW3jt+uJu1epfX52/pwfLZ823V/guzzfzqIu43ZbOdBievh78/+8PReva4VX93j4qXjZ1q72MJAAAAAAAAAAAAAAAAAAAAWLjg5ilJonISdr7WPvP/8f3pSjHdjevV90E0DwAA//9nYyhI", + "compressed": true, + "payload_sha256": "8128deb05ff2fe1d1f9148d929301069042e3886a322fd93685260c953d8e2f4", + "payload_length": 16384 + }, + { + "name": "chacha20poly1305_no_chunks", + "comment": "header only, no encrypted chunks", + "aead": "AEAD_CHACHA20_POLY1305", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "ef03687a671803cd8a8bbc3858c56388638b3eda65afc2280aae76e3c9d38b74", + "base_nonce": "3a9dca1e83c23105270304cc", + "context": "", + "ciphertext": "OBJ72TsxittlKSX3Qx7nMlX5nnw6XAH865PdoLtWTOrRPffRE3cPqMto5NdLeUYumzwUZlzupRw=" + }, + { + "name": "chacha20poly1305_wrong_commitment", + "comment": "valid ciphertext with wrong commitment", + "aead": "AEAD_CHACHA20_POLY1305", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "context": "", + "ciphertext": "xNOyEe5SrfSl6mJJsK307SzUyn+QU57gdNJGg+kQxKjvdoAkVj7pySqT/JUsfS4ctRQDYUhT1nsA0Ce0hoVK0zsU7P1FJK+h0Q==" + }, + { + "name": "chacha20poly1305_wrong_key", + "comment": "valid ciphertext decrypted with wrong key", + "aead": "AEAD_CHACHA20_POLY1305", + "expect": "failure", + "key": "4f52414e4745205355424d4152494e45204f52414e4745205355424d4152494e", + "context": "", + "ciphertext": "SuUHhdXxxOZVGTkySwvh9h9ANGsMwYaAGtbsUCpxcU7tPdCuLj0nVcHV4BrKu8KUxIONS71Pq/cAFQI1QzzFFMZPl2jxk2BZJQ==" + }, + { + "name": "chacha20poly1305_short_key", + "comment": "valid ciphertext encrypted with too-short key", + "aead": "AEAD_CHACHA20_POLY1305", + "expect": "failure", + "key": "4f52414e4745205355424d4152494e45204f52414e4745205355424d415249", + "context": "", + "ciphertext": "s49ehEykQjLAS6e8BSLuU3oPH7Pb+PNyqiyxmgGViDV114eTWsoM6r/JWeshElU4iZLwqwFPukkAS4KodAi7O7qkfsqPRCLcyQ==" + }, + { + "name": "chacha20poly1305_long_key", + "comment": "valid ciphertext encrypted with too-long key", + "aead": "AEAD_CHACHA20_POLY1305", + "expect": "failure", + "key": "4f52414e4745205355424d4152494e45204f52414e4745205355424d4152494e45", + "context": "", + "ciphertext": "F7Ju0+c5gE78M6aZ+jkPflnIXhMmL74wZmtbpze5EsdqVKluDmw33d8tClfwOpLebqic7m0U3Y8A5DB9ZRzJIoNLa9sSgWYYxQ==" + }, + { + "name": "chacha20poly1305_wrong_context", + "comment": "valid ciphertext decrypted with wrong context", + "aead": "AEAD_CHACHA20_POLY1305", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "context": "wrong context", + "ciphertext": "B3+XDz/xCjn3VSLCodox5zpRzeVnuNBm3t06/TonvylwwIgQzHP+DX1RknPMR7rJ9FKZms9jXoQAPH8+3HhCK3Bn8P1OXW0XPw==" + }, + { + "name": "chacha20poly1305_wrong_salt", + "comment": "valid ciphertext with corrupted salt", + "aead": "AEAD_CHACHA20_POLY1305", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "context": "", + "ciphertext": "Ar7iGADEadxj/CgfWTjuPOGZo/ui+/USfH31CKizoZLuNfS7nHmOR2ISHBbR50DYW66Liz7OwTAACh6sp0eTviRY5+Uc4PjYUw==" + }, + { + "name": "chacha20poly1305_empty_message", + "comment": "zero-length ciphertext, too short for header", + "aead": "AEAD_CHACHA20_POLY1305", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "context": "", + "ciphertext": null + }, + { + "name": "chacha20poly1305_short_header_no_commitment", + "comment": "only salt, no commitment", + "aead": "AEAD_CHACHA20_POLY1305", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "context": "", + "ciphertext": "mFm08jXMio9cJlzHzeh39pVRCT3Kt7LB" + }, + { + "name": "chacha20poly1305_short_header_partial_commitment", + "comment": "salt and partial commitment (40 of 56 header bytes)", + "aead": "AEAD_CHACHA20_POLY1305", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "context": "", + "ciphertext": "IaJosLY/x6VWak+N7GTQYniwA860Jer1SgzZGMSeEk/qg7EokNrspQ==" + }, + { + "name": "chacha20poly1305_short_header_no_salt", + "comment": "too short to contain even the salt", + "aead": "AEAD_CHACHA20_POLY1305", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "context": "", + "ciphertext": "6ytrvCCh05Kkrw==" + }, + { + "name": "chacha20poly1305_truncated_at_chunk_boundary", + "comment": "full chunk without terminating empty chunk", + "aead": "AEAD_CHACHA20_POLY1305", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "baad1a6900acaa1c2d712ad7988fe7ffb01f1d7be8023c2958ad794d3285db54", + "base_nonce": "27a6af329e34682724cd38ea", + "context": "", + "ciphertext": "eNrswKFqAmEAAOCFtY3BuL42lndssCuDsXAHg6WDpZmNaheu2i4c2DSIr6BRBA0mwSqIRdGHOH4fw/J9g+3oe/9424uy38Pr7LxZLdcP8d/iffySFdXdsAydRn1Mn/P7ePJfhOLUTMJT6zNMbwAAAAAAAAAAAAAAAAAAAICrm/9UZbef1Hm0+/hqp2+XAAAA//8HqiNW", + "compressed": true, + "payload_sha256": "0a4859ac1f80fcff26aa08186b80ffadca60fc2db626a9e9c9b65f0993a7ec5b", + "payload_length": 16384 + }, + { + "name": "chacha20poly1305_truncated_mid_chunk", + "comment": "full chunk followed by second chunk truncated mid-body", + "aead": "AEAD_CHACHA20_POLY1305", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "98dfa02018511baf85562eb2f4d634abbc523cfbd81f91d3dd3506548717467c", + "base_nonce": "10d0b1e477e1bf4c5df3cf16", + "context": "", + "ciphertext": "eNrs0DFKQgEAANCgoYKooAN8mmqIgg7Q1BD85iBCdHIV9QJOCiK4+AcHxe/HQXRwEpwEPYCTk4OTrl5AwWMI8t4R3tVwdV1cvF/Ot624UyiXPmeZt/Br/BPs2pX6/iabaj4Gtc0kSqL/+5dp73WQbnwcnrrLCwAAAAAAAAAAAAAAAAAAAODk4nxy+/D3W/2+C3P90frZCAAAAAAAAACcn2MAAAD//zWcIXU=", + "compressed": true, + "payload_sha256": "611fb5461e7e0b9d04383f1f8c2ee6382f584f08da69c37816699e46a90b4d0d", + "payload_length": 16384 + }, + { + "name": "chacha20poly1305_swapped_chunks", + "comment": "two full chunks plus short final chunk, chunks 0 and 1 swapped", + "aead": "AEAD_CHACHA20_POLY1305", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "8264fd899ec68fa0187b2872a3d4ec257e2885a837d2e4827d13e6b1ae1d6939", + "base_nonce": "397e8d18a738e0845f6ca16d", + "context": "", + "ciphertext": "eNrs0D8rBQEAAPCXMJDyAZR66kpS6C2SyIDJ9jaL4b2MzCYlilmdspwYxHJlcoYrG8lilKgbDNfVlb9RfIxbfr+P8Bsa6P7N58ajuHN5cKto9K+XT1eTL9fl6+nXWJQWve87C583fe3V/eB+uP6QxxtHK3/Pu7PzNQAAAAAAAAAAAAAAAAAAAKByZ/WPi5HLvdFmMtFxsnn4bQQAAAAAAAAAAAAAAAAAAACqV8y8PQZhuha0WgdRdt6sNZba2eLxz/ZUEt7ddvVM/wcAAP//sTE2zw==", + "compressed": true + }, + { + "name": "chacha20poly1305_duplicated_chunk", + "comment": "chunk 0 duplicated in place of chunk 1, followed by short final chunk", + "aead": "AEAD_CHACHA20_POLY1305", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "a9e05b644f043d14c32647c0012a9a6aaa67120a3dfe6124d26666b1726cbc4b", + "base_nonce": "f795b41f5574486f459582ac", + "context": "", + "ciphertext": "eNrs3KFKAwEAgGE5NJjkxChY1KyCoILlXkDkFItXVBA0aREMntdEEC4omDzMBsFkMdrUK7aFwcrC4uAYg7E9wB7gyvc9wv8Afz67k/5+9vLX7fLs6W1t5rvIrs+fJ1vJRuf4YmuYBPdTmz/Z4+VyHOwtrX7Nr680q7nq424CAAAAAAAAAAAAAAAAAAAAqN1uo336Vy5c3QQn4f/D+60iAAAAAAAAAAAAAAAAAAAAUL+xH0Da3R8cxFE/ejkKFw+L6VEAAAD//0ZTMWo=", + "compressed": true, + "payload_sha256": "5be892c0d9d63c6d787c412a7ddc456d5ac0d628fc8046b9cce5044bcc287f45", + "payload_length": 16384 + }, + { + "name": "chacha20poly1305_extension_after_final", + "comment": "valid full chunk and short final chunk followed by extra encrypted chunk", + "aead": "AEAD_CHACHA20_POLY1305", + "expect": "failure", + "key": "59454c4c4f57205355424d4152494e452059454c4c4f57205355424d4152494e", + "aead_key": "260fb725ae3f608b93230b02c156660f17b43ac03eb70967f42d50c297660f3d", + "base_nonce": "665a50f577fcb694d9f32045", + "context": "", + "ciphertext": "eNrswK1qAgEAwPEL6xfGYGXbjZWD+whrY2EMBgvHLqwMZhRFMIoHKgoi9wLiiWLxxOMwHQgKBqOWQ7F4YDQIYhIsBkEfw/L/yeX83V/dF9VBdLsx7ovJkpXIuGrhLf7gGaf0fnIjPb2Ylffma6f9mXX0c0vTn38XKwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxdT5HdH2807m+P0yhl5oTvXVWKfVkfihMuw5p4EB6D2TrQInsu2n5j+N+9BAAA///mfDIU", + "compressed": true, + "payload_sha256": "f8df87180e023a0a36f24ba8b746d0cc5c865366ccb77b0390ea0edc380f74e9", + "payload_length": 16384 + } + ] +} \ No newline at end of file