summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Allmann <jallmann@mozilla.com>2018-12-11 11:45:58 +0100
committerJonas Allmann <jallmann@mozilla.com>2018-12-11 11:45:58 +0100
commitb1325f0077b76d76be5b0a3ac7ee531be594ce6f (patch)
treec5802d8395c548fd5d62c87798d06cac46bec969
parent19d702fb2dd583b461f59459da208f253eda3e96 (diff)
downloadnss-hg-b1325f0077b76d76be5b0a3ac7ee531be594ce6f.tar.gz
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
-rw-r--r--gtests/__init__.py0
-rw-r--r--gtests/common/__init__.py0
-rw-r--r--gtests/common/gcm-vectors.h1443
-rw-r--r--gtests/common/wycheproof/__init__.py0
-rwxr-xr-xgtests/common/wycheproof/genaesgcm.py67
-rw-r--r--gtests/common/wycheproof/header_bases/gcm-vectors.h197
-rw-r--r--gtests/common/wycheproof/testvectors/aes_gcm_test.json2940
-rw-r--r--gtests/pk11_gtest/pk11_aes_gcm_unittest.cc37
-rwxr-xr-xmach29
9 files changed, 4663 insertions, 50 deletions
diff --git a/gtests/__init__.py b/gtests/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/gtests/__init__.py
diff --git a/gtests/common/__init__.py b/gtests/common/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/gtests/common/__init__.py
diff --git a/gtests/common/gcm-vectors.h b/gtests/common/gcm-vectors.h
index b0646c964..f0b6cc7e3 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 <string>
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
+// <https://github.com/google/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 000000000..e69de29bb
--- /dev/null
+++ b/gtests/common/wycheproof/__init__.py
diff --git a/gtests/common/wycheproof/genaesgcm.py b/gtests/common/wycheproof/genaesgcm.py
new file mode 100755
index 000000000..c39199f08
--- /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 += "// <https://github.com/google/wycheproof>\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 000000000..ccb5761da
--- /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 <string>
+
+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 000000000..f2f327921
--- /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 4072cf2b7..16fa15f1d 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<gcm_kat_value> {
std::vector<uint8_t> plaintext = hex_string_to_bytes(val.plaintext);
std::vector<uint8_t> aad = hex_string_to_bytes(val.additional_data);
std::vector<uint8_t> 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<gcm_kat_value> {
// 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<gcm_kat_value> {
SECStatus rv =
PK11_Encrypt(symKey.get(), mech, &params, 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<gcm_kat_value> {
rv =
PK11_Decrypt(symKey.get(), mech, &params, 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<uint8_t>(decrypted.begin(),
- decrypted.begin() + decryptedLen));
+ EXPECT_EQ(plaintext, std::vector<uint8_t>(decrypted.begin(),
+ decrypted.begin() + decryptedLen))
+ << msg;
}
SECStatus EncryptWithIV(std::vector<uint8_t>& 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<uint8_t> iv(0);
EXPECT_EQ(EncryptWithIV(iv), SECFailure);
diff --git a/mach b/mach
index 178cfeb74..46b3ad7b1 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()