From 65ec1333b14a1009d9ff702e7ecaf7c2c9a137ea Mon Sep 17 00:00:00 2001 From: Jonas Allmann Date: Tue, 11 Dec 2018 11:45:58 +0100 Subject: [PATCH] Bug 1508666 - AES-GCM Wycheproof testcases, r=franziskus This patch also introduces the ./mach wycheproof command to update wycheproof test cases. Differential Revision: https://phabricator.services.mozilla.com/D12559 --HG-- extra : amend_source : c26676c838d47f96e704dbd283cb221dedd9ef5e --- gtests/__init__.py | 0 gtests/common/__init__.py | 0 gtests/common/gcm-vectors.h | 1443 +++++++- gtests/common/wycheproof/__init__.py | 0 gtests/common/wycheproof/genaesgcm.py | 67 + .../wycheproof/header_bases/gcm-vectors.h | 197 ++ .../wycheproof/testvectors/aes_gcm_test.json | 2940 +++++++++++++++++ gtests/pk11_gtest/pk11_aes_gcm_unittest.cc | 37 +- mach | 29 + 9 files changed, 4663 insertions(+), 50 deletions(-) create mode 100644 gtests/__init__.py create mode 100644 gtests/common/__init__.py create mode 100644 gtests/common/wycheproof/__init__.py create mode 100755 gtests/common/wycheproof/genaesgcm.py create mode 100644 gtests/common/wycheproof/header_bases/gcm-vectors.h create mode 100644 gtests/common/wycheproof/testvectors/aes_gcm_test.json diff --git a/gtests/__init__.py b/gtests/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/gtests/common/__init__.py b/gtests/common/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/gtests/common/gcm-vectors.h b/gtests/common/gcm-vectors.h index b0646c9644..f0b6cc7e3e 100644 --- a/gtests/common/gcm-vectors.h +++ b/gtests/common/gcm-vectors.h @@ -3,12 +3,17 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. */ +/* This file is generated from sources in nss/gtests/common/wycheproof + * automatically and should not be touched manually. + * Generation is trigged by calling ./mach wycheproof */ + #ifndef gcm_vectors_h__ #define gcm_vectors_h__ #include typedef struct gcm_kat_str { + uint32_t test_id; std::string key; std::string plaintext; std::string additional_data; @@ -16,49 +21,55 @@ typedef struct gcm_kat_str { std::string hash_key; std::string ghash; std::string result; + bool invalid_ct; + bool invalid_iv; } gcm_kat_value; /* * http://csrc.nist.gov/groups/ST/toolkit/BCM/documents/proposedmodes/gcm/gcm-revised-spec.pdf */ const gcm_kat_value kGcmKatValues[] = { - {"00000000000000000000000000000000", "", "", "000000000000000000000000", + {1, "00000000000000000000000000000000", "", "", "000000000000000000000000", "66e94bd4ef8a2c3b884cfa59ca342b2e", "00000000000000000000000000000000", - "58e2fccefa7e3061367f1d57a4e7455a"}, + "58e2fccefa7e3061367f1d57a4e7455a", false, false}, - {"00000000000000000000000000000000", "00000000000000000000000000000000", "", - "000000000000000000000000", "66e94bd4ef8a2c3b884cfa59ca342b2e", + {2, "00000000000000000000000000000000", "00000000000000000000000000000000", + "", "000000000000000000000000", "66e94bd4ef8a2c3b884cfa59ca342b2e", "f38cbb1ad69223dcc3457ae5b6b0f885", - "0388dace60b6a392f328c2b971b2fe78ab6e47d42cec13bdf53a67b21257bddf"}, + "0388dace60b6a392f328c2b971b2fe78ab6e47d42cec13bdf53a67b21257bddf", false, + false}, - {"feffe9928665731c6d6a8f9467308308", + {3, "feffe9928665731c6d6a8f9467308308", "d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c959" "56809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255", "", "cafebabefacedbaddecaf888", "b83b533708bf535d0aa6e52980d53b78", "7f1b32b81b820d02614f8895ac1d4eac", "42831ec2217774244b7221b784d0d49ce3aa212f2c02a4e035c17e2329aca12e21d514b25" "466931c7d8f6a5aac84aa051ba30b396a0aac973d58e091473f59854d5c2af327cd64a62c" - "f35abd2ba6fab4"}, + "f35abd2ba6fab4", + false, false}, - {"feffe9928665731c6d6a8f9467308308", + {4, "feffe9928665731c6d6a8f9467308308", "d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c959" "56809532fcf0e2449a6b525b16aedf5aa0de657ba637b39", "feedfacedeadbeeffeedfacedeadbeefabaddad2", "cafebabefacedbaddecaf888", "b83b533708bf535d0aa6e52980d53b78", "698e57f70e6ecc7fd9463b7260a9ae5f", "42831ec2217774244b7221b784d0d49ce3aa212f2c02a4e035c17e2329aca12e21d514b25" "466931c7d8f6a5aac84aa051ba30b396a0aac973d58e0915bc94fbc3221a5db94fae95ae7" - "121a47"}, + "121a47", + false, false}, - {"feffe9928665731c6d6a8f9467308308", + {5, "feffe9928665731c6d6a8f9467308308", "d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c959" "56809532fcf0e2449a6b525b16aedf5aa0de657ba637b39", "feedfacedeadbeeffeedfacedeadbeefabaddad2", "cafebabefacedbad", "b83b533708bf535d0aa6e52980d53b78", "df586bb4c249b92cb6922877e444d37b", "61353b4c2806934a777ff51fa22a4755699b2a714fcdc6f83766e5f97b6c742373806900e" "49f24b22b097544d4896b424989b5e1ebac0f07c23f45983612d2e79e3b0785561be14aac" - "a2fccb"}, + "a2fccb", + false, false}, - {"feffe9928665731c6d6a8f9467308308", + {6, "feffe9928665731c6d6a8f9467308308", "d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c959" "56809532fcf0e2449a6b525b16aedf5aa0de657ba637b39", "feedfacedeadbeeffeedfacedeadbeefabaddad2", @@ -67,45 +78,51 @@ const gcm_kat_value kGcmKatValues[] = { "b83b533708bf535d0aa6e52980d53b78", "1c5afe9760d3932f3c9a878aac3dc3de", "8ce24998625615b603a033aca13fb894be9112a5c3a211a8ba262a3cca7e2ca701e4a9a4f" "ba43c90ccdcb281d48c7c6fd62875d2aca417034c34aee5619cc5aefffe0bfa462af43c16" - "99d050"}, + "99d050", + false, false}, - {"000000000000000000000000000000000000000000000000", "", "", + {7, "000000000000000000000000000000000000000000000000", "", "", "000000000000000000000000", "aae06992acbf52a3e8f4a96ec9300bd7", - "00000000000000000000000000000000", "cd33b28ac773f74ba00ed1f312572435"}, + "00000000000000000000000000000000", "cd33b28ac773f74ba00ed1f312572435", + false, false}, - {"000000000000000000000000000000000000000000000000", + {8, "000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "", "000000000000000000000000", "aae06992acbf52a3e8f4a96ec9300bd7", "e2c63f0ac44ad0e02efa05ab6743d4ce", - "98e7247c07f0fe411c267e4384b0f6002ff58d80033927ab8ef4d4587514f0fb"}, + "98e7247c07f0fe411c267e4384b0f6002ff58d80033927ab8ef4d4587514f0fb", false, + false}, - {"feffe9928665731c6d6a8f9467308308feffe9928665731c", + {9, "feffe9928665731c6d6a8f9467308308feffe9928665731c", "d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c959" "56809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255", "", "cafebabefacedbaddecaf888", "466923ec9ae682214f2c082badb39249", "51110d40f6c8fff0eb1ae33445a889f0", "3980ca0b3c00e841eb06fac4872a2757859e1ceaa6efd984628593b40ca1e19c7d773d00c" "144c525ac619d18c84a3f4718e2448b2fe324d9ccda2710acade2569924a7c8587336bfb1" - "18024db8674a14"}, + "18024db8674a14", + false, false}, - {"feffe9928665731c6d6a8f9467308308feffe9928665731c", + {10, "feffe9928665731c6d6a8f9467308308feffe9928665731c", "d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c959" "56809532fcf0e2449a6b525b16aedf5aa0de657ba637b39", "feedfacedeadbeeffeedfacedeadbeefabaddad2", "cafebabefacedbaddecaf888", "466923ec9ae682214f2c082badb39249", "ed2ce3062e4a8ec06db8b4c490e8a268", "3980ca0b3c00e841eb06fac4872a2757859e1ceaa6efd984628593b40ca1e19c7d773d00c" "144c525ac619d18c84a3f4718e2448b2fe324d9ccda27102519498e80f1478f37ba55bd6d" - "27618c"}, + "27618c", + false, false}, - {"feffe9928665731c6d6a8f9467308308feffe9928665731c", + {11, "feffe9928665731c6d6a8f9467308308feffe9928665731c", "d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c959" "56809532fcf0e2449a6b525b16aedf5aa0de657ba637b39", "feedfacedeadbeeffeedfacedeadbeefabaddad2", "cafebabefacedbad", "466923ec9ae682214f2c082badb39249", "1e6a133806607858ee80eaf237064089", "0f10f599ae14a154ed24b36e25324db8c566632ef2bbb34f8347280fc4507057fddc29df9" "a471f75c66541d4d4dad1c9e93a19a58e8b473fa0f062f765dcc57fcf623a24094fcca40d" - "3533f8"}, + "3533f8", + false, false}, - {"feffe9928665731c6d6a8f9467308308feffe9928665731c", + {12, "feffe9928665731c6d6a8f9467308308feffe9928665731c", "d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c959" "56809532fcf0e2449a6b525b16aedf5aa0de657ba637b39", "feedfacedeadbeeffeedfacedeadbeefabaddad2", @@ -114,45 +131,51 @@ const gcm_kat_value kGcmKatValues[] = { "466923ec9ae682214f2c082badb39249", "82567fb0b4cc371801eadec005968e94", "d27e88681ce3243c4830165a8fdcf9ff1de9a1d8e6b447ef6ef7b79828666e4581e79012a" "f34ddd9e2f037589b292db3e67c036745fa22e7e9b7373bdcf566ff291c25bbb8568fc3d3" - "76a6d9"}, + "76a6d9", + false, false}, - {"0000000000000000000000000000000000000000000000000000000000000000", "", "", - "000000000000000000000000", "dc95c078a2408989ad48a21492842087", - "00000000000000000000000000000000", "530f8afbc74536b9a963b4f1c4cb738b"}, + {13, "0000000000000000000000000000000000000000000000000000000000000000", "", + "", "000000000000000000000000", "dc95c078a2408989ad48a21492842087", + "00000000000000000000000000000000", "530f8afbc74536b9a963b4f1c4cb738b", + false, false}, - {"0000000000000000000000000000000000000000000000000000000000000000", + {14, "0000000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "", "000000000000000000000000", "dc95c078a2408989ad48a21492842087", "83de425c5edc5d498f382c441041ca92", - "cea7403d4d606b6e074ec5d3baf39d18d0d1c8a799996bf0265b98b5d48ab919"}, + "cea7403d4d606b6e074ec5d3baf39d18d0d1c8a799996bf0265b98b5d48ab919", false, + false}, - {"feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308", + {15, "feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308", "d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c959" "56809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255", "", "cafebabefacedbaddecaf888", "acbef20579b4b8ebce889bac8732dad7", "4db870d37cb75fcb46097c36230d1612", "522dc1f099567d07f47f37a32a84427d643a8cdcbfe5c0c97598a2bd2555d1aa8cb08e485" "90dbb3da7b08b1056828838c5f61e6393ba7a0abcc9f662898015adb094dac5d93471bdec" - "1a502270e3cc6c"}, + "1a502270e3cc6c", + false, false}, - {"feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308", + {16, "feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308", "d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c959" "56809532fcf0e2449a6b525b16aedf5aa0de657ba637b39", "feedfacedeadbeeffeedfacedeadbeefabaddad2", "cafebabefacedbaddecaf888", "acbef20579b4b8ebce889bac8732dad7", "8bd0c4d8aacd391e67cca447e8c38f65", "522dc1f099567d07f47f37a32a84427d643a8cdcbfe5c0c97598a2bd2555d1aa8cb08e485" "90dbb3da7b08b1056828838c5f61e6393ba7a0abcc9f66276fc6ece0f4e1768cddf8853bb" - "2d551b"}, + "2d551b", + false, false}, - {"feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308", + {17, "feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308", "d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c959" "56809532fcf0e2449a6b525b16aedf5aa0de657ba637b39", "feedfacedeadbeeffeedfacedeadbeefabaddad2", "cafebabefacedbad", "acbef20579b4b8ebce889bac8732dad7", "75a34288b8c68f811c52b2e9a2f97f63", "c3762df1ca787d32ae47c13bf19844cbaf1ae14d0b976afac52ff7d79bba9de0feb582d33" "934a4f0954cc2363bc73f7862ac430e64abe499f47c9b1f3a337dbf46a792c45e454913fe" - "2ea8f2"}, + "2ea8f2", + false, false}, - {"feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308", + {18, "feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308", "d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c959" "56809532fcf0e2449a6b525b16aedf5aa0de657ba637b39", "feedfacedeadbeeffeedfacedeadbeefabaddad2", @@ -161,12 +184,1352 @@ const gcm_kat_value kGcmKatValues[] = { "acbef20579b4b8ebce889bac8732dad7", "d5ffcf6fc5ac4d69722187421a7f170b", "5a8def2f0c9e53f1f75d7853659e2a20eeb2b22aafde6419a058ab4f6f746bf40fc0c3b78" "0f244452da3ebf1c5d82cdea2418997200ef82e44ae7e3fa44a8266ee1c8eb0c8b5d4cf5a" - "e9f19a"}, + "e9f19a", + false, false}, /* Extra, non-NIST, test case to test 64-bit binary multiplication carry * correctness. This is a GHASH-only test. */ - {"", "", "", "", "0000000000000000fcefef64ffc4766c", + {19, "", "", "", "", "0000000000000000fcefef64ffc4766c", "3561e34e52d8b598f9937982512fff27", - "0000000000000000ffcef9ebbffdbd8b00000000000000000000000000000000"}}; + "0000000000000000ffcef9ebbffdbd8b00000000000000000000000000000000", false, + false}}; + +// Testvectors from project wycheproof +// +const gcm_kat_value kGcmWycheproofVectors[] = { + {1, "5b9604fe14eadba931b0ccf34843dab9", "001d0c231287c1182784554ca3a21908", + "", "028318abc1824029138141a2", "", "0a3ea7a5487cb5f7d70fb6c58d038554", + "26073cc1d851beff176384dc9896d5ff0a3ea7a5487cb5f7d70fb6c58d038554", false, + false}, + + {2, "5b9604fe14eadba931b0ccf34843dab9", "001d0c231287c1182784554ca3a21908", + "00112233445566778899aabbccddeeff", "921d2507fa8007b7bd067d34", "", + "1e348ba07cca2cf04c618cb4d43a5b92", + "49d8b9783e911913d87094d1f63cc7651e348ba07cca2cf04c618cb4d43a5b92", false, + false}, + + {3, "aa023d0478dcb2b2312498293d9a9129", "2035af313d1346ab00154fea78322105", + "aac39231129872a2", "0432bc49ac34412081288127", "", + "4bb9b4812519dadf9e1232016d068133", + "eea945f3d0f98cc0fbab472a0cf24e874bb9b4812519dadf9e1232016d068133", false, + false}, + + {4, "384ea416ac3c2f51a76e7d8226346d4e", "35", "", + "b30c084727ad1c592ac21d12", "", "7c1e4ae88bb27e5638343cb9fd3f6337", + "547c1e4ae88bb27e5638343cb9fd3f6337", false, false}, + + {5, "cae31cd9f55526eb038241fc44cac1e5", "d10989f2c52e94ad", "", + "b5e006ded553110e6dc56529", "", "3b626940e0e9f0cbea8e18c437fd6011", + "a036ead03193903f3b626940e0e9f0cbea8e18c437fd6011", false, false}, + + {6, "dd6197cd63c963919cf0c273ef6b28bf", "4dcc1485365866e25ac3f2ca6aba97", + "", "ecb0c42f7000ef0e6f95f24d", "", "1486a91cccf92c9a5b00f7b0e034891c", + "8a9992388e735f80ee18f4a63c10ad1486a91cccf92c9a5b00f7b0e034891c", false, + false}, + + {7, "ffdf4228361ea1f8165852136b3480f7", "25b12e28ac0ef6ead0226a3b2288c800", + "", "0e1666f2dc652f7708fb8f0d", "", "1ee6513ce30c7873f59dd4350a588f42", + "f7bd379d130477176b8bb3cb23dbbbaa1ee6513ce30c7873f59dd4350a588f42", false, + false}, + + {8, "c15ed227dd2e237ecd087eaaaad19ea4", + "fee62fde973fe025ad6b322dcdf3c63fc7", "", "965ff6643116ac1443a2dec7", "", + "6cd8521422c0177e83ef1b7a845d97db", + "0de51fe4f7f2d1f0f917569f5c6d1b009c6cd8521422c0177e83ef1b7a845d97db", + false, false}, + + {9, "a8ee11b26d7ceb7f17eaa1e4b83a2cf6", + "c08f085e6a9e0ef3636280c11ecfadf0c1e72919ffc17eaf", "", + "fbbc04fd6e025b7193eb57f6", "", "f4eb193241226db017b32ec38ca47217", + "7cd9f4e4f365704fff3b9900aa93ba54b672bac554275650f4eb193241226db017b32ec38" + "ca47217", + false, false}, + + {10, "28ff3def08179311e2734c6d1c4e2871", + "dfc61a20df8505b53e3cd59f25770d5018add3d6", "c3", + "32bcb9b569e3b852d37c766a", "", "5901131d0760c8715901d881fdfd3bc0", + "f58d453212c2c8a436e9283672f579f1191229785901131d0760c8715901d881fdfd3bc0", + false, false}, + + {11, "e63a43216c08867210e248859eb5e99c", + "b14da56b0462dc05b871fc815273ff4810f92f4b", "834afdc5c737186b", + "9c3a4263d983456658aad4b1", "", "a97d25b490390b53c5db91f6ee2a15b8", + "bf864616c2347509ca9b10446379b9bdbb3b8f64a97d25b490390b53c5db91f6ee2a15b8", + false, false}, + + {12, "38449890234eb8afab0bbf82e2385454", + "f762776bf83163b323ca63a6b3adeac1e1357262", + "4020855c66ac4595058395f367201c4c", "33e90658416e7c1a7c005f11", "", + "b8bbdc4f5014bc752c8b4e9b87f650a3", + "a6f2ef3c7ef74a126dd2d5f6673964e27d5b34b6b8bbdc4f5014bc752c8b4e9b87f650a3", + false, false}, + + {13, "6a68671dfe323d419894381f85eb63fd", + "0fc67899c3f1bbe196d90f1eca3797389230aa37", + "76eb5f147250fa3c12bff0a6e3934a0b16860cf11646773b", + "9f0d85b605711f34cd2a35ba", "", "fce9a5b530c7d7af718be1ec0ae9ed4d", + "bd64802cfebaeb487d3a8f76ce943a37b3472dd5fce9a5b530c7d7af718be1ec0ae9ed4d", + false, false}, + + {14, "00112233445566778899aabbccddeeff", "ebd4a3e10cf6d41c50aeae007563b072", + "", "000000000000000000000000", "", "ffffffffffffffffffffffffffffffff", + "f62d84d649e56bc8cfedc5d74a51e2f7ffffffffffffffffffffffffffffffff", false, + false}, + + {15, "00112233445566778899aabbccddeeff", "d593c4d8224f1b100c35e4f6c4006543", + "", "ffffffffffffffffffffffff", "", "00000000000000000000000000000000", + "431f31e6840931fd95f94bf88296ff6900000000000000000000000000000000", false, + false}, + + {16, "000102030405060708090a0b0c0d0e0f", "202122232425262728292a2b2c2d2e2f", + "", "505152535455565758595a5b", "", "d9847dbc326a06e988c77ad3863e6083", + "eb156d081ed6b6b55f4612f021d87b39d9847dbc326a06e988c77ad3863e6083", true, + false}, + + {17, "000102030405060708090a0b0c0d0e0f", "202122232425262728292a2b2c2d2e2f", + "", "505152535455565758595a5b", "", "da847dbc326a06e988c77ad3863e6083", + "eb156d081ed6b6b55f4612f021d87b39da847dbc326a06e988c77ad3863e6083", true, + false}, + + {18, "000102030405060708090a0b0c0d0e0f", "202122232425262728292a2b2c2d2e2f", + "", "505152535455565758595a5b", "", "58847dbc326a06e988c77ad3863e6083", + "eb156d081ed6b6b55f4612f021d87b3958847dbc326a06e988c77ad3863e6083", true, + false}, + + {19, "000102030405060708090a0b0c0d0e0f", "202122232425262728292a2b2c2d2e2f", + "", "505152535455565758595a5b", "", "d8857dbc326a06e988c77ad3863e6083", + "eb156d081ed6b6b55f4612f021d87b39d8857dbc326a06e988c77ad3863e6083", true, + false}, + + {20, "000102030405060708090a0b0c0d0e0f", "202122232425262728292a2b2c2d2e2f", + "", "505152535455565758595a5b", "", "d8847d3c326a06e988c77ad3863e6083", + "eb156d081ed6b6b55f4612f021d87b39d8847d3c326a06e988c77ad3863e6083", true, + false}, + + {21, "000102030405060708090a0b0c0d0e0f", "202122232425262728292a2b2c2d2e2f", + "", "505152535455565758595a5b", "", "d8847dbc336a06e988c77ad3863e6083", + "eb156d081ed6b6b55f4612f021d87b39d8847dbc336a06e988c77ad3863e6083", true, + false}, + + {22, "000102030405060708090a0b0c0d0e0f", "202122232425262728292a2b2c2d2e2f", + "", "505152535455565758595a5b", "", "d8847dbc306a06e988c77ad3863e6083", + "eb156d081ed6b6b55f4612f021d87b39d8847dbc306a06e988c77ad3863e6083", true, + false}, + + {23, "000102030405060708090a0b0c0d0e0f", "202122232425262728292a2b2c2d2e2f", + "", "505152535455565758595a5b", "", "d8847dbc326a066988c77ad3863e6083", + "eb156d081ed6b6b55f4612f021d87b39d8847dbc326a066988c77ad3863e6083", true, + false}, + + {24, "000102030405060708090a0b0c0d0e0f", "202122232425262728292a2b2c2d2e2f", + "", "505152535455565758595a5b", "", "d8847dbc326a06e989c77ad3863e6083", + "eb156d081ed6b6b55f4612f021d87b39d8847dbc326a06e989c77ad3863e6083", true, + false}, + + {25, "000102030405060708090a0b0c0d0e0f", "202122232425262728292a2b2c2d2e2f", + "", "505152535455565758595a5b", "", "d8847dbc326a06e908c77ad3863e6083", + "eb156d081ed6b6b55f4612f021d87b39d8847dbc326a06e908c77ad3863e6083", true, + false}, + + {26, "000102030405060708090a0b0c0d0e0f", "202122232425262728292a2b2c2d2e2f", + "", "505152535455565758595a5b", "", "d8847dbc326a06e988e77ad3863e6083", + "eb156d081ed6b6b55f4612f021d87b39d8847dbc326a06e988e77ad3863e6083", true, + false}, + + {27, "000102030405060708090a0b0c0d0e0f", "202122232425262728292a2b2c2d2e2f", + "", "505152535455565758595a5b", "", "d8847dbc326a06e988c77bd3863e6083", + "eb156d081ed6b6b55f4612f021d87b39d8847dbc326a06e988c77bd3863e6083", true, + false}, + + {28, "000102030405060708090a0b0c0d0e0f", "202122232425262728292a2b2c2d2e2f", + "", "505152535455565758595a5b", "", "d8847dbc326a06e988c77ad3873e6083", + "eb156d081ed6b6b55f4612f021d87b39d8847dbc326a06e988c77ad3873e6083", true, + false}, + + {29, "000102030405060708090a0b0c0d0e0f", "202122232425262728292a2b2c2d2e2f", + "", "505152535455565758595a5b", "", "d8847dbc326a06e988c77ad3843e6083", + "eb156d081ed6b6b55f4612f021d87b39d8847dbc326a06e988c77ad3843e6083", true, + false}, + + {30, "000102030405060708090a0b0c0d0e0f", "202122232425262728292a2b2c2d2e2f", + "", "505152535455565758595a5b", "", "d8847dbc326a06e988c77ad3063e6083", + "eb156d081ed6b6b55f4612f021d87b39d8847dbc326a06e988c77ad3063e6083", true, + false}, + + {31, "000102030405060708090a0b0c0d0e0f", "202122232425262728292a2b2c2d2e2f", + "", "505152535455565758595a5b", "", "d8847dbc326a06e988c77ad3863e6082", + "eb156d081ed6b6b55f4612f021d87b39d8847dbc326a06e988c77ad3863e6082", true, + false}, + + {32, "000102030405060708090a0b0c0d0e0f", "202122232425262728292a2b2c2d2e2f", + "", "505152535455565758595a5b", "", "d8847dbc326a06e988c77ad3863e6081", + "eb156d081ed6b6b55f4612f021d87b39d8847dbc326a06e988c77ad3863e6081", true, + false}, + + {33, "000102030405060708090a0b0c0d0e0f", "202122232425262728292a2b2c2d2e2f", + "", "505152535455565758595a5b", "", "d8847dbc326a06e988c77ad3863e60c3", + "eb156d081ed6b6b55f4612f021d87b39d8847dbc326a06e988c77ad3863e60c3", true, + false}, + + {34, "000102030405060708090a0b0c0d0e0f", "202122232425262728292a2b2c2d2e2f", + "", "505152535455565758595a5b", "", "d8847dbc326a06e988c77ad3863e6003", + "eb156d081ed6b6b55f4612f021d87b39d8847dbc326a06e988c77ad3863e6003", true, + false}, + + {35, "000102030405060708090a0b0c0d0e0f", "202122232425262728292a2b2c2d2e2f", + "", "505152535455565758595a5b", "", "d9847dbc326a06e989c77ad3863e6083", + "eb156d081ed6b6b55f4612f021d87b39d9847dbc326a06e989c77ad3863e6083", true, + false}, + + {36, "000102030405060708090a0b0c0d0e0f", "202122232425262728292a2b2c2d2e2f", + "", "505152535455565758595a5b", "", "d8847d3c326a066988c77ad3863e6083", + "eb156d081ed6b6b55f4612f021d87b39d8847d3c326a066988c77ad3863e6083", true, + false}, + + {37, "000102030405060708090a0b0c0d0e0f", "202122232425262728292a2b2c2d2e2f", + "", "505152535455565758595a5b", "", "d8847dbc326a066988c77ad3863e6003", + "eb156d081ed6b6b55f4612f021d87b39d8847dbc326a066988c77ad3863e6003", true, + false}, + + {38, "000102030405060708090a0b0c0d0e0f", "202122232425262728292a2b2c2d2e2f", + "", "505152535455565758595a5b", "", "277b8243cd95f9167738852c79c19f7c", + "eb156d081ed6b6b55f4612f021d87b39277b8243cd95f9167738852c79c19f7c", true, + false}, + + {39, "000102030405060708090a0b0c0d0e0f", "202122232425262728292a2b2c2d2e2f", + "", "505152535455565758595a5b", "", "00000000000000000000000000000000", + "eb156d081ed6b6b55f4612f021d87b3900000000000000000000000000000000", true, + false}, + + {40, "000102030405060708090a0b0c0d0e0f", "202122232425262728292a2b2c2d2e2f", + "", "505152535455565758595a5b", "", "ffffffffffffffffffffffffffffffff", + "eb156d081ed6b6b55f4612f021d87b39ffffffffffffffffffffffffffffffff", true, + false}, + + {41, "000102030405060708090a0b0c0d0e0f", "202122232425262728292a2b2c2d2e2f", + "", "505152535455565758595a5b", "", "5804fd3cb2ea86690847fa5306bee003", + "eb156d081ed6b6b55f4612f021d87b395804fd3cb2ea86690847fa5306bee003", true, + false}, + + {42, "000102030405060708090a0b0c0d0e0f", "202122232425262728292a2b2c2d2e2f", + "", "505152535455565758595a5b", "", "d9857cbd336b07e889c67bd2873f6182", + "eb156d081ed6b6b55f4612f021d87b39d9857cbd336b07e889c67bd2873f6182", true, + false}, + + {43, "aa023d0478dcb2b2312498293d9a9129", "2035af313d1346ab00154fea78322105", + "aac39231129872a2", "0432bc49ac344120", "", + "b7d0dd70b00d65b97cfd080ff4b819d1", + "64c36bb3b732034e3a7d04efc5197785b7d0dd70b00d65b97cfd080ff4b819d1", false, + false}, + + {44, "25dd4d6cad5a4604957847c8c6d3fc4e", "5c347835b3fa61c2ce253e5a", "", + "68cbeafe8f9e8a66", "", "5452843e32c13c3e35ed8230fe3446c0", + "9a078a04d14938918e0043585452843e32c13c3e35ed8230fe3446c0", false, false}, + + {45, "2034a82547276c83dd3212a813572bce", + "02efd2e5782312827ed5d230189a2a342b277ce048462193", + "1a0293d8f90219058902139013908190bc490890d3ff12a3", + "3254202d854734812398127a3d134421", "", "9b7abadd6e69c1d9ec925786534f5075", + "64069c2d58690561f27ee199e6b479b6369eec688672bde99b7abadd6e69c1d9ec9257865" + "34f5075", + false, false}, + + {46, "209e6dbf2ad26a105445fc0207cd9e9a", "01", "", + "9477849d6ccdfca112d92e53fae4a7ca", "", "032df7bba5d8ea1a14f16f70bd0e14ec", + "fd032df7bba5d8ea1a14f16f70bd0e14ec", false, false}, + + {47, "a549442e35154032d07c8666006aa6a2", "1182e93596cac5608946400bc73f3a", + "", "5171524568e81d97e8c4de4ba56c10a0", "", + "e06d1ef473132957ad37eaef29733ca0", + "2f333087bdca58219f9bfc273e45cce06d1ef473132957ad37eaef29733ca0", false, + false}, + + {48, "cfb4c26f126f6a0acb8e4e220f6c56cd", "09dfd7f080275257cf97e76f966b1ad9", + "", "1275115499ae722268515bf0c164b49c", "", + "2adeffa682c8d8a81fada7d9fcdd2ee2", + "a780bd01c80885156c88a973264c8ee52adeffa682c8d8a81fada7d9fcdd2ee2", false, + false}, + + {49, "0b11ef3a08c02970f74281c860691c75", + "f693d4edd825dbb0618d91113128880dbebb23e25d00ed1f077d870be9cc7536", "", + "95c1dd8c0f1705ece68937901f7add7b", "", "d01444fa5d9c499629d174ff3927a1ac", + "7e47e10fe3c6fbfa381770eaf5d48d1482e71e0c44dff1e30ca6f95d92052084d01444fa5" + "d9c499629d174ff3927a1ac", + false, false}, + + {50, "00112233445566778899aabbccddeeff", + "0000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000", + "", "f95fde4a751913202aeeee32a0b55753", "", + "152a65045fe674f97627427af5be22da", + "00078d109d92143fcd5df56721b884fac64ac7762cc09eea2a3c68e92a17bdb575f87bda1" + "8be564e152a65045fe674f97627427af5be22da", + false, false}, + + {51, "00112233445566778899aabbccddeeff", + "0000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000", + "", "7b95b8c356810a84711d68150a1b7750", "", + "213a3cb93855d18e69337eee66aeec07", + "84d4c9c08b4f482861e3a9c6c35bc4d91df927374513bfd49f436bd73f325285daef4ff7e" + "13d46a6213a3cb93855d18e69337eee66aeec07", + false, false}, + + {52, "00112233445566778899aabbccddeeff", + "0000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000", + "", "1a552e67cdc4dc1a33b824874ebf0bed", "", + "99b381bfa2af9751c39d1b6e86d1be6a", + "948ca37a8e6649e88aeffb1c598f3607007702417ea0e0bc3c60ad5a949886de968cf53ea" + "6462aed99b381bfa2af9751c39d1b6e86d1be6a", + false, false}, + + {53, "00112233445566778899aabbccddeeff", + "0000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000", + "", "dd9d0b4a0c3d681524bffca31d907661", "", + "5281efc7f13ac8e14ccf5dca7bfbfdd1", + "64b19314c31af45accdf7e3c4db79f0d948ca37a8e6649e88aeffb1c598f3607007702417" + "ea0e0bc5281efc7f13ac8e14ccf5dca7bfbfdd1", + false, false}, + + {54, "00112233445566778899aabbccddeeff", + "0000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000", + "", "57c5643c4e37b4041db794cfe8e1f0f4", "", + "a3ea2c09ee4f8c8a12f45cddf9aeff81", + "2bb69c3e5d1f91815c6b87a0d5bbea7164b19314c31af45accdf7e3c4db79f0d948ca37a8" + "e6649e8a3ea2c09ee4f8c8a12f45cddf9aeff81", + false, false}, + + {55, "00112233445566778899aabbccddeeff", + "0000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000", + "", "99821c2dd5daecded07300f577f7aff1", "", + "07eb2fe4a958f8434d40684899507c7c", + "127af9b39ecdfc57bb11a2847c7c2d3d8f938f40f877e0c4af37d0fe9af033052bd537c4a" + "e978f6007eb2fe4a958f8434d40684899507c7c", + false, false}, + + {56, "00112233445566778899aabbccddeeff", + "0000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000", + "", "5e4a3900142358d1c774d8d124d8d27d", "", + "f145c2dcaf339eede427be934357eac0", + "0cf6ae47156b14dce03c8a07a2e172b1127af9b39ecdfc57bb11a2847c7c2d3d8f938f40f" + "877e0c4f145c2dcaf339eede427be934357eac0", + false, false}, + + {57, "00112233445566778899aabbccddeeff", + "0000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000", + "", "d4125676562984c0fe7cb0bdd1a954e8", "", + "facd0bfe8701b7b4a2ba96d98af52bd9", + "f0c6ffc18bd46df5569185a9afd169eb0cf6ae47156b14dce03c8a07a2e172b1127af9b39" + "ecdfc57facd0bfe8701b7b4a2ba96d98af52bd9", + false, false}, + + {58, "00112233445566778899aabbccddeeff", + "0000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000", + "", "b97ec62a5e5900ccf9e4be332e336091", "", + "a03e729dcfd7a03155655fece8affd7e", + "d6928e094c06e0a7c4db42184cf7529e95de88b767edebe9b343000be3dab47ea08b74429" + "3eed698a03e729dcfd7a03155655fece8affd7e", + false, false}, + + {59, "00112233445566778899aabbccddeeff", + "0000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000", + "", "7eb6e3079fa0b4c3eee366177d1c1d1d", "", + "1e43926828bc9a1614c7b1639096c195", + "d82ce58771bf6487116bf8e96421877ed6928e094c06e0a7c4db42184cf7529e95de88b76" + "7edebe91e43926828bc9a1614c7b1639096c195", + false, false}, + + {60, "00112233445566778899aabbccddeeff", + "0000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000", + "", "0314fcd10fdd675d3c612962c931f635", "", + "f08baddf0b5285c91fc06a67fe4708ca", + "a197a37a5d79697078536bc27fe46cd8d475526d9044aa94f088a054f8e380c64f7941479" + "5c61480f08baddf0b5285c91fc06a67fe4708ca", + false, false}, + + {61, "00112233445566778899aabbccddeeff", + "0000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000", + "", "c4dcd9fcce24d3522b66f1469a1e8bb9", "", + "62a4b6875c288345d6a454399eac1afa", + "149fde9abbd3a43c2548575e0db9fb84a197a37a5d79697078536bc27fe46cd8d475526d9" + "044aa9462a4b6875c288345d6a454399eac1afa", + false, false}, + + {62, "00112233445566778899aabbccddeeff", "bec6fa05c1718b9b84c47345bbed7dcb", + "", "00000000000000000000000000000000", "", + "00000000000000000000000000000000", + "45a3f89d02918bfd0c8161658ccc979500000000000000000000000000000000", false, + false}, + + {63, "00112233445566778899aabbccddeeff", "4d82639c39d3f3490ee903dd0be7afcf", + "", "ffffffffffffffffffffffffffffffff", "", + "ffffffffffffffffffffffffffffffff", + "1cd5a06214235ceb044d4bad7b047312ffffffffffffffffffffffffffffffff", false, + false}, + + {64, "92ace3e348cd821092cd921aa3546374299ab46209691bc28b8752d17f123c20", + "00010203040506070809", "00000000ffffffff", "00112233445566778899aabb", "", + "9a4a2579529301bcfb71c78d4060f52c", + "e27abdd2d2a53d2f136b9a4a2579529301bcfb71c78d4060f52c", false, false}, + + {65, "29d3a44f8723dc640239100c365423a312934ac80239212ac3df3421a2098123", "", + "aabbccddeeff", "00112233445566778899aabb", "", + "2a7d77fa526b8250cb296078926b5020", "2a7d77fa526b8250cb296078926b5020", + false, false}, + + {66, "cc56b680552eb75008f5484b4cb803fa5063ebd6eab91f6ab6aef4916a766273", + "2a", "", "99e23ec48985bccdeeab60f1", "", + "633c1e9703ef744ffffb40edf9d14355", "06633c1e9703ef744ffffb40edf9d14355", + false, false}, + + {67, "51e4bf2bad92b7aff1a4bc05550ba81df4b96fabf41c12c7b00e60e48db7e152", + "be3308f72a2c6aed", "", "4f07afedfdc3b6c2361823d3", "", + "602e8d7c4799d62c140c9bb834876b09", + "cf332a12fdee800b602e8d7c4799d62c140c9bb834876b09", false, false}, + + {68, "67119627bd988eda906219e08c0d0d779a07d208ce8a4fe0709af755eeec6dcb", + "51f8c1f731ea14acdb210a6d973e07", "", "68ab7fdbf61901dad461d23c", "", + "ec04aacb7148a8b8be44cb7eaf4efa69", + "43fc101bff4b32bfadd3daf57a590eec04aacb7148a8b8be44cb7eaf4efa69", false, + false}, + + {69, "59d4eafb4de0cfc7d3db99a8f54b15d7b39f0acc8da69763b019c1699f87674a", + "549b365af913f3b081131ccb6b825588", "", "2fcb1b38a99e71b84740ad9b", "", + "28752c20153092818faba2a334640d6e", + "f58c16690122d75356907fd96b570fca28752c20153092818faba2a334640d6e", false, + false}, + + {70, "3b2458d8176e1621c0cc24c0c0e24c1e80d72f7ee9149a4b166176629616d011", + "3ff1514b1c503915918f0c0c31094a6e1f", "", "45aaa3e5d16d2d42dc03445d", "", + "2d7379ec1db5952d4e95d30c340b1b1d", + "73a6b6f45f6ccc5131e07f2caa1f2e2f562d7379ec1db5952d4e95d30c340b1b1d", + false, false}, + + {71, "0212a8de5007ed87b33f1a7090b6114f9e08cefd9607f2c276bdcfdbc5ce9cd7", + "10f1ecf9c60584665d9ae5efe279e7f7377eea6916d2b111", "", + "e6b1adf2fd58a8762c65f31b", "", "7355fde599006715053813ce696237a8", + "0843fff52d934fc7a071ea62c0bd351ce85678cde3ea2c9e7355fde599006715053813ce6" + "96237a8", + false, false}, + + {72, "b279f57e19c8f53f2f963f5f2519fdb7c1779be2ca2b3ae8e1128b7d6c627fc4", + "fcc515b294408c8645c9183e3f4ecee5127846d1", "c0", + "98bc2c7438d5cd7665d76f6e", "", "ecb660e1fb0541ec41e8d68a64141b3a", + "eb5500e3825952866d911253f8de860c00831c81ecb660e1fb0541ec41e8d68a64141b3a", + false, false}, + + {73, "cdccfe3f46d782ef47df4e72f0c02d9c7f774def970d23486f11a57f54247f17", + "e28e0e9f9d22463ac0e42639b530f42102fded75", "956846a209e087ed", + "376187894605a8d45e30de51", "", "082e91924deeb77880e1b1c84f9b8d30", + "feca44952447015b5df1f456df8ca4bb4eee2ce2082e91924deeb77880e1b1c84f9b8d30", + false, false}, + + {74, "f32364b1d339d82e4f132d8f4a0ec1ff7e746517fa07ef1a7f422f4e25a48194", + "43891bccb522b1e72a6b53cf31c074e9d6c2df8e", + "ab2ac7c44c60bdf8228c7884adb20184", "5a86a50a0e8a179c734b996d", "", + "c3922583476ced575404ddb85dd8cd44", + "43dda832e942e286da314daa99bef5071d9d2c78c3922583476ced575404ddb85dd8cd44", + false, false}, + + {75, "ff0089ee870a4a39f645b0a5da774f7a5911e9696fc9cad646452c2aa8595a12", + "748b28031621d95ee61812b4b4f47d04c6fc2ff3", + "972ab4e06390caae8f99dd6e2187be6c7ff2c08a24be16ef", + "bc2a7757d0ce2d8b1f14ccd9", "", "ebec6774b955e789591c822dab739e12", + "a929ee7e67c7a2f91bbcec6389a3caf43ab49305ebec6774b955e789591c822dab739e12", + false, false}, + + {76, "00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f", + "561008fa07a68f5c61285cd013464eaf", "", "000000000000000000000000", "", + "ffffffffffffffffffffffffffffffff", + "23293e9b07ca7d1b0cae7cc489a973b3ffffffffffffffffffffffffffffffff", false, + false}, + + {77, "00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f", + "c6152244cea1978d3e0bc274cf8c0b3b", "", "ffffffffffffffffffffffff", "", + "00000000000000000000000000000000", + "7cb6fc7c6abc009efe9551a99f36a42100000000000000000000000000000000", false, + false}, + + {78, "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "9de8fef6d8ab1bf1bf887232eab590dd", + "b2061457c0759fc1749f174ee1ccadfa9de8fef6d8ab1bf1bf887232eab590dd", true, + false}, + + {79, "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "9ee8fef6d8ab1bf1bf887232eab590dd", + "b2061457c0759fc1749f174ee1ccadfa9ee8fef6d8ab1bf1bf887232eab590dd", true, + false}, + + {80, "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "1ce8fef6d8ab1bf1bf887232eab590dd", + "b2061457c0759fc1749f174ee1ccadfa1ce8fef6d8ab1bf1bf887232eab590dd", true, + false}, + + {81, "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "9ce9fef6d8ab1bf1bf887232eab590dd", + "b2061457c0759fc1749f174ee1ccadfa9ce9fef6d8ab1bf1bf887232eab590dd", true, + false}, + + {82, "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "9ce8fe76d8ab1bf1bf887232eab590dd", + "b2061457c0759fc1749f174ee1ccadfa9ce8fe76d8ab1bf1bf887232eab590dd", true, + false}, + + {83, "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "9ce8fef6d9ab1bf1bf887232eab590dd", + "b2061457c0759fc1749f174ee1ccadfa9ce8fef6d9ab1bf1bf887232eab590dd", true, + false}, + + {84, "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "9ce8fef6daab1bf1bf887232eab590dd", + "b2061457c0759fc1749f174ee1ccadfa9ce8fef6daab1bf1bf887232eab590dd", true, + false}, + + {85, "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "9ce8fef6d8ab1b71bf887232eab590dd", + "b2061457c0759fc1749f174ee1ccadfa9ce8fef6d8ab1b71bf887232eab590dd", true, + false}, + + {86, "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "9ce8fef6d8ab1bf1be887232eab590dd", + "b2061457c0759fc1749f174ee1ccadfa9ce8fef6d8ab1bf1be887232eab590dd", true, + false}, + + {87, "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "9ce8fef6d8ab1bf13f887232eab590dd", + "b2061457c0759fc1749f174ee1ccadfa9ce8fef6d8ab1bf13f887232eab590dd", true, + false}, + + {88, "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "9ce8fef6d8ab1bf1bfa87232eab590dd", + "b2061457c0759fc1749f174ee1ccadfa9ce8fef6d8ab1bf1bfa87232eab590dd", true, + false}, + + {89, "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "9ce8fef6d8ab1bf1bf887332eab590dd", + "b2061457c0759fc1749f174ee1ccadfa9ce8fef6d8ab1bf1bf887332eab590dd", true, + false}, + + {90, "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "9ce8fef6d8ab1bf1bf887232ebb590dd", + "b2061457c0759fc1749f174ee1ccadfa9ce8fef6d8ab1bf1bf887232ebb590dd", true, + false}, + + {91, "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "9ce8fef6d8ab1bf1bf887232e8b590dd", + "b2061457c0759fc1749f174ee1ccadfa9ce8fef6d8ab1bf1bf887232e8b590dd", true, + false}, + + {92, "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "9ce8fef6d8ab1bf1bf8872326ab590dd", + "b2061457c0759fc1749f174ee1ccadfa9ce8fef6d8ab1bf1bf8872326ab590dd", true, + false}, + + {93, "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "9ce8fef6d8ab1bf1bf887232eab590dc", + "b2061457c0759fc1749f174ee1ccadfa9ce8fef6d8ab1bf1bf887232eab590dc", true, + false}, + + {94, "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "9ce8fef6d8ab1bf1bf887232eab590df", + "b2061457c0759fc1749f174ee1ccadfa9ce8fef6d8ab1bf1bf887232eab590df", true, + false}, + + {95, "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "9ce8fef6d8ab1bf1bf887232eab5909d", + "b2061457c0759fc1749f174ee1ccadfa9ce8fef6d8ab1bf1bf887232eab5909d", true, + false}, + + {96, "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "9ce8fef6d8ab1bf1bf887232eab5905d", + "b2061457c0759fc1749f174ee1ccadfa9ce8fef6d8ab1bf1bf887232eab5905d", true, + false}, + + {97, "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "9de8fef6d8ab1bf1be887232eab590dd", + "b2061457c0759fc1749f174ee1ccadfa9de8fef6d8ab1bf1be887232eab590dd", true, + false}, + + {98, "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "9ce8fe76d8ab1b71bf887232eab590dd", + "b2061457c0759fc1749f174ee1ccadfa9ce8fe76d8ab1b71bf887232eab590dd", true, + false}, + + {99, "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "9ce8fef6d8ab1b71bf887232eab5905d", + "b2061457c0759fc1749f174ee1ccadfa9ce8fef6d8ab1b71bf887232eab5905d", true, + false}, + + {100, "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "631701092754e40e40778dcd154a6f22", + "b2061457c0759fc1749f174ee1ccadfa631701092754e40e40778dcd154a6f22", true, + false}, + + {101, "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "00000000000000000000000000000000", + "b2061457c0759fc1749f174ee1ccadfa00000000000000000000000000000000", true, + false}, + + {102, "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "ffffffffffffffffffffffffffffffff", + "b2061457c0759fc1749f174ee1ccadfaffffffffffffffffffffffffffffffff", true, + false}, + + {103, "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "1c687e76582b9b713f08f2b26a35105d", + "b2061457c0759fc1749f174ee1ccadfa1c687e76582b9b713f08f2b26a35105d", true, + false}, + + {104, "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "9de9fff7d9aa1af0be897333ebb491dc", + "b2061457c0759fc1749f174ee1ccadfa9de9fff7d9aa1af0be897333ebb491dc", true, + false}, + + {105, "00112233445566778899aabbccddeeff1021324354657687", + "0000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000", + "", "029e0e777db092b12535d043012f09ba", "", + "09338a42f0acc14f97c064f52f5f1688", + "f83cee467336e1a09b75f24e9b4385c99c13e6af722256a66129ece961fe803b167bad206" + "f5017fb09338a42f0acc14f97c064f52f5f1688", + false, false}, + + {106, "00112233445566778899aabbccddeeff1021324354657687", + "0000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000", + "", "f1be3b06b7feac07e7eab629f556047b", "", + "90be3606de58bd778fa5beff4a4102bd", + "0b32b648a2c28e9edd7cee08eeeb900034cae7215e5ab1e201bd2eed1032c5a97866ba582" + "a3458a490be3606de58bd778fa5beff4a4102bd", + false, false}, + + {107, "00112233445566778899aabbccddeeff1021324354657687", + "0000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000", + "", "de9eb63b1daed321a11b7547cc9e223c", "", + "6e4d6396125a10df5443bd0cbc8566d1", + "575e2ecec2b3c72d4e80830d0d859ad9e42c29c4a68d8d9d8d23434de2cd07733be49d62a" + "c1ae0856e4d6396125a10df5443bd0cbc8566d1", + false, false}, + + {108, "00112233445566778899aabbccddeeff1021324354657687", + "0000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000", + "", "40bb0abebc483ff6d5671241ff5d66c6", "", + "dc481f172545268eff63ab0490403dc3", + "2a818888d1f09f32aa7beedd2869b446575e2ecec2b3c72d4e80830d0d859ad9e42c29c4a" + "68d8d9ddc481f172545268eff63ab0490403dc3", + false, false}, + + {109, "00112233445566778899aabbccddeeff1021324354657687", + "0000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000", + "", "20d5cf305e630a8f49e3bb4bab18abc9", "", + "8a3a22bf2592958b930292aa47f590e8", + "96d36b795f8e7edf6a8e0dbcd20d6c072a818888d1f09f32aa7beedd2869b446575e2ecec" + "2b3c72d8a3a22bf2592958b930292aa47f590e8", + false, false}, + + {110, "00112233445566778899aabbccddeeff1021324354657687", + "0000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000", + "", "255358a71a0e5731f6dd6ce28e158ae6", "", + "2db9dc1b7fd315df1c95432432fcf474", + "cfce3d920f0e01f0bb49a751955b236d1b887baefd25c47f41303c46d5c7bf9ca4c2c45a8" + "f1e66562db9dc1b7fd315df1c95432432fcf474", + false, false}, + + {111, "00112233445566778899aabbccddeeff1021324354657687", + "0000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000", + "", "bb76e422bbe8bbe682a10be4bdd6ce1c", "", + "82ad967f7ac19084354f69a751443fb2", + "69a24169792e9a07f6e6f4736fa972dccfce3d920f0e01f0bb49a751955b236d1b887baef" + "d25c47f82ad967f7ac19084354f69a751443fb2", + false, false}, + + {112, "00112233445566778899aabbccddeeff1021324354657687", + "0000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000", + "", "db1821ac59c38e9f1e25a2eee9930313", "", + "472d5dd582dc05ef5fc496b612023cb2", + "4e4417a83beac1eb7e24456a05f6ba5569a24169792e9a07f6e6f4736fa972dccfce3d920" + "f0e01f0472d5dd582dc05ef5fc496b612023cb2", + false, false}, + + {113, "00112233445566778899aabbccddeeff1021324354657687", + "0000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000", + "", "f7a02ecca03064b2ef3cce9feab79f07", "", + "caff723826df150934aee3201ba175e7", + "6f8e174efca3097299f784efd4caff0bf168c3e5165b9ad3d20062009848044eef8f31f7d" + "2fead05caff723826df150934aee3201ba175e7", + false, false}, + + {114, "00112233445566778899aabbccddeeff1021324354657687", + "0000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000", + "", "6985924901d688659b40a999d974dbfd", "", + "3b08958be1286c2b4acba02b3674adb2", + "af193090ce3d43a388a1d294a09616906f8e174efca3097299f784efd4caff0bf168c3e51" + "65b9ad33b08958be1286c2b4acba02b3674adb2", + false, false}, + + {115, "00112233445566778899aabbccddeeff1021324354657687", + "0000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000", + "", "3f1188546c65ed0fc55e75032c68ee44", "", + "c14d52208f0f51b816a48971eaf8ff7e", + "5deccf838b2cf5f869c90d2a611160b1e578ab8121b93735cba4a1930647b8c4c84bf7763" + "33ee45ac14d52208f0f51b816a48971eaf8ff7e", + false, false}, + + {116, "00112233445566778899aabbccddeeff1021324354657687", + "0000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000", + "", "a13434d1cd8301d8b12212051fabaabe", "", + "ea2d018099cd7925c507cef0ceddb0ae", + "d2cae1684aa407a13a2e2da5357e29f55deccf838b2cf5f869c90d2a611160b1e578ab812" + "1b93735ea2d018099cd7925c507cef0ceddb0ae", + false, false}, + + {117, "00112233445566778899aabbccddeeff1021324354657687", + "5c7d3f81d4b5055ed6f8db53614587a4", "", "00000000000000000000000000000000", + "", "00000000000000000000000000000000", + "541b835dc828d541073f7d7d7504ebf500000000000000000000000000000000", false, + false}, + + {118, "00112233445566778899aabbccddeeff1021324354657687", + "6a347ad1190e72ede611044e7475f0eb", "", "ffffffffffffffffffffffffffffffff", + "", "ffffffffffffffffffffffffffffffff", + "a3f36154331c196624564bc395e49c3bffffffffffffffffffffffffffffffff", false, + false}, + + {119, "cee9abbc26b63e169f0ced621fe21d95904e75b881d93e6b", "46", "", + "1e8259e0a43e571068f701cd2064fc0c", "", "af1f5535b125b34fc466902ea40cb3a2", + "dcaf1f5535b125b34fc466902ea40cb3a2", false, false}, + + {120, "189f0bd390ba40632586a45c39735c2b87113329c800f394", + "b4bcd7b8eeca3050dd17682c6a914e", "", "c84442d6975f0359737de0fa828f958e", + "", "6b03b7557c7131e2352e495d54e61aef", + "2aab5c87dcb4a4dae4e975ddb65aab6b03b7557c7131e2352e495d54e61aef", false, + false}, + + {121, "b0724f15df5b792c2f49bc51df0ac5aad69be0030981613c", + "8da3ab9c3d195b04df452ad23953da4d", "", "13cd526ec77b58f62d48d03f8b88f2b8", + "", "eb05bda937faeed27f8833295d4ba559", + "d127fd2e67c0887d90eb92b91f357d97eb05bda937faeed27f8833295d4ba559", false, + false}, + + {122, "998750ba784841e40a7c5b03985732b6397e5459a3843954", + "2f60ca3494a958dc3e6ebeb5d0b4e6dda0d0c4331ab9c957f6422a5100878ebf", "", + "1d3d62eccd8ac5e896f2654a7f606fc9", "", "bab7fbf499ff06aad5f757b1c1a4fcc0", + "344c2cea17b06cb3da272e22a22a3a71ee0eaa1959a7facfff464660ddccedd1bab7fbf49" + "9ff06aad5f757b1c1a4fcc0", + false, false}, + + {123, "00112233445566778899aabbccddeeff1021324354657687", + "0b4dbbba8982e0f649f8ba85f3aa061b", "", "000000000000000000000000", "", + "ffffffffffffffffffffffffffffffff", + "3f875c9bd7d8511448459468e398c3b2ffffffffffffffffffffffffffffffff", false, + false}, + + {124, "00112233445566778899aabbccddeeff1021324354657687", + "1ae93688ef7e2650a9342ad4718b2780", "", "ffffffffffffffffffffffff", "", + "00000000000000000000000000000000", + "210dabea4364c6d5b3429e774332293600000000000000000000000000000000", false, + false}, + + {125, "21218af790428f8024d3e7e1428c9fcf578c216636d60e73", "e3", "", + "34047bc39b9c608384dff5b8", "", "2e982e24b81cd120d35a70fe6935e665", + "fe2e982e24b81cd120d35a70fe6935e665", false, false}, + + {126, "3a8bf543c480925632118245bcbf5d01522b987a31a33da3", + "53fc72e71b59eeb3", "", "4ebc13cf4636cc7c45e560a7", "", + "6870f104ddc514477b400336fb01860e", + "99f2ff1c8a44e5f26870f104ddc514477b400336fb01860e", false, false}, + + {127, "92f4d2672fceec43963ccffb17e6ea7578b11418b06a3b82", + "c3ec16adb184affa8ae9738bffb916", "", "6e7ff7f0797685cfc44b05ff", "", + "29fff7f285768645c9c8bf7a471c9393", + "afe8ef41591bfcc00db3c880ceb18629fff7f285768645c9c8bf7a471c9393", false, + false}, + + {128, "bcb6bc5ee6743df1396a34639327b25809ec9c81dd6a0c0e", + "80474a3a3b809560eee2ce7a7a33ea07", "", "be0326d23bdc2c64648d13f4", "", + "e3d33e01ce64f271783147de226228bc", + "90339dca02ef717f1603994aee6cf6d2e3d33e01ce64f271783147de226228bc", false, + false}, + + {129, "5e1d28213e092536525bbae09e214af4c891e202b2b4fa4f", + "53d59433a7db7f41b31ccb6d4a2d789965", "", "b6be6cd0681235d826aa28ea", "", + "9f50c03e055e519712c582ec9db3235b", + "b98ed6321679941a3e521834296686ad989f50c03e055e519712c582ec9db3235b", + false, false}, + + {130, "7f672d85e151aa490bc0eec8f66b5e5bee74af11642be3ff", + "ef6412c72b03c643fa02565a0ae2378a9311c11a84065f80", "", + "b022067048505b20946216ef", "", "fa0484f8baa95f5b7a31c56d1b34c58b", + "addd303651119e52f6170dfc7a915064253d57532987b9abfa0484f8baa95f5b7a31c56d1" + "b34c58b", + false, false}, + + {131, "969fed5068541d65418c2c1de8fe1f845e036030496e1272", + "3d8233191a2823bf767e99167b1d4af4f4848458", "cb", + "817fe51c31f2879141a34335", "", "92909a80e90540e1878ab59ef300072b", + "0d2c3a3c0cc4b40e70ed45e188e356a0e1533b3192909a80e90540e1878ab59ef300072b", + false, false}, + + {132, "fa5b9b41f93f8b682c04ba816c3fecc24eec095b04dd7497", + "18159841813a69fc0f8f4229e1678da7c9016711", "2ed8487153e21b12", + "62b9cf1e923bc1138d05d205", "", "253317f98bdab87531ece20475cd9ebb", + "c7c1cbb85ce2a0a3f32cb9ef01ad45ec1118b66d253317f98bdab87531ece20475cd9ebb", + false, false}, + + {133, "fbfb395662787e2d25a2e7510f818e825936a35114e237c9", + "2952a3d64107d5cbb9602239d05a5c5c222cf72b", + "74318d8876528243f1944b73eb77e96e", "3f1a1e02e90a4ba7a1db9df2", "", + "e0877a100f9dd9d6795f0e74c56a9fab", + "ecf5e403f19c007c8da7a456caf0a6d75762829be0877a100f9dd9d6795f0e74c56a9fab", + false, false}, + + {134, "5d8e9c2222316c9ed5ff94513cc957436ae447a6e1a73a29", + "42b4439e1d2116f834b91c516a26299df279956b", + "5ca354a4cb8e4fc9798aa209ad4f739dc7c232fdd1f22584", + "0802ae86c75a73bf79561521", "", "62196638590cef429d6b1d1a59839c02", + "94d844d98b9467daa7e8dde7f4290037354d7fb262196638590cef429d6b1d1a59839c02", + false, false}, + + {135, "000102030405060708090a0b0c0d0e0f1011121314151617", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "b5e44c5b2fe90e4c78f358da0d99cb64", + "458256842dfd297f30bd2f8f15c92db0b5e44c5b2fe90e4c78f358da0d99cb64", true, + false}, + + {136, "000102030405060708090a0b0c0d0e0f1011121314151617", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "b6e44c5b2fe90e4c78f358da0d99cb64", + "458256842dfd297f30bd2f8f15c92db0b6e44c5b2fe90e4c78f358da0d99cb64", true, + false}, + + {137, "000102030405060708090a0b0c0d0e0f1011121314151617", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "34e44c5b2fe90e4c78f358da0d99cb64", + "458256842dfd297f30bd2f8f15c92db034e44c5b2fe90e4c78f358da0d99cb64", true, + false}, + + {138, "000102030405060708090a0b0c0d0e0f1011121314151617", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "b4e54c5b2fe90e4c78f358da0d99cb64", + "458256842dfd297f30bd2f8f15c92db0b4e54c5b2fe90e4c78f358da0d99cb64", true, + false}, + + {139, "000102030405060708090a0b0c0d0e0f1011121314151617", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "b4e44cdb2fe90e4c78f358da0d99cb64", + "458256842dfd297f30bd2f8f15c92db0b4e44cdb2fe90e4c78f358da0d99cb64", true, + false}, + + {140, "000102030405060708090a0b0c0d0e0f1011121314151617", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "b4e44c5b2ee90e4c78f358da0d99cb64", + "458256842dfd297f30bd2f8f15c92db0b4e44c5b2ee90e4c78f358da0d99cb64", true, + false}, + + {141, "000102030405060708090a0b0c0d0e0f1011121314151617", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "b4e44c5b2de90e4c78f358da0d99cb64", + "458256842dfd297f30bd2f8f15c92db0b4e44c5b2de90e4c78f358da0d99cb64", true, + false}, + + {142, "000102030405060708090a0b0c0d0e0f1011121314151617", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "b4e44c5b2fe90ecc78f358da0d99cb64", + "458256842dfd297f30bd2f8f15c92db0b4e44c5b2fe90ecc78f358da0d99cb64", true, + false}, + + {143, "000102030405060708090a0b0c0d0e0f1011121314151617", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "b4e44c5b2fe90e4c79f358da0d99cb64", + "458256842dfd297f30bd2f8f15c92db0b4e44c5b2fe90e4c79f358da0d99cb64", true, + false}, + + {144, "000102030405060708090a0b0c0d0e0f1011121314151617", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "b4e44c5b2fe90e4cf8f358da0d99cb64", + "458256842dfd297f30bd2f8f15c92db0b4e44c5b2fe90e4cf8f358da0d99cb64", true, + false}, + + {145, "000102030405060708090a0b0c0d0e0f1011121314151617", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "b4e44c5b2fe90e4c78d358da0d99cb64", + "458256842dfd297f30bd2f8f15c92db0b4e44c5b2fe90e4c78d358da0d99cb64", true, + false}, + + {146, "000102030405060708090a0b0c0d0e0f1011121314151617", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "b4e44c5b2fe90e4c78f359da0d99cb64", + "458256842dfd297f30bd2f8f15c92db0b4e44c5b2fe90e4c78f359da0d99cb64", true, + false}, + + {147, "000102030405060708090a0b0c0d0e0f1011121314151617", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "b4e44c5b2fe90e4c78f358da0c99cb64", + "458256842dfd297f30bd2f8f15c92db0b4e44c5b2fe90e4c78f358da0c99cb64", true, + false}, + + {148, "000102030405060708090a0b0c0d0e0f1011121314151617", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "b4e44c5b2fe90e4c78f358da0f99cb64", + "458256842dfd297f30bd2f8f15c92db0b4e44c5b2fe90e4c78f358da0f99cb64", true, + false}, + + {149, "000102030405060708090a0b0c0d0e0f1011121314151617", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "b4e44c5b2fe90e4c78f358da8d99cb64", + "458256842dfd297f30bd2f8f15c92db0b4e44c5b2fe90e4c78f358da8d99cb64", true, + false}, + + {150, "000102030405060708090a0b0c0d0e0f1011121314151617", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "b4e44c5b2fe90e4c78f358da0d99cb65", + "458256842dfd297f30bd2f8f15c92db0b4e44c5b2fe90e4c78f358da0d99cb65", true, + false}, + + {151, "000102030405060708090a0b0c0d0e0f1011121314151617", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "b4e44c5b2fe90e4c78f358da0d99cb66", + "458256842dfd297f30bd2f8f15c92db0b4e44c5b2fe90e4c78f358da0d99cb66", true, + false}, + + {152, "000102030405060708090a0b0c0d0e0f1011121314151617", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "b4e44c5b2fe90e4c78f358da0d99cb24", + "458256842dfd297f30bd2f8f15c92db0b4e44c5b2fe90e4c78f358da0d99cb24", true, + false}, + + {153, "000102030405060708090a0b0c0d0e0f1011121314151617", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "b4e44c5b2fe90e4c78f358da0d99cbe4", + "458256842dfd297f30bd2f8f15c92db0b4e44c5b2fe90e4c78f358da0d99cbe4", true, + false}, + + {154, "000102030405060708090a0b0c0d0e0f1011121314151617", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "b5e44c5b2fe90e4c79f358da0d99cb64", + "458256842dfd297f30bd2f8f15c92db0b5e44c5b2fe90e4c79f358da0d99cb64", true, + false}, + + {155, "000102030405060708090a0b0c0d0e0f1011121314151617", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "b4e44cdb2fe90ecc78f358da0d99cb64", + "458256842dfd297f30bd2f8f15c92db0b4e44cdb2fe90ecc78f358da0d99cb64", true, + false}, + + {156, "000102030405060708090a0b0c0d0e0f1011121314151617", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "b4e44c5b2fe90ecc78f358da0d99cbe4", + "458256842dfd297f30bd2f8f15c92db0b4e44c5b2fe90ecc78f358da0d99cbe4", true, + false}, + + {157, "000102030405060708090a0b0c0d0e0f1011121314151617", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "4b1bb3a4d016f1b3870ca725f266349b", + "458256842dfd297f30bd2f8f15c92db04b1bb3a4d016f1b3870ca725f266349b", true, + false}, + + {158, "000102030405060708090a0b0c0d0e0f1011121314151617", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "00000000000000000000000000000000", + "458256842dfd297f30bd2f8f15c92db000000000000000000000000000000000", true, + false}, + + {159, "000102030405060708090a0b0c0d0e0f1011121314151617", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "ffffffffffffffffffffffffffffffff", + "458256842dfd297f30bd2f8f15c92db0ffffffffffffffffffffffffffffffff", true, + false}, + + {160, "000102030405060708090a0b0c0d0e0f1011121314151617", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "3464ccdbaf698eccf873d85a8d194be4", + "458256842dfd297f30bd2f8f15c92db03464ccdbaf698eccf873d85a8d194be4", true, + false}, + + {161, "000102030405060708090a0b0c0d0e0f1011121314151617", + "202122232425262728292a2b2c2d2e2f", "", "505152535455565758595a5b", "", + "b5e54d5a2ee80f4d79f259db0c98ca65", + "458256842dfd297f30bd2f8f15c92db0b5e54d5a2ee80f4d79f259db0c98ca65", true, + false}, + + {162, "00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f", + "0000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000", + "", "5c2ea9b695fcf6e264b96074d6bfa572", "", + "d5808a1bd11a01129bf3c6919aff2339", + "28e1c5232f4ee8161dbe4c036309e0b3254e9212bef0a93431ce5e5604c8f6a73c18a3183" + "018b770d5808a1bd11a01129bf3c6919aff2339", + false, false}, + + {163, "00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f", + "0000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000", + "", "57b3a81f2c36b6b06577ca0fbab8fa8e", "", + "8132e865b69d64ef37db261f80cbbe24", + "cceebeb4fe4cd90c514e52d2327a2ecd75393661006cf2476d8620149aef3d1cdce491fff" + "3e7a7a38132e865b69d64ef37db261f80cbbe24", + false, false}, + + {164, "00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f", + "0000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000", + "", "ce20a7e870696a5e68533c465bad2ba1", "", + "155da6441ec071ef2d8e6cffbacc1c7c", + "4f4350565d91d9aa8c5f4048550492ad6d6fdabf66da5d1e2af7bfe1a8aadaa0baa3de38a" + "41d9713155da6441ec071ef2d8e6cffbacc1c7c", + false, false}, + + {165, "00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f", + "0000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000", + "", "918e3c19dbdfee2db18156c5b93f3d75", "", + "6c574aa6a2490cc3b2f2f8f0ffbc56c4", + "8316a53167b6de1a7575700693ffef274f4350565d91d9aa8c5f4048550492ad6d6fdabf6" + "6da5d1e6c574aa6a2490cc3b2f2f8f0ffbc56c4", + false, false}, + + {166, "00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f", + "0000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000", + "", "717d900b270462b9dbf7e9419e890609", "", + "8082a761e1d755344bf29622144e7d39", + "5175927513e751eb309f45bc2ef225f28316a53167b6de1a7575700693ffef274f4350565" + "d91d9aa8082a761e1d755344bf29622144e7d39", + false, false}, + + {167, "00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f", + "0000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000", + "", "ecd52120af240e9b4bf3b9d1eeb49434", "", + "033e0ef2953ebfd8425737c7d393f89a", + "36b3fbecd09178d04527fb37544f5579d20d60a41266f685c48098e1a52804ca387d90709" + "d3268dd033e0ef2953ebfd8425737c7d393f89a", + false, false}, + + {168, "00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f", + "0000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000", + "", "b37bbad104928ae89221d3520c2682e0", "", + "ca448bb7e52e897eca234ef343d057d0", + "16929b773051f12b0adac95f65e21a7f36b3fbecd09178d04527fb37544f5579d20d60a41" + "266f685ca448bb7e52e897eca234ef343d057d0", + false, false}, + + {169, "00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f", + "0000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000", + "", "538816c3f849067cf8576cd62b90b99c", "", + "84f49740e6757f63dd0df7cb7656d0ef", + "6d3faefaf691d58163846f8d4b9ffd5916929b773051f12b0adac95f65e21a7f36b3fbecd" + "09178d084f49740e6757f63dd0df7cb7656d0ef", + false, false}, + + {170, "00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f", + "0000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000", + "", "d10e631943cd3bdababab2bbd13951c0", "", + "877e15d9889e69a99fcc6d727465c391", + "d60196c2d14fcf30c0991d2721ddc52d385f407a16691dade82c9023c855fd8e2e8fbb562" + "102f018877e15d9889e69a99fcc6d727465c391", + false, false}, + + {171, "00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f", + "0000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000", + "", "8ea0f8e8e87bbfa96368d83833ab4714", "", + "cd5757626945976ba9f0264bd6bee894", + "948fbceca12a6e4fabb79b6d965e336fd60196c2d14fcf30c0991d2721ddc52d385f407a1" + "6691dadcd5757626945976ba9f0264bd6bee894", + false, false}, + + {172, "00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f", + "0000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000", + "", "7b2df4fbed1de2727eb24898e5deabb9", "", + "b015d72da62c81cb4d267253b20db9e5", + "a1a0120660ff52e6b1700b12c54d2d33b94b00cd7882d8857d84e6e183a1dea6ee85a7da8" + "4fbc35db015d72da62c81cb4d267253b20db9e5", + false, false}, + + {173, "00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f", + "0000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000", + "", "24836f0a46ab6601a760221b074cbd6d", "", + "ee74ccb30d649ebf6916d05a7dbe5696", + "5e3434b45edbf0d1f6e02d1144dbf867a1a0120660ff52e6b1700b12c54d2d33b94b00cd7" + "882d885ee74ccb30d649ebf6916d05a7dbe5696", + false, false}, + + {174, "00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f", + "8d74f1c97243d362577ff376c393d2dc", "", "00000000000000000000000000000000", + "", "00000000000000000000000000000000", + "265c42e2b96ea1de9c24f7182e33739000000000000000000000000000000000", false, + false}, + + {175, "00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f", + "884df0e76f3ce227bf9595d103825a46", "", "ffffffffffffffffffffffffffffffff", + "", "ffffffffffffffffffffffffffffffff", + "988f47668ea650cbaa6714711abe268dffffffffffffffffffffffffffffffff", false, + false}, + + {176, "b7797eb0c1a6089ad5452d81fdb14828c040ddc4589c32b565aad8cb4de3e4a0", + "ed", "", "0ad570d8863918fe89124e09d125a271", "", + "fd8f593b83314e33c5a72efbeb7095e8", "3ffd8f593b83314e33c5a72efbeb7095e8", + false, false}, + + {177, "4c010d9561c7234c308c01cea3040c925a9f324dc958ff904ae39b37e60e1e03", + "2a093c9ed72b8ff4994201e9f9e010", "", "2a55caa137c5b0b66cf3809eb8f730c4", + "", "5b8a2f2da20ef657c903da88ef5f57bb", + "041341078f0439e50b43c9916351175b8a2f2da20ef657c903da88ef5f57bb", false, + false}, + + {178, "e7f7a48df99edd92b81f508618aa96526b279debd9ddb292d385ddbae80b2259", + "5e51dbbb861b5ec60751c0996e00527f", "", "7ee376910f08f497aa6c3aa7113697fd", + "", "254ada5cf662d90c5e11b2bd9c4db4c4", + "469478d448f7e97d755541aa09ad95b0254ada5cf662d90c5e11b2bd9c4db4c4", false, + false}, + + {179, "4f84782bfbb64a973c3de3dcfa3430367fd68bc0b4c3b31e5d7c8141ba3e6a67", + "78cb6650a1908a842101ea85804fed00cc56fbdafafba0ef4d1ca607dcae57b6", "", + "5d1bde6fa0994b33efd8f23f531248a7", "", "8dfce16467c3a6ebb3e7242c9a551962", + "cb960201fa5ad41d41d1c2c8037c71d52b72e76b16b589d71b976627c9734c9d8dfce1646" + "7c3a6ebb3e7242c9a551962", + false, false}, + + {180, "34c74e28182948e03af02a01f46eb4f7", "fe82ba66cf2e265741f2c86c", "", + "b0a73119a97d623806b49d45ddf4c7", "", "4b6f6f5be291a90b9e93a8a82ddbc8d8", + "2bc3ef8e7402b4631f48e9be4b6f6f5be291a90b9e93a8a82ddbc8d8", false, false}, + + {181, "55cb7cac77efe18a1ea3b30c65f3f346", "2f3d11ea32bf5bc72cbe2b8d", "", + "e22b6b144ab26b5781316e7a42a76202ac4b2278", "", + "05975b175316df8045889f43e0c857e0", + "4fe13ef29f118f85a63188f805975b175316df8045889f43e0c857e0", false, false}, + + {182, "f6a4bf8c4e15034699ce5801cbbac7509cd3f94cf28d8307", + "de8eaa41e5e6a590c3cfbf61", "", "60d6bfca67f5d810", "", + "e370e7dd328655929bd4691f396a1033", + "a2966fb189f8d9d391503857e370e7dd328655929bd4691f396a1033", false, false}, + + {183, "66f75acbd8d3acf7af47d13e8384c2809d6b91503a7f294b", + "a900c86b6b7e0e5563f8f826", "", "edf93e16294f15eded83808f09320e", "", + "20529bff3c59222ec33353af337b1d40", + "9af1a022c61c4315aa0e923e20529bff3c59222ec33353af337b1d40", false, false}, + + {184, "ef2e299dd4ecd7e3b9cc62780922cc2c89f78840564d1276", + "03f59579b14437199583270e", "", "130c14c839e35b7d56b3350b194b0da342e6b65d", + "", "17205999491bd4c1d6c7ec3e56779c32", + "073a5291b11df379f31b4f1617205999491bd4c1d6c7ec3e56779c32", false, false}, + + {185, "df64c84ae52d9ca820a47421bed6e96f7165369fc4c1b65f8f6307b17ce1006c", + "f5fafdded54a86a4edab44bd", "", "c0c568a400b7194f", "", + "00955d7d27f66868cfec734bf59c5e6d", + "99313a220d1fcb665887628300955d7d27f66868cfec734bf59c5e6d", false, false}, + + {186, "e98b0669a645eb14cd06df6968fc5f10edc9f54feed264e3d410cdc61b72ef51", + "f384b3ed7b274641f5db60cf", "", "17ca250fb733877556263223eadde1", "", + "36b15bab6923b17218fe1c24048e2391", + "fc213602aa423b87d7c2a87436b15bab6923b17218fe1c24048e2391", false, false}, + + {187, "849b3e6b8cdd85bdcfb8eb701aa5522ae2340fbe5214e389622cef76979225c4", + "8c5564e53051c0de273199b4", "", "0f9d6ed7eef362dfa4a7dfa5c0f74c5b27bd4ebf", + "", "7cf036d235d3b2dd349a8c804b65144a", + "c1d76233e8c5042e92bf8d327cf036d235d3b2dd349a8c804b65144a", false, false}, + + {188, "8f3f52e3c75c58f5cb261f518f4ad30a", "", "", "", "", + "cf71978ffcc778f3c85ac9c31b6fe191", "cf71978ffcc778f3c85ac9c31b6fe191", + true, true}, + + {189, "2a4bf90e56b70fdd8649d775c089de3b", + "324ced6cd15ecc5b3741541e22c18ad9", "", "", "", + "a2c7e8d7a19b884f742dfec3e76c75ee", + "00a29f0a5e2e7490279d1faf8b881c7ba2c7e8d7a19b884f742dfec3e76c75ee", true, + true}, + + {190, "0b18d21337035c7baa08211b702fa780ac7c09be8f9ed11f", "", "", "", "", + "ca69a2eb3a096ea36b1015d5dffff532", "ca69a2eb3a096ea36b1015d5dffff532", + true, true}, + + {191, "ba76d594a6df915bb7ab7e6d1a8d024b2796336c1b8328a9", + "d62f302742d61d823ea991b93430d589", "", "", "", + "2c9488d53a0b2b5308c2757dfac7219f", + "509b0658d09f7a5bb9db43b70c8387f72c9488d53a0b2b5308c2757dfac7219f", true, + true}, + + {192, "3f8ca47b9a940582644e8ecf9c2d44e8138377a8379c5c11aafe7fec19856cf1", + "", "", "", "", "1726aa695fbaa21a1db88455c670a4b0", + "1726aa695fbaa21a1db88455c670a4b0", true, true}, + + {193, "7660d10966c6503903a552dde2a809ede9da490e5e5cc3e349da999671809883", + "c314235341debfafa1526bb61044a7f1", "", "", "", + "8fe0520ad744a11f0ccfd228454363fa", + "7772ea358901f571d3d35c19497639d98fe0520ad744a11f0ccfd228454363fa", true, + true}, + + {194, "59a284f50aedd8d3e2a91637d3815579", "", "", "80", "", + "af498f701d2470695f6e7c8327a2398b", "af498f701d2470695f6e7c8327a2398b", + false, false}, + + {195, "fec58aa8cf06bfe05de829f27ec77693", + "f2d99a9f893378e0757d27c2e3a3101b", "", "9d", "", + "96e6fd2cdc707e3ee0a1c90d34c9c36c", + "0a24612a9d1cbe967dbfe804bf8440e596e6fd2cdc707e3ee0a1c90d34c9c36c", false, + false}, + + {196, "88a972cce9eaf5a7813ce8149d0c1d0e", "", "", "0f2f", "", + "4ccf1efb4da05b4ae4452aea42f5424b", "4ccf1efb4da05b4ae4452aea42f5424b", + false, false}, + + {197, "b43967ee933e4632bd6562ba1201bf83", + "5a6ad6db70591d1e520b0122f05021a0", "", "8760", "", + "98f47a5279cebbcac214515710f6cd8a", + "ba3e7f8b2999995c7fc4006ca4f475ff98f47a5279cebbcac214515710f6cd8a", false, + false}, + + {198, "4e9a97d3ed54c7b54610793ab05052e1", "", "", "cc851957", "", + "e574b355bda2980e047e584feb1676ca", "e574b355bda2980e047e584feb1676ca", + false, false}, + + {199, "d83c1d7a97c43f182409a4aa5609c1b1", + "c8f07ba1d65554a9bd40390c30c5529c", "", "7b5faeb2", "", + "5c0bb79d8240041edce0f94bd4bb384f", + "1b84baea9df1e65bee7b49e4a8cda1ec5c0bb79d8240041edce0f94bd4bb384f", false, + false}, + + {200, "c6a705677affb49e276d9511caa46145", "", "", "4ad80c2854fb", "", + "1e2ed72af590cafb8647d185865f5463", "1e2ed72af590cafb8647d185865f5463", + false, false}, + + {201, "eba7699b56cc0aa2f66a2a5be9944413", + "d021e53d9098a2df3d6b903cdad0cd9c", "", "d1dafc8de3e3", "", + "9c0e22e5c41b1039ff5661ffaefa8e0f", + "18291aa8dc7b07448aa8f71bb8e380bf9c0e22e5c41b1039ff5661ffaefa8e0f", false, + false}, + + {202, "c70ce38e84e5f53ed41c3f0d2ca493412ad32cb04c6e2efa", "", "", "cb", "", + "08d96edb5e22874cd10cb2256ca04bc6", "08d96edb5e22874cd10cb2256ca04bc6", + false, false}, + + {203, "74c816b83dfd287210a3e2c6da8d3053bbfbd9b156d3fdd8", + "f2b7b2c9b312cf2af78f003df15c8e19", "", "0f", "", + "96a132ed43924e98feb888ff682bdaef", + "6c5e796ba9a3ddc64f401e68d135101d96a132ed43924e98feb888ff682bdaef", false, + false}, + + {204, "cbf45ba488932aea1a10e5862f92e4a7e277bda9f34af6d0", "", "", "75e5", + "", "1f0d23070fcd748e25bf6454f5c9136e", "1f0d23070fcd748e25bf6454f5c9136e", + false, false}, + + {205, "e1c0446f11ae6aa4fa254f9a846fc6e13e45e537e47f2042", + "3a2f5ad0eb216e546e0bcaa377b6cbc7", "", "8989", "", + "f6e0a979481f9957ddad0f21a777a73a", + "550b48a43e821fd76f49f0f1a897aeadf6e0a979481f9957ddad0f21a777a73a", false, + false}, + + {206, "567563bf4cf154902275a53bc57cd6dd7b370d27011bdac8", "", "", + "68d7fc38", "", "1475563e3212f3b5e40062569afd71e3", + "1475563e3212f3b5e40062569afd71e3", false, false}, + + {207, "834d0bb601170865a78139428a1503695a6a291ebd747cd1", + "6f79e18b4acd5a03d3a5f7e1a8d0f183", "", "bb9d2aa3", "", + "03ab26993b701910a2e8ecccd2ba9e52", + "309133e76159fe8a41b20843486511ab03ab26993b701910a2e8ecccd2ba9e52", false, + false}, + + {208, "99fb18f5ba430bb9ea942968ecb799b43406e1af4b6425a1", "", "", + "a984bdcdcae2", "", "d7b9a6b58a97982916e83219fbf71b1e", + "d7b9a6b58a97982916e83219fbf71b1e", false, false}, + + {209, "b77b242aa0d51c92fda013e0cb0ef2437399ace5d3f507e4", + "4ba541a9914729216153801340ab1779", "", "52aa01e0d0d6", "", + "c052a55df3926a50990a532efe3d80ec", + "e08261e46eaf90d978ea8f7889bccd4fc052a55df3926a50990a532efe3d80ec", false, + false}, + + {210, "8f9a38c1014966e4d9ae736139c5e79b99345874f42d4c7d2c81aa6797c417c0", + "", "", "a9", "", "2a268bf3a75fd7b00ba230b904bbb014", + "2a268bf3a75fd7b00ba230b904bbb014", false, false}, + + {211, "144cd8279229e8bb2de99d24e615306663913fe9177fcd270fafec493d43bca1", + "976229f5538f9636476d69f0c328e29d", "", "b3", "", + "8bbad4adc54b37a2b2f0f6e8617548c9", + "7bea30ecc2f73f8e121263b37966954c8bbad4adc54b37a2b2f0f6e8617548c9", false, + false}, + + {212, "7d31861f9d3536e14016a3216b1042e0d2f7d4614314268b6f834ec7f38bbb65", + "", "", "c332", "", "1d978a693120c11f6d51a3ed88cd4ace", + "1d978a693120c11f6d51a3ed88cd4ace", false, false}, + + {213, "22b35fe9623ee11f8b60b6d22db3765b666ed972fa7ccd92b45f22deee02cab1", + "5341c78e4ce5bf8fbc3e077d1990dd5d", "", "da6c", "", + "b63ff43c12073ec5572b1be70f17e231", + "9c39f5b110361e9a770cc5e8b0f444bbb63ff43c12073ec5572b1be70f17e231", false, + false}, + + {214, "c224e0bba3d7a99165f7996b67a0fce3e12f2c01179b197b69b7e628bca92096", + "", "", "6b30145e", "", "ae6f7c9a29f0d8204ca50b14a1e0dcf2", + "ae6f7c9a29f0d8204ca50b14a1e0dcf2", false, false}, + + {215, "093eb12343537ee8e91c1f715b862603f8daf9d4e1d7d67212a9d68e5aac9358", + "33efb58c91e8c70271870ec00fe2e202", "", "5110604c", "", + "b824c33c13f289429659aa017c632f71", + "f73f72f976a296ba3ca94bc6eb08cd46b824c33c13f289429659aa017c632f71", false, + false}, + + {216, "98e6f8ab673e804e865e32403a6551bf807a959343c60d34559360bc295ecb5b", + "", "", "d4d857510888", "", "3db16725fafc828d414ab61c16a6c38f", + "3db16725fafc828d414ab61c16a6c38f", false, false}, + + {217, "0bd0e8e7781166e1d876dec8fad34ba95b032a27cac0551595116091005947b7", + "91222263b12cf5616a049cbe29ab9b5b", "", "1bdcd44b663e", "", + "c8fc39906aca0c64e14a43ff750abd8a", + "ed463f4f43336af3f4d7e08770201145c8fc39906aca0c64e14a43ff750abd8a", false, + false}}; #endif // gcm_vectors_h__ diff --git a/gtests/common/wycheproof/__init__.py b/gtests/common/wycheproof/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/gtests/common/wycheproof/genaesgcm.py b/gtests/common/wycheproof/genaesgcm.py new file mode 100755 index 0000000000..c39199f08a --- /dev/null +++ b/gtests/common/wycheproof/genaesgcm.py @@ -0,0 +1,67 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this file, +# You can obtain one at http://mozilla.org/MPL/2.0/. +import json +import os + +script_dir = os.path.dirname(os.path.abspath(__file__)) +source_file = os.path.join(script_dir, 'testvectors/aes_gcm_test.json') +base_file = os.path.join(script_dir, 'header_bases/gcm-vectors.h') +target_file = os.path.join(script_dir, '../gcm-vectors.h') + +# Imports a JSON testvector file. +def import_testvector(file): + + with open(file) as f: + vectors = json.loads(f.read()) + return vectors + +# Writes one testvector into C-header format. (Not clang-format conform) +def format_testcase(vector): + result = "{{ {},\n".format(vector["tcId"]) + result += " \"{}\",\n".format(vector["key"]) + result += " \"{}\",\n".format(vector["msg"]) + result += " \"{}\",\n".format(vector["aad"]) + result += " \"{}\",\n".format(vector["iv"]) + result += " \"\",\n" + result += " \"{}\",\n".format(vector["tag"]) + result += " \"{}\",\n".format(vector["ct"] + vector["tag"]) + result += " {},\n".format(str(vector["result"] == "invalid").lower()) + result += " {}}},\n\n".format(str("ZeroLengthIv" in vector["flags"]).lower()) + + + return result + +def generate_aes_gcm(): + cases = import_testvector(source_file) + + with open(base_file) as base: + header = base.read() + + header = header[:-27] + + header += "\n\n// Testvectors from project wycheproof\n" + header += "// \n" + header += "const gcm_kat_value kGcmWycheproofVectors[] = {\n" + + for group in cases["testGroups"]: + for test in group["tests"]: + header += format_testcase(test) + + header = header[:-3] + "};\n\n" + + header += "#endif // gcm_vectors_h__\n" + + with open(target_file, 'w') as target: + target.write(header) + + +def main(): + generate_aes_gcm() + + +if __name__ == '__main__': + main() diff --git a/gtests/common/wycheproof/header_bases/gcm-vectors.h b/gtests/common/wycheproof/header_bases/gcm-vectors.h new file mode 100644 index 0000000000..ccb5761da1 --- /dev/null +++ b/gtests/common/wycheproof/header_bases/gcm-vectors.h @@ -0,0 +1,197 @@ +/* vim: set ts=2 et sw=2 tw=80: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* This file is generated from sources in nss/gtests/common/wycheproof + * automatically and should not be touched manually. + * Generation is trigged by calling ./mach wycheproof */ + +#ifndef gcm_vectors_h__ +#define gcm_vectors_h__ + +#include + +typedef struct gcm_kat_str { + uint32_t test_id; + std::string key; + std::string plaintext; + std::string additional_data; + std::string iv; + std::string hash_key; + std::string ghash; + std::string result; + bool invalid_ct; + bool invalid_iv; +} gcm_kat_value; + +/* + * http://csrc.nist.gov/groups/ST/toolkit/BCM/documents/proposedmodes/gcm/gcm-revised-spec.pdf + */ +const gcm_kat_value kGcmKatValues[] = { + {1, "00000000000000000000000000000000", "", "", "000000000000000000000000", + "66e94bd4ef8a2c3b884cfa59ca342b2e", "00000000000000000000000000000000", + "58e2fccefa7e3061367f1d57a4e7455a", false, false}, + + {2, "00000000000000000000000000000000", "00000000000000000000000000000000", + "", "000000000000000000000000", "66e94bd4ef8a2c3b884cfa59ca342b2e", + "f38cbb1ad69223dcc3457ae5b6b0f885", + "0388dace60b6a392f328c2b971b2fe78ab6e47d42cec13bdf53a67b21257bddf", false, + false}, + + {3, "feffe9928665731c6d6a8f9467308308", + "d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c959" + "56809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255", + "", "cafebabefacedbaddecaf888", "b83b533708bf535d0aa6e52980d53b78", + "7f1b32b81b820d02614f8895ac1d4eac", + "42831ec2217774244b7221b784d0d49ce3aa212f2c02a4e035c17e2329aca12e21d514b25" + "466931c7d8f6a5aac84aa051ba30b396a0aac973d58e091473f59854d5c2af327cd64a62c" + "f35abd2ba6fab4", + false, false}, + + {4, "feffe9928665731c6d6a8f9467308308", + "d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c959" + "56809532fcf0e2449a6b525b16aedf5aa0de657ba637b39", + "feedfacedeadbeeffeedfacedeadbeefabaddad2", "cafebabefacedbaddecaf888", + "b83b533708bf535d0aa6e52980d53b78", "698e57f70e6ecc7fd9463b7260a9ae5f", + "42831ec2217774244b7221b784d0d49ce3aa212f2c02a4e035c17e2329aca12e21d514b25" + "466931c7d8f6a5aac84aa051ba30b396a0aac973d58e0915bc94fbc3221a5db94fae95ae7" + "121a47", + false, false}, + + {5, "feffe9928665731c6d6a8f9467308308", + "d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c959" + "56809532fcf0e2449a6b525b16aedf5aa0de657ba637b39", + "feedfacedeadbeeffeedfacedeadbeefabaddad2", "cafebabefacedbad", + "b83b533708bf535d0aa6e52980d53b78", "df586bb4c249b92cb6922877e444d37b", + "61353b4c2806934a777ff51fa22a4755699b2a714fcdc6f83766e5f97b6c742373806900e" + "49f24b22b097544d4896b424989b5e1ebac0f07c23f45983612d2e79e3b0785561be14aac" + "a2fccb", + false, false}, + + {6, "feffe9928665731c6d6a8f9467308308", + "d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c959" + "56809532fcf0e2449a6b525b16aedf5aa0de657ba637b39", + "feedfacedeadbeeffeedfacedeadbeefabaddad2", + "9313225df88406e555909c5aff5269aa6a7a9538534f7da1e4c303d2a318a728c3c0c9515" + "6809539fcf0e2429a6b525416aedbf5a0de6a57a637b39b", + "b83b533708bf535d0aa6e52980d53b78", "1c5afe9760d3932f3c9a878aac3dc3de", + "8ce24998625615b603a033aca13fb894be9112a5c3a211a8ba262a3cca7e2ca701e4a9a4f" + "ba43c90ccdcb281d48c7c6fd62875d2aca417034c34aee5619cc5aefffe0bfa462af43c16" + "99d050", + false, false}, + + {7, "000000000000000000000000000000000000000000000000", "", "", + "000000000000000000000000", "aae06992acbf52a3e8f4a96ec9300bd7", + "00000000000000000000000000000000", "cd33b28ac773f74ba00ed1f312572435", + false, false}, + + {8, "000000000000000000000000000000000000000000000000", + "00000000000000000000000000000000", "", "000000000000000000000000", + "aae06992acbf52a3e8f4a96ec9300bd7", "e2c63f0ac44ad0e02efa05ab6743d4ce", + "98e7247c07f0fe411c267e4384b0f6002ff58d80033927ab8ef4d4587514f0fb", false, + false}, + + {9, "feffe9928665731c6d6a8f9467308308feffe9928665731c", + "d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c959" + "56809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255", + "", "cafebabefacedbaddecaf888", "466923ec9ae682214f2c082badb39249", + "51110d40f6c8fff0eb1ae33445a889f0", + "3980ca0b3c00e841eb06fac4872a2757859e1ceaa6efd984628593b40ca1e19c7d773d00c" + "144c525ac619d18c84a3f4718e2448b2fe324d9ccda2710acade2569924a7c8587336bfb1" + "18024db8674a14", + false, false}, + + {10, "feffe9928665731c6d6a8f9467308308feffe9928665731c", + "d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c959" + "56809532fcf0e2449a6b525b16aedf5aa0de657ba637b39", + "feedfacedeadbeeffeedfacedeadbeefabaddad2", "cafebabefacedbaddecaf888", + "466923ec9ae682214f2c082badb39249", "ed2ce3062e4a8ec06db8b4c490e8a268", + "3980ca0b3c00e841eb06fac4872a2757859e1ceaa6efd984628593b40ca1e19c7d773d00c" + "144c525ac619d18c84a3f4718e2448b2fe324d9ccda27102519498e80f1478f37ba55bd6d" + "27618c", + false, false}, + + {11, "feffe9928665731c6d6a8f9467308308feffe9928665731c", + "d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c959" + "56809532fcf0e2449a6b525b16aedf5aa0de657ba637b39", + "feedfacedeadbeeffeedfacedeadbeefabaddad2", "cafebabefacedbad", + "466923ec9ae682214f2c082badb39249", "1e6a133806607858ee80eaf237064089", + "0f10f599ae14a154ed24b36e25324db8c566632ef2bbb34f8347280fc4507057fddc29df9" + "a471f75c66541d4d4dad1c9e93a19a58e8b473fa0f062f765dcc57fcf623a24094fcca40d" + "3533f8", + false, false}, + + {12, "feffe9928665731c6d6a8f9467308308feffe9928665731c", + "d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c959" + "56809532fcf0e2449a6b525b16aedf5aa0de657ba637b39", + "feedfacedeadbeeffeedfacedeadbeefabaddad2", + "9313225df88406e555909c5aff5269aa6a7a9538534f7da1e4c303d2a318a728c3c0c9515" + "6809539fcf0e2429a6b525416aedbf5a0de6a57a637b39b", + "466923ec9ae682214f2c082badb39249", "82567fb0b4cc371801eadec005968e94", + "d27e88681ce3243c4830165a8fdcf9ff1de9a1d8e6b447ef6ef7b79828666e4581e79012a" + "f34ddd9e2f037589b292db3e67c036745fa22e7e9b7373bdcf566ff291c25bbb8568fc3d3" + "76a6d9", + false, false}, + + {13, "0000000000000000000000000000000000000000000000000000000000000000", "", + "", "000000000000000000000000", "dc95c078a2408989ad48a21492842087", + "00000000000000000000000000000000", "530f8afbc74536b9a963b4f1c4cb738b", + false, false}, + + {14, "0000000000000000000000000000000000000000000000000000000000000000", + "00000000000000000000000000000000", "", "000000000000000000000000", + "dc95c078a2408989ad48a21492842087", "83de425c5edc5d498f382c441041ca92", + "cea7403d4d606b6e074ec5d3baf39d18d0d1c8a799996bf0265b98b5d48ab919", false, + false}, + + {15, "feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308", + "d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c959" + "56809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255", + "", "cafebabefacedbaddecaf888", "acbef20579b4b8ebce889bac8732dad7", + "4db870d37cb75fcb46097c36230d1612", + "522dc1f099567d07f47f37a32a84427d643a8cdcbfe5c0c97598a2bd2555d1aa8cb08e485" + "90dbb3da7b08b1056828838c5f61e6393ba7a0abcc9f662898015adb094dac5d93471bdec" + "1a502270e3cc6c", + false, false}, + + {16, "feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308", + "d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c959" + "56809532fcf0e2449a6b525b16aedf5aa0de657ba637b39", + "feedfacedeadbeeffeedfacedeadbeefabaddad2", "cafebabefacedbaddecaf888", + "acbef20579b4b8ebce889bac8732dad7", "8bd0c4d8aacd391e67cca447e8c38f65", + "522dc1f099567d07f47f37a32a84427d643a8cdcbfe5c0c97598a2bd2555d1aa8cb08e485" + "90dbb3da7b08b1056828838c5f61e6393ba7a0abcc9f66276fc6ece0f4e1768cddf8853bb" + "2d551b", + false, false}, + + {17, "feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308", + "d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c959" + "56809532fcf0e2449a6b525b16aedf5aa0de657ba637b39", + "feedfacedeadbeeffeedfacedeadbeefabaddad2", "cafebabefacedbad", + "acbef20579b4b8ebce889bac8732dad7", "75a34288b8c68f811c52b2e9a2f97f63", + "c3762df1ca787d32ae47c13bf19844cbaf1ae14d0b976afac52ff7d79bba9de0feb582d33" + "934a4f0954cc2363bc73f7862ac430e64abe499f47c9b1f3a337dbf46a792c45e454913fe" + "2ea8f2", + false, false}, + + {18, "feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308", + "d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c959" + "56809532fcf0e2449a6b525b16aedf5aa0de657ba637b39", + "feedfacedeadbeeffeedfacedeadbeefabaddad2", + "9313225df88406e555909c5aff5269aa6a7a9538534f7da1e4c303d2a318a728c3c0c9515" + "6809539fcf0e2429a6b525416aedbf5a0de6a57a637b39b", + "acbef20579b4b8ebce889bac8732dad7", "d5ffcf6fc5ac4d69722187421a7f170b", + "5a8def2f0c9e53f1f75d7853659e2a20eeb2b22aafde6419a058ab4f6f746bf40fc0c3b78" + "0f244452da3ebf1c5d82cdea2418997200ef82e44ae7e3fa44a8266ee1c8eb0c8b5d4cf5a" + "e9f19a", + false, false}, + + /* Extra, non-NIST, test case to test 64-bit binary multiplication carry + * correctness. This is a GHASH-only test. */ + {19, "", "", "", "", "0000000000000000fcefef64ffc4766c", + "3561e34e52d8b598f9937982512fff27", + "0000000000000000ffcef9ebbffdbd8b00000000000000000000000000000000", false, + false}}; + +#endif // gcm_vectors_h__ diff --git a/gtests/common/wycheproof/testvectors/aes_gcm_test.json b/gtests/common/wycheproof/testvectors/aes_gcm_test.json new file mode 100644 index 0000000000..f2f327921c --- /dev/null +++ b/gtests/common/wycheproof/testvectors/aes_gcm_test.json @@ -0,0 +1,2940 @@ +{ + "algorithm" : "AES-GCM", + "generatorVersion" : "0.4.12", + "notes" : { + "ConstructedIv" : "The counter for AES-GCM is reduced modulo 2**32. This test vector was constructed to test for correct wrapping of the counter.", + "ZeroLengthIv" : "AES-GCM does not allow an IV of length 0. Encrypting with such an IV leaks the authentication key. Hence using an IV of length 0 is insecure even if the key itself is only used for a single encryption." + }, + "numberOfTests" : 217, + "header" : [], + "testGroups" : [ + { + "ivSize" : 96, + "keySize" : 128, + "tagSize" : 128, + "type" : "AeadTest", + "tests" : [ + { + "tcId" : 1, + "comment" : "", + "key" : "5b9604fe14eadba931b0ccf34843dab9", + "iv" : "028318abc1824029138141a2", + "aad" : "", + "msg" : "001d0c231287c1182784554ca3a21908", + "ct" : "26073cc1d851beff176384dc9896d5ff", + "tag" : "0a3ea7a5487cb5f7d70fb6c58d038554", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 2, + "comment" : "", + "key" : "5b9604fe14eadba931b0ccf34843dab9", + "iv" : "921d2507fa8007b7bd067d34", + "aad" : "00112233445566778899aabbccddeeff", + "msg" : "001d0c231287c1182784554ca3a21908", + "ct" : "49d8b9783e911913d87094d1f63cc765", + "tag" : "1e348ba07cca2cf04c618cb4d43a5b92", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 3, + "comment" : "", + "key" : "aa023d0478dcb2b2312498293d9a9129", + "iv" : "0432bc49ac34412081288127", + "aad" : "aac39231129872a2", + "msg" : "2035af313d1346ab00154fea78322105", + "ct" : "eea945f3d0f98cc0fbab472a0cf24e87", + "tag" : "4bb9b4812519dadf9e1232016d068133", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 4, + "comment" : "", + "key" : "384ea416ac3c2f51a76e7d8226346d4e", + "iv" : "b30c084727ad1c592ac21d12", + "aad" : "", + "msg" : "35", + "ct" : "54", + "tag" : "7c1e4ae88bb27e5638343cb9fd3f6337", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 5, + "comment" : "", + "key" : "cae31cd9f55526eb038241fc44cac1e5", + "iv" : "b5e006ded553110e6dc56529", + "aad" : "", + "msg" : "d10989f2c52e94ad", + "ct" : "a036ead03193903f", + "tag" : "3b626940e0e9f0cbea8e18c437fd6011", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 6, + "comment" : "", + "key" : "dd6197cd63c963919cf0c273ef6b28bf", + "iv" : "ecb0c42f7000ef0e6f95f24d", + "aad" : "", + "msg" : "4dcc1485365866e25ac3f2ca6aba97", + "ct" : "8a9992388e735f80ee18f4a63c10ad", + "tag" : "1486a91cccf92c9a5b00f7b0e034891c", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 7, + "comment" : "", + "key" : "ffdf4228361ea1f8165852136b3480f7", + "iv" : "0e1666f2dc652f7708fb8f0d", + "aad" : "", + "msg" : "25b12e28ac0ef6ead0226a3b2288c800", + "ct" : "f7bd379d130477176b8bb3cb23dbbbaa", + "tag" : "1ee6513ce30c7873f59dd4350a588f42", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 8, + "comment" : "", + "key" : "c15ed227dd2e237ecd087eaaaad19ea4", + "iv" : "965ff6643116ac1443a2dec7", + "aad" : "", + "msg" : "fee62fde973fe025ad6b322dcdf3c63fc7", + "ct" : "0de51fe4f7f2d1f0f917569f5c6d1b009c", + "tag" : "6cd8521422c0177e83ef1b7a845d97db", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 9, + "comment" : "", + "key" : "a8ee11b26d7ceb7f17eaa1e4b83a2cf6", + "iv" : "fbbc04fd6e025b7193eb57f6", + "aad" : "", + "msg" : "c08f085e6a9e0ef3636280c11ecfadf0c1e72919ffc17eaf", + "ct" : "7cd9f4e4f365704fff3b9900aa93ba54b672bac554275650", + "tag" : "f4eb193241226db017b32ec38ca47217", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 10, + "comment" : "", + "key" : "28ff3def08179311e2734c6d1c4e2871", + "iv" : "32bcb9b569e3b852d37c766a", + "aad" : "c3", + "msg" : "dfc61a20df8505b53e3cd59f25770d5018add3d6", + "ct" : "f58d453212c2c8a436e9283672f579f119122978", + "tag" : "5901131d0760c8715901d881fdfd3bc0", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 11, + "comment" : "", + "key" : "e63a43216c08867210e248859eb5e99c", + "iv" : "9c3a4263d983456658aad4b1", + "aad" : "834afdc5c737186b", + "msg" : "b14da56b0462dc05b871fc815273ff4810f92f4b", + "ct" : "bf864616c2347509ca9b10446379b9bdbb3b8f64", + "tag" : "a97d25b490390b53c5db91f6ee2a15b8", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 12, + "comment" : "", + "key" : "38449890234eb8afab0bbf82e2385454", + "iv" : "33e90658416e7c1a7c005f11", + "aad" : "4020855c66ac4595058395f367201c4c", + "msg" : "f762776bf83163b323ca63a6b3adeac1e1357262", + "ct" : "a6f2ef3c7ef74a126dd2d5f6673964e27d5b34b6", + "tag" : "b8bbdc4f5014bc752c8b4e9b87f650a3", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 13, + "comment" : "", + "key" : "6a68671dfe323d419894381f85eb63fd", + "iv" : "9f0d85b605711f34cd2a35ba", + "aad" : "76eb5f147250fa3c12bff0a6e3934a0b16860cf11646773b", + "msg" : "0fc67899c3f1bbe196d90f1eca3797389230aa37", + "ct" : "bd64802cfebaeb487d3a8f76ce943a37b3472dd5", + "tag" : "fce9a5b530c7d7af718be1ec0ae9ed4d", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 14, + "comment" : "special case", + "key" : "00112233445566778899aabbccddeeff", + "iv" : "000000000000000000000000", + "aad" : "", + "msg" : "ebd4a3e10cf6d41c50aeae007563b072", + "ct" : "f62d84d649e56bc8cfedc5d74a51e2f7", + "tag" : "ffffffffffffffffffffffffffffffff", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 15, + "comment" : "special case", + "key" : "00112233445566778899aabbccddeeff", + "iv" : "ffffffffffffffffffffffff", + "aad" : "", + "msg" : "d593c4d8224f1b100c35e4f6c4006543", + "ct" : "431f31e6840931fd95f94bf88296ff69", + "tag" : "00000000000000000000000000000000", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 16, + "comment" : "Flipped bit 0 in tag", + "key" : "000102030405060708090a0b0c0d0e0f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "eb156d081ed6b6b55f4612f021d87b39", + "tag" : "d9847dbc326a06e988c77ad3863e6083", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 17, + "comment" : "Flipped bit 1 in tag", + "key" : "000102030405060708090a0b0c0d0e0f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "eb156d081ed6b6b55f4612f021d87b39", + "tag" : "da847dbc326a06e988c77ad3863e6083", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 18, + "comment" : "Flipped bit 7 in tag", + "key" : "000102030405060708090a0b0c0d0e0f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "eb156d081ed6b6b55f4612f021d87b39", + "tag" : "58847dbc326a06e988c77ad3863e6083", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 19, + "comment" : "Flipped bit 8 in tag", + "key" : "000102030405060708090a0b0c0d0e0f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "eb156d081ed6b6b55f4612f021d87b39", + "tag" : "d8857dbc326a06e988c77ad3863e6083", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 20, + "comment" : "Flipped bit 31 in tag", + "key" : "000102030405060708090a0b0c0d0e0f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "eb156d081ed6b6b55f4612f021d87b39", + "tag" : "d8847d3c326a06e988c77ad3863e6083", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 21, + "comment" : "Flipped bit 32 in tag", + "key" : "000102030405060708090a0b0c0d0e0f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "eb156d081ed6b6b55f4612f021d87b39", + "tag" : "d8847dbc336a06e988c77ad3863e6083", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 22, + "comment" : "Flipped bit 33 in tag", + "key" : "000102030405060708090a0b0c0d0e0f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "eb156d081ed6b6b55f4612f021d87b39", + "tag" : "d8847dbc306a06e988c77ad3863e6083", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 23, + "comment" : "Flipped bit 63 in tag", + "key" : "000102030405060708090a0b0c0d0e0f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "eb156d081ed6b6b55f4612f021d87b39", + "tag" : "d8847dbc326a066988c77ad3863e6083", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 24, + "comment" : "Flipped bit 64 in tag", + "key" : "000102030405060708090a0b0c0d0e0f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "eb156d081ed6b6b55f4612f021d87b39", + "tag" : "d8847dbc326a06e989c77ad3863e6083", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 25, + "comment" : "Flipped bit 71 in tag", + "key" : "000102030405060708090a0b0c0d0e0f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "eb156d081ed6b6b55f4612f021d87b39", + "tag" : "d8847dbc326a06e908c77ad3863e6083", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 26, + "comment" : "Flipped bit 77 in tag", + "key" : "000102030405060708090a0b0c0d0e0f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "eb156d081ed6b6b55f4612f021d87b39", + "tag" : "d8847dbc326a06e988e77ad3863e6083", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 27, + "comment" : "Flipped bit 80 in tag", + "key" : "000102030405060708090a0b0c0d0e0f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "eb156d081ed6b6b55f4612f021d87b39", + "tag" : "d8847dbc326a06e988c77bd3863e6083", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 28, + "comment" : "Flipped bit 96 in tag", + "key" : "000102030405060708090a0b0c0d0e0f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "eb156d081ed6b6b55f4612f021d87b39", + "tag" : "d8847dbc326a06e988c77ad3873e6083", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 29, + "comment" : "Flipped bit 97 in tag", + "key" : "000102030405060708090a0b0c0d0e0f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "eb156d081ed6b6b55f4612f021d87b39", + "tag" : "d8847dbc326a06e988c77ad3843e6083", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 30, + "comment" : "Flipped bit 103 in tag", + "key" : "000102030405060708090a0b0c0d0e0f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "eb156d081ed6b6b55f4612f021d87b39", + "tag" : "d8847dbc326a06e988c77ad3063e6083", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 31, + "comment" : "Flipped bit 120 in tag", + "key" : "000102030405060708090a0b0c0d0e0f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "eb156d081ed6b6b55f4612f021d87b39", + "tag" : "d8847dbc326a06e988c77ad3863e6082", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 32, + "comment" : "Flipped bit 121 in tag", + "key" : "000102030405060708090a0b0c0d0e0f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "eb156d081ed6b6b55f4612f021d87b39", + "tag" : "d8847dbc326a06e988c77ad3863e6081", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 33, + "comment" : "Flipped bit 126 in tag", + "key" : "000102030405060708090a0b0c0d0e0f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "eb156d081ed6b6b55f4612f021d87b39", + "tag" : "d8847dbc326a06e988c77ad3863e60c3", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 34, + "comment" : "Flipped bit 127 in tag", + "key" : "000102030405060708090a0b0c0d0e0f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "eb156d081ed6b6b55f4612f021d87b39", + "tag" : "d8847dbc326a06e988c77ad3863e6003", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 35, + "comment" : "Flipped bits 0 and 64 in tag", + "key" : "000102030405060708090a0b0c0d0e0f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "eb156d081ed6b6b55f4612f021d87b39", + "tag" : "d9847dbc326a06e989c77ad3863e6083", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 36, + "comment" : "Flipped bits 31 and 63 in tag", + "key" : "000102030405060708090a0b0c0d0e0f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "eb156d081ed6b6b55f4612f021d87b39", + "tag" : "d8847d3c326a066988c77ad3863e6083", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 37, + "comment" : "Flipped bits 63 and 127 in tag", + "key" : "000102030405060708090a0b0c0d0e0f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "eb156d081ed6b6b55f4612f021d87b39", + "tag" : "d8847dbc326a066988c77ad3863e6003", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 38, + "comment" : "all bits of tag flipped", + "key" : "000102030405060708090a0b0c0d0e0f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "eb156d081ed6b6b55f4612f021d87b39", + "tag" : "277b8243cd95f9167738852c79c19f7c", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 39, + "comment" : "Tag changed to all zero", + "key" : "000102030405060708090a0b0c0d0e0f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "eb156d081ed6b6b55f4612f021d87b39", + "tag" : "00000000000000000000000000000000", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 40, + "comment" : "tag changed to all 1", + "key" : "000102030405060708090a0b0c0d0e0f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "eb156d081ed6b6b55f4612f021d87b39", + "tag" : "ffffffffffffffffffffffffffffffff", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 41, + "comment" : "msbs changed in tag", + "key" : "000102030405060708090a0b0c0d0e0f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "eb156d081ed6b6b55f4612f021d87b39", + "tag" : "5804fd3cb2ea86690847fa5306bee003", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 42, + "comment" : "lsbs changed in tag", + "key" : "000102030405060708090a0b0c0d0e0f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "eb156d081ed6b6b55f4612f021d87b39", + "tag" : "d9857cbd336b07e889c67bd2873f6182", + "result" : "invalid", + "flags" : [] + } + ] + }, + { + "ivSize" : 64, + "keySize" : 128, + "tagSize" : 128, + "type" : "AeadTest", + "tests" : [ + { + "tcId" : 43, + "comment" : "", + "key" : "aa023d0478dcb2b2312498293d9a9129", + "iv" : "0432bc49ac344120", + "aad" : "aac39231129872a2", + "msg" : "2035af313d1346ab00154fea78322105", + "ct" : "64c36bb3b732034e3a7d04efc5197785", + "tag" : "b7d0dd70b00d65b97cfd080ff4b819d1", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 44, + "comment" : "unusual IV size", + "key" : "25dd4d6cad5a4604957847c8c6d3fc4e", + "iv" : "68cbeafe8f9e8a66", + "aad" : "", + "msg" : "5c347835b3fa61c2ce253e5a", + "ct" : "9a078a04d14938918e004358", + "tag" : "5452843e32c13c3e35ed8230fe3446c0", + "result" : "valid", + "flags" : [] + } + ] + }, + { + "ivSize" : 128, + "keySize" : 128, + "tagSize" : 128, + "type" : "AeadTest", + "tests" : [ + { + "tcId" : 45, + "comment" : "", + "key" : "2034a82547276c83dd3212a813572bce", + "iv" : "3254202d854734812398127a3d134421", + "aad" : "1a0293d8f90219058902139013908190bc490890d3ff12a3", + "msg" : "02efd2e5782312827ed5d230189a2a342b277ce048462193", + "ct" : "64069c2d58690561f27ee199e6b479b6369eec688672bde9", + "tag" : "9b7abadd6e69c1d9ec925786534f5075", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 46, + "comment" : "", + "key" : "209e6dbf2ad26a105445fc0207cd9e9a", + "iv" : "9477849d6ccdfca112d92e53fae4a7ca", + "aad" : "", + "msg" : "01", + "ct" : "fd", + "tag" : "032df7bba5d8ea1a14f16f70bd0e14ec", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 47, + "comment" : "", + "key" : "a549442e35154032d07c8666006aa6a2", + "iv" : "5171524568e81d97e8c4de4ba56c10a0", + "aad" : "", + "msg" : "1182e93596cac5608946400bc73f3a", + "ct" : "2f333087bdca58219f9bfc273e45cc", + "tag" : "e06d1ef473132957ad37eaef29733ca0", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 48, + "comment" : "", + "key" : "cfb4c26f126f6a0acb8e4e220f6c56cd", + "iv" : "1275115499ae722268515bf0c164b49c", + "aad" : "", + "msg" : "09dfd7f080275257cf97e76f966b1ad9", + "ct" : "a780bd01c80885156c88a973264c8ee5", + "tag" : "2adeffa682c8d8a81fada7d9fcdd2ee2", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 49, + "comment" : "", + "key" : "0b11ef3a08c02970f74281c860691c75", + "iv" : "95c1dd8c0f1705ece68937901f7add7b", + "aad" : "", + "msg" : "f693d4edd825dbb0618d91113128880dbebb23e25d00ed1f077d870be9cc7536", + "ct" : "7e47e10fe3c6fbfa381770eaf5d48d1482e71e0c44dff1e30ca6f95d92052084", + "tag" : "d01444fa5d9c499629d174ff3927a1ac", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 50, + "comment" : "J0:000102030405060708090a0b0c0d0e0f", + "key" : "00112233445566778899aabbccddeeff", + "iv" : "f95fde4a751913202aeeee32a0b55753", + "aad" : "", + "msg" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "00078d109d92143fcd5df56721b884fac64ac7762cc09eea2a3c68e92a17bdb575f87bda18be564e", + "tag" : "152a65045fe674f97627427af5be22da", + "result" : "valid", + "flags" : [ + "ConstructedIv" + ] + }, + { + "tcId" : 51, + "comment" : "J0:00000000000000000000000000000000", + "key" : "00112233445566778899aabbccddeeff", + "iv" : "7b95b8c356810a84711d68150a1b7750", + "aad" : "", + "msg" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "84d4c9c08b4f482861e3a9c6c35bc4d91df927374513bfd49f436bd73f325285daef4ff7e13d46a6", + "tag" : "213a3cb93855d18e69337eee66aeec07", + "result" : "valid", + "flags" : [ + "ConstructedIv" + ] + }, + { + "tcId" : 52, + "comment" : "J0:ffffffffffffffffffffffffffffffff", + "key" : "00112233445566778899aabbccddeeff", + "iv" : "1a552e67cdc4dc1a33b824874ebf0bed", + "aad" : "", + "msg" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "948ca37a8e6649e88aeffb1c598f3607007702417ea0e0bc3c60ad5a949886de968cf53ea6462aed", + "tag" : "99b381bfa2af9751c39d1b6e86d1be6a", + "result" : "valid", + "flags" : [ + "ConstructedIv" + ] + }, + { + "tcId" : 53, + "comment" : "J0:fffffffffffffffffffffffffffffffe", + "key" : "00112233445566778899aabbccddeeff", + "iv" : "dd9d0b4a0c3d681524bffca31d907661", + "aad" : "", + "msg" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "64b19314c31af45accdf7e3c4db79f0d948ca37a8e6649e88aeffb1c598f3607007702417ea0e0bc", + "tag" : "5281efc7f13ac8e14ccf5dca7bfbfdd1", + "result" : "valid", + "flags" : [ + "ConstructedIv" + ] + }, + { + "tcId" : 54, + "comment" : "J0:fffffffffffffffffffffffffffffffd", + "key" : "00112233445566778899aabbccddeeff", + "iv" : "57c5643c4e37b4041db794cfe8e1f0f4", + "aad" : "", + "msg" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "2bb69c3e5d1f91815c6b87a0d5bbea7164b19314c31af45accdf7e3c4db79f0d948ca37a8e6649e8", + "tag" : "a3ea2c09ee4f8c8a12f45cddf9aeff81", + "result" : "valid", + "flags" : [ + "ConstructedIv" + ] + }, + { + "tcId" : 55, + "comment" : "J0:000102030405060708090a0bffffffff", + "key" : "00112233445566778899aabbccddeeff", + "iv" : "99821c2dd5daecded07300f577f7aff1", + "aad" : "", + "msg" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "127af9b39ecdfc57bb11a2847c7c2d3d8f938f40f877e0c4af37d0fe9af033052bd537c4ae978f60", + "tag" : "07eb2fe4a958f8434d40684899507c7c", + "result" : "valid", + "flags" : [ + "ConstructedIv" + ] + }, + { + "tcId" : 56, + "comment" : "J0:000102030405060708090a0bfffffffe", + "key" : "00112233445566778899aabbccddeeff", + "iv" : "5e4a3900142358d1c774d8d124d8d27d", + "aad" : "", + "msg" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "0cf6ae47156b14dce03c8a07a2e172b1127af9b39ecdfc57bb11a2847c7c2d3d8f938f40f877e0c4", + "tag" : "f145c2dcaf339eede427be934357eac0", + "result" : "valid", + "flags" : [ + "ConstructedIv" + ] + }, + { + "tcId" : 57, + "comment" : "J0:000102030405060708090a0bfffffffd", + "key" : "00112233445566778899aabbccddeeff", + "iv" : "d4125676562984c0fe7cb0bdd1a954e8", + "aad" : "", + "msg" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "f0c6ffc18bd46df5569185a9afd169eb0cf6ae47156b14dce03c8a07a2e172b1127af9b39ecdfc57", + "tag" : "facd0bfe8701b7b4a2ba96d98af52bd9", + "result" : "valid", + "flags" : [ + "ConstructedIv" + ] + }, + { + "tcId" : 58, + "comment" : "J0:000102030405060708090a0b7fffffff", + "key" : "00112233445566778899aabbccddeeff", + "iv" : "b97ec62a5e5900ccf9e4be332e336091", + "aad" : "", + "msg" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "d6928e094c06e0a7c4db42184cf7529e95de88b767edebe9b343000be3dab47ea08b744293eed698", + "tag" : "a03e729dcfd7a03155655fece8affd7e", + "result" : "valid", + "flags" : [ + "ConstructedIv" + ] + }, + { + "tcId" : 59, + "comment" : "J0:000102030405060708090a0b7ffffffe", + "key" : "00112233445566778899aabbccddeeff", + "iv" : "7eb6e3079fa0b4c3eee366177d1c1d1d", + "aad" : "", + "msg" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "d82ce58771bf6487116bf8e96421877ed6928e094c06e0a7c4db42184cf7529e95de88b767edebe9", + "tag" : "1e43926828bc9a1614c7b1639096c195", + "result" : "valid", + "flags" : [ + "ConstructedIv" + ] + }, + { + "tcId" : 60, + "comment" : "J0:000102030405060708090a0bffff7fff", + "key" : "00112233445566778899aabbccddeeff", + "iv" : "0314fcd10fdd675d3c612962c931f635", + "aad" : "", + "msg" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "a197a37a5d79697078536bc27fe46cd8d475526d9044aa94f088a054f8e380c64f79414795c61480", + "tag" : "f08baddf0b5285c91fc06a67fe4708ca", + "result" : "valid", + "flags" : [ + "ConstructedIv" + ] + }, + { + "tcId" : 61, + "comment" : "J0:000102030405060708090a0bffff7ffe", + "key" : "00112233445566778899aabbccddeeff", + "iv" : "c4dcd9fcce24d3522b66f1469a1e8bb9", + "aad" : "", + "msg" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "149fde9abbd3a43c2548575e0db9fb84a197a37a5d79697078536bc27fe46cd8d475526d9044aa94", + "tag" : "62a4b6875c288345d6a454399eac1afa", + "result" : "valid", + "flags" : [ + "ConstructedIv" + ] + }, + { + "tcId" : 62, + "comment" : "special case", + "key" : "00112233445566778899aabbccddeeff", + "iv" : "00000000000000000000000000000000", + "aad" : "", + "msg" : "bec6fa05c1718b9b84c47345bbed7dcb", + "ct" : "45a3f89d02918bfd0c8161658ccc9795", + "tag" : "00000000000000000000000000000000", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 63, + "comment" : "special case", + "key" : "00112233445566778899aabbccddeeff", + "iv" : "ffffffffffffffffffffffffffffffff", + "aad" : "", + "msg" : "4d82639c39d3f3490ee903dd0be7afcf", + "ct" : "1cd5a06214235ceb044d4bad7b047312", + "tag" : "ffffffffffffffffffffffffffffffff", + "result" : "valid", + "flags" : [] + } + ] + }, + { + "ivSize" : 96, + "keySize" : 256, + "tagSize" : 128, + "type" : "AeadTest", + "tests" : [ + { + "tcId" : 64, + "comment" : "", + "key" : "92ace3e348cd821092cd921aa3546374299ab46209691bc28b8752d17f123c20", + "iv" : "00112233445566778899aabb", + "aad" : "00000000ffffffff", + "msg" : "00010203040506070809", + "ct" : "e27abdd2d2a53d2f136b", + "tag" : "9a4a2579529301bcfb71c78d4060f52c", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 65, + "comment" : "", + "key" : "29d3a44f8723dc640239100c365423a312934ac80239212ac3df3421a2098123", + "iv" : "00112233445566778899aabb", + "aad" : "aabbccddeeff", + "msg" : "", + "ct" : "", + "tag" : "2a7d77fa526b8250cb296078926b5020", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 66, + "comment" : "", + "key" : "cc56b680552eb75008f5484b4cb803fa5063ebd6eab91f6ab6aef4916a766273", + "iv" : "99e23ec48985bccdeeab60f1", + "aad" : "", + "msg" : "2a", + "ct" : "06", + "tag" : "633c1e9703ef744ffffb40edf9d14355", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 67, + "comment" : "", + "key" : "51e4bf2bad92b7aff1a4bc05550ba81df4b96fabf41c12c7b00e60e48db7e152", + "iv" : "4f07afedfdc3b6c2361823d3", + "aad" : "", + "msg" : "be3308f72a2c6aed", + "ct" : "cf332a12fdee800b", + "tag" : "602e8d7c4799d62c140c9bb834876b09", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 68, + "comment" : "", + "key" : "67119627bd988eda906219e08c0d0d779a07d208ce8a4fe0709af755eeec6dcb", + "iv" : "68ab7fdbf61901dad461d23c", + "aad" : "", + "msg" : "51f8c1f731ea14acdb210a6d973e07", + "ct" : "43fc101bff4b32bfadd3daf57a590e", + "tag" : "ec04aacb7148a8b8be44cb7eaf4efa69", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 69, + "comment" : "", + "key" : "59d4eafb4de0cfc7d3db99a8f54b15d7b39f0acc8da69763b019c1699f87674a", + "iv" : "2fcb1b38a99e71b84740ad9b", + "aad" : "", + "msg" : "549b365af913f3b081131ccb6b825588", + "ct" : "f58c16690122d75356907fd96b570fca", + "tag" : "28752c20153092818faba2a334640d6e", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 70, + "comment" : "", + "key" : "3b2458d8176e1621c0cc24c0c0e24c1e80d72f7ee9149a4b166176629616d011", + "iv" : "45aaa3e5d16d2d42dc03445d", + "aad" : "", + "msg" : "3ff1514b1c503915918f0c0c31094a6e1f", + "ct" : "73a6b6f45f6ccc5131e07f2caa1f2e2f56", + "tag" : "2d7379ec1db5952d4e95d30c340b1b1d", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 71, + "comment" : "", + "key" : "0212a8de5007ed87b33f1a7090b6114f9e08cefd9607f2c276bdcfdbc5ce9cd7", + "iv" : "e6b1adf2fd58a8762c65f31b", + "aad" : "", + "msg" : "10f1ecf9c60584665d9ae5efe279e7f7377eea6916d2b111", + "ct" : "0843fff52d934fc7a071ea62c0bd351ce85678cde3ea2c9e", + "tag" : "7355fde599006715053813ce696237a8", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 72, + "comment" : "", + "key" : "b279f57e19c8f53f2f963f5f2519fdb7c1779be2ca2b3ae8e1128b7d6c627fc4", + "iv" : "98bc2c7438d5cd7665d76f6e", + "aad" : "c0", + "msg" : "fcc515b294408c8645c9183e3f4ecee5127846d1", + "ct" : "eb5500e3825952866d911253f8de860c00831c81", + "tag" : "ecb660e1fb0541ec41e8d68a64141b3a", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 73, + "comment" : "", + "key" : "cdccfe3f46d782ef47df4e72f0c02d9c7f774def970d23486f11a57f54247f17", + "iv" : "376187894605a8d45e30de51", + "aad" : "956846a209e087ed", + "msg" : "e28e0e9f9d22463ac0e42639b530f42102fded75", + "ct" : "feca44952447015b5df1f456df8ca4bb4eee2ce2", + "tag" : "082e91924deeb77880e1b1c84f9b8d30", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 74, + "comment" : "", + "key" : "f32364b1d339d82e4f132d8f4a0ec1ff7e746517fa07ef1a7f422f4e25a48194", + "iv" : "5a86a50a0e8a179c734b996d", + "aad" : "ab2ac7c44c60bdf8228c7884adb20184", + "msg" : "43891bccb522b1e72a6b53cf31c074e9d6c2df8e", + "ct" : "43dda832e942e286da314daa99bef5071d9d2c78", + "tag" : "c3922583476ced575404ddb85dd8cd44", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 75, + "comment" : "", + "key" : "ff0089ee870a4a39f645b0a5da774f7a5911e9696fc9cad646452c2aa8595a12", + "iv" : "bc2a7757d0ce2d8b1f14ccd9", + "aad" : "972ab4e06390caae8f99dd6e2187be6c7ff2c08a24be16ef", + "msg" : "748b28031621d95ee61812b4b4f47d04c6fc2ff3", + "ct" : "a929ee7e67c7a2f91bbcec6389a3caf43ab49305", + "tag" : "ebec6774b955e789591c822dab739e12", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 76, + "comment" : "special case", + "key" : "00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f", + "iv" : "000000000000000000000000", + "aad" : "", + "msg" : "561008fa07a68f5c61285cd013464eaf", + "ct" : "23293e9b07ca7d1b0cae7cc489a973b3", + "tag" : "ffffffffffffffffffffffffffffffff", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 77, + "comment" : "special case", + "key" : "00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f", + "iv" : "ffffffffffffffffffffffff", + "aad" : "", + "msg" : "c6152244cea1978d3e0bc274cf8c0b3b", + "ct" : "7cb6fc7c6abc009efe9551a99f36a421", + "tag" : "00000000000000000000000000000000", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 78, + "comment" : "Flipped bit 0 in tag", + "key" : "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "b2061457c0759fc1749f174ee1ccadfa", + "tag" : "9de8fef6d8ab1bf1bf887232eab590dd", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 79, + "comment" : "Flipped bit 1 in tag", + "key" : "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "b2061457c0759fc1749f174ee1ccadfa", + "tag" : "9ee8fef6d8ab1bf1bf887232eab590dd", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 80, + "comment" : "Flipped bit 7 in tag", + "key" : "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "b2061457c0759fc1749f174ee1ccadfa", + "tag" : "1ce8fef6d8ab1bf1bf887232eab590dd", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 81, + "comment" : "Flipped bit 8 in tag", + "key" : "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "b2061457c0759fc1749f174ee1ccadfa", + "tag" : "9ce9fef6d8ab1bf1bf887232eab590dd", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 82, + "comment" : "Flipped bit 31 in tag", + "key" : "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "b2061457c0759fc1749f174ee1ccadfa", + "tag" : "9ce8fe76d8ab1bf1bf887232eab590dd", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 83, + "comment" : "Flipped bit 32 in tag", + "key" : "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "b2061457c0759fc1749f174ee1ccadfa", + "tag" : "9ce8fef6d9ab1bf1bf887232eab590dd", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 84, + "comment" : "Flipped bit 33 in tag", + "key" : "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "b2061457c0759fc1749f174ee1ccadfa", + "tag" : "9ce8fef6daab1bf1bf887232eab590dd", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 85, + "comment" : "Flipped bit 63 in tag", + "key" : "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "b2061457c0759fc1749f174ee1ccadfa", + "tag" : "9ce8fef6d8ab1b71bf887232eab590dd", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 86, + "comment" : "Flipped bit 64 in tag", + "key" : "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "b2061457c0759fc1749f174ee1ccadfa", + "tag" : "9ce8fef6d8ab1bf1be887232eab590dd", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 87, + "comment" : "Flipped bit 71 in tag", + "key" : "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "b2061457c0759fc1749f174ee1ccadfa", + "tag" : "9ce8fef6d8ab1bf13f887232eab590dd", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 88, + "comment" : "Flipped bit 77 in tag", + "key" : "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "b2061457c0759fc1749f174ee1ccadfa", + "tag" : "9ce8fef6d8ab1bf1bfa87232eab590dd", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 89, + "comment" : "Flipped bit 80 in tag", + "key" : "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "b2061457c0759fc1749f174ee1ccadfa", + "tag" : "9ce8fef6d8ab1bf1bf887332eab590dd", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 90, + "comment" : "Flipped bit 96 in tag", + "key" : "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "b2061457c0759fc1749f174ee1ccadfa", + "tag" : "9ce8fef6d8ab1bf1bf887232ebb590dd", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 91, + "comment" : "Flipped bit 97 in tag", + "key" : "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "b2061457c0759fc1749f174ee1ccadfa", + "tag" : "9ce8fef6d8ab1bf1bf887232e8b590dd", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 92, + "comment" : "Flipped bit 103 in tag", + "key" : "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "b2061457c0759fc1749f174ee1ccadfa", + "tag" : "9ce8fef6d8ab1bf1bf8872326ab590dd", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 93, + "comment" : "Flipped bit 120 in tag", + "key" : "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "b2061457c0759fc1749f174ee1ccadfa", + "tag" : "9ce8fef6d8ab1bf1bf887232eab590dc", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 94, + "comment" : "Flipped bit 121 in tag", + "key" : "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "b2061457c0759fc1749f174ee1ccadfa", + "tag" : "9ce8fef6d8ab1bf1bf887232eab590df", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 95, + "comment" : "Flipped bit 126 in tag", + "key" : "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "b2061457c0759fc1749f174ee1ccadfa", + "tag" : "9ce8fef6d8ab1bf1bf887232eab5909d", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 96, + "comment" : "Flipped bit 127 in tag", + "key" : "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "b2061457c0759fc1749f174ee1ccadfa", + "tag" : "9ce8fef6d8ab1bf1bf887232eab5905d", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 97, + "comment" : "Flipped bits 0 and 64 in tag", + "key" : "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "b2061457c0759fc1749f174ee1ccadfa", + "tag" : "9de8fef6d8ab1bf1be887232eab590dd", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 98, + "comment" : "Flipped bits 31 and 63 in tag", + "key" : "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "b2061457c0759fc1749f174ee1ccadfa", + "tag" : "9ce8fe76d8ab1b71bf887232eab590dd", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 99, + "comment" : "Flipped bits 63 and 127 in tag", + "key" : "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "b2061457c0759fc1749f174ee1ccadfa", + "tag" : "9ce8fef6d8ab1b71bf887232eab5905d", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 100, + "comment" : "all bits of tag flipped", + "key" : "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "b2061457c0759fc1749f174ee1ccadfa", + "tag" : "631701092754e40e40778dcd154a6f22", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 101, + "comment" : "Tag changed to all zero", + "key" : "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "b2061457c0759fc1749f174ee1ccadfa", + "tag" : "00000000000000000000000000000000", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 102, + "comment" : "tag changed to all 1", + "key" : "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "b2061457c0759fc1749f174ee1ccadfa", + "tag" : "ffffffffffffffffffffffffffffffff", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 103, + "comment" : "msbs changed in tag", + "key" : "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "b2061457c0759fc1749f174ee1ccadfa", + "tag" : "1c687e76582b9b713f08f2b26a35105d", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 104, + "comment" : "lsbs changed in tag", + "key" : "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "b2061457c0759fc1749f174ee1ccadfa", + "tag" : "9de9fff7d9aa1af0be897333ebb491dc", + "result" : "invalid", + "flags" : [] + } + ] + }, + { + "ivSize" : 128, + "keySize" : 192, + "tagSize" : 128, + "type" : "AeadTest", + "tests" : [ + { + "tcId" : 105, + "comment" : "J0:000102030405060708090a0b0c0d0e0f", + "key" : "00112233445566778899aabbccddeeff1021324354657687", + "iv" : "029e0e777db092b12535d043012f09ba", + "aad" : "", + "msg" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "f83cee467336e1a09b75f24e9b4385c99c13e6af722256a66129ece961fe803b167bad206f5017fb", + "tag" : "09338a42f0acc14f97c064f52f5f1688", + "result" : "valid", + "flags" : [ + "ConstructedIv" + ] + }, + { + "tcId" : 106, + "comment" : "J0:00000000000000000000000000000000", + "key" : "00112233445566778899aabbccddeeff1021324354657687", + "iv" : "f1be3b06b7feac07e7eab629f556047b", + "aad" : "", + "msg" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "0b32b648a2c28e9edd7cee08eeeb900034cae7215e5ab1e201bd2eed1032c5a97866ba582a3458a4", + "tag" : "90be3606de58bd778fa5beff4a4102bd", + "result" : "valid", + "flags" : [ + "ConstructedIv" + ] + }, + { + "tcId" : 107, + "comment" : "J0:ffffffffffffffffffffffffffffffff", + "key" : "00112233445566778899aabbccddeeff1021324354657687", + "iv" : "de9eb63b1daed321a11b7547cc9e223c", + "aad" : "", + "msg" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "575e2ecec2b3c72d4e80830d0d859ad9e42c29c4a68d8d9d8d23434de2cd07733be49d62ac1ae085", + "tag" : "6e4d6396125a10df5443bd0cbc8566d1", + "result" : "valid", + "flags" : [ + "ConstructedIv" + ] + }, + { + "tcId" : 108, + "comment" : "J0:fffffffffffffffffffffffffffffffe", + "key" : "00112233445566778899aabbccddeeff1021324354657687", + "iv" : "40bb0abebc483ff6d5671241ff5d66c6", + "aad" : "", + "msg" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "2a818888d1f09f32aa7beedd2869b446575e2ecec2b3c72d4e80830d0d859ad9e42c29c4a68d8d9d", + "tag" : "dc481f172545268eff63ab0490403dc3", + "result" : "valid", + "flags" : [ + "ConstructedIv" + ] + }, + { + "tcId" : 109, + "comment" : "J0:fffffffffffffffffffffffffffffffd", + "key" : "00112233445566778899aabbccddeeff1021324354657687", + "iv" : "20d5cf305e630a8f49e3bb4bab18abc9", + "aad" : "", + "msg" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "96d36b795f8e7edf6a8e0dbcd20d6c072a818888d1f09f32aa7beedd2869b446575e2ecec2b3c72d", + "tag" : "8a3a22bf2592958b930292aa47f590e8", + "result" : "valid", + "flags" : [ + "ConstructedIv" + ] + }, + { + "tcId" : 110, + "comment" : "J0:000102030405060708090a0bffffffff", + "key" : "00112233445566778899aabbccddeeff1021324354657687", + "iv" : "255358a71a0e5731f6dd6ce28e158ae6", + "aad" : "", + "msg" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "cfce3d920f0e01f0bb49a751955b236d1b887baefd25c47f41303c46d5c7bf9ca4c2c45a8f1e6656", + "tag" : "2db9dc1b7fd315df1c95432432fcf474", + "result" : "valid", + "flags" : [ + "ConstructedIv" + ] + }, + { + "tcId" : 111, + "comment" : "J0:000102030405060708090a0bfffffffe", + "key" : "00112233445566778899aabbccddeeff1021324354657687", + "iv" : "bb76e422bbe8bbe682a10be4bdd6ce1c", + "aad" : "", + "msg" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "69a24169792e9a07f6e6f4736fa972dccfce3d920f0e01f0bb49a751955b236d1b887baefd25c47f", + "tag" : "82ad967f7ac19084354f69a751443fb2", + "result" : "valid", + "flags" : [ + "ConstructedIv" + ] + }, + { + "tcId" : 112, + "comment" : "J0:000102030405060708090a0bfffffffd", + "key" : "00112233445566778899aabbccddeeff1021324354657687", + "iv" : "db1821ac59c38e9f1e25a2eee9930313", + "aad" : "", + "msg" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "4e4417a83beac1eb7e24456a05f6ba5569a24169792e9a07f6e6f4736fa972dccfce3d920f0e01f0", + "tag" : "472d5dd582dc05ef5fc496b612023cb2", + "result" : "valid", + "flags" : [ + "ConstructedIv" + ] + }, + { + "tcId" : 113, + "comment" : "J0:000102030405060708090a0b7fffffff", + "key" : "00112233445566778899aabbccddeeff1021324354657687", + "iv" : "f7a02ecca03064b2ef3cce9feab79f07", + "aad" : "", + "msg" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "6f8e174efca3097299f784efd4caff0bf168c3e5165b9ad3d20062009848044eef8f31f7d2fead05", + "tag" : "caff723826df150934aee3201ba175e7", + "result" : "valid", + "flags" : [ + "ConstructedIv" + ] + }, + { + "tcId" : 114, + "comment" : "J0:000102030405060708090a0b7ffffffe", + "key" : "00112233445566778899aabbccddeeff1021324354657687", + "iv" : "6985924901d688659b40a999d974dbfd", + "aad" : "", + "msg" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "af193090ce3d43a388a1d294a09616906f8e174efca3097299f784efd4caff0bf168c3e5165b9ad3", + "tag" : "3b08958be1286c2b4acba02b3674adb2", + "result" : "valid", + "flags" : [ + "ConstructedIv" + ] + }, + { + "tcId" : 115, + "comment" : "J0:000102030405060708090a0bffff7fff", + "key" : "00112233445566778899aabbccddeeff1021324354657687", + "iv" : "3f1188546c65ed0fc55e75032c68ee44", + "aad" : "", + "msg" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "5deccf838b2cf5f869c90d2a611160b1e578ab8121b93735cba4a1930647b8c4c84bf776333ee45a", + "tag" : "c14d52208f0f51b816a48971eaf8ff7e", + "result" : "valid", + "flags" : [ + "ConstructedIv" + ] + }, + { + "tcId" : 116, + "comment" : "J0:000102030405060708090a0bffff7ffe", + "key" : "00112233445566778899aabbccddeeff1021324354657687", + "iv" : "a13434d1cd8301d8b12212051fabaabe", + "aad" : "", + "msg" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "d2cae1684aa407a13a2e2da5357e29f55deccf838b2cf5f869c90d2a611160b1e578ab8121b93735", + "tag" : "ea2d018099cd7925c507cef0ceddb0ae", + "result" : "valid", + "flags" : [ + "ConstructedIv" + ] + }, + { + "tcId" : 117, + "comment" : "special case", + "key" : "00112233445566778899aabbccddeeff1021324354657687", + "iv" : "00000000000000000000000000000000", + "aad" : "", + "msg" : "5c7d3f81d4b5055ed6f8db53614587a4", + "ct" : "541b835dc828d541073f7d7d7504ebf5", + "tag" : "00000000000000000000000000000000", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 118, + "comment" : "special case", + "key" : "00112233445566778899aabbccddeeff1021324354657687", + "iv" : "ffffffffffffffffffffffffffffffff", + "aad" : "", + "msg" : "6a347ad1190e72ede611044e7475f0eb", + "ct" : "a3f36154331c196624564bc395e49c3b", + "tag" : "ffffffffffffffffffffffffffffffff", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 119, + "comment" : "", + "key" : "cee9abbc26b63e169f0ced621fe21d95904e75b881d93e6b", + "iv" : "1e8259e0a43e571068f701cd2064fc0c", + "aad" : "", + "msg" : "46", + "ct" : "dc", + "tag" : "af1f5535b125b34fc466902ea40cb3a2", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 120, + "comment" : "", + "key" : "189f0bd390ba40632586a45c39735c2b87113329c800f394", + "iv" : "c84442d6975f0359737de0fa828f958e", + "aad" : "", + "msg" : "b4bcd7b8eeca3050dd17682c6a914e", + "ct" : "2aab5c87dcb4a4dae4e975ddb65aab", + "tag" : "6b03b7557c7131e2352e495d54e61aef", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 121, + "comment" : "", + "key" : "b0724f15df5b792c2f49bc51df0ac5aad69be0030981613c", + "iv" : "13cd526ec77b58f62d48d03f8b88f2b8", + "aad" : "", + "msg" : "8da3ab9c3d195b04df452ad23953da4d", + "ct" : "d127fd2e67c0887d90eb92b91f357d97", + "tag" : "eb05bda937faeed27f8833295d4ba559", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 122, + "comment" : "", + "key" : "998750ba784841e40a7c5b03985732b6397e5459a3843954", + "iv" : "1d3d62eccd8ac5e896f2654a7f606fc9", + "aad" : "", + "msg" : "2f60ca3494a958dc3e6ebeb5d0b4e6dda0d0c4331ab9c957f6422a5100878ebf", + "ct" : "344c2cea17b06cb3da272e22a22a3a71ee0eaa1959a7facfff464660ddccedd1", + "tag" : "bab7fbf499ff06aad5f757b1c1a4fcc0", + "result" : "valid", + "flags" : [] + } + ] + }, + { + "ivSize" : 96, + "keySize" : 192, + "tagSize" : 128, + "type" : "AeadTest", + "tests" : [ + { + "tcId" : 123, + "comment" : "special case", + "key" : "00112233445566778899aabbccddeeff1021324354657687", + "iv" : "000000000000000000000000", + "aad" : "", + "msg" : "0b4dbbba8982e0f649f8ba85f3aa061b", + "ct" : "3f875c9bd7d8511448459468e398c3b2", + "tag" : "ffffffffffffffffffffffffffffffff", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 124, + "comment" : "special case", + "key" : "00112233445566778899aabbccddeeff1021324354657687", + "iv" : "ffffffffffffffffffffffff", + "aad" : "", + "msg" : "1ae93688ef7e2650a9342ad4718b2780", + "ct" : "210dabea4364c6d5b3429e7743322936", + "tag" : "00000000000000000000000000000000", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 125, + "comment" : "", + "key" : "21218af790428f8024d3e7e1428c9fcf578c216636d60e73", + "iv" : "34047bc39b9c608384dff5b8", + "aad" : "", + "msg" : "e3", + "ct" : "fe", + "tag" : "2e982e24b81cd120d35a70fe6935e665", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 126, + "comment" : "", + "key" : "3a8bf543c480925632118245bcbf5d01522b987a31a33da3", + "iv" : "4ebc13cf4636cc7c45e560a7", + "aad" : "", + "msg" : "53fc72e71b59eeb3", + "ct" : "99f2ff1c8a44e5f2", + "tag" : "6870f104ddc514477b400336fb01860e", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 127, + "comment" : "", + "key" : "92f4d2672fceec43963ccffb17e6ea7578b11418b06a3b82", + "iv" : "6e7ff7f0797685cfc44b05ff", + "aad" : "", + "msg" : "c3ec16adb184affa8ae9738bffb916", + "ct" : "afe8ef41591bfcc00db3c880ceb186", + "tag" : "29fff7f285768645c9c8bf7a471c9393", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 128, + "comment" : "", + "key" : "bcb6bc5ee6743df1396a34639327b25809ec9c81dd6a0c0e", + "iv" : "be0326d23bdc2c64648d13f4", + "aad" : "", + "msg" : "80474a3a3b809560eee2ce7a7a33ea07", + "ct" : "90339dca02ef717f1603994aee6cf6d2", + "tag" : "e3d33e01ce64f271783147de226228bc", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 129, + "comment" : "", + "key" : "5e1d28213e092536525bbae09e214af4c891e202b2b4fa4f", + "iv" : "b6be6cd0681235d826aa28ea", + "aad" : "", + "msg" : "53d59433a7db7f41b31ccb6d4a2d789965", + "ct" : "b98ed6321679941a3e521834296686ad98", + "tag" : "9f50c03e055e519712c582ec9db3235b", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 130, + "comment" : "", + "key" : "7f672d85e151aa490bc0eec8f66b5e5bee74af11642be3ff", + "iv" : "b022067048505b20946216ef", + "aad" : "", + "msg" : "ef6412c72b03c643fa02565a0ae2378a9311c11a84065f80", + "ct" : "addd303651119e52f6170dfc7a915064253d57532987b9ab", + "tag" : "fa0484f8baa95f5b7a31c56d1b34c58b", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 131, + "comment" : "", + "key" : "969fed5068541d65418c2c1de8fe1f845e036030496e1272", + "iv" : "817fe51c31f2879141a34335", + "aad" : "cb", + "msg" : "3d8233191a2823bf767e99167b1d4af4f4848458", + "ct" : "0d2c3a3c0cc4b40e70ed45e188e356a0e1533b31", + "tag" : "92909a80e90540e1878ab59ef300072b", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 132, + "comment" : "", + "key" : "fa5b9b41f93f8b682c04ba816c3fecc24eec095b04dd7497", + "iv" : "62b9cf1e923bc1138d05d205", + "aad" : "2ed8487153e21b12", + "msg" : "18159841813a69fc0f8f4229e1678da7c9016711", + "ct" : "c7c1cbb85ce2a0a3f32cb9ef01ad45ec1118b66d", + "tag" : "253317f98bdab87531ece20475cd9ebb", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 133, + "comment" : "", + "key" : "fbfb395662787e2d25a2e7510f818e825936a35114e237c9", + "iv" : "3f1a1e02e90a4ba7a1db9df2", + "aad" : "74318d8876528243f1944b73eb77e96e", + "msg" : "2952a3d64107d5cbb9602239d05a5c5c222cf72b", + "ct" : "ecf5e403f19c007c8da7a456caf0a6d75762829b", + "tag" : "e0877a100f9dd9d6795f0e74c56a9fab", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 134, + "comment" : "", + "key" : "5d8e9c2222316c9ed5ff94513cc957436ae447a6e1a73a29", + "iv" : "0802ae86c75a73bf79561521", + "aad" : "5ca354a4cb8e4fc9798aa209ad4f739dc7c232fdd1f22584", + "msg" : "42b4439e1d2116f834b91c516a26299df279956b", + "ct" : "94d844d98b9467daa7e8dde7f4290037354d7fb2", + "tag" : "62196638590cef429d6b1d1a59839c02", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 135, + "comment" : "Flipped bit 0 in tag", + "key" : "000102030405060708090a0b0c0d0e0f1011121314151617", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "458256842dfd297f30bd2f8f15c92db0", + "tag" : "b5e44c5b2fe90e4c78f358da0d99cb64", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 136, + "comment" : "Flipped bit 1 in tag", + "key" : "000102030405060708090a0b0c0d0e0f1011121314151617", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "458256842dfd297f30bd2f8f15c92db0", + "tag" : "b6e44c5b2fe90e4c78f358da0d99cb64", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 137, + "comment" : "Flipped bit 7 in tag", + "key" : "000102030405060708090a0b0c0d0e0f1011121314151617", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "458256842dfd297f30bd2f8f15c92db0", + "tag" : "34e44c5b2fe90e4c78f358da0d99cb64", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 138, + "comment" : "Flipped bit 8 in tag", + "key" : "000102030405060708090a0b0c0d0e0f1011121314151617", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "458256842dfd297f30bd2f8f15c92db0", + "tag" : "b4e54c5b2fe90e4c78f358da0d99cb64", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 139, + "comment" : "Flipped bit 31 in tag", + "key" : "000102030405060708090a0b0c0d0e0f1011121314151617", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "458256842dfd297f30bd2f8f15c92db0", + "tag" : "b4e44cdb2fe90e4c78f358da0d99cb64", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 140, + "comment" : "Flipped bit 32 in tag", + "key" : "000102030405060708090a0b0c0d0e0f1011121314151617", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "458256842dfd297f30bd2f8f15c92db0", + "tag" : "b4e44c5b2ee90e4c78f358da0d99cb64", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 141, + "comment" : "Flipped bit 33 in tag", + "key" : "000102030405060708090a0b0c0d0e0f1011121314151617", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "458256842dfd297f30bd2f8f15c92db0", + "tag" : "b4e44c5b2de90e4c78f358da0d99cb64", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 142, + "comment" : "Flipped bit 63 in tag", + "key" : "000102030405060708090a0b0c0d0e0f1011121314151617", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "458256842dfd297f30bd2f8f15c92db0", + "tag" : "b4e44c5b2fe90ecc78f358da0d99cb64", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 143, + "comment" : "Flipped bit 64 in tag", + "key" : "000102030405060708090a0b0c0d0e0f1011121314151617", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "458256842dfd297f30bd2f8f15c92db0", + "tag" : "b4e44c5b2fe90e4c79f358da0d99cb64", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 144, + "comment" : "Flipped bit 71 in tag", + "key" : "000102030405060708090a0b0c0d0e0f1011121314151617", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "458256842dfd297f30bd2f8f15c92db0", + "tag" : "b4e44c5b2fe90e4cf8f358da0d99cb64", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 145, + "comment" : "Flipped bit 77 in tag", + "key" : "000102030405060708090a0b0c0d0e0f1011121314151617", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "458256842dfd297f30bd2f8f15c92db0", + "tag" : "b4e44c5b2fe90e4c78d358da0d99cb64", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 146, + "comment" : "Flipped bit 80 in tag", + "key" : "000102030405060708090a0b0c0d0e0f1011121314151617", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "458256842dfd297f30bd2f8f15c92db0", + "tag" : "b4e44c5b2fe90e4c78f359da0d99cb64", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 147, + "comment" : "Flipped bit 96 in tag", + "key" : "000102030405060708090a0b0c0d0e0f1011121314151617", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "458256842dfd297f30bd2f8f15c92db0", + "tag" : "b4e44c5b2fe90e4c78f358da0c99cb64", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 148, + "comment" : "Flipped bit 97 in tag", + "key" : "000102030405060708090a0b0c0d0e0f1011121314151617", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "458256842dfd297f30bd2f8f15c92db0", + "tag" : "b4e44c5b2fe90e4c78f358da0f99cb64", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 149, + "comment" : "Flipped bit 103 in tag", + "key" : "000102030405060708090a0b0c0d0e0f1011121314151617", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "458256842dfd297f30bd2f8f15c92db0", + "tag" : "b4e44c5b2fe90e4c78f358da8d99cb64", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 150, + "comment" : "Flipped bit 120 in tag", + "key" : "000102030405060708090a0b0c0d0e0f1011121314151617", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "458256842dfd297f30bd2f8f15c92db0", + "tag" : "b4e44c5b2fe90e4c78f358da0d99cb65", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 151, + "comment" : "Flipped bit 121 in tag", + "key" : "000102030405060708090a0b0c0d0e0f1011121314151617", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "458256842dfd297f30bd2f8f15c92db0", + "tag" : "b4e44c5b2fe90e4c78f358da0d99cb66", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 152, + "comment" : "Flipped bit 126 in tag", + "key" : "000102030405060708090a0b0c0d0e0f1011121314151617", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "458256842dfd297f30bd2f8f15c92db0", + "tag" : "b4e44c5b2fe90e4c78f358da0d99cb24", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 153, + "comment" : "Flipped bit 127 in tag", + "key" : "000102030405060708090a0b0c0d0e0f1011121314151617", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "458256842dfd297f30bd2f8f15c92db0", + "tag" : "b4e44c5b2fe90e4c78f358da0d99cbe4", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 154, + "comment" : "Flipped bits 0 and 64 in tag", + "key" : "000102030405060708090a0b0c0d0e0f1011121314151617", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "458256842dfd297f30bd2f8f15c92db0", + "tag" : "b5e44c5b2fe90e4c79f358da0d99cb64", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 155, + "comment" : "Flipped bits 31 and 63 in tag", + "key" : "000102030405060708090a0b0c0d0e0f1011121314151617", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "458256842dfd297f30bd2f8f15c92db0", + "tag" : "b4e44cdb2fe90ecc78f358da0d99cb64", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 156, + "comment" : "Flipped bits 63 and 127 in tag", + "key" : "000102030405060708090a0b0c0d0e0f1011121314151617", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "458256842dfd297f30bd2f8f15c92db0", + "tag" : "b4e44c5b2fe90ecc78f358da0d99cbe4", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 157, + "comment" : "all bits of tag flipped", + "key" : "000102030405060708090a0b0c0d0e0f1011121314151617", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "458256842dfd297f30bd2f8f15c92db0", + "tag" : "4b1bb3a4d016f1b3870ca725f266349b", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 158, + "comment" : "Tag changed to all zero", + "key" : "000102030405060708090a0b0c0d0e0f1011121314151617", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "458256842dfd297f30bd2f8f15c92db0", + "tag" : "00000000000000000000000000000000", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 159, + "comment" : "tag changed to all 1", + "key" : "000102030405060708090a0b0c0d0e0f1011121314151617", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "458256842dfd297f30bd2f8f15c92db0", + "tag" : "ffffffffffffffffffffffffffffffff", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 160, + "comment" : "msbs changed in tag", + "key" : "000102030405060708090a0b0c0d0e0f1011121314151617", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "458256842dfd297f30bd2f8f15c92db0", + "tag" : "3464ccdbaf698eccf873d85a8d194be4", + "result" : "invalid", + "flags" : [] + }, + { + "tcId" : 161, + "comment" : "lsbs changed in tag", + "key" : "000102030405060708090a0b0c0d0e0f1011121314151617", + "iv" : "505152535455565758595a5b", + "aad" : "", + "msg" : "202122232425262728292a2b2c2d2e2f", + "ct" : "458256842dfd297f30bd2f8f15c92db0", + "tag" : "b5e54d5a2ee80f4d79f259db0c98ca65", + "result" : "invalid", + "flags" : [] + } + ] + }, + { + "ivSize" : 128, + "keySize" : 256, + "tagSize" : 128, + "type" : "AeadTest", + "tests" : [ + { + "tcId" : 162, + "comment" : "J0:000102030405060708090a0b0c0d0e0f", + "key" : "00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f", + "iv" : "5c2ea9b695fcf6e264b96074d6bfa572", + "aad" : "", + "msg" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "28e1c5232f4ee8161dbe4c036309e0b3254e9212bef0a93431ce5e5604c8f6a73c18a3183018b770", + "tag" : "d5808a1bd11a01129bf3c6919aff2339", + "result" : "valid", + "flags" : [ + "ConstructedIv" + ] + }, + { + "tcId" : 163, + "comment" : "J0:00000000000000000000000000000000", + "key" : "00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f", + "iv" : "57b3a81f2c36b6b06577ca0fbab8fa8e", + "aad" : "", + "msg" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "cceebeb4fe4cd90c514e52d2327a2ecd75393661006cf2476d8620149aef3d1cdce491fff3e7a7a3", + "tag" : "8132e865b69d64ef37db261f80cbbe24", + "result" : "valid", + "flags" : [ + "ConstructedIv" + ] + }, + { + "tcId" : 164, + "comment" : "J0:ffffffffffffffffffffffffffffffff", + "key" : "00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f", + "iv" : "ce20a7e870696a5e68533c465bad2ba1", + "aad" : "", + "msg" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "4f4350565d91d9aa8c5f4048550492ad6d6fdabf66da5d1e2af7bfe1a8aadaa0baa3de38a41d9713", + "tag" : "155da6441ec071ef2d8e6cffbacc1c7c", + "result" : "valid", + "flags" : [ + "ConstructedIv" + ] + }, + { + "tcId" : 165, + "comment" : "J0:fffffffffffffffffffffffffffffffe", + "key" : "00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f", + "iv" : "918e3c19dbdfee2db18156c5b93f3d75", + "aad" : "", + "msg" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "8316a53167b6de1a7575700693ffef274f4350565d91d9aa8c5f4048550492ad6d6fdabf66da5d1e", + "tag" : "6c574aa6a2490cc3b2f2f8f0ffbc56c4", + "result" : "valid", + "flags" : [ + "ConstructedIv" + ] + }, + { + "tcId" : 166, + "comment" : "J0:fffffffffffffffffffffffffffffffd", + "key" : "00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f", + "iv" : "717d900b270462b9dbf7e9419e890609", + "aad" : "", + "msg" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "5175927513e751eb309f45bc2ef225f28316a53167b6de1a7575700693ffef274f4350565d91d9aa", + "tag" : "8082a761e1d755344bf29622144e7d39", + "result" : "valid", + "flags" : [ + "ConstructedIv" + ] + }, + { + "tcId" : 167, + "comment" : "J0:000102030405060708090a0bffffffff", + "key" : "00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f", + "iv" : "ecd52120af240e9b4bf3b9d1eeb49434", + "aad" : "", + "msg" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "36b3fbecd09178d04527fb37544f5579d20d60a41266f685c48098e1a52804ca387d90709d3268dd", + "tag" : "033e0ef2953ebfd8425737c7d393f89a", + "result" : "valid", + "flags" : [ + "ConstructedIv" + ] + }, + { + "tcId" : 168, + "comment" : "J0:000102030405060708090a0bfffffffe", + "key" : "00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f", + "iv" : "b37bbad104928ae89221d3520c2682e0", + "aad" : "", + "msg" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "16929b773051f12b0adac95f65e21a7f36b3fbecd09178d04527fb37544f5579d20d60a41266f685", + "tag" : "ca448bb7e52e897eca234ef343d057d0", + "result" : "valid", + "flags" : [ + "ConstructedIv" + ] + }, + { + "tcId" : 169, + "comment" : "J0:000102030405060708090a0bfffffffd", + "key" : "00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f", + "iv" : "538816c3f849067cf8576cd62b90b99c", + "aad" : "", + "msg" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "6d3faefaf691d58163846f8d4b9ffd5916929b773051f12b0adac95f65e21a7f36b3fbecd09178d0", + "tag" : "84f49740e6757f63dd0df7cb7656d0ef", + "result" : "valid", + "flags" : [ + "ConstructedIv" + ] + }, + { + "tcId" : 170, + "comment" : "J0:000102030405060708090a0b7fffffff", + "key" : "00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f", + "iv" : "d10e631943cd3bdababab2bbd13951c0", + "aad" : "", + "msg" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "d60196c2d14fcf30c0991d2721ddc52d385f407a16691dade82c9023c855fd8e2e8fbb562102f018", + "tag" : "877e15d9889e69a99fcc6d727465c391", + "result" : "valid", + "flags" : [ + "ConstructedIv" + ] + }, + { + "tcId" : 171, + "comment" : "J0:000102030405060708090a0b7ffffffe", + "key" : "00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f", + "iv" : "8ea0f8e8e87bbfa96368d83833ab4714", + "aad" : "", + "msg" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "948fbceca12a6e4fabb79b6d965e336fd60196c2d14fcf30c0991d2721ddc52d385f407a16691dad", + "tag" : "cd5757626945976ba9f0264bd6bee894", + "result" : "valid", + "flags" : [ + "ConstructedIv" + ] + }, + { + "tcId" : 172, + "comment" : "J0:000102030405060708090a0bffff7fff", + "key" : "00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f", + "iv" : "7b2df4fbed1de2727eb24898e5deabb9", + "aad" : "", + "msg" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "a1a0120660ff52e6b1700b12c54d2d33b94b00cd7882d8857d84e6e183a1dea6ee85a7da84fbc35d", + "tag" : "b015d72da62c81cb4d267253b20db9e5", + "result" : "valid", + "flags" : [ + "ConstructedIv" + ] + }, + { + "tcId" : 173, + "comment" : "J0:000102030405060708090a0bffff7ffe", + "key" : "00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f", + "iv" : "24836f0a46ab6601a760221b074cbd6d", + "aad" : "", + "msg" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "5e3434b45edbf0d1f6e02d1144dbf867a1a0120660ff52e6b1700b12c54d2d33b94b00cd7882d885", + "tag" : "ee74ccb30d649ebf6916d05a7dbe5696", + "result" : "valid", + "flags" : [ + "ConstructedIv" + ] + }, + { + "tcId" : 174, + "comment" : "special case", + "key" : "00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f", + "iv" : "00000000000000000000000000000000", + "aad" : "", + "msg" : "8d74f1c97243d362577ff376c393d2dc", + "ct" : "265c42e2b96ea1de9c24f7182e337390", + "tag" : "00000000000000000000000000000000", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 175, + "comment" : "special case", + "key" : "00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f", + "iv" : "ffffffffffffffffffffffffffffffff", + "aad" : "", + "msg" : "884df0e76f3ce227bf9595d103825a46", + "ct" : "988f47668ea650cbaa6714711abe268d", + "tag" : "ffffffffffffffffffffffffffffffff", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 176, + "comment" : "", + "key" : "b7797eb0c1a6089ad5452d81fdb14828c040ddc4589c32b565aad8cb4de3e4a0", + "iv" : "0ad570d8863918fe89124e09d125a271", + "aad" : "", + "msg" : "ed", + "ct" : "3f", + "tag" : "fd8f593b83314e33c5a72efbeb7095e8", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 177, + "comment" : "", + "key" : "4c010d9561c7234c308c01cea3040c925a9f324dc958ff904ae39b37e60e1e03", + "iv" : "2a55caa137c5b0b66cf3809eb8f730c4", + "aad" : "", + "msg" : "2a093c9ed72b8ff4994201e9f9e010", + "ct" : "041341078f0439e50b43c991635117", + "tag" : "5b8a2f2da20ef657c903da88ef5f57bb", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 178, + "comment" : "", + "key" : "e7f7a48df99edd92b81f508618aa96526b279debd9ddb292d385ddbae80b2259", + "iv" : "7ee376910f08f497aa6c3aa7113697fd", + "aad" : "", + "msg" : "5e51dbbb861b5ec60751c0996e00527f", + "ct" : "469478d448f7e97d755541aa09ad95b0", + "tag" : "254ada5cf662d90c5e11b2bd9c4db4c4", + "result" : "valid", + "flags" : [] + }, + { + "tcId" : 179, + "comment" : "", + "key" : "4f84782bfbb64a973c3de3dcfa3430367fd68bc0b4c3b31e5d7c8141ba3e6a67", + "iv" : "5d1bde6fa0994b33efd8f23f531248a7", + "aad" : "", + "msg" : "78cb6650a1908a842101ea85804fed00cc56fbdafafba0ef4d1ca607dcae57b6", + "ct" : "cb960201fa5ad41d41d1c2c8037c71d52b72e76b16b589d71b976627c9734c9d", + "tag" : "8dfce16467c3a6ebb3e7242c9a551962", + "result" : "valid", + "flags" : [] + } + ] + }, + { + "ivSize" : 120, + "keySize" : 128, + "tagSize" : 128, + "type" : "AeadTest", + "tests" : [ + { + "tcId" : 180, + "comment" : "unusual IV size", + "key" : "34c74e28182948e03af02a01f46eb4f7", + "iv" : "b0a73119a97d623806b49d45ddf4c7", + "aad" : "", + "msg" : "fe82ba66cf2e265741f2c86c", + "ct" : "2bc3ef8e7402b4631f48e9be", + "tag" : "4b6f6f5be291a90b9e93a8a82ddbc8d8", + "result" : "valid", + "flags" : [] + } + ] + }, + { + "ivSize" : 160, + "keySize" : 128, + "tagSize" : 128, + "type" : "AeadTest", + "tests" : [ + { + "tcId" : 181, + "comment" : "unusual IV size", + "key" : "55cb7cac77efe18a1ea3b30c65f3f346", + "iv" : "e22b6b144ab26b5781316e7a42a76202ac4b2278", + "aad" : "", + "msg" : "2f3d11ea32bf5bc72cbe2b8d", + "ct" : "4fe13ef29f118f85a63188f8", + "tag" : "05975b175316df8045889f43e0c857e0", + "result" : "valid", + "flags" : [] + } + ] + }, + { + "ivSize" : 64, + "keySize" : 192, + "tagSize" : 128, + "type" : "AeadTest", + "tests" : [ + { + "tcId" : 182, + "comment" : "unusual IV size", + "key" : "f6a4bf8c4e15034699ce5801cbbac7509cd3f94cf28d8307", + "iv" : "60d6bfca67f5d810", + "aad" : "", + "msg" : "de8eaa41e5e6a590c3cfbf61", + "ct" : "a2966fb189f8d9d391503857", + "tag" : "e370e7dd328655929bd4691f396a1033", + "result" : "valid", + "flags" : [] + } + ] + }, + { + "ivSize" : 120, + "keySize" : 192, + "tagSize" : 128, + "type" : "AeadTest", + "tests" : [ + { + "tcId" : 183, + "comment" : "unusual IV size", + "key" : "66f75acbd8d3acf7af47d13e8384c2809d6b91503a7f294b", + "iv" : "edf93e16294f15eded83808f09320e", + "aad" : "", + "msg" : "a900c86b6b7e0e5563f8f826", + "ct" : "9af1a022c61c4315aa0e923e", + "tag" : "20529bff3c59222ec33353af337b1d40", + "result" : "valid", + "flags" : [] + } + ] + }, + { + "ivSize" : 160, + "keySize" : 192, + "tagSize" : 128, + "type" : "AeadTest", + "tests" : [ + { + "tcId" : 184, + "comment" : "unusual IV size", + "key" : "ef2e299dd4ecd7e3b9cc62780922cc2c89f78840564d1276", + "iv" : "130c14c839e35b7d56b3350b194b0da342e6b65d", + "aad" : "", + "msg" : "03f59579b14437199583270e", + "ct" : "073a5291b11df379f31b4f16", + "tag" : "17205999491bd4c1d6c7ec3e56779c32", + "result" : "valid", + "flags" : [] + } + ] + }, + { + "ivSize" : 64, + "keySize" : 256, + "tagSize" : 128, + "type" : "AeadTest", + "tests" : [ + { + "tcId" : 185, + "comment" : "unusual IV size", + "key" : "df64c84ae52d9ca820a47421bed6e96f7165369fc4c1b65f8f6307b17ce1006c", + "iv" : "c0c568a400b7194f", + "aad" : "", + "msg" : "f5fafdded54a86a4edab44bd", + "ct" : "99313a220d1fcb6658876283", + "tag" : "00955d7d27f66868cfec734bf59c5e6d", + "result" : "valid", + "flags" : [] + } + ] + }, + { + "ivSize" : 120, + "keySize" : 256, + "tagSize" : 128, + "type" : "AeadTest", + "tests" : [ + { + "tcId" : 186, + "comment" : "unusual IV size", + "key" : "e98b0669a645eb14cd06df6968fc5f10edc9f54feed264e3d410cdc61b72ef51", + "iv" : "17ca250fb733877556263223eadde1", + "aad" : "", + "msg" : "f384b3ed7b274641f5db60cf", + "ct" : "fc213602aa423b87d7c2a874", + "tag" : "36b15bab6923b17218fe1c24048e2391", + "result" : "valid", + "flags" : [] + } + ] + }, + { + "ivSize" : 160, + "keySize" : 256, + "tagSize" : 128, + "type" : "AeadTest", + "tests" : [ + { + "tcId" : 187, + "comment" : "unusual IV size", + "key" : "849b3e6b8cdd85bdcfb8eb701aa5522ae2340fbe5214e389622cef76979225c4", + "iv" : "0f9d6ed7eef362dfa4a7dfa5c0f74c5b27bd4ebf", + "aad" : "", + "msg" : "8c5564e53051c0de273199b4", + "ct" : "c1d76233e8c5042e92bf8d32", + "tag" : "7cf036d235d3b2dd349a8c804b65144a", + "result" : "valid", + "flags" : [] + } + ] + }, + { + "ivSize" : 0, + "keySize" : 128, + "tagSize" : 128, + "type" : "AeadTest", + "tests" : [ + { + "tcId" : 188, + "comment" : "0 size IV is not valid", + "key" : "8f3f52e3c75c58f5cb261f518f4ad30a", + "iv" : "", + "aad" : "", + "msg" : "", + "ct" : "", + "tag" : "cf71978ffcc778f3c85ac9c31b6fe191", + "result" : "invalid", + "flags" : [ + "ZeroLengthIv" + ] + }, + { + "tcId" : 189, + "comment" : "0 size IV is not valid", + "key" : "2a4bf90e56b70fdd8649d775c089de3b", + "iv" : "", + "aad" : "", + "msg" : "324ced6cd15ecc5b3741541e22c18ad9", + "ct" : "00a29f0a5e2e7490279d1faf8b881c7b", + "tag" : "a2c7e8d7a19b884f742dfec3e76c75ee", + "result" : "invalid", + "flags" : [ + "ZeroLengthIv" + ] + } + ] + }, + { + "ivSize" : 0, + "keySize" : 192, + "tagSize" : 128, + "type" : "AeadTest", + "tests" : [ + { + "tcId" : 190, + "comment" : "0 size IV is not valid", + "key" : "0b18d21337035c7baa08211b702fa780ac7c09be8f9ed11f", + "iv" : "", + "aad" : "", + "msg" : "", + "ct" : "", + "tag" : "ca69a2eb3a096ea36b1015d5dffff532", + "result" : "invalid", + "flags" : [ + "ZeroLengthIv" + ] + }, + { + "tcId" : 191, + "comment" : "0 size IV is not valid", + "key" : "ba76d594a6df915bb7ab7e6d1a8d024b2796336c1b8328a9", + "iv" : "", + "aad" : "", + "msg" : "d62f302742d61d823ea991b93430d589", + "ct" : "509b0658d09f7a5bb9db43b70c8387f7", + "tag" : "2c9488d53a0b2b5308c2757dfac7219f", + "result" : "invalid", + "flags" : [ + "ZeroLengthIv" + ] + } + ] + }, + { + "ivSize" : 0, + "keySize" : 256, + "tagSize" : 128, + "type" : "AeadTest", + "tests" : [ + { + "tcId" : 192, + "comment" : "0 size IV is not valid", + "key" : "3f8ca47b9a940582644e8ecf9c2d44e8138377a8379c5c11aafe7fec19856cf1", + "iv" : "", + "aad" : "", + "msg" : "", + "ct" : "", + "tag" : "1726aa695fbaa21a1db88455c670a4b0", + "result" : "invalid", + "flags" : [ + "ZeroLengthIv" + ] + }, + { + "tcId" : 193, + "comment" : "0 size IV is not valid", + "key" : "7660d10966c6503903a552dde2a809ede9da490e5e5cc3e349da999671809883", + "iv" : "", + "aad" : "", + "msg" : "c314235341debfafa1526bb61044a7f1", + "ct" : "7772ea358901f571d3d35c19497639d9", + "tag" : "8fe0520ad744a11f0ccfd228454363fa", + "result" : "invalid", + "flags" : [ + "ZeroLengthIv" + ] + } + ] + }, + { + "ivSize" : 8, + "keySize" : 128, + "tagSize" : 128, + "type" : "AeadTest", + "tests" : [ + { + "tcId" : 194, + "comment" : "small IV sizes", + "key" : "59a284f50aedd8d3e2a91637d3815579", + "iv" : "80", + "aad" : "", + "msg" : "", + "ct" : "", + "tag" : "af498f701d2470695f6e7c8327a2398b", + "result" : "acceptable", + "flags" : [] + }, + { + "tcId" : 195, + "comment" : "small IV sizes", + "key" : "fec58aa8cf06bfe05de829f27ec77693", + "iv" : "9d", + "aad" : "", + "msg" : "f2d99a9f893378e0757d27c2e3a3101b", + "ct" : "0a24612a9d1cbe967dbfe804bf8440e5", + "tag" : "96e6fd2cdc707e3ee0a1c90d34c9c36c", + "result" : "acceptable", + "flags" : [] + } + ] + }, + { + "ivSize" : 16, + "keySize" : 128, + "tagSize" : 128, + "type" : "AeadTest", + "tests" : [ + { + "tcId" : 196, + "comment" : "small IV sizes", + "key" : "88a972cce9eaf5a7813ce8149d0c1d0e", + "iv" : "0f2f", + "aad" : "", + "msg" : "", + "ct" : "", + "tag" : "4ccf1efb4da05b4ae4452aea42f5424b", + "result" : "acceptable", + "flags" : [] + }, + { + "tcId" : 197, + "comment" : "small IV sizes", + "key" : "b43967ee933e4632bd6562ba1201bf83", + "iv" : "8760", + "aad" : "", + "msg" : "5a6ad6db70591d1e520b0122f05021a0", + "ct" : "ba3e7f8b2999995c7fc4006ca4f475ff", + "tag" : "98f47a5279cebbcac214515710f6cd8a", + "result" : "acceptable", + "flags" : [] + } + ] + }, + { + "ivSize" : 32, + "keySize" : 128, + "tagSize" : 128, + "type" : "AeadTest", + "tests" : [ + { + "tcId" : 198, + "comment" : "small IV sizes", + "key" : "4e9a97d3ed54c7b54610793ab05052e1", + "iv" : "cc851957", + "aad" : "", + "msg" : "", + "ct" : "", + "tag" : "e574b355bda2980e047e584feb1676ca", + "result" : "acceptable", + "flags" : [] + }, + { + "tcId" : 199, + "comment" : "small IV sizes", + "key" : "d83c1d7a97c43f182409a4aa5609c1b1", + "iv" : "7b5faeb2", + "aad" : "", + "msg" : "c8f07ba1d65554a9bd40390c30c5529c", + "ct" : "1b84baea9df1e65bee7b49e4a8cda1ec", + "tag" : "5c0bb79d8240041edce0f94bd4bb384f", + "result" : "acceptable", + "flags" : [] + } + ] + }, + { + "ivSize" : 48, + "keySize" : 128, + "tagSize" : 128, + "type" : "AeadTest", + "tests" : [ + { + "tcId" : 200, + "comment" : "small IV sizes", + "key" : "c6a705677affb49e276d9511caa46145", + "iv" : "4ad80c2854fb", + "aad" : "", + "msg" : "", + "ct" : "", + "tag" : "1e2ed72af590cafb8647d185865f5463", + "result" : "acceptable", + "flags" : [] + }, + { + "tcId" : 201, + "comment" : "small IV sizes", + "key" : "eba7699b56cc0aa2f66a2a5be9944413", + "iv" : "d1dafc8de3e3", + "aad" : "", + "msg" : "d021e53d9098a2df3d6b903cdad0cd9c", + "ct" : "18291aa8dc7b07448aa8f71bb8e380bf", + "tag" : "9c0e22e5c41b1039ff5661ffaefa8e0f", + "result" : "acceptable", + "flags" : [] + } + ] + }, + { + "ivSize" : 8, + "keySize" : 192, + "tagSize" : 128, + "type" : "AeadTest", + "tests" : [ + { + "tcId" : 202, + "comment" : "small IV sizes", + "key" : "c70ce38e84e5f53ed41c3f0d2ca493412ad32cb04c6e2efa", + "iv" : "cb", + "aad" : "", + "msg" : "", + "ct" : "", + "tag" : "08d96edb5e22874cd10cb2256ca04bc6", + "result" : "acceptable", + "flags" : [] + }, + { + "tcId" : 203, + "comment" : "small IV sizes", + "key" : "74c816b83dfd287210a3e2c6da8d3053bbfbd9b156d3fdd8", + "iv" : "0f", + "aad" : "", + "msg" : "f2b7b2c9b312cf2af78f003df15c8e19", + "ct" : "6c5e796ba9a3ddc64f401e68d135101d", + "tag" : "96a132ed43924e98feb888ff682bdaef", + "result" : "acceptable", + "flags" : [] + } + ] + }, + { + "ivSize" : 16, + "keySize" : 192, + "tagSize" : 128, + "type" : "AeadTest", + "tests" : [ + { + "tcId" : 204, + "comment" : "small IV sizes", + "key" : "cbf45ba488932aea1a10e5862f92e4a7e277bda9f34af6d0", + "iv" : "75e5", + "aad" : "", + "msg" : "", + "ct" : "", + "tag" : "1f0d23070fcd748e25bf6454f5c9136e", + "result" : "acceptable", + "flags" : [] + }, + { + "tcId" : 205, + "comment" : "small IV sizes", + "key" : "e1c0446f11ae6aa4fa254f9a846fc6e13e45e537e47f2042", + "iv" : "8989", + "aad" : "", + "msg" : "3a2f5ad0eb216e546e0bcaa377b6cbc7", + "ct" : "550b48a43e821fd76f49f0f1a897aead", + "tag" : "f6e0a979481f9957ddad0f21a777a73a", + "result" : "acceptable", + "flags" : [] + } + ] + }, + { + "ivSize" : 32, + "keySize" : 192, + "tagSize" : 128, + "type" : "AeadTest", + "tests" : [ + { + "tcId" : 206, + "comment" : "small IV sizes", + "key" : "567563bf4cf154902275a53bc57cd6dd7b370d27011bdac8", + "iv" : "68d7fc38", + "aad" : "", + "msg" : "", + "ct" : "", + "tag" : "1475563e3212f3b5e40062569afd71e3", + "result" : "acceptable", + "flags" : [] + }, + { + "tcId" : 207, + "comment" : "small IV sizes", + "key" : "834d0bb601170865a78139428a1503695a6a291ebd747cd1", + "iv" : "bb9d2aa3", + "aad" : "", + "msg" : "6f79e18b4acd5a03d3a5f7e1a8d0f183", + "ct" : "309133e76159fe8a41b20843486511ab", + "tag" : "03ab26993b701910a2e8ecccd2ba9e52", + "result" : "acceptable", + "flags" : [] + } + ] + }, + { + "ivSize" : 48, + "keySize" : 192, + "tagSize" : 128, + "type" : "AeadTest", + "tests" : [ + { + "tcId" : 208, + "comment" : "small IV sizes", + "key" : "99fb18f5ba430bb9ea942968ecb799b43406e1af4b6425a1", + "iv" : "a984bdcdcae2", + "aad" : "", + "msg" : "", + "ct" : "", + "tag" : "d7b9a6b58a97982916e83219fbf71b1e", + "result" : "acceptable", + "flags" : [] + }, + { + "tcId" : 209, + "comment" : "small IV sizes", + "key" : "b77b242aa0d51c92fda013e0cb0ef2437399ace5d3f507e4", + "iv" : "52aa01e0d0d6", + "aad" : "", + "msg" : "4ba541a9914729216153801340ab1779", + "ct" : "e08261e46eaf90d978ea8f7889bccd4f", + "tag" : "c052a55df3926a50990a532efe3d80ec", + "result" : "acceptable", + "flags" : [] + } + ] + }, + { + "ivSize" : 8, + "keySize" : 256, + "tagSize" : 128, + "type" : "AeadTest", + "tests" : [ + { + "tcId" : 210, + "comment" : "small IV sizes", + "key" : "8f9a38c1014966e4d9ae736139c5e79b99345874f42d4c7d2c81aa6797c417c0", + "iv" : "a9", + "aad" : "", + "msg" : "", + "ct" : "", + "tag" : "2a268bf3a75fd7b00ba230b904bbb014", + "result" : "acceptable", + "flags" : [] + }, + { + "tcId" : 211, + "comment" : "small IV sizes", + "key" : "144cd8279229e8bb2de99d24e615306663913fe9177fcd270fafec493d43bca1", + "iv" : "b3", + "aad" : "", + "msg" : "976229f5538f9636476d69f0c328e29d", + "ct" : "7bea30ecc2f73f8e121263b37966954c", + "tag" : "8bbad4adc54b37a2b2f0f6e8617548c9", + "result" : "acceptable", + "flags" : [] + } + ] + }, + { + "ivSize" : 16, + "keySize" : 256, + "tagSize" : 128, + "type" : "AeadTest", + "tests" : [ + { + "tcId" : 212, + "comment" : "small IV sizes", + "key" : "7d31861f9d3536e14016a3216b1042e0d2f7d4614314268b6f834ec7f38bbb65", + "iv" : "c332", + "aad" : "", + "msg" : "", + "ct" : "", + "tag" : "1d978a693120c11f6d51a3ed88cd4ace", + "result" : "acceptable", + "flags" : [] + }, + { + "tcId" : 213, + "comment" : "small IV sizes", + "key" : "22b35fe9623ee11f8b60b6d22db3765b666ed972fa7ccd92b45f22deee02cab1", + "iv" : "da6c", + "aad" : "", + "msg" : "5341c78e4ce5bf8fbc3e077d1990dd5d", + "ct" : "9c39f5b110361e9a770cc5e8b0f444bb", + "tag" : "b63ff43c12073ec5572b1be70f17e231", + "result" : "acceptable", + "flags" : [] + } + ] + }, + { + "ivSize" : 32, + "keySize" : 256, + "tagSize" : 128, + "type" : "AeadTest", + "tests" : [ + { + "tcId" : 214, + "comment" : "small IV sizes", + "key" : "c224e0bba3d7a99165f7996b67a0fce3e12f2c01179b197b69b7e628bca92096", + "iv" : "6b30145e", + "aad" : "", + "msg" : "", + "ct" : "", + "tag" : "ae6f7c9a29f0d8204ca50b14a1e0dcf2", + "result" : "acceptable", + "flags" : [] + }, + { + "tcId" : 215, + "comment" : "small IV sizes", + "key" : "093eb12343537ee8e91c1f715b862603f8daf9d4e1d7d67212a9d68e5aac9358", + "iv" : "5110604c", + "aad" : "", + "msg" : "33efb58c91e8c70271870ec00fe2e202", + "ct" : "f73f72f976a296ba3ca94bc6eb08cd46", + "tag" : "b824c33c13f289429659aa017c632f71", + "result" : "acceptable", + "flags" : [] + } + ] + }, + { + "ivSize" : 48, + "keySize" : 256, + "tagSize" : 128, + "type" : "AeadTest", + "tests" : [ + { + "tcId" : 216, + "comment" : "small IV sizes", + "key" : "98e6f8ab673e804e865e32403a6551bf807a959343c60d34559360bc295ecb5b", + "iv" : "d4d857510888", + "aad" : "", + "msg" : "", + "ct" : "", + "tag" : "3db16725fafc828d414ab61c16a6c38f", + "result" : "acceptable", + "flags" : [] + }, + { + "tcId" : 217, + "comment" : "small IV sizes", + "key" : "0bd0e8e7781166e1d876dec8fad34ba95b032a27cac0551595116091005947b7", + "iv" : "1bdcd44b663e", + "aad" : "", + "msg" : "91222263b12cf5616a049cbe29ab9b5b", + "ct" : "ed463f4f43336af3f4d7e08770201145", + "tag" : "c8fc39906aca0c64e14a43ff750abd8a", + "result" : "acceptable", + "flags" : [] + } + ] + } + ] +} diff --git a/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc b/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc index 4072cf2b72..16fa15f1d5 100644 --- a/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc +++ b/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc @@ -26,7 +26,11 @@ class Pkcs11AesGcmTest : public ::testing::TestWithParam { std::vector plaintext = hex_string_to_bytes(val.plaintext); std::vector aad = hex_string_to_bytes(val.additional_data); std::vector result = hex_string_to_bytes(val.result); - + bool invalid_ct = val.invalid_ct; + bool invalid_iv = val.invalid_iv; + std::stringstream s; + s << "Test #" << val.test_id << " failed."; + std::string msg = s.str(); // Ignore GHASH-only vectors. if (key.empty()) { return; @@ -50,7 +54,7 @@ class Pkcs11AesGcmTest : public ::testing::TestWithParam { // Import key. ScopedPK11SymKey symKey(PK11_ImportSymKey( slot.get(), mech, PK11_OriginUnwrap, CKA_ENCRYPT, &keyItem, nullptr)); - EXPECT_TRUE(!!symKey); + ASSERT_TRUE(!!symKey) << msg; // Encrypt. unsigned int outputLen = 0; @@ -58,11 +62,21 @@ class Pkcs11AesGcmTest : public ::testing::TestWithParam { SECStatus rv = PK11_Encrypt(symKey.get(), mech, ¶ms, output.data(), &outputLen, output.size(), plaintext.data(), plaintext.size()); - EXPECT_EQ(rv, SECSuccess); - ASSERT_EQ(outputLen, output.size()); + if (invalid_iv) { + EXPECT_EQ(rv, SECFailure) << msg; + return; + } else { + EXPECT_EQ(rv, SECSuccess) << msg; + } + + ASSERT_EQ(outputLen, output.size()) << msg; // Check ciphertext and tag. - EXPECT_EQ(result, output); + if (invalid_ct) { + EXPECT_NE(result, output) << msg; + } else { + EXPECT_EQ(result, output) << msg; + } // Decrypt. unsigned int decryptedLen = 0; @@ -72,13 +86,13 @@ class Pkcs11AesGcmTest : public ::testing::TestWithParam { rv = PK11_Decrypt(symKey.get(), mech, ¶ms, decrypted.data(), &decryptedLen, decrypted.size(), output.data(), outputLen); - EXPECT_EQ(rv, SECSuccess); - ASSERT_EQ(decryptedLen, plaintext.size()); + EXPECT_EQ(rv, SECSuccess) << msg; + ASSERT_EQ(decryptedLen, plaintext.size()) << msg; // Check the plaintext. - EXPECT_EQ(plaintext, - std::vector(decrypted.begin(), - decrypted.begin() + decryptedLen)); + EXPECT_EQ(plaintext, std::vector(decrypted.begin(), + decrypted.begin() + decryptedLen)) + << msg; } SECStatus EncryptWithIV(std::vector& iv) { @@ -117,6 +131,9 @@ TEST_P(Pkcs11AesGcmTest, TestVectors) { RunTest(GetParam()); } INSTANTIATE_TEST_CASE_P(NISTTestVector, Pkcs11AesGcmTest, ::testing::ValuesIn(kGcmKatValues)); +INSTANTIATE_TEST_CASE_P(WycheproofTestVector, Pkcs11AesGcmTest, + ::testing::ValuesIn(kGcmWycheproofVectors)); + TEST_F(Pkcs11AesGcmTest, ZeroLengthIV) { std::vector iv(0); EXPECT_EQ(EncryptWithIV(iv), SECFailure); diff --git a/mach b/mach index 178cfeb741..46b3ad7b1f 100755 --- a/mach +++ b/mach @@ -17,6 +17,7 @@ import platform import tempfile from hashlib import sha256 +from gtests.common.wycheproof.genaesgcm import generate_aes_gcm DEVNULL = open(os.devnull, 'wb') cwd = os.path.dirname(os.path.abspath(__file__)) @@ -212,6 +213,22 @@ class commandsAction(argparse.Action): for c in commandsAction.commands: print(c) +class wycheproofAction(argparse.Action): + tests = ['aes_gcm_test.json'] + + def __call__(self, parser, args, values, option_string=None): + self.update_tests() + generate_aes_gcm() + clangFormat = cfAction(None, None, None) + clangFormat(None, args, None) + + def update_tests(self): + remote = "https://raw.githubusercontent.com/google/wycheproof/master/testvectors/" + for test in self.tests: + subprocess.check_call(['wget', remote+test, '-O', + 'gtests/common/wycheproof/testvectors/'+test, + '--no-check-certificate']) + def parse_arguments(): parser = argparse.ArgumentParser( @@ -270,6 +287,18 @@ def parse_arguments(): nargs='*', action=commandsAction) + parser_wycheproof = subparsers.add_parser( + 'wycheproof', + help="generate wycheproof test headers") + parser_wycheproof.add_argument( + '--noroot', + help='On linux, suppress the use of \'sudo\' for running docker.', + action='store_true') + parser_wycheproof.add_argument( + 'wycheproof', + nargs='*', + action=wycheproofAction) + commandsAction.commands = [c for c in subparsers.choices] return parser.parse_args()