Import Wycheproof HMAC tests.

Change-Id: I712ac83efc3bf1edfd4485cb0e822f5719629293
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/39186
Commit-Queue: David Benjamin <davidben@google.com>
Reviewed-by: Adam Langley <agl@google.com>
diff --git a/crypto/hmac_extra/hmac_test.cc b/crypto/hmac_extra/hmac_test.cc
index d285343..b96abbd 100644
--- a/crypto/hmac_extra/hmac_test.cc
+++ b/crypto/hmac_extra/hmac_test.cc
@@ -65,6 +65,7 @@
 
 #include "../test/file_test.h"
 #include "../test/test_util.h"
+#include "../test/wycheproof_util.h"
 
 
 static const EVP_MD *GetDigest(const std::string &name) {
@@ -128,3 +129,56 @@
     EXPECT_EQ(Bytes(output), Bytes(mac.get(), mac_len));
   });
 }
+
+static void RunWycheproofTest(const char *path, const EVP_MD *md) {
+  SCOPED_TRACE(path);
+  FileTestGTest(path, [&](FileTest *t) {
+    t->IgnoreInstruction("keySize");
+    t->IgnoreInstruction("tagSize");
+    std::vector<uint8_t> key, msg, tag;
+    ASSERT_TRUE(t->GetBytes(&key, "key"));
+    ASSERT_TRUE(t->GetBytes(&msg, "msg"));
+    ASSERT_TRUE(t->GetBytes(&tag, "tag"));
+    WycheproofResult result;
+    ASSERT_TRUE(GetWycheproofResult(t, &result));
+
+    if (result != WycheproofResult::kValid) {
+      // Wycheproof tests assume the HMAC implementation checks the MAC. Ours
+      // simply computes the HMAC, so skip the tests with invalid outputs.
+      return;
+    }
+
+    uint8_t out[EVP_MAX_MD_SIZE];
+    unsigned out_len;
+    ASSERT_TRUE(HMAC(md, key.data(), key.size(), msg.data(), msg.size(), out,
+                     &out_len));
+    // Wycheproof tests truncate the tags down to |tagSize|.
+    ASSERT_LE(tag.size(), out_len);
+    EXPECT_EQ(Bytes(out, tag.size()), Bytes(tag));
+  });
+}
+
+TEST(HMACTest, WycheproofSHA1) {
+  RunWycheproofTest("third_party/wycheproof_testvectors/hmac_sha1_test.txt",
+                    EVP_sha1());
+}
+
+TEST(HMACTest, WycheproofSHA224) {
+  RunWycheproofTest("third_party/wycheproof_testvectors/hmac_sha224_test.txt",
+                    EVP_sha224());
+}
+
+TEST(HMACTest, WycheproofSHA256) {
+  RunWycheproofTest("third_party/wycheproof_testvectors/hmac_sha256_test.txt",
+                    EVP_sha256());
+}
+
+TEST(HMACTest, WycheproofSHA384) {
+  RunWycheproofTest("third_party/wycheproof_testvectors/hmac_sha384_test.txt",
+                    EVP_sha384());
+}
+
+TEST(HMACTest, WycheproofSHA512) {
+  RunWycheproofTest("third_party/wycheproof_testvectors/hmac_sha512_test.txt",
+                    EVP_sha512());
+}
diff --git a/sources.cmake b/sources.cmake
index f929032..c94f9c3 100644
--- a/sources.cmake
+++ b/sources.cmake
@@ -87,6 +87,11 @@
   third_party/wycheproof_testvectors/hkdf_sha256_test.txt
   third_party/wycheproof_testvectors/hkdf_sha384_test.txt
   third_party/wycheproof_testvectors/hkdf_sha512_test.txt
+  third_party/wycheproof_testvectors/hmac_sha1_test.txt
+  third_party/wycheproof_testvectors/hmac_sha224_test.txt
+  third_party/wycheproof_testvectors/hmac_sha256_test.txt
+  third_party/wycheproof_testvectors/hmac_sha384_test.txt
+  third_party/wycheproof_testvectors/hmac_sha512_test.txt
   third_party/wycheproof_testvectors/kwp_test.txt
   third_party/wycheproof_testvectors/kw_test.txt
   third_party/wycheproof_testvectors/rsa_pss_2048_sha1_mgf1_20_test.txt
diff --git a/third_party/wycheproof_testvectors/hmac_sha1_test.txt b/third_party/wycheproof_testvectors/hmac_sha1_test.txt
new file mode 100644
index 0000000..9bddb4d
--- /dev/null
+++ b/third_party/wycheproof_testvectors/hmac_sha1_test.txt
@@ -0,0 +1,1206 @@
+# Imported from Wycheproof's hmac_sha1_test.json.
+# This file is generated by convert_wycheproof.go. Do not edit by hand.
+#
+# Algorithm: HMACSHA1
+# Generator version: 0.8rc21
+
+[keySize = 160]
+[tagSize = 160]
+
+# tcId = 1
+# empty message
+key = 06c0dcdc16ff81dce92807fa2c82b44d28ac178a
+msg = 
+result = valid
+tag = 7d91d1b4748077b28911b4509762b6df24365810
+
+# tcId = 2
+# short message
+key = 4cd64efdb76df5a85dce3d347012cad06b0c3db4
+msg = 6c
+result = valid
+tag = 6d3d37af55c75d872d2da07b9b907ba22ad487d4
+
+# tcId = 3
+# short message
+key = 52e1995025297fe7b793dc8e1e4f7d312fee2700
+msg = 29df
+result = valid
+tag = 82cb24bfa38fbdc91d1eea2d2dc1ce6e60ff881e
+
+# tcId = 4
+# short message
+key = f3edfa003d89c4e2a6422e77a01b8adbd7ac26e4
+msg = b015b7
+result = valid
+tag = cb244ca6ad233947378436076fbfd20c9c8b842b
+
+# tcId = 5
+# short message
+key = 4b07ed4e0c8ddaa1f76cf0010728679c8857e18b
+msg = 3b2c1afe
+result = valid
+tag = 924125532e6b625e7c5a8dcd1614e04334c067cd
+
+# tcId = 6
+# short message
+key = 7f532c8ec83cb21dc98af7734c64f5fd9167ec30
+msg = a33c6f9826
+result = valid
+tag = 0d25bc40f60fbed36d8d7a1045ffa60d88484d56
+
+# tcId = 7
+# short message
+key = 99e60c1fc0cb3e6ed836619775e37bf15b2cb93f
+msg = b129bb88ceaa
+result = valid
+tag = 6924d833a3e74b48f991e6c44173565fdf8c7470
+
+# tcId = 8
+# short message
+key = 53845f10344b7f39eddbd3e44231fa802d7e1aca
+msg = c6f5b1cee31033
+result = valid
+tag = fd4b28273d3ee8cc24de2d8dad23ad4f355240c7
+
+# tcId = 9
+# short message
+key = e3220700ce24a010cf623f60891e4f298ff26b11
+msg = c97afb5063a9dd0d
+result = valid
+tag = 383b103ce9054cb74a0431d16da99d8233e94fc2
+
+# tcId = 10
+# short message
+key = 466c061ddcf3d9b285a2900f8725971b733f850f
+msg = 89024ceda7de3c114e
+result = valid
+tag = 1b81f1127635233383b6ea5ba8fd68eb5112ef0a
+
+# tcId = 11
+# short message
+key = a81f9f51b041ff29b8d705bb408f854ccbd7e5ab
+msg = 032d866a270762cbae24
+result = valid
+tag = b72ba0c89d010215a8f280616acbd8640fe86cec
+
+# tcId = 12
+# short message
+key = e60d0b14886fe6fa2c839329204d84d81026b7ab
+msg = fda7f48c11101255e02c8d
+result = valid
+tag = 2be7bb541cede978f541e2cac0ab6451060e3e83
+
+# tcId = 13
+# short message
+key = c090ef122a29348740ccd571d98407764b2adaac
+msg = d1fe3dfa80ade7087efabb52
+result = valid
+tag = e6c1e0c3ebb7750d66a50b6abccfdef9c2599008
+
+# tcId = 14
+# short message
+key = 564a56290e1aea0522f19088a88ab4dce4c7cdf2
+msg = 4213bd3cdaebbb1ec1cc81866a
+result = valid
+tag = 6d1d5808c085ad512487debb57fb93514b205075
+
+# tcId = 15
+# short message
+key = f898459d272fd5e43b062156f44958d85d97ea3f
+msg = 5e86b05522eb65a4fb7b932cecd5
+result = valid
+tag = b778f421c2d1e2701e75da6bd1bc65379b80e879
+
+# tcId = 16
+# short message
+key = 7d5cc53f464e759438ee90b47f2fe67aa83d6b52
+msg = 9f38ea80122b40f742a00c2e83e085
+result = valid
+tag = c80ce6d33fe868432c262766fd23bf431e313882
+
+# tcId = 17
+key = 33e9140175519b2f1619b44848331763c756fad4
+msg = 7de0fccc83b51c29e5eb1b658c102438
+result = valid
+tag = 34de6b8f479523870b8f905684672617669b0607
+
+# tcId = 18
+key = 0ef29e7c961da37afaea8182f28738d22c340232
+msg = 165bb8e5c6f0a3ae40946dc807aee84645
+result = valid
+tag = 78e6fa53ec213e9019d47ee7529d963a8a252942
+
+# tcId = 19
+key = 203cfad921e605c80d7aa8b64d3bf18328b7a7a0
+msg = d289c7cd10d996d5daca1410c37815b237f74929588c5ae4
+result = valid
+tag = 27d96da41895bf53d150ac15e7c31853f56ae363
+
+# tcId = 20
+key = 8eb7416efd0c73c86b91df0d58891fdb738f40df
+msg = b415cb7cd384a1035d2bac1f7b96ae858dfd44c467030f304e817d11b9f9c606
+result = valid
+tag = 24cb16323b7ec47e3add8f55cb9920aa7c1655de
+
+# tcId = 21
+# long message
+key = 6fbb3c55e935e0a002c170a9122f1f7037bc0c59
+msg = 36ac9a8cf0223ccf5d9048be9a65df4a1f40aaa857ce13d621f601bdee1fbe803171002d1fa634a1977dc23d9aa8fd
+result = valid
+tag = e2fe8b343cef4b9754308408930526159537ecc8
+
+# tcId = 22
+# long message
+key = e40f6206105f7800a1f190602bb6dde8057c3a87
+msg = 10463b771fa586c5ed5c1f6488d793299db40fdd4f3e53334ae3ff8e09e5a879da06eb46d210ee0af0c8251e6c07aa1d
+result = valid
+tag = b5dfce5998d2e321800e0e42762e62ec7a81448f
+
+# tcId = 23
+# long message
+key = f04cc641ff67aba4ac2d17e6a042b6ccf86ae1d2
+msg = 73c179acc26ffd0710b6cb3f73570702c9c059bf685614bb0ba7973ab875ff882d9aeecea4ef452c8893224472cfa5b61c
+result = valid
+tag = b7d1e63fae54638082a9cb58c69fac9efcbee174
+
+# tcId = 24
+# long message
+key = f61c1a878550d27aa459b3016b31731b89630d36
+msg = 82b378d40ca04ad478a980d7b46e56c9967bc4e110a7add8bcbda411c12de384f41324e9df888d81702ff2b9e8752986ba081363eacc2e396f6b5fb01bf842358f0145d569d34fb3b4e24ee9dc9103284d743c52ea8661504b2db42f221b6d49b605fde34aa555e33ab0a140f61f3cda
+result = valid
+tag = e688199489c9d3938f2e33d7cb3fc81bad4ffb8c
+
+# tcId = 25
+# long message
+key = 8c29eb661fb633087f2452d057f98d553d2846f1
+msg = 021b968c4ce337595154d90e44229980f0e2b64776f562ea25b24881637b44375bde65e5f9418bf163e2aacd37bd10319729ac596615a35cb632e0ffc316936a68acf4c7ae3ad36026124cee6d204f10432f08157cc32c5f4bcadaee67bd42bbeb826a9e9c8af9f554f7419fb265338d22bae2190bb644b32fe9bb6a2287aa
+result = valid
+tag = f940df33b09965a3118c847c2ae1591690d0405f
+
+# tcId = 26
+# long message
+key = 6316298f3aadadc664eda2cedf17669bc80d44ae
+msg = bab807df54c009610a5c3f1e81605f6bf7d76b299d7ebdefa70f5e2e0b979011d191ead39c3bbe5dd2658347eb172950a1e03a01552bb38add33bac832b7177a77b08eb11cc1afe3ae84daffe4c4e88bc441e54e4dcbae3e0d5639f635228d811f0a043b13d5c91899c26bce2da2ddabd21b2ee668a21b454928915d6585408d
+result = valid
+tag = 23b9a6d6a9c7cef6dce537722f4557b65dcdde99
+
+# tcId = 27
+# long message
+key = f291696bf4f9655a00c9a2382bd1487342358714
+msg = 32a650b5307d94b23139be64d470ef1492d57ca7af98205bf9bce8854ba8f5204880b2e9d58ddbe2e7bb21e6e0673f5e1a39f505909227475e41c1d59c73a933b13f4b07a75cb9f3279cc3bf61a6c09e3b9f755907491b9e745bfda58ad4e2304ff7525b41507a51a2fd664a2ee98cea00148a3663d77c47beb055bd45e7df48f6a0ce66c0a2d9a848761a4575d195d74eef5bb78c0993557a25ad7ca32e0a96b2518d9d8a180f357402a44217f1e36a9138c0909faffd0e9a907048584bb03a4e06fc69c463f39542dd2c7c81467d3728481bbf6bb60259604aa33a2d4c6195012fdc7aec99e2175aeb2d0c1f680964d63ee11418cd4d26e77ec131108417
+result = valid
+tag = 3346bf23e52231a4aed773fd73e58d918580ede5
+
+# tcId = 28
+# Flipped bit 0 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 07e8ad50fc1035823661d979e2968968cecd03d9
+
+# tcId = 29
+# Flipped bit 0 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e5641600cedd7e12063deaea0788785f56113520
+
+# tcId = 30
+# Flipped bit 1 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 04e8ad50fc1035823661d979e2968968cecd03d9
+
+# tcId = 31
+# Flipped bit 1 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e6641600cedd7e12063deaea0788785f56113520
+
+# tcId = 32
+# Flipped bit 7 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 86e8ad50fc1035823661d979e2968968cecd03d9
+
+# tcId = 33
+# Flipped bit 7 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 64641600cedd7e12063deaea0788785f56113520
+
+# tcId = 34
+# Flipped bit 8 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 06e9ad50fc1035823661d979e2968968cecd03d9
+
+# tcId = 35
+# Flipped bit 8 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e4651600cedd7e12063deaea0788785f56113520
+
+# tcId = 36
+# Flipped bit 31 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 06e8add0fc1035823661d979e2968968cecd03d9
+
+# tcId = 37
+# Flipped bit 31 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e4641680cedd7e12063deaea0788785f56113520
+
+# tcId = 38
+# Flipped bit 32 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 06e8ad50fd1035823661d979e2968968cecd03d9
+
+# tcId = 39
+# Flipped bit 32 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e4641600cfdd7e12063deaea0788785f56113520
+
+# tcId = 40
+# Flipped bit 33 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 06e8ad50fe1035823661d979e2968968cecd03d9
+
+# tcId = 41
+# Flipped bit 33 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e4641600ccdd7e12063deaea0788785f56113520
+
+# tcId = 42
+# Flipped bit 63 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 06e8ad50fc1035023661d979e2968968cecd03d9
+
+# tcId = 43
+# Flipped bit 63 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e4641600cedd7e92063deaea0788785f56113520
+
+# tcId = 44
+# Flipped bit 64 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 06e8ad50fc1035823761d979e2968968cecd03d9
+
+# tcId = 45
+# Flipped bit 64 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e4641600cedd7e12073deaea0788785f56113520
+
+# tcId = 46
+# Flipped bit 71 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 06e8ad50fc103582b661d979e2968968cecd03d9
+
+# tcId = 47
+# Flipped bit 71 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e4641600cedd7e12863deaea0788785f56113520
+
+# tcId = 48
+# Flipped bit 77 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 06e8ad50fc1035823641d979e2968968cecd03d9
+
+# tcId = 49
+# Flipped bit 77 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e4641600cedd7e12061deaea0788785f56113520
+
+# tcId = 50
+# Flipped bit 80 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 06e8ad50fc1035823661d879e2968968cecd03d9
+
+# tcId = 51
+# Flipped bit 80 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e4641600cedd7e12063debea0788785f56113520
+
+# tcId = 52
+# Flipped bit 96 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 06e8ad50fc1035823661d979e3968968cecd03d9
+
+# tcId = 53
+# Flipped bit 96 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e4641600cedd7e12063deaea0688785f56113520
+
+# tcId = 54
+# Flipped bit 97 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 06e8ad50fc1035823661d979e0968968cecd03d9
+
+# tcId = 55
+# Flipped bit 97 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e4641600cedd7e12063deaea0588785f56113520
+
+# tcId = 56
+# Flipped bit 103 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 06e8ad50fc1035823661d97962968968cecd03d9
+
+# tcId = 57
+# Flipped bit 103 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e4641600cedd7e12063deaea8788785f56113520
+
+# tcId = 58
+# Flipped bit 152 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 06e8ad50fc1035823661d979e2968968cecd03d8
+
+# tcId = 59
+# Flipped bit 152 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e4641600cedd7e12063deaea0788785f56113521
+
+# tcId = 60
+# Flipped bit 153 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 06e8ad50fc1035823661d979e2968968cecd03db
+
+# tcId = 61
+# Flipped bit 153 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e4641600cedd7e12063deaea0788785f56113522
+
+# tcId = 62
+# Flipped bit 158 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 06e8ad50fc1035823661d979e2968968cecd0399
+
+# tcId = 63
+# Flipped bit 158 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e4641600cedd7e12063deaea0788785f56113560
+
+# tcId = 64
+# Flipped bit 159 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 06e8ad50fc1035823661d979e2968968cecd0359
+
+# tcId = 65
+# Flipped bit 159 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e4641600cedd7e12063deaea0788785f561135a0
+
+# tcId = 66
+# Flipped bits 0 and 64 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 07e8ad50fc1035823761d979e2968968cecd03d9
+
+# tcId = 67
+# Flipped bits 0 and 64 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e5641600cedd7e12073deaea0788785f56113520
+
+# tcId = 68
+# Flipped bits 31 and 63 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 06e8add0fc1035023661d979e2968968cecd03d9
+
+# tcId = 69
+# Flipped bits 31 and 63 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e4641680cedd7e92063deaea0788785f56113520
+
+# tcId = 70
+# Flipped bits 63 and 127 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 06e8ad50fc1035023661d979e29689e8cecd03d9
+
+# tcId = 71
+# Flipped bits 63 and 127 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e4641600cedd7e92063deaea078878df56113520
+
+# tcId = 72
+# all bits of tag flipped
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = f91752af03efca7dc99e26861d6976973132fc26
+
+# tcId = 73
+# all bits of tag flipped
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 1b9be9ff312281edf9c21515f87787a0a9eecadf
+
+# tcId = 74
+# Tag changed to all zero
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 0000000000000000000000000000000000000000
+
+# tcId = 75
+# Tag changed to all zero
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0000000000000000000000000000000000000000
+
+# tcId = 76
+# tag changed to all 1
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = ffffffffffffffffffffffffffffffffffffffff
+
+# tcId = 77
+# tag changed to all 1
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = ffffffffffffffffffffffffffffffffffffffff
+
+# tcId = 78
+# msbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 86682dd07c90b502b6e159f9621609e84e4d8359
+
+# tcId = 79
+# msbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 64e496804e5dfe9286bd6a6a8708f8dfd691b5a0
+
+# tcId = 80
+# lsbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 07e9ac51fd1134833760d878e3978869cfcc02d8
+
+# tcId = 81
+# lsbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e5651701cfdc7f13073cebeb0689795e57103421
+
+[keySize = 160]
+[tagSize = 80]
+
+# tcId = 82
+# empty message
+key = 5ece0769742feabb6644469c9b264326b3deb126
+msg = 
+result = valid
+tag = 344f8351f1d2773cae9e
+
+# tcId = 83
+# short message
+key = 4ee9f9a93b2ddfe551281b397ccef844fc21af3a
+msg = 2d
+result = valid
+tag = 3aab1a2c9a2f2b8ac840
+
+# tcId = 84
+# short message
+key = dfeebe9a5c181afc605ff63b22bf349ebdb6c7fb
+msg = a5f3
+result = valid
+tag = c3b7152230dacae4ef48
+
+# tcId = 85
+# short message
+key = c5147ecd59b7d42315d5e3a55ec8b3a320c8d615
+msg = 371777
+result = valid
+tag = 0abb78a2c67c565f89b1
+
+# tcId = 86
+# short message
+key = db0da5659ba69ce195a69524508e437c688f7147
+msg = 4ef4ec44
+result = valid
+tag = 4062faeb0b406698b740
+
+# tcId = 87
+# short message
+key = 495d6c1191852ecaf0573e6a77610c32acf5a117
+msg = 1566ae63ce
+result = valid
+tag = 45cbefcd9c7eeee37ae5
+
+# tcId = 88
+# short message
+key = e5cfe7dc67514c4c75d28bb805d0700bdea0d669
+msg = af1a6b15b622
+result = valid
+tag = e867269d506a37e8a62d
+
+# tcId = 89
+# short message
+key = cf1b8b902512186e38c38165d6e587bceecae87f
+msg = a59512152c7221
+result = valid
+tag = 1a125b21412cdc596894
+
+# tcId = 90
+# short message
+key = d0157fb40c7739ae506aad7de60f32ccc3325583
+msg = 1292df8d53d16f3c
+result = valid
+tag = 9224f11bff0e49b9aa95
+
+# tcId = 91
+# short message
+key = fd55b81edd55a15bff409129e9930f1ba1763c33
+msg = 05220a6997533c699b
+result = valid
+tag = 3b2d07dc8ca206ba16c4
+
+# tcId = 92
+# short message
+key = 079937cf3bd42864d5b15c62bdd92f275597316d
+msg = 5ac13ce1b1f77724e281
+result = valid
+tag = 0c24afcdadd8538977b1
+
+# tcId = 93
+# short message
+key = 545b13e1f39f0b7ca9252bc596277278166ad410
+msg = 08a7bc90732d54381b6e30
+result = valid
+tag = 9bf7f121365a82c2ac69
+
+# tcId = 94
+# short message
+key = 25385e9f89b66098ee8162aeca03bb45b313561f
+msg = bff236aad71fb5daf7fc43b8
+result = valid
+tag = 44db86e7a1476226dd86
+
+# tcId = 95
+# short message
+key = 9b68139d93a88fe34cf9f83006c03b3164b60468
+msg = ad672b9719c10863fd6fa8db88
+result = valid
+tag = 2d17a88d87aae7dbaced
+
+# tcId = 96
+# short message
+key = c3b785915e137544dac542cb4bdb16d53036fb11
+msg = f8c1edb469b93c073b6f6bf74cca
+result = valid
+tag = 16713d61fbb4149f500b
+
+# tcId = 97
+# short message
+key = da67475185b3615055f971819db27871b23c75d0
+msg = a176533319bee5e43d8f0eafb77bb3
+result = valid
+tag = fceece892852d4a26070
+
+# tcId = 98
+key = 0cf146ca7a254db1e001a29ad03c5e6dcbe7140a
+msg = a83df5d099854eb6ead7031c51460357
+result = valid
+tag = 9bcf7513206e27a4697d
+
+# tcId = 99
+key = e038dff028227dc4b4d7453db3070108465dd5b2
+msg = 7ae4e30834db449e4244a9fc0322193e7a
+result = valid
+tag = 9aa8544a9afdd920c0f2
+
+# tcId = 100
+key = b399fcfd1ad32140879aa0556ac34d8b5ac267f2
+msg = 0e3f0fc5cb1456fede99f86a056f640b8f5e5e1b612f25f6
+result = valid
+tag = fa095c6faed0f086b215
+
+# tcId = 101
+key = 2bf7d201ef44241a22ae4b81aab910d22c2db918
+msg = aa0afaf3af36548227349adcfcb6bf998a7fa78d29b87a0f50609c42edcdb3dd
+result = valid
+tag = 708ec45d410b1fe075c8
+
+# tcId = 102
+# long message
+key = 48ccc3907c3612a18294fddf2660e33d9cb787fc
+msg = edbb680243a825068eefe5ba184e5eed4b7f85ca3b511a42d655be3e05d8ff124541b3d56a10a35cff8da8b6229ac1
+result = valid
+tag = 3cb7fce20df8385cf6bb
+
+# tcId = 103
+# long message
+key = 227d796b7867409db3de1ffa3cfe376704044f01
+msg = b6393ab18376c025e2d8e00ca774a51aec19dc4a89cf6a9f8fc4aba81d73b3907efef1a0d018a53cb8b8ca1032e31583
+result = valid
+tag = 525387c81c2ab67aca74
+
+# tcId = 104
+# long message
+key = 5718e700c48a7971350d8a11b37754ae55a9aad2
+msg = cc95286e9b3ca936191aff8731e6a17806a0958b0b1a39977c46395240641e97d5395a9c8a9d36281eba825a94e8b1ad79
+result = valid
+tag = e54782110d40efb54343
+
+# tcId = 105
+# long message
+key = f56aa792795eb03ae0990440714ab16cc4ad18c3
+msg = 7a024d995addd38d967bc3b41641738b69897d8c52b7aff961a700cb68fa7481da0a3690a151ce09c95b4da60f7cf28990017292893bbb2f81a4dda45fe8639877ac5abaebbe00c1fd179eaaf7dfb4d50929371b9ab8b7d3531a63ab188d7b99160060475c33e83351f65d5e329ee8bf
+result = valid
+tag = 1e2205d17ad4de3f1ec1
+
+# tcId = 106
+# long message
+key = 00be0034d32699b1335d8d4e506235ee4f07bef6
+msg = 639e828d88bf0642be0a541b1c3fca07609eb98d23a8b2cd4e60e139515e4ff440dfda1bc19392feffed74164d6a9d8f5bafe53fd397cb5ee1dcdf9bfc86169f1bc38ba57f88d7e8c6728c35fc07128ab6c396bb3ef3c14d13a05f8c3453353e850dc1b291ac7061ab52f121663f18b024e5cc0068328c88f52c20cd21793a
+result = valid
+tag = 6e98973d3a775ac508e7
+
+# tcId = 107
+# long message
+key = c5baa750a8424450f1b4d453c58e29c462e52639
+msg = 137c7227a192bed26d08da886430f010094243b5c4686e6831e48db450045aa1d7e3aecf193eaaa1a73905f5f1190659a43ed4d10bfca5668ebeb343b21ff71d0737f81f67392b6459aa95f9441f699bf45fee24867a98a8a6c57f972abe3e400fd64ce3e5b48622a0e99e08d424250fa00ed0dfa1193f936c78af276a4b442b
+result = valid
+tag = 490dfd2d5e6ea130f6a1
+
+# tcId = 108
+# long message
+key = 6bd486ce934c2f5fe38a19423d257bc5d808e367
+msg = b8a684ada0a01405614b1fa66ebab8b0356e33b889b81b3eb68d13b05c4e60c724785e634c4ec0081cc6bbdf213db7254f92c0a858bfcc3d63a4e4dfd9e75bd4839ac05751c23cb59945f4c3660d2b3009f5b08a596bdc33070244bceea11180ac0906404518b09d5d8612e0d8e69f4b9e55bbc053b56574711b02956db3f3bd8f6c42065871255854a161e57100adb82cba79893aad715dc3df1488b3edb56e58b89c0be3cfab09a3df40524d2d3251b0fcf7faabfc75f50026795060c1d62872574a769e3da0e19af1b5e25514ae17a160c8d1eb253c9f66ec3df789ec0c6c704a9e2fe8ef7e9bf8e8164f86d09d2a23698733a8e40a279cd5fe02c295ff
+result = valid
+tag = a594d26d98b53b4063b2
+
+# tcId = 109
+# Flipped bit 0 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 07e8ad50fc1035823661
+
+# tcId = 110
+# Flipped bit 0 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e5641600cedd7e12063d
+
+# tcId = 111
+# Flipped bit 1 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 04e8ad50fc1035823661
+
+# tcId = 112
+# Flipped bit 1 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e6641600cedd7e12063d
+
+# tcId = 113
+# Flipped bit 7 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 86e8ad50fc1035823661
+
+# tcId = 114
+# Flipped bit 7 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 64641600cedd7e12063d
+
+# tcId = 115
+# Flipped bit 8 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 06e9ad50fc1035823661
+
+# tcId = 116
+# Flipped bit 8 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e4651600cedd7e12063d
+
+# tcId = 117
+# Flipped bit 16 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 06e8ac50fc1035823661
+
+# tcId = 118
+# Flipped bit 16 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e4641700cedd7e12063d
+
+# tcId = 119
+# Flipped bit 17 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 06e8af50fc1035823661
+
+# tcId = 120
+# Flipped bit 17 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e4641400cedd7e12063d
+
+# tcId = 121
+# Flipped bit 23 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 06e82d50fc1035823661
+
+# tcId = 122
+# Flipped bit 23 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e4649600cedd7e12063d
+
+# tcId = 123
+# Flipped bit 31 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 06e8add0fc1035823661
+
+# tcId = 124
+# Flipped bit 31 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e4641680cedd7e12063d
+
+# tcId = 125
+# Flipped bit 32 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 06e8ad50fd1035823661
+
+# tcId = 126
+# Flipped bit 32 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e4641600cfdd7e12063d
+
+# tcId = 127
+# Flipped bit 33 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 06e8ad50fe1035823661
+
+# tcId = 128
+# Flipped bit 33 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e4641600ccdd7e12063d
+
+# tcId = 129
+# Flipped bit 63 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 06e8ad50fc1035023661
+
+# tcId = 130
+# Flipped bit 63 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e4641600cedd7e92063d
+
+# tcId = 131
+# Flipped bit 64 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 06e8ad50fc1035823761
+
+# tcId = 132
+# Flipped bit 64 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e4641600cedd7e12073d
+
+# tcId = 133
+# Flipped bit 71 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 06e8ad50fc103582b661
+
+# tcId = 134
+# Flipped bit 71 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e4641600cedd7e12863d
+
+# tcId = 135
+# Flipped bit 72 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 06e8ad50fc1035823660
+
+# tcId = 136
+# Flipped bit 72 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e4641600cedd7e12063c
+
+# tcId = 137
+# Flipped bit 73 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 06e8ad50fc1035823663
+
+# tcId = 138
+# Flipped bit 73 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e4641600cedd7e12063f
+
+# tcId = 139
+# Flipped bit 77 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 06e8ad50fc1035823641
+
+# tcId = 140
+# Flipped bit 77 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e4641600cedd7e12061d
+
+# tcId = 141
+# Flipped bit 78 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 06e8ad50fc1035823621
+
+# tcId = 142
+# Flipped bit 78 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e4641600cedd7e12067d
+
+# tcId = 143
+# Flipped bit 79 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 06e8ad50fc10358236e1
+
+# tcId = 144
+# Flipped bit 79 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e4641600cedd7e1206bd
+
+# tcId = 145
+# Flipped bits 0 and 64 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 07e8ad50fc1035823761
+
+# tcId = 146
+# Flipped bits 0 and 64 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e5641600cedd7e12073d
+
+# tcId = 147
+# Flipped bits 31 and 63 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 06e8add0fc1035023661
+
+# tcId = 148
+# Flipped bits 31 and 63 in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e4641680cedd7e92063d
+
+# tcId = 149
+# all bits of tag flipped
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = f91752af03efca7dc99e
+
+# tcId = 150
+# all bits of tag flipped
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 1b9be9ff312281edf9c2
+
+# tcId = 151
+# Tag changed to all zero
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 00000000000000000000
+
+# tcId = 152
+# Tag changed to all zero
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 00000000000000000000
+
+# tcId = 153
+# tag changed to all 1
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = ffffffffffffffffffff
+
+# tcId = 154
+# tag changed to all 1
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = ffffffffffffffffffff
+
+# tcId = 155
+# msbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 86682dd07c90b502b6e1
+
+# tcId = 156
+# msbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 64e496804e5dfe9286bd
+
+# tcId = 157
+# lsbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 
+result = invalid
+tag = 07e9ac51fd1134833760
+
+# tcId = 158
+# lsbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f10111213
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = e5651701cfdc7f13073c
+
+[keySize = 80]
+[tagSize = 160]
+
+# tcId = 159
+# short key
+key = 1d9535a0daea9dfe443a
+msg = 
+result = valid
+tag = 7436089fede3291c0c421c9ad13c357ec8660bae
+
+# tcId = 160
+# short key
+key = f5c2c420c6f056467fca
+msg = bc8a29f52e57581cb89a86e5d644a14d
+result = valid
+tag = 1eb76df7235c52371d86113f5423628b2eb7c3d5
+
+# tcId = 161
+# short key
+key = e59b0276e27a0abc75f1
+msg = 061ca1a1af51c5133728c414f9646b3f50223e9b2055707032e754dc1d31964b
+result = valid
+tag = 2081260f65316df2956aac723a9bd7d2225a8669
+
+[keySize = 80]
+[tagSize = 80]
+
+# tcId = 162
+# short key
+key = b18aba1171cc2ffc7d58
+msg = 
+result = valid
+tag = deeb3d6d81e33d1cad21
+
+# tcId = 163
+# short key
+key = 23082066e8c45da82fc6
+msg = 06c19c6ee4d2f015769f6d46eb46d6b4
+result = valid
+tag = 747cd928e8831917c855
+
+# tcId = 164
+# short key
+key = a6fa1e04df38a78667eb
+msg = 51a4ea38e5566d6fd803aec5e073e087e9ae00d37d4a98d559074ebffc7658b7
+result = valid
+tag = ec8c200c1ddad6d3aad0
+
+[keySize = 520]
+[tagSize = 160]
+
+# tcId = 165
+# long key
+key = ab92e2cd40e00b40c4442dd7671c067c7792af28e60f2585e87f163bf3bdfca7f553cec71b0065025500c48e2070984ad9e24e733107ebfde27164a4828981ac20
+msg = 
+result = valid
+tag = 7a29b47ff6ae90c99573d8c922a23e83a62b66bc
+
+# tcId = 166
+# long key
+key = 3b47a5d5b72babe116e61919600cb980c904c298ab91fae3db9c82b0f38a18888bc05a418d65d68f8850937559bb37325bce04d0e5d175a24fea309895f5705ad7
+msg = d71862028fcaf13422bf32ac0c5f079b
+result = valid
+tag = 8019231e77aca645182670cadf887afd4b4115a7
+
+# tcId = 167
+# long key
+key = 6e6c43df9bb6c6b8fe414a183e738508f0aca41d5beef6df1b260c39e1979b54683622a4d53354231bef6c35e129f85f822ba09198aa30c65ee60e4202de8cd102
+msg = 98f0a4b9a36e173d89730a3b370777c499b4cff2846f50bfb88fbbbc547cbae4
+result = valid
+tag = d1653c90fc591e3a3c285a3be8b12ca9b2121e88
+
+[keySize = 520]
+[tagSize = 80]
+
+# tcId = 168
+# long key
+key = 4f00fd17ae82a6252ada98280bbd895d743fc4c20bc9e615d8a786c79e454c2b1341e24254fa0371fac86e7c0ef1a7df5c16f3b3569fda112cca8685faecbb8923
+msg = 
+result = valid
+tag = 6802ca52be056d66b9a0
+
+# tcId = 169
+# long key
+key = d22ec568909990c213679f7072eaf19763508ebde6962c75e7429c5f2454d4b5472811eea8e02fdc89ec386bc6f41d2ad8a91d116b2cbc52b80d357127d1555a66
+msg = f71b43e0cc64b5409e6501ca55a8d450
+result = valid
+tag = d492a296860cc5a89c5f
+
+# tcId = 170
+# long key
+key = bcf6ad6e5c7e2200299ea8602efb42b409292346f78a0e57a789ba17b17ed608e88497e2bb4ebbbb3ce7750d222b3bdf848d4dc8d49b5b60378fb93ce3f66ab4eb
+msg = 586f5ddbc372c0711b77e4b87d345d62b6de55a1ce6fa18de3346c86be5cec6e
+result = valid
+tag = 1de9aefcc53130245a6e
+
diff --git a/third_party/wycheproof_testvectors/hmac_sha224_test.txt b/third_party/wycheproof_testvectors/hmac_sha224_test.txt
new file mode 100644
index 0000000..15bacda
--- /dev/null
+++ b/third_party/wycheproof_testvectors/hmac_sha224_test.txt
@@ -0,0 +1,1220 @@
+# Imported from Wycheproof's hmac_sha224_test.json.
+# This file is generated by convert_wycheproof.go. Do not edit by hand.
+#
+# Algorithm: HMACSHA224
+# Generator version: 0.8rc21
+
+[keySize = 224]
+[tagSize = 224]
+
+# tcId = 1
+# empty message
+key = 7eef1e40253350eb9307cc6bd8ab8df434bc2faf7095e45b50ffdd64
+msg = 
+result = valid
+tag = 45b466021214d19245506900532f5272f44b5ad9b3d829f0f5c2108c
+
+# tcId = 2
+# short message
+key = 8648ee936c6ebc5ae4bb48c1139a54e3ac5d897beec492dc4d740752
+msg = 2e
+result = valid
+tag = 5b72e3208679e63f929e6ee19a257d0555f21484c7caac7c9861be43
+
+# tcId = 3
+# short message
+key = 2297d78cc45faf9b885b36ac80205cc08e1b730f264f23f4edbbb406
+msg = 329f
+result = valid
+tag = 2e7a81c4e29a435d91e95f37fb0a62fbe9a69e061f416c1ad17a7fca
+
+# tcId = 4
+# short message
+key = 0361a904f7cbd107a617614ab69d11208ee6d423b3ae90e2bb6d7e54
+msg = e6e765
+result = valid
+tag = bbfa7ff960931e2f5ed8c925cd74272990e755f31422e5c858995b73
+
+# tcId = 5
+# short message
+key = 264a8d2128e8fd0972d9acc66dc275b1286beeb0aff7ce8e97c7b96c
+msg = 25838e50
+result = valid
+tag = b25c33bba1a91024f42cfb93232ad685d54be2ca310b0ff9ba5107b8
+
+# tcId = 6
+# short message
+key = 6dde8828f09b7aa981082aa116fca3b7341721c0440803f52cc9732e
+msg = be81602da7
+result = valid
+tag = e510fbf14bd7301f751cc0ae89f8725a7654ebbba6bb2f741626471d
+
+# tcId = 7
+# short message
+key = 3ba156ffdc55d155bd085105aca64d13044db60c82cf2cd9d61d098f
+msg = 69c76c8937a0
+result = valid
+tag = a9d38740245038d9c23cbb59ba6513f7034d8047a07a904a2a23d2fc
+
+# tcId = 8
+# short message
+key = 9c2739bae2a863fb0236466ba3408f4eec8d43206d56bb7aa2f8f75e
+msg = aaf4c9146db948
+result = valid
+tag = 2110393c6ba01f53be203533fbc5471fc8f04940fe912411564ba36e
+
+# tcId = 9
+# short message
+key = 31d9cae2c3df064018209b121f9e883976ea757942ecda9d92fdadfd
+msg = b844289529206f5a
+result = valid
+tag = 1f1ddb8680b0d99893c498a772a7bea63c2e08c0257a7f31e3db2b88
+
+# tcId = 10
+# short message
+key = 89a1b9e9004444c1d4e967570c21a05512d3f618ec168fc3e13ea5a2
+msg = 6b42eb6d84e90c70c2
+result = valid
+tag = 3b6f3b09e03424c8adc267fccefaf614db6d74977754fcad8a8d1a9b
+
+# tcId = 11
+# short message
+key = 4398731752fd7af1db86ebccbee0ad65eb5faf00ace6c9aa35441faa
+msg = 1ae2e7d917c48026570d
+result = valid
+tag = 5f1948336953337c381d449c17ab5c327c86121a8b1e0db19f624e3f
+
+# tcId = 12
+# short message
+key = 339460d6bb26ca60ebcef10c38587b9e575c398491782ccf9e8f6803
+msg = ca03eb4f37536b2377738e
+result = valid
+tag = 51c5661c31fc7edd09de60c91957036824a19761bcc54f1e93c43c3c
+
+# tcId = 13
+# short message
+key = 025f8380d10b8207b3623e4a90f79c3e753b1be6a35b88b68330a40c
+msg = e57daef9ede4e915c3a9eece
+result = valid
+tag = 8afdb371714e9d6063ec9e43c8cd55e1c032b2fda57f91e9ec0f6601
+
+# tcId = 14
+# short message
+key = 0bdc5f51f8a1a35d75554be70efbcdf51e54f30fa4696f727431941f
+msg = cc3dd1eb0690f7af09ad408f9c
+result = valid
+tag = c0918951c3422b48502635b6e58c5dcee9fea51c9dce5c7c215c9b93
+
+# tcId = 15
+# short message
+key = 5ada97d90a74a7d4a68c5464fff25a9b7fa2e75d6acf0a59f143a2e9
+msg = 3fe4ede158af108e09f543e14ab7
+result = valid
+tag = 180a6b8814ae34228ae9ac76da8379376aae6f1aa0102e8f06b022dc
+
+# tcId = 16
+# short message
+key = 007afe6b7c0701c30cb76b431afa3510c8b31d21cfe0bbaa5289cd08
+msg = c2cf80005c591c1f737369fcc212f0
+result = valid
+tag = fbfdb450a42f9a4154146f73c590a0ee9187af8505d60790a9615447
+
+# tcId = 17
+key = 26491168a32ce8cbc4c0cd64107e4fcc432f07d59c992862e1e55b1e
+msg = 15e51091b4f424ba1fdecb5e2fba11f6
+result = valid
+tag = 3fa99ee160328fddc47a7c5043e9ef645b8b07462b71cad58a024517
+
+# tcId = 18
+key = 6978b6c134dd6949832d65e4cb9c1e1dc36beae4a134907c80da0f44
+msg = 6641d834b3fbfdb5d178007801f7b4e7b1
+result = valid
+tag = 61387230446f31fde8552f22ec52a7fef82e16d0ad399de939d8229b
+
+# tcId = 19
+key = 9f9fb280adf12e739548b1d676cb794d685b9104e63b619b055cb60f
+msg = 91513dd6de40a1c23f8d1eb0ab8f5ea6f6835506ec750894
+result = valid
+tag = e6b92f9c030270897c5d27162a5d40f6d373ff136105d1a90e0f9a60
+
+# tcId = 20
+key = 3b1b16e6dd2e69559dbeb964e10fc94c068471b2374d3a2d24d2d466
+msg = 8ecd55b56c668dcb8e8b1efd699c0e4a464204d29af140f87d3f5075495378a3
+result = valid
+tag = 175856b8f56a8c6fbebc36541771545046bb416254f01ff11a218d2e
+
+# tcId = 21
+# long message
+key = fc296398845063e661bdf36ff3615926eaccbf06947cd31e6677f710
+msg = 62bd0ad75d64c554cb2cc109c6e4019fc601c61cabdf99f8de871edc17a301b4c1f55a15ed66f91eb4666dd08bc59c
+result = valid
+tag = b7cf741cf96d6bf57d216c43611c20869ca0d008a4542f5c850605bc
+
+# tcId = 22
+# long message
+key = 6c98d1feafff9861351966bc6ed19ed467f9dc767fa0df6b56955554
+msg = e99d51a1d9a25c5842501a5383133578c8debe501581b1610f7575519bbd26f01ab7cbe069bfd5df3699a2fea5b461a3
+result = valid
+tag = 0fe64fdd912966a6542069a22bfd084b484c015cf434d86bca15cdb6
+
+# tcId = 23
+# long message
+key = 42a164f94e33d574118e0f8c938bbc2874bab219ee7a179f21e13b02
+msg = e895639631f8b5d48e3ce00eb310bf129976ffced96a6f30a09d6ac1c291f73e93690526d86cc4d1a8e21c11f5a8979308
+result = valid
+tag = 1ea982226e8d4cb7b07922158e535af2233b4c4d39d26b062d6d2aae
+
+# tcId = 24
+# long message
+key = c1b5b91210667e72aa510346e1811358815a3330c5ed27a695c39451
+msg = bf1086c3ea8b8840418c690c92152c73a6730bd1a0210c8b1d25c43a2193e739684f04a25a52cc305599f22ba6f70c8ed00d10b914a9522a25e06c471ebca2ff1bb4fa6799b85122020978dfa66ef12ed26ad38331b26eaf591afceac96d8c771eae50fb7f46242337dd0029f4813b53
+result = valid
+tag = 4f355edbe6a3c93fa7add384be899bb4fb55385a78812a26cb64e44f
+
+# tcId = 25
+# long message
+key = 4f09d14d40e475b68288c080668ebb1bc8c6be3191f6664d91a23fcd
+msg = ae8b6ecc219b368d22fb596e42652d0bffee0b20d69cfd089ce3dc9303ba2f054ccaf5f5147c7968a028b140f5e3c9274eae2afc61c3bb6298dc598df77dec1cd2dd84212693b082b8132ad0f0b19f66db69fa7f6bf352b4feac724ce048440d2a42b44d53bb62fe2ab25f7f54bedf9ce7ddafd8e09330dacc6d52ee9b65f5
+result = valid
+tag = 29ba268103019e158a35614c80780fda3f5ec3fc32c80aaa27b4025d
+
+# tcId = 26
+# long message
+key = 613f414cd94130bb8a6243e12eccd90836808428b4a7177867934da0
+msg = f696b9063b64816a45064f48ca05ffe4d5cc3d0b3beb0dd4057b6ada994969bf039bfbb72ce197101cc4e4b3959b3702f045afb7fb3113c997606dcaf2aaab31e02ac6ee597dfc0f9143d0effedc9ae7ea10e7ddb1db860a91afec62c48ed9c0a6c10b4da1de748caf7f7a5e01799ac57090daf4e3352fe859c5131c205d262d
+result = valid
+tag = 8129e2093070168a20899793a04447a7ef01ae723419256a8cb42f6d
+
+# tcId = 27
+# long message
+key = 5b88275307aaf691a0cf0c51f50553dda972d14f8afff98e62c2d972
+msg = 57e4efbde1ce9fee2e29db19dfc6ba3bcb17f33765af7f20133bbd1910d542145c7def187a304517b8d8954454a90a717f67f9c8cc587965fd9b43f41ecc50b3458d8ce9f66b475f1eaef4a29ba89a3d58e5011c92acd1536fcd18abec29411b389b64f7f344777ed6deae32127abaa69a50ba22a11d6e59354f2ff0e3c3e3293cdc335411cf55b180bab59da36903a6fba91df34d2aadf7017ff49a4fbd73c9c74469f225dafc0a0c7048c2b824cc0cba8cad8aced11b8cdac3243cdb5b654f7a15ce2014e92ee287d06904d778512a1b1f5ec0c9b090b9ab439c44266b6be3d6a98947d26d079e4f7e849f3c6d93de98624e6c5f53ec02dbd368bc24a300
+result = valid
+tag = 657dd04b970219edd63abf9d4aa108474aa316b6bb66bca76ed806c6
+
+# tcId = 28
+# Flipped bit 0 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6f99e862e532e8936d78b5f02909b130ab09806b2af02f7cb9d39d12
+
+# tcId = 29
+# Flipped bit 0 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0c216faedf3053cd51fcaf417222c8f144abd5f2f7fa00ab4667d88a
+
+# tcId = 30
+# Flipped bit 1 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6c99e862e532e8936d78b5f02909b130ab09806b2af02f7cb9d39d12
+
+# tcId = 31
+# Flipped bit 1 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0f216faedf3053cd51fcaf417222c8f144abd5f2f7fa00ab4667d88a
+
+# tcId = 32
+# Flipped bit 7 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = ee99e862e532e8936d78b5f02909b130ab09806b2af02f7cb9d39d12
+
+# tcId = 33
+# Flipped bit 7 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 8d216faedf3053cd51fcaf417222c8f144abd5f2f7fa00ab4667d88a
+
+# tcId = 34
+# Flipped bit 8 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6e98e862e532e8936d78b5f02909b130ab09806b2af02f7cb9d39d12
+
+# tcId = 35
+# Flipped bit 8 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0d206faedf3053cd51fcaf417222c8f144abd5f2f7fa00ab4667d88a
+
+# tcId = 36
+# Flipped bit 31 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6e99e8e2e532e8936d78b5f02909b130ab09806b2af02f7cb9d39d12
+
+# tcId = 37
+# Flipped bit 31 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0d216f2edf3053cd51fcaf417222c8f144abd5f2f7fa00ab4667d88a
+
+# tcId = 38
+# Flipped bit 32 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6e99e862e432e8936d78b5f02909b130ab09806b2af02f7cb9d39d12
+
+# tcId = 39
+# Flipped bit 32 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0d216faede3053cd51fcaf417222c8f144abd5f2f7fa00ab4667d88a
+
+# tcId = 40
+# Flipped bit 33 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6e99e862e732e8936d78b5f02909b130ab09806b2af02f7cb9d39d12
+
+# tcId = 41
+# Flipped bit 33 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0d216faedd3053cd51fcaf417222c8f144abd5f2f7fa00ab4667d88a
+
+# tcId = 42
+# Flipped bit 63 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6e99e862e532e8136d78b5f02909b130ab09806b2af02f7cb9d39d12
+
+# tcId = 43
+# Flipped bit 63 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0d216faedf30534d51fcaf417222c8f144abd5f2f7fa00ab4667d88a
+
+# tcId = 44
+# Flipped bit 64 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6e99e862e532e8936c78b5f02909b130ab09806b2af02f7cb9d39d12
+
+# tcId = 45
+# Flipped bit 64 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0d216faedf3053cd50fcaf417222c8f144abd5f2f7fa00ab4667d88a
+
+# tcId = 46
+# Flipped bit 71 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6e99e862e532e893ed78b5f02909b130ab09806b2af02f7cb9d39d12
+
+# tcId = 47
+# Flipped bit 71 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0d216faedf3053cdd1fcaf417222c8f144abd5f2f7fa00ab4667d88a
+
+# tcId = 48
+# Flipped bit 77 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6e99e862e532e8936d58b5f02909b130ab09806b2af02f7cb9d39d12
+
+# tcId = 49
+# Flipped bit 77 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0d216faedf3053cd51dcaf417222c8f144abd5f2f7fa00ab4667d88a
+
+# tcId = 50
+# Flipped bit 80 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6e99e862e532e8936d78b4f02909b130ab09806b2af02f7cb9d39d12
+
+# tcId = 51
+# Flipped bit 80 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0d216faedf3053cd51fcae417222c8f144abd5f2f7fa00ab4667d88a
+
+# tcId = 52
+# Flipped bit 96 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6e99e862e532e8936d78b5f02809b130ab09806b2af02f7cb9d39d12
+
+# tcId = 53
+# Flipped bit 96 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0d216faedf3053cd51fcaf417322c8f144abd5f2f7fa00ab4667d88a
+
+# tcId = 54
+# Flipped bit 97 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6e99e862e532e8936d78b5f02b09b130ab09806b2af02f7cb9d39d12
+
+# tcId = 55
+# Flipped bit 97 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0d216faedf3053cd51fcaf417022c8f144abd5f2f7fa00ab4667d88a
+
+# tcId = 56
+# Flipped bit 103 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6e99e862e532e8936d78b5f0a909b130ab09806b2af02f7cb9d39d12
+
+# tcId = 57
+# Flipped bit 103 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0d216faedf3053cd51fcaf41f222c8f144abd5f2f7fa00ab4667d88a
+
+# tcId = 58
+# Flipped bit 216 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6e99e862e532e8936d78b5f02909b130ab09806b2af02f7cb9d39d13
+
+# tcId = 59
+# Flipped bit 216 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0d216faedf3053cd51fcaf417222c8f144abd5f2f7fa00ab4667d88b
+
+# tcId = 60
+# Flipped bit 217 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6e99e862e532e8936d78b5f02909b130ab09806b2af02f7cb9d39d10
+
+# tcId = 61
+# Flipped bit 217 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0d216faedf3053cd51fcaf417222c8f144abd5f2f7fa00ab4667d888
+
+# tcId = 62
+# Flipped bit 222 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6e99e862e532e8936d78b5f02909b130ab09806b2af02f7cb9d39d52
+
+# tcId = 63
+# Flipped bit 222 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0d216faedf3053cd51fcaf417222c8f144abd5f2f7fa00ab4667d8ca
+
+# tcId = 64
+# Flipped bit 223 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6e99e862e532e8936d78b5f02909b130ab09806b2af02f7cb9d39d92
+
+# tcId = 65
+# Flipped bit 223 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0d216faedf3053cd51fcaf417222c8f144abd5f2f7fa00ab4667d80a
+
+# tcId = 66
+# Flipped bits 0 and 64 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6f99e862e532e8936c78b5f02909b130ab09806b2af02f7cb9d39d12
+
+# tcId = 67
+# Flipped bits 0 and 64 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0c216faedf3053cd50fcaf417222c8f144abd5f2f7fa00ab4667d88a
+
+# tcId = 68
+# Flipped bits 31 and 63 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6e99e8e2e532e8136d78b5f02909b130ab09806b2af02f7cb9d39d12
+
+# tcId = 69
+# Flipped bits 31 and 63 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0d216f2edf30534d51fcaf417222c8f144abd5f2f7fa00ab4667d88a
+
+# tcId = 70
+# Flipped bits 63 and 127 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6e99e862e532e8136d78b5f02909b1b0ab09806b2af02f7cb9d39d12
+
+# tcId = 71
+# Flipped bits 63 and 127 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0d216faedf30534d51fcaf417222c87144abd5f2f7fa00ab4667d88a
+
+# tcId = 72
+# all bits of tag flipped
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 9166179d1acd176c92874a0fd6f64ecf54f67f94d50fd083462c62ed
+
+# tcId = 73
+# all bits of tag flipped
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = f2de905120cfac32ae0350be8ddd370ebb542a0d0805ff54b9982775
+
+# tcId = 74
+# Tag changed to all zero
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 00000000000000000000000000000000000000000000000000000000
+
+# tcId = 75
+# Tag changed to all zero
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 00000000000000000000000000000000000000000000000000000000
+
+# tcId = 76
+# tag changed to all 1
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+# tcId = 77
+# tag changed to all 1
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+# tcId = 78
+# msbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = ee1968e265b26813edf83570a98931b02b8900ebaa70affc39531d92
+
+# tcId = 79
+# msbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 8da1ef2e5fb0d34dd17c2fc1f2a24871c42b5572777a802bc6e7580a
+
+# tcId = 80
+# lsbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6f98e963e433e9926c79b4f12808b031aa08816a2bf12e7db8d29c13
+
+# tcId = 81
+# lsbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0c206eafde3152cc50fdae407323c9f045aad4f3f6fb01aa4766d98b
+
+[keySize = 224]
+[tagSize = 112]
+
+# tcId = 82
+# empty message
+key = 26f314170b054daef5349804da18f969c94174baca2beeb009d47a23
+msg = 
+result = valid
+tag = 816d7af2475e94713f2dc3aa3069
+
+# tcId = 83
+# short message
+key = 17429a622dc18d38715b31f8f2b963108e952a6708f3e52d5b25848a
+msg = da
+result = valid
+tag = 26630777d85f777187630bb94674
+
+# tcId = 84
+# short message
+key = 0acfe12d89acd7d9ca49bae6318f35b2fbbfc84e5d2c9d4954beded7
+msg = 03a8
+result = valid
+tag = aa4c4bb63cad66ac675150f718b2
+
+# tcId = 85
+# short message
+key = 5a0680f112354bd467865b19ae956b2719e21ecee1a913bdca294339
+msg = a0fb73
+result = valid
+tag = 36c7cd3f290d1d7d332b951aa471
+
+# tcId = 86
+# short message
+key = 46fa59aa524fe30a0f4e39561b5666854440dbd970bb59925ce0ae1a
+msg = c8b2f557
+result = valid
+tag = c1a8a7d43df34d917f0cb512c57d
+
+# tcId = 87
+# short message
+key = 29efc5ab5d30e535357603f2711b6e0aa6cf4613546c23144436d213
+msg = c8d9f5b373
+result = valid
+tag = a8cc7bebef4cfcd5ac2f401a372d
+
+# tcId = 88
+# short message
+key = fe60e0322035538f2b1de9de380cde35f291deeb6e027b5d829ecd1e
+msg = 185e4cada4f4
+result = valid
+tag = 32faa154396b0b62436e6bf937ee
+
+# tcId = 89
+# short message
+key = 1bf7fcdf3742fa77991528cc1c678b98be9876a8c8c5b809beab7d9c
+msg = 9c0f34a5654279
+result = valid
+tag = 086170c46d2b0a76c61527c2d052
+
+# tcId = 90
+# short message
+key = 32533c16f792ed0acf8e9e60f54aa173937c7194b882ecc3e671009f
+msg = f968dc7a19afe339
+result = valid
+tag = 3fb4eb4450ac4b26a714bcfb224c
+
+# tcId = 91
+# short message
+key = 3cf28a476ce7eaecfc3fbf1b0859a042a568740a584c77cb8f9603ac
+msg = dbca9e4bdd84b38934
+result = valid
+tag = 2cf14eb8f4c7537e9831983bb5af
+
+# tcId = 92
+# short message
+key = a2a8090aef69277f92830ec7404c032f8fdebfbceabb9e590968a77f
+msg = 6b790a946a83364c79d7
+result = valid
+tag = d467209f63a9bd3d2c5398c305da
+
+# tcId = 93
+# short message
+key = 6f999929e91672bac35ea70f8ff8b9aeefa5489493c99b0d27797207
+msg = b7dabb237aeae2be8b5e19
+result = valid
+tag = 09b2bb6eaeda5f0229b8c35a2f54
+
+# tcId = 94
+# short message
+key = 4525b96c263e4d2dab2890aa55f3cc503dc1206d9f1915a6fba5ae61
+msg = ef858f496fcb7c3fabbfb52e
+result = valid
+tag = 6f5ca7efcb9a70d0abf8425f42ca
+
+# tcId = 95
+# short message
+key = f89401acb0a60d07fd733ed563f2ee241f4ecfea8114587a44dfdb0c
+msg = 7d3c0918085984df95097afa81
+result = valid
+tag = fc227f29b51f9c855343dcd0ea11
+
+# tcId = 96
+# short message
+key = 58bce8c0d17fc7131d2fa2262409bb14663a6e68019f88299987893e
+msg = 1ca50cd6c3f1225eb6c4ec4d6a90
+result = valid
+tag = 53e103bbded7b825affa240f8578
+
+# tcId = 97
+# short message
+key = 658e510fba4e2208afac98333f9e242bc118f6e79ef0661d619dd32b
+msg = 32c385b75ae84558ca302881c51639
+result = valid
+tag = 485f351e2a9a82910c3c949e32b8
+
+# tcId = 98
+key = 6a41cc3ca7142ae14e6d979a3f890a331597e592dd74520ce4ea660f
+msg = 78e3a770a8aaaf039fd4c9b6a1780411
+result = valid
+tag = 331a58ed96fc8b9e684ab05f636c
+
+# tcId = 99
+key = b8972b93b68302cbaa08d32904eae6375a66f3508ece3c9b22382c7e
+msg = 3687e6287d73c9e3f679a50e7671247127
+result = valid
+tag = 27d8113955026d4d318070fbfd8f
+
+# tcId = 100
+key = bc570932abfa11050ad4fc80a6d5afe3271d86aa29dc62738b207d14
+msg = d53202acd2ec74d746531bd9ad3016d0980e0166fb427a08
+result = valid
+tag = 020e3e0c2940ce15eeb67392570f
+
+# tcId = 101
+key = c92a0665c12e87026e1b344f971fdb0e474d450cba834aae40e2d21e
+msg = 4a3a85ac09f5190ab94f73fd91d98f056015263c89ed5da223fc4675cab25cdd
+result = valid
+tag = 922853f159c42b9e274fcef7bdf3
+
+# tcId = 102
+# long message
+key = 6fbef67cfbacc98c63252b1ca009a60e8e3479769a2d449fb4639064
+msg = 006e179eacfa9e1e628bb7823ee9609ae7968b6df90e176f772a79088d37e9b15cab312922aaf8fc6583a341002bda
+result = valid
+tag = 0a27a12afbb9c3136202e02ae3b2
+
+# tcId = 103
+# long message
+key = 700b09908174f1072e31ae8ccbda1c4460fcf21fdf146a11482b210d
+msg = f772564ecb109e80eefb1d5a7f1c95e203ba4c980233dd8d13de3046079a6b2ca26dc3521e5e0c807eae7a79877c73e9
+result = valid
+tag = 04c718a4cd8b583d5ffb8170276c
+
+# tcId = 104
+# long message
+key = e18a20246ebe1b5796dbfe35110efc7637d74a355f0a6758d4a00b7d
+msg = 77720dde530e6eeaa0e9af3311f7e99189d6c4f7d71d0a4207d62c766bee32020c92f5d5d28d5de4d0d9c94b57ec05f0c3
+result = valid
+tag = 25ebc8611f4b636d892f11df2b29
+
+# tcId = 105
+# long message
+key = 3c4585a775bec76c7d8b27b87e70a5863a85e6111f3161b3815f59b4
+msg = 628c0ff8c432d74f4cfb77ba46b7cef67a48ac053cf0c18be41648736abcc8c6fbe4981529babd4b27866e34ced16d8b0bec456e14653a1422f5a62556d20b0fe4e03749d5f6e986375062dbdd82f6e9e1d4ad547c31530c2a31383c25ff57e879eae99d9b3a0da1f3c1dacb975067ac
+result = valid
+tag = deb94b2d43e98926af51fc0c88dc
+
+# tcId = 106
+# long message
+key = acaf94cb1a8ff4677fc586d2bdf981ac3a656b208215e0a7647b420f
+msg = 314c2c25465de3427279dbc89436505fee6d37d56fbda0e5e2a49449d9dbf003027f2e4ef5c52f7af93fd80155a66a1cd6b9885b56d828058a0de7d247e19580b2e8dcbdef2ae46840565fd8b276569c19d7e185116ea11ad67d5fc27f4a6816ba45be5d14f3ba4315c74d1edb20f217b116be852b62a7f4e32b3e708ff9f7
+result = valid
+tag = 5b0d7aec7fbd196ee69ed373e131
+
+# tcId = 107
+# long message
+key = e490348ad78fd2cd5b51f2795b79e5805ce1d9baf1151dbdf995e1b0
+msg = f6ff1845842b9e46f79adb1079aff47397391dc269bc0c899ba4087b58a676f5408c3f7637ffc4772af3e41b5cea51058bc528ea09bb4bd797594c798b0f0ff881695e98c08bbb040c12c5cbdb228d61cc99e332e963128d06e97ed2eefded2e1b5a035f3bea68273efac03a894dcf2fcc79a5696218595404b2758deb9a80ee
+result = valid
+tag = 590727f344d8a540e5c5e0f4dae9
+
+# tcId = 108
+# long message
+key = c8e099dbb60a8f19d8b86856b21c55f3437ae27f77dff9808f12a1b5
+msg = edbc109bf28c8ab32b1238eff1cd14308cdd845fa919bfd8a00c991cf9a8d6b05dd8cc7d2393782949c899de79e771ef7d8567f32287623963048e6c80d91f0778dd63311106e9d0913c08b7a0b7253fa3ce307ac40ec55a4c445f5455a570fec090e251e8646bada1a486d41c3794bce5639732f2c6cfd58081c479a68c515f5d47bc5b2f1622a08d38a596a817f3d4efef8003ae430e6ae93b0a3ae8fa95a2ace3d24d90a9ef861dc04c13e38f6e524b3abdf9cce4fa490707c80c16e254b7a71af00a12dbf473b50b9fe4097ec00ab27e66b6f3022b0f101ee1a9f7fa8652e9f095ca240a446067446867f78e8352c4110794c2e3383dfedfb35e74a33e
+result = valid
+tag = 33e7dcb0fde3b1c5b92506e635eb
+
+# tcId = 109
+# Flipped bit 0 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6f99e862e532e8936d78b5f02909
+
+# tcId = 110
+# Flipped bit 0 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0c216faedf3053cd51fcaf417222
+
+# tcId = 111
+# Flipped bit 1 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6c99e862e532e8936d78b5f02909
+
+# tcId = 112
+# Flipped bit 1 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0f216faedf3053cd51fcaf417222
+
+# tcId = 113
+# Flipped bit 7 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = ee99e862e532e8936d78b5f02909
+
+# tcId = 114
+# Flipped bit 7 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 8d216faedf3053cd51fcaf417222
+
+# tcId = 115
+# Flipped bit 8 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6e98e862e532e8936d78b5f02909
+
+# tcId = 116
+# Flipped bit 8 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0d206faedf3053cd51fcaf417222
+
+# tcId = 117
+# Flipped bit 31 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6e99e8e2e532e8936d78b5f02909
+
+# tcId = 118
+# Flipped bit 31 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0d216f2edf3053cd51fcaf417222
+
+# tcId = 119
+# Flipped bit 32 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6e99e862e432e8936d78b5f02909
+
+# tcId = 120
+# Flipped bit 32 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0d216faede3053cd51fcaf417222
+
+# tcId = 121
+# Flipped bit 33 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6e99e862e732e8936d78b5f02909
+
+# tcId = 122
+# Flipped bit 33 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0d216faedd3053cd51fcaf417222
+
+# tcId = 123
+# Flipped bit 63 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6e99e862e532e8136d78b5f02909
+
+# tcId = 124
+# Flipped bit 63 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0d216faedf30534d51fcaf417222
+
+# tcId = 125
+# Flipped bit 64 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6e99e862e532e8936c78b5f02909
+
+# tcId = 126
+# Flipped bit 64 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0d216faedf3053cd50fcaf417222
+
+# tcId = 127
+# Flipped bit 71 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6e99e862e532e893ed78b5f02909
+
+# tcId = 128
+# Flipped bit 71 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0d216faedf3053cdd1fcaf417222
+
+# tcId = 129
+# Flipped bit 77 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6e99e862e532e8936d58b5f02909
+
+# tcId = 130
+# Flipped bit 77 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0d216faedf3053cd51dcaf417222
+
+# tcId = 131
+# Flipped bit 80 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6e99e862e532e8936d78b4f02909
+
+# tcId = 132
+# Flipped bit 80 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0d216faedf3053cd51fcae417222
+
+# tcId = 133
+# Flipped bit 96 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6e99e862e532e8936d78b5f02809
+
+# tcId = 134
+# Flipped bit 96 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0d216faedf3053cd51fcaf417322
+
+# tcId = 135
+# Flipped bit 97 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6e99e862e532e8936d78b5f02b09
+
+# tcId = 136
+# Flipped bit 97 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0d216faedf3053cd51fcaf417022
+
+# tcId = 137
+# Flipped bit 103 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6e99e862e532e8936d78b5f0a909
+
+# tcId = 138
+# Flipped bit 103 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0d216faedf3053cd51fcaf41f222
+
+# tcId = 139
+# Flipped bit 104 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6e99e862e532e8936d78b5f02908
+
+# tcId = 140
+# Flipped bit 104 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0d216faedf3053cd51fcaf417223
+
+# tcId = 141
+# Flipped bit 105 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6e99e862e532e8936d78b5f0290b
+
+# tcId = 142
+# Flipped bit 105 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0d216faedf3053cd51fcaf417220
+
+# tcId = 143
+# Flipped bit 110 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6e99e862e532e8936d78b5f02949
+
+# tcId = 144
+# Flipped bit 110 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0d216faedf3053cd51fcaf417262
+
+# tcId = 145
+# Flipped bit 111 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6e99e862e532e8936d78b5f02989
+
+# tcId = 146
+# Flipped bit 111 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0d216faedf3053cd51fcaf4172a2
+
+# tcId = 147
+# Flipped bits 0 and 64 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6f99e862e532e8936c78b5f02909
+
+# tcId = 148
+# Flipped bits 0 and 64 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0c216faedf3053cd50fcaf417222
+
+# tcId = 149
+# Flipped bits 31 and 63 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6e99e8e2e532e8136d78b5f02909
+
+# tcId = 150
+# Flipped bits 31 and 63 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0d216f2edf30534d51fcaf417222
+
+# tcId = 151
+# all bits of tag flipped
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 9166179d1acd176c92874a0fd6f6
+
+# tcId = 152
+# all bits of tag flipped
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = f2de905120cfac32ae0350be8ddd
+
+# tcId = 153
+# Tag changed to all zero
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 0000000000000000000000000000
+
+# tcId = 154
+# Tag changed to all zero
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0000000000000000000000000000
+
+# tcId = 155
+# tag changed to all 1
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = ffffffffffffffffffffffffffff
+
+# tcId = 156
+# tag changed to all 1
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = ffffffffffffffffffffffffffff
+
+# tcId = 157
+# msbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = ee1968e265b26813edf83570a989
+
+# tcId = 158
+# msbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 8da1ef2e5fb0d34dd17c2fc1f2a2
+
+# tcId = 159
+# lsbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 
+result = invalid
+tag = 6f98e963e433e9926c79b4f12808
+
+# tcId = 160
+# lsbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0c206eafde3152cc50fdae407323
+
+[keySize = 112]
+[tagSize = 224]
+
+# tcId = 161
+# short key
+key = 77b0de54e893642caeac34bfd1ab
+msg = 
+result = valid
+tag = 2014a9f272378fa1c9f6744d4db4861b52e61a19eb28320ebee2d174
+
+# tcId = 162
+# short key
+key = 7346c7e4b118b24e51f4512f906a
+msg = 506d4faf624f92965aa6b5c01e0c80a8
+result = valid
+tag = c4e0ad2f62279898a7ede0f709a1ccb8c1004941f3c5074392e79533
+
+# tcId = 163
+# short key
+key = caa864179f66e826a0ef3b5edbe3
+msg = 73f64253706ce6b5094c24ee012ece9ac2495283dcd8c7f1114e81e4587d8ea4
+result = valid
+tag = a1220745bb03d982763bfa7ce352b8bc87576a0ad5d46a0da08ff2d6
+
+[keySize = 112]
+[tagSize = 112]
+
+# tcId = 164
+# short key
+key = 663a97d6b5493dbfa60c8dd087ed
+msg = 
+result = valid
+tag = 0c6e21a85e3cd2cd413f36507d6e
+
+# tcId = 165
+# short key
+key = b08c345a7c7166fdd33ce768c1dc
+msg = 9964d80ee2338cffe28483aa446a6f76
+result = valid
+tag = aa003015309f2ed6fd7752e49c31
+
+# tcId = 166
+# short key
+key = fc9d2883c67534fefbd6ed4a9798
+msg = a49820c194a43deef11f3a0f4eaa80425439fca9d9f1d7c8e665d6b130e4e908
+result = valid
+tag = 1c2b96623c91ca9c5027f8f81ede
+
+[keySize = 520]
+[tagSize = 224]
+
+# tcId = 167
+# long key
+key = cfa639656cd49f8d70f0b1a5a056ab4fc0aeeebc91338d067f36c47b6012dc8d856b8abcc4e1abffc910aeaee21b4d366e907488ffd0ca55b36a621aee0b2e9f0c
+msg = 
+result = valid
+tag = 0ef4fedaeaab4ad52c843657047b19788a9fa91061b7a14adda8c490
+
+# tcId = 168
+# long key
+key = b36d3d47a4585b401fc64c98eff56243d4da78863063d814e88f370b92576406d447fcf3d129a1ede57ddc56ea3a0a1f100105a95e83138cdf45ecf2a5992acf90
+msg = 15c75a64b04d097af2371af380079eb8
+result = valid
+tag = 4ecb2daa5fb08dbd836e92a51e200bb230f54ac2c9778f5226b3abc9
+
+# tcId = 169
+# long key
+key = cf78b991382db5e8666ccb2333fb672179b10a75cf9e5a7699ae640005e19772ef6499a3bc97f12e58e835bb0017bb3b2e64c6ab44a0d619dfa0363484d1c991e2
+msg = f661e598f180f25dc6dd76db8a9e0e4c9c272b9665a6b1756560c723b8e08595
+result = valid
+tag = cd55cdb0c4f02b9f6148392993b18b4ff00a5e73b6f3fbf83a854aeb
+
+[keySize = 520]
+[tagSize = 112]
+
+# tcId = 170
+# long key
+key = 3772ff6bb4e5b2811cfd4d6a3d34dc74bca3dbf89a5817b79d8472a1383b8c9afb27b3006196ce9966829eae6a313c2d724d995f4def17117c09edcfc8c0cbbc93
+msg = 
+result = valid
+tag = 40beb1d3aaab25a403224e577770
+
+# tcId = 171
+# long key
+key = 2ba910bc0bca90644cb21e96063e2cd85f5dd02fda75d353c9b51eaf45eee94c165ca6592d6cfdd987bfdc1cba66363d535a14b2f7ead841b17c4d76a5049105f9
+msg = 7ba461040de9ea3cefd4809124f78b39
+result = valid
+tag = 4d28a926df1b188e85d092bacf11
+
+# tcId = 172
+# long key
+key = 7fcf3cb1b1c5b537492aede4689284b5881935e3537bb7307198d6518e7a6aabf70b50b44e4a8dfee35e9f5cbada7447e511a37209390fcd171c62075c6a8bf1eb
+msg = 83d29c1c4d059ddb0d2aca787e5b701bac3953fb9bc72dc87b1ef92a582e9748
+result = valid
+tag = 392ce38f7838b2f87163eea00b86
+
diff --git a/third_party/wycheproof_testvectors/hmac_sha256_test.txt b/third_party/wycheproof_testvectors/hmac_sha256_test.txt
new file mode 100644
index 0000000..c24fd21
--- /dev/null
+++ b/third_party/wycheproof_testvectors/hmac_sha256_test.txt
@@ -0,0 +1,1234 @@
+# Imported from Wycheproof's hmac_sha256_test.json.
+# This file is generated by convert_wycheproof.go. Do not edit by hand.
+#
+# Algorithm: HMACSHA256
+# Generator version: 0.8rc21
+
+[keySize = 256]
+[tagSize = 256]
+
+# tcId = 1
+# empty message
+key = 1e225cafb90339bba1b24076d4206c3e79c355805d851682bc818baa4f5a7779
+msg = 
+result = valid
+tag = b175b57d89ea6cb606fb3363f2538abd73a4c00b4a1386905bac809004cf1933
+
+# tcId = 2
+# short message
+key = 8159fd15133cd964c9a6964c94f0ea269a806fd9f43f0da58b6cd1b33d189b2a
+msg = 77
+result = valid
+tag = dfc5105d5eecf7ae7b8b8de3930e7659e84c4172f2555142f1e568fc1872ad93
+
+# tcId = 3
+# short message
+key = 85a7cbaae825bb82c9b6f6c5c2af5ac03d1f6daa63d2a93c189948ec41b9ded9
+msg = a59b
+result = valid
+tag = 0fe2f13bba2198f6dda1a084be928e304e9cb16a56bc0b7b939a073280244373
+
+# tcId = 4
+# short message
+key = 48f3029334e55cfbd574ccc765fb2c3685aab1f4837d23370874a3e634c3a76d
+msg = c7b8b2
+result = valid
+tag = 6c13f79bb2d5b6f9a315fe8fd6cbb5cb817a660687009deccd88c377429e596d
+
+# tcId = 5
+# short message
+key = de8b5b5b2f09645be47ecb6407a4e1d9c6b33ae3c2d22517d3357da0357a3139
+msg = cc021d65
+result = valid
+tag = e87538eb167e62d7cb236690ff3f034a9c12d417aa8dfa694d7405f9e1f85fe8
+
+# tcId = 6
+# short message
+key = b7938910f518f13205ca1492c669001a14ff913c8ab4a0dc3564e7418e91297c
+msg = a4a6ef6ebd
+result = valid
+tag = 01a93f4ed216d0b280896301e366aa67b25e6b6a5a6e84f291a13391c6e496c5
+
+# tcId = 7
+# short message
+key = 1bb997ff4de8a5a391de5c08a33bc2c7c2891e47ad5b9c63110192f78b98fe78
+msg = 667e015df7fc
+result = valid
+tag = 06b5d8c5392323a802bc5cdd0b3c527454a873d9651c368836eaa4ad982ba546
+
+# tcId = 8
+# short message
+key = 32fdeda39f98b4f4426c2d2ac00ab5dd4bfabb68f311447256ed6d3d3a51b154
+msg = 4163a9f77e41f5
+result = valid
+tag = 1b0103729f48c2772bb132aef9ebd6dd6aafc9145df6d5c514b233ee92ef4a00
+
+# tcId = 9
+# short message
+key = 233e4fdee70bcc20235b6977ddfc05b0df66f5635d827c66e5a63cdb16a24938
+msg = fdb2ee4b6d1a0ac2
+result = valid
+tag = 120b26ee1355c134c262513c7922deb6c4fd90303de4cd61b9f9cd08f22d6e18
+
+# tcId = 10
+# short message
+key = b984c6734e0bd12b1737b2fc7a1b3803b4dfec402140a57b9eccc35414ae661b
+msg = dea584d0e2a14ad5fd
+result = valid
+tag = 88bc2282e5fce47ec6d9895395cd47fff91a0cdc589a8fd56d8d344616533a3d
+
+# tcId = 11
+# short message
+key = d0caf1456ac5e255fa6afd61a79dc8c716f5358a298a508271363fe1ff983561
+msg = 18261dc806913c534666
+result = valid
+tag = f678f081d83cf126ad6bd52c2dffd786214f519c47452b85a97458d0c10c3ee5
+
+# tcId = 12
+# short message
+key = 835bc8241ed817735ec9d3d0e2df4c173ee4dded4a8ef0c04a96c48f11820463
+msg = 26f8083e944bacf04e9a4d
+result = valid
+tag = e0e46cd7d1a75b3d102893da64def46e455308761f1d908786628ca7ee22a0eb
+
+# tcId = 13
+# short message
+key = 055f95c9461b0809575eccdfa5cdd06275f25d30915c4eb8db40e1acd3ab7591
+msg = bfb7d6a08dbaa5225f320887
+result = valid
+tag = e76d5c8c070a6b3c4824e9f342dc3056e63819509e1def98b585aeba0d638a00
+
+# tcId = 14
+# short message
+key = e40f7a3eb88ddec4c6347ea4d67610756c82c8ebcc237629bf873ccabc32984a
+msg = 7fe43febc78474649e45bf99b2
+result = valid
+tag = aa57d020aa24ad823472c2b80ff2d0cf475f7de0068f9a59e8112fede53a3581
+
+# tcId = 15
+# short message
+key = b020ad1de1c141f7ec615ee5701521773f9b232e4d06376c382894ce51a61f48
+msg = 81c7581a194b5e71b41146a582c1
+result = valid
+tag = f45c72603cc160c0762f703407844a7781dfe0f1ddf0aaf4ccd8205e94469aed
+
+# tcId = 16
+# short message
+key = 9f3fd61a105202648ecff6074c95e502c1c51acd32ec538a5cce89ef841f7989
+msg = 2a76f2acdace42e3b779724946912c
+result = valid
+tag = 0226ee13cc05e2340135b3f4b27a9da1a160f6170fe805dadd98a3711ec9c421
+
+# tcId = 17
+key = 6fa353868c82e5deeedac7f09471a61bf749ab5498239e947e012eee3c82d7c4
+msg = aeed3e4d4cb9bbb60d482e98c126c0f5
+result = valid
+tag = 9ed7f0e73812a27a87a3808ee0c89a6456499e835974ba57c5aab2a0d8c69e93
+
+# tcId = 18
+key = 5300489494ca86221c91d6d953952ae1a5e097139dc9cf1179c2f56433753824
+msg = 90fea6cf2bd811b449f333ee9233e57697
+result = valid
+tag = 5b692cba13b54fffc3adcbb0e015cc011fbfd61235303ff0ad2a49775083bf22
+
+# tcId = 19
+key = 383e7c5c13476a62268423ef0500479f9e86e236c5a081c6449189e6afdf2af5
+msg = 3202705af89f9555c540b0e1276911d01971abb2c35c78b2
+result = valid
+tag = 4e4901592ba46476408d758435c7d1b489d2689afd84ceaaee78bfb91fd9391d
+
+# tcId = 20
+key = 186e248ad824e1eb93329a7fdcd565b6cb4eaf3f85b90b910777128d8c538d27
+msg = 92ef9ff52f46eccc7e38b9ee19fd2de3b37726c8e6ce9e1b96db5dda4c317902
+result = valid
+tag = 3fc1d73dd4a8858c1fc3d8c4a3f33ed5ad0c70210038394a5902cb26fe287348
+
+# tcId = 21
+# long message
+key = 28855c7efc8532d92567300933cc1ca2d0586f55dcc9f054fcca2f05254fbf7f
+msg = 9c09207ff0e6e582cb3747dca954c94d45c05e93f1e6f21179cf0e25b4cede74b5479d32f5166935c86f0441905865
+result = valid
+tag = 788c0589000fb7f0b5d51f1596472bc9ec413421a43df96ee32b02b5d275ffe3
+
+# tcId = 22
+# long message
+key = 8e540cb30c94836ae2a5950f355d482a7002e255207e94fda3f7ef1a099013a0
+msg = d6500f95e11262e308bf3df4df4b855f33e857563d4543f195639a0a17b442eb9fdcc1367d2eee75c8f805730b89290f
+result = valid
+tag = 39697e70ce741feb33dedc069f00b5627fd9b837d10cbdd5b6d19cfbd511dd2c
+
+# tcId = 23
+# long message
+key = 69c50d5274358188cff4c0fae742243d4e8a5e5ba55d94ff40edd90f6a43dd10
+msg = 1ac5255aff052828d8ea21b376f1ebdd4bb879949913900405aebce83e48feb6813b5e9c89f94501a8ade41b26b815c521
+result = valid
+tag = 4b0b4d0416fa2e11586fbfa7fb11261e69991dfa34019b9893d69a2be8c1fc80
+
+# tcId = 24
+# long message
+key = 23209b7c5aadcbd13f7279af1a86d3c7ae8f179d1bcaaad0dff9a15302e78dbf
+msg = 84bdac37e1af35d9356404e2787d47ece58348dea76a4a46e8aade3463d4db8c94a051be3733b38d756984865d56c60e8025f15e3f968f093e7fb7ebc7e31189c5692d15ed4256737b9b1894e5809503aaa1c9983fb096aa21916361eeb6ef455b129723a1a1ddf9deddea208529a648
+result = valid
+tag = 4a85c479d1650dbd73bc5248074a55ff50218bddaa8d1fddaaf44946dc19aefb
+
+# tcId = 25
+# long message
+key = 7c9cc667cae175f448faa96647319633b2d48531373ae7d316c44ddd8b9f69cf
+msg = 9233c1d73b498c5106ff88951e07b9652cb0ddae740737ec205c9876d094978bfc947f7dc937119fd6a93915b19b625958a7a22363aa2ac33fb869ed16b303336ab740a0498a2df66a6599da710094481a7b544bd955b6f97135ba4673401db2db144a6e287041e47a51ed9b6ba956c13508c1c0c25310105239ab73629e30
+result = valid
+tag = ca1b80441d333909c2bb30769650055051ed20f17de8ee953cb9070af56c704f
+
+# tcId = 26
+# long message
+key = 82314540564ea3ce30591e97f68b2602de40fa29f773c2508327471b8348e8c4
+msg = 6a6d2f45cebf2757ae16ea33c68617671d77f8fdf80bed8fc5cdc5c8b7086bd28e7eb3eecc7163491104e5309455e67f836579b82a1da3bf5991a8e2b2f189a49e05700e46c409ed5de77780a5f389e3f13dad406c9d55675329c5c921f07034180937c0f6ef34a2308b6ff3e1a0e9dc1ea65f5632730e8744d1db2c40a6595b
+result = valid
+tag = 0900b3e6535d34f90e2c335775e86bf38ee7e3d26fb60cd9cdf639eb3496b94c
+
+# tcId = 27
+# long message
+key = d115acc9a636915241795f48852052e07b51273ae2448251ec1d0d0f9807f3db
+msg = 696d2456de853fa028f486fef437b6b6d1b530a8475e299db3a9005ae9cef8401985b7d31e172e8f439ccd1ad1ec44c9b86b78f3f243c1305b53bc21abad7a8fc5256311bfd34c98e37dfdc649e7ae4bda08cf2994b063c0c7106ed0b02a1f48af9191cbfb0d6a953b7e04327dfe8c93779cb574ba9cba575d01674e83621aa0c5f400d6e6cd24b301e33c9f3303e73bf357408c1be86c2489c09de998ff2ef32df554f1247d9313ce1a7160115d06f4c18d6556ff7986ef8a55e2adcfa27e4c69c71cc2ff01639e9d49bd9ed0687f530ffeb0890132457df2088081bc4a2f7f0a9f4dcea2c80d991db7f3747a1803d7619aaf3dd382c69536a0bcdb931cbe
+result = valid
+tag = 82f92977f0b605eaada510ffceb53ad75fde16a8029f1b75b406a84270dbb8b7
+
+# tcId = 28
+# Flipped bit 0 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d28b42096d80f45f826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb
+
+# tcId = 29
+# Flipped bit 0 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d9b99f2709a3ca74172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e
+
+# tcId = 30
+# Flipped bit 1 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d18b42096d80f45f826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb
+
+# tcId = 31
+# Flipped bit 1 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = dab99f2709a3ca74172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e
+
+# tcId = 32
+# Flipped bit 7 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = 538b42096d80f45f826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb
+
+# tcId = 33
+# Flipped bit 7 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 58b99f2709a3ca74172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e
+
+# tcId = 34
+# Flipped bit 8 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d38a42096d80f45f826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb
+
+# tcId = 35
+# Flipped bit 8 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d8b89f2709a3ca74172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e
+
+# tcId = 36
+# Flipped bit 31 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d38b42896d80f45f826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb
+
+# tcId = 37
+# Flipped bit 31 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d8b99fa709a3ca74172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e
+
+# tcId = 38
+# Flipped bit 32 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d38b42096c80f45f826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb
+
+# tcId = 39
+# Flipped bit 32 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d8b99f2708a3ca74172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e
+
+# tcId = 40
+# Flipped bit 33 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d38b42096f80f45f826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb
+
+# tcId = 41
+# Flipped bit 33 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d8b99f270ba3ca74172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e
+
+# tcId = 42
+# Flipped bit 63 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d38b42096d80f4df826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb
+
+# tcId = 43
+# Flipped bit 63 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d8b99f2709a3caf4172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e
+
+# tcId = 44
+# Flipped bit 64 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d38b42096d80f45f836b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb
+
+# tcId = 45
+# Flipped bit 64 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d8b99f2709a3ca74162cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e
+
+# tcId = 46
+# Flipped bit 71 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d38b42096d80f45f026b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb
+
+# tcId = 47
+# Flipped bit 71 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d8b99f2709a3ca74972cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e
+
+# tcId = 48
+# Flipped bit 77 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d38b42096d80f45f824b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb
+
+# tcId = 49
+# Flipped bit 77 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d8b99f2709a3ca74170cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e
+
+# tcId = 50
+# Flipped bit 80 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d38b42096d80f45f826b45a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb
+
+# tcId = 51
+# Flipped bit 80 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d8b99f2709a3ca74172cbf93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e
+
+# tcId = 52
+# Flipped bit 96 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d38b42096d80f45f826b44a9d4607de72496a415d3f4a1a8c88e3bb9da8dc1cb
+
+# tcId = 53
+# Flipped bit 96 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d8b99f2709a3ca74172cbe93834c1f29b23a0c1e9c21bd851ff2d2c39dbef14e
+
+# tcId = 54
+# Flipped bit 97 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d38b42096d80f45f826b44a9d7607de72496a415d3f4a1a8c88e3bb9da8dc1cb
+
+# tcId = 55
+# Flipped bit 97 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d8b99f2709a3ca74172cbe93804c1f29b23a0c1e9c21bd851ff2d2c39dbef14e
+
+# tcId = 56
+# Flipped bit 103 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d38b42096d80f45f826b44a955607de72496a415d3f4a1a8c88e3bb9da8dc1cb
+
+# tcId = 57
+# Flipped bit 103 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d8b99f2709a3ca74172cbe93024c1f29b23a0c1e9c21bd851ff2d2c39dbef14e
+
+# tcId = 58
+# Flipped bit 248 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d38b42096d80f45f826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1ca
+
+# tcId = 59
+# Flipped bit 248 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d8b99f2709a3ca74172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14f
+
+# tcId = 60
+# Flipped bit 249 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d38b42096d80f45f826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1c9
+
+# tcId = 61
+# Flipped bit 249 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d8b99f2709a3ca74172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14c
+
+# tcId = 62
+# Flipped bit 254 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d38b42096d80f45f826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc18b
+
+# tcId = 63
+# Flipped bit 254 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d8b99f2709a3ca74172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef10e
+
+# tcId = 64
+# Flipped bit 255 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d38b42096d80f45f826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc14b
+
+# tcId = 65
+# Flipped bit 255 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d8b99f2709a3ca74172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef1ce
+
+# tcId = 66
+# Flipped bits 0 and 64 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d28b42096d80f45f836b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb
+
+# tcId = 67
+# Flipped bits 0 and 64 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d9b99f2709a3ca74162cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e
+
+# tcId = 68
+# Flipped bits 31 and 63 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d38b42896d80f4df826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb
+
+# tcId = 69
+# Flipped bits 31 and 63 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d8b99fa709a3caf4172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e
+
+# tcId = 70
+# Flipped bits 63 and 127 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d38b42096d80f4df826b44a9d5607d672496a415d3f4a1a8c88e3bb9da8dc1cb
+
+# tcId = 71
+# Flipped bits 63 and 127 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d8b99f2709a3caf4172cbe93824c1fa9b23a0c1e9c21bd851ff2d2c39dbef14e
+
+# tcId = 72
+# all bits of tag flipped
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = 2c74bdf6927f0ba07d94bb562a9f8218db695bea2c0b5e573771c44625723e34
+
+# tcId = 73
+# all bits of tag flipped
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 274660d8f65c358be8d3416c7db3e0d64dc5f3e163de427ae00d2d3c62410eb1
+
+# tcId = 74
+# Tag changed to all zero
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = 0000000000000000000000000000000000000000000000000000000000000000
+
+# tcId = 75
+# Tag changed to all zero
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0000000000000000000000000000000000000000000000000000000000000000
+
+# tcId = 76
+# tag changed to all 1
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+# tcId = 77
+# tag changed to all 1
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+# tcId = 78
+# msbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = 530bc289ed0074df02ebc42955e0fd67a416249553742128480ebb395a0d414b
+
+# tcId = 79
+# msbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 58391fa789234af497ac3e1302cc9fa932ba8c9e1ca13d059f7252431d3e71ce
+
+# tcId = 80
+# lsbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d28a43086c81f55e836a45a8d4617ce62597a514d2f5a0a9c98f3ab8db8cc0ca
+
+# tcId = 81
+# lsbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d9b89e2608a2cb75162dbf92834d1e28b33b0d1f9d20bc841ef3d3c29cbff04f
+
+[keySize = 256]
+[tagSize = 128]
+
+# tcId = 82
+# empty message
+key = 7bf9e536b66a215c22233fe2daaa743a898b9acb9f7802de70b40e3d6e43ef97
+msg = 
+result = valid
+tag = f4605585949747de26f3ee98a738b172
+
+# tcId = 83
+# short message
+key = e754076ceab3fdaf4f9bcab7d4f0df0cbbafbc87731b8f9b7cd2166472e8eebc
+msg = 40
+result = valid
+tag = 0dc00d7217bbafe8d78bf961189b8fd2
+
+# tcId = 84
+# short message
+key = ea3b016bdd387dd64d837c71683808f335dbdc53598a4ea8c5f952473fafaf5f
+msg = 6601
+result = valid
+tag = ff296b368d3bf059cc48682f6949ccaa
+
+# tcId = 85
+# short message
+key = 73d4709637857dafab6ad8b2b0a51b06524717fedf100296644f7cfdaae1805b
+msg = f1d300
+result = valid
+tag = 2d02bd1c25b1fe52b1ead07374d6e883
+
+# tcId = 86
+# short message
+key = d5c81b399d4c0d1583a13da56de6d2dc45a66e7b47c24ab1192e246dc961dd77
+msg = 2ae63cbf
+result = valid
+tag = 4d9e8bddf9b7a1218309d5988aa1b0d9
+
+# tcId = 87
+# short message
+key = 2521203fa0dddf59d837b2830f87b1aa61f958155df3ca4d1df2457cb4284dc8
+msg = af3a015ea1
+result = valid
+tag = cb8a4b413350b42f4ac3533cc7f47864
+
+# tcId = 88
+# short message
+key = 665a02bc265a66d01775091da56726b6668bfd903cb7af66fb1b78a8a062e43c
+msg = 3f56935def3f
+result = valid
+tag = 1cfce745db1ca7de9a1d4420e612ca55
+
+# tcId = 89
+# short message
+key = facd75b22221380047305bc981f570e2a1af38928ea7e2059e3af5fc6b82b493
+msg = 57bb86beed156f
+result = valid
+tag = 0bde0d0c756df09d4f6da81b299a3adf
+
+# tcId = 90
+# short message
+key = 505aa98819809ef63b9a368a1e8bc2e922da45b03ce02d9a7966b15006dba2d5
+msg = 2e4e7ef728fe11af
+result = valid
+tag = 406a5c2bd3e6a9595f9b7dff608d59a7
+
+# tcId = 91
+# short message
+key = f942093842808ba47f64e427f7351dde6b9546e66de4e7d60aa6f328182712cf
+msg = 852a21d92848e627c7
+result = valid
+tag = 0b1bf9e98d0a794fa55c09b63e25799f
+
+# tcId = 92
+# short message
+key = 64be162b39c6e5f1fed9c32d9f674d9a8cde6eaa2443214d86bd4a1fb53b81b4
+msg = 195a3b292f93baff0a2c
+result = valid
+tag = 71f33f6021d90858cadb1353d7fbe8d7
+
+# tcId = 93
+# short message
+key = b259a555d44b8a20c5489e2f38392ddaa6be9e35b9833b67e1b5fdf6cb3e4c6c
+msg = afd73117330c6e8528a6e4
+result = valid
+tag = 4b8d76372ebe5e5caa56ca4e5c59cdd3
+
+# tcId = 94
+# short message
+key = 2c6fc62daa77ba8c6881b3dd6989898fef646663cc7b0a3db8228a707b85f2dc
+msg = 0ff54d6b6759120c2e8a51e3
+result = valid
+tag = c580c542846a96e84ea77701778455bf
+
+# tcId = 95
+# short message
+key = abab815d51df29f740e4e2079fb798e0152836e6ab57d1536ae8929e52c06eb8
+msg = f0058d412a104e53d820b95a7f
+result = valid
+tag = 13cdb005059338f0f28e2d8ce1af5d0a
+
+# tcId = 96
+# short message
+key = 3d5da1af83f7287458bff7a7651ea5d8db72259401333f6b82096996dd7eaf19
+msg = aacc36972f183057919ff57b49e1
+result = valid
+tag = bd993e4428cbc0e275e4d80b6f520363
+
+# tcId = 97
+# short message
+key = c19bdf314c6cf64381425467f42aefa17c1cc9358be16ce31b1d214859ce86aa
+msg = 5d066a92c300e9b6ddd63a7c13ae33
+result = valid
+tag = 86c9f4dde0b257a7053a7b03c7504409
+
+# tcId = 98
+key = 612e837843ceae7f61d49625faa7e7494f9253e20cb3adcea686512b043936cd
+msg = cc37fae15f745a2f40e2c8b192f2b38d
+result = valid
+tag = b96bcacafac30094f18ac5039e7b3656
+
+# tcId = 99
+key = 73216fafd0022d0d6ee27198b2272578fa8f04dd9f44467fbb6437aa45641bf7
+msg = d5247b8f6c3edcbfb1d591d13ece23d2f5
+result = valid
+tag = 6e597c4c3861a380c06854b446fc2a87
+
+# tcId = 100
+key = 0427a70e257528f3ab70640bba1a5de12cf3885dd4c8e284fbbb55feb35294a5
+msg = 13937f8544f44270d01175a011f7670e93fa6ba7ef02336e
+result = valid
+tag = f731aaf2f04023d621f10495344679a0
+
+# tcId = 101
+key = 96e1e4896fb2cd05f133a6a100bc5609a7ac3ca6d81721e922dadd69ad07a892
+msg = 91a17e4dfcc3166a1add26ff0e7c12056e8a654f28a6de24f4ba739ceb5b5b18
+result = valid
+tag = 95243eb1a9d448174ae4fccf4a53ebfe
+
+# tcId = 102
+# long message
+key = 41201567be4e6ea06de2295fd0e6e8a7d862bb57311894f525d8adeabba4a3e4
+msg = 58c8c73bdd3f350c97477816eae4d0789c9369c0e99c248902c700bc29ed986425985eb3fa55709b73bf620cd9b1cb
+result = valid
+tag = 343367207f71425d8f81f3110b0405f6
+
+# tcId = 103
+# long message
+key = 649e373e681ef52e3c10ac265484750932a9918f28fb824f7cb50adab39781fe
+msg = 39b447bd3a01983c1cb761b456d69000948ceb870562a536126a0d18a8e7e49b16de8fe672f13d0808d8b7d957899917
+result = valid
+tag = 151618eec4f503f3b63b539de0a58966
+
+# tcId = 104
+# long message
+key = 7b0d237f7b536e2c6950990e61b361b384333dda690045c591321a4e3f79747f
+msg = 3d6283d11c0219b525620e9bf5b9fd887d3f0f707acb1fbdffab0d97a5c6d07fc547762e0e7dd7c43ad35fab1c790f8047
+result = valid
+tag = ce201c0dcfdc3f2bef360609a31fb19e
+
+# tcId = 105
+# long message
+key = 17c92663741f012e5bb6714e614c2d155948617f10936269d954c58aba2ae62d
+msg = 7fdd6a15c861d0313f6635d77dc55e115ff18c8ab063b5d03eab472eeca87a378188f25813515cf90b6cffa94a8ff36b29d65603eab3fbd2aa9500b261e184049893dc6ca2010becac163053f211070bdda621b8bd8af77e450268603b52db34c90be836dfebddef42303f724e63bf0f
+result = valid
+tag = 76e8dfd94db4af9d79d9718eec46cb2d
+
+# tcId = 106
+# long message
+key = 424c6b22606fcc094ae82fc5d3cbe484174c2211b3ec778091cac34a8e38a152
+msg = d96ff062e2490e8e0c54c5a8b89e85b25a66d93d7c2b93bdfef846b70d38672746a4b988d08f15a5c527ca4f2c80e53f7c6ac0521bc57ebe38209180cbf934e0bbeb58cfb63d75da64af41d09ce174af1896f42522910fced35ea000402e95fd3ac7aa6d5e0a6b533b0879bc466019b3a5e6b16e4bd1ea6cdfc9ccc1d6f0f0
+result = valid
+tag = eda709c7009714c372d0d6a63dfde469
+
+# tcId = 107
+# long message
+key = 15d553c8da433d53cdc7f15087a70349caab57b379a4078928ce9b99302e31a6
+msg = d6c0c53b73f74fb426adfdc143d70db7f7a8f8ed32a2faef263cf9ab117537b6b9d1728bd1000c1f28906c6ce6ad21862bfa4d689c1a8ebe3868b992098b7f981b2af5189a6adedff53a6c70c83693f5c8d6385a9a8a4dca017c5716ac4d5b9765c5ca2ab5f9867e02795198c0b9527e07d08af52dbcb91ceb3d8b412a2b2402
+result = valid
+tag = 8ca1402bf8fc23442ac2067be925b828
+
+# tcId = 108
+# long message
+key = ffe559468a1031dfb3ced2e381e74b5821a36d9abf5f2e59895a7fdca0fa56a0
+msg = 238899a84a3cf15202a1fbef4741e133fb24c009a0cd83854c6d1d7c9266d4c3eafe6d1dfc18f13845ccdad7fe277627b5fd5ff2555ce6dfde1ee078540a0a3590c6d9bf2fb63ba9afbe9380e797be7cd017645c5a3613eef38ef89e3b7461e6e700ff2b4deef5636c9d2198b143f797ca1820a3dcc5d462ebf4a8c4c09eb202a23592eb9524082c79adda8fcd56d256041a26bf8f523962ba911ce5a5786570d65be3c4df722ed8830302065febdf944715298a1fbb7d10b68d7da2bf889324314ce51e815c7fbf03aa0a8358aff3a86eb7a33f9a4923660db3047e793bebb0c6918f4395d400381723fdae2832c36efc8e368a68f30f6351c3bc942cd560
+result = valid
+tag = a830b313f4936dea56a3aefd6a3ebe7d
+
+# tcId = 109
+# Flipped bit 0 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d28b42096d80f45f826b44a9d5607de7
+
+# tcId = 110
+# Flipped bit 0 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d9b99f2709a3ca74172cbe93824c1f29
+
+# tcId = 111
+# Flipped bit 1 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d18b42096d80f45f826b44a9d5607de7
+
+# tcId = 112
+# Flipped bit 1 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = dab99f2709a3ca74172cbe93824c1f29
+
+# tcId = 113
+# Flipped bit 7 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = 538b42096d80f45f826b44a9d5607de7
+
+# tcId = 114
+# Flipped bit 7 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 58b99f2709a3ca74172cbe93824c1f29
+
+# tcId = 115
+# Flipped bit 8 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d38a42096d80f45f826b44a9d5607de7
+
+# tcId = 116
+# Flipped bit 8 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d8b89f2709a3ca74172cbe93824c1f29
+
+# tcId = 117
+# Flipped bit 31 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d38b42896d80f45f826b44a9d5607de7
+
+# tcId = 118
+# Flipped bit 31 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d8b99fa709a3ca74172cbe93824c1f29
+
+# tcId = 119
+# Flipped bit 32 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d38b42096c80f45f826b44a9d5607de7
+
+# tcId = 120
+# Flipped bit 32 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d8b99f2708a3ca74172cbe93824c1f29
+
+# tcId = 121
+# Flipped bit 33 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d38b42096f80f45f826b44a9d5607de7
+
+# tcId = 122
+# Flipped bit 33 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d8b99f270ba3ca74172cbe93824c1f29
+
+# tcId = 123
+# Flipped bit 63 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d38b42096d80f4df826b44a9d5607de7
+
+# tcId = 124
+# Flipped bit 63 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d8b99f2709a3caf4172cbe93824c1f29
+
+# tcId = 125
+# Flipped bit 64 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d38b42096d80f45f836b44a9d5607de7
+
+# tcId = 126
+# Flipped bit 64 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d8b99f2709a3ca74162cbe93824c1f29
+
+# tcId = 127
+# Flipped bit 71 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d38b42096d80f45f026b44a9d5607de7
+
+# tcId = 128
+# Flipped bit 71 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d8b99f2709a3ca74972cbe93824c1f29
+
+# tcId = 129
+# Flipped bit 77 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d38b42096d80f45f824b44a9d5607de7
+
+# tcId = 130
+# Flipped bit 77 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d8b99f2709a3ca74170cbe93824c1f29
+
+# tcId = 131
+# Flipped bit 80 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d38b42096d80f45f826b45a9d5607de7
+
+# tcId = 132
+# Flipped bit 80 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d8b99f2709a3ca74172cbf93824c1f29
+
+# tcId = 133
+# Flipped bit 96 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d38b42096d80f45f826b44a9d4607de7
+
+# tcId = 134
+# Flipped bit 96 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d8b99f2709a3ca74172cbe93834c1f29
+
+# tcId = 135
+# Flipped bit 97 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d38b42096d80f45f826b44a9d7607de7
+
+# tcId = 136
+# Flipped bit 97 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d8b99f2709a3ca74172cbe93804c1f29
+
+# tcId = 137
+# Flipped bit 103 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d38b42096d80f45f826b44a955607de7
+
+# tcId = 138
+# Flipped bit 103 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d8b99f2709a3ca74172cbe93024c1f29
+
+# tcId = 139
+# Flipped bit 120 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d38b42096d80f45f826b44a9d5607de6
+
+# tcId = 140
+# Flipped bit 120 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d8b99f2709a3ca74172cbe93824c1f28
+
+# tcId = 141
+# Flipped bit 121 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d38b42096d80f45f826b44a9d5607de5
+
+# tcId = 142
+# Flipped bit 121 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d8b99f2709a3ca74172cbe93824c1f2b
+
+# tcId = 143
+# Flipped bit 126 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d38b42096d80f45f826b44a9d5607da7
+
+# tcId = 144
+# Flipped bit 126 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d8b99f2709a3ca74172cbe93824c1f69
+
+# tcId = 145
+# Flipped bit 127 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d38b42096d80f45f826b44a9d5607d67
+
+# tcId = 146
+# Flipped bit 127 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d8b99f2709a3ca74172cbe93824c1fa9
+
+# tcId = 147
+# Flipped bits 0 and 64 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d28b42096d80f45f836b44a9d5607de7
+
+# tcId = 148
+# Flipped bits 0 and 64 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d9b99f2709a3ca74162cbe93824c1f29
+
+# tcId = 149
+# Flipped bits 31 and 63 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d38b42896d80f4df826b44a9d5607de7
+
+# tcId = 150
+# Flipped bits 31 and 63 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d8b99fa709a3caf4172cbe93824c1f29
+
+# tcId = 151
+# Flipped bits 63 and 127 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d38b42096d80f4df826b44a9d5607d67
+
+# tcId = 152
+# Flipped bits 63 and 127 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d8b99f2709a3caf4172cbe93824c1fa9
+
+# tcId = 153
+# all bits of tag flipped
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = 2c74bdf6927f0ba07d94bb562a9f8218
+
+# tcId = 154
+# all bits of tag flipped
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 274660d8f65c358be8d3416c7db3e0d6
+
+# tcId = 155
+# Tag changed to all zero
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = 00000000000000000000000000000000
+
+# tcId = 156
+# Tag changed to all zero
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 00000000000000000000000000000000
+
+# tcId = 157
+# tag changed to all 1
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = ffffffffffffffffffffffffffffffff
+
+# tcId = 158
+# tag changed to all 1
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = ffffffffffffffffffffffffffffffff
+
+# tcId = 159
+# msbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = 530bc289ed0074df02ebc42955e0fd67
+
+# tcId = 160
+# msbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 58391fa789234af497ac3e1302cc9fa9
+
+# tcId = 161
+# lsbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 
+result = invalid
+tag = d28a43086c81f55e836a45a8d4617ce6
+
+# tcId = 162
+# lsbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = d9b89e2608a2cb75162dbf92834d1e28
+
+[keySize = 128]
+[tagSize = 256]
+
+# tcId = 163
+# short key
+key = a349ac0a9f9f74e48e099cc3dbf9a9c9
+msg = 
+result = valid
+tag = 3a8437b877b75cc08a4d8d7559a8fc6869a58c713da63d1d4b350d59b597e30c
+
+# tcId = 164
+# short key
+key = ac686ba0f1a51b4ec4f0b30492b7f556
+msg = 2fa43a14ae500507deb95ab5bd32b0fe
+result = valid
+tag = 008532a53d0c0ab22027ae249023375374e2239b959609e8339b05a15742a675
+
+# tcId = 165
+# short key
+key = 73ef9ef1a4225e51e3c1db3ace1fa24f
+msg = ffad380d9aabb0acede5c1bf112925cdfc3d379fc2376a4fe2644490d0430ac3
+result = valid
+tag = 9c7cb9f7c207ec46d1e3c55764731c4ab5ddbae4e1401e52a895df0cff4787c9
+
+[keySize = 128]
+[tagSize = 128]
+
+# tcId = 166
+# short key
+key = e34f15c7bd819930fe9d66e0c166e61c
+msg = 
+result = valid
+tag = 1d765ab9e29892f7bfec2975ad4bc2dc
+
+# tcId = 167
+# short key
+key = e09eaa5a3f5e56d279d5e7a03373f6ea
+msg = ef4eab37181f98423e53e947e7050fd0
+result = valid
+tag = cfc19ec07902ec8be489606d8f40d172
+
+# tcId = 168
+# short key
+key = 9bd3902ed0996c869b572272e76f3889
+msg = a7ba19d49ee1ea02f098aa8e30c740d893a4456ccc294040484ed8a00a55f93e
+result = valid
+tag = ac50adad9785a89c7282d8ab881dc615
+
+[keySize = 520]
+[tagSize = 256]
+
+# tcId = 169
+# long key
+key = 8a0c46eb8a2959e39865330079763341e7439dab149694ee57e0d61ec73d947e1d5301cd974e18a5e0d1cf0d2c37e8aadd9fd589d57ef32e47024a99bc3f70c077
+msg = 
+result = valid
+tag = f5bfb940561fb4db73ebba49bf2e4893bb0cca618a71b7ecf6aca38231e167ea
+
+# tcId = 170
+# long key
+key = 2877ebb81f80334fd00516337446c5cf5ad4a3a2e197269e5b0ad1889dfe2b4b0aaa676fac55b36ce3affc7f1092ab89c53273a837bd5bc94d1a9d9e5b02e9856f
+msg = ba448db88f154f775028fdecf9e6752d
+result = valid
+tag = 1690ed4180642899e0deb9ec2270374e8b0a484217f5a682c524316eca219b64
+
+# tcId = 171
+# long key
+key = 21178e26bc28ffc27c06f762ba190a627075856d7ca6feab79ac63149b17126e34fd9e5590e0e90aac801df09505d8af2dd0a2703b352c573ac9d2cb063927f2af
+msg = 7d5f1d6b993452b1b53a4375760d10a20d46a0ab9ec3943fc4b07a2ce735e731
+result = valid
+tag = e542ac8ac8f364bae4b7da8b7a0777df350f001de4e8cfa2d9ef0b15019496ec
+
+[keySize = 520]
+[tagSize = 128]
+
+# tcId = 172
+# long key
+key = 813e0c078c221375e80590ace6774eafd2d2c242350988d02efa550e05aecbe100c1b8bf154c932cf9e57177015c816c42bc7fbc71ceaa5328c7316b7f0f30330f
+msg = 
+result = valid
+tag = bb6ab66f51e53fa086c9c61a26ca27e0
+
+# tcId = 173
+# long key
+key = 5713343096b0aaf0562a6b92c1a15535924160475a4e4233589159728c562e3b2ad96f740c6a4da2bc3f768ce98c9bd66bac28d1646ff592028c940d455f35eeb4
+msg = 71712de2fac1fb855673bff72af64257
+result = valid
+tag = c18165b8b97db1ca5e2486a32b39731e
+
+# tcId = 174
+# long key
+key = 7208afbecf5f1f34828f98b719414e280716de64f5edd1ae1c774153cd2022337bb20fade1b7856f1dbfd40e2b4307f1293ceff1692ee90d8c90b5fdf953ab01a5
+msg = 43b53302b604d613e62db002044a4782d572ac8fbd3cd0ece91b43bc52e18e98
+result = valid
+tag = 2fecfe45d79339c57dddba68ab34f5f1
+
diff --git a/third_party/wycheproof_testvectors/hmac_sha384_test.txt b/third_party/wycheproof_testvectors/hmac_sha384_test.txt
new file mode 100644
index 0000000..2c15b71
--- /dev/null
+++ b/third_party/wycheproof_testvectors/hmac_sha384_test.txt
@@ -0,0 +1,1234 @@
+# Imported from Wycheproof's hmac_sha384_test.json.
+# This file is generated by convert_wycheproof.go. Do not edit by hand.
+#
+# Algorithm: HMACSHA384
+# Generator version: 0.8rc21
+
+[keySize = 384]
+[tagSize = 384]
+
+# tcId = 1
+# empty message
+key = ee8df067857df2300fa71a10c30997178bb3796127b5ece5f2ccc170932be0e78ea9b0a5936c09157e671ce7ec9fc510
+msg = 
+result = valid
+tag = a655184daf3346ffc6629d493c8442644e4996a2799e42e3306fa6f5b0967b6cf3a6f819bab89bce297d1d1a5907b2d0
+
+# tcId = 2
+# short message
+key = 976696c0dc97182ca771975c3928ff9168ef89cd740cd2292858fd916068a702bc1df7c6cd8ee1f0d25e61d4c514cc5d
+msg = 2b
+result = valid
+tag = 363e8973fedcf7892013dfae0b7065d61d80b98c635bc09ed860a01473b9bcd0dc550dbf66cf0d601fe9cbf3ae59620d
+
+# tcId = 3
+# short message
+key = c55ea4c64a0a63e2d14ad42559ba7c816b8824d263c2cc6a015761b53f681e514369f0dfba5cde165320ee10a96eb1fc
+msg = 5abd
+result = valid
+tag = ccc2925f164a7d9662f1e76bcaf6345492bb091d4d2d775af2178a4bcc1ca21dcf8b3bf8f056823770782f25a419bb3e
+
+# tcId = 4
+# short message
+key = 2928d465d92fa40072ca9d67761be66e491755e43499003c1057d3bec870f255126c3658d0d8a0c7d207df8710037ca7
+msg = c405ae
+result = valid
+tag = d9e19c672a466e4c83a849905728c4be1db99bdd260946d9ff52939779002dcc460c576f02b40dda0717182be96b5411
+
+# tcId = 5
+# short message
+key = 686a3730085cc944fceb141628419818e662fe21e52bea2748f3b704f80ce801086db1e3068917b242e62b4d6e6ed685
+msg = 6601c683
+result = valid
+tag = 10dc39103983b3a6be376a8eda7b6f363cb91efe11b027a62440ae136bd66f98b0a1d8b8f2399099492021076afa14a0
+
+# tcId = 6
+# short message
+key = f22d867b972b232e3f444a488dd794d170807c70eb650f952b6177596f76c558a5d860d6f7be0be9e666f9bd53732f8d
+msg = 15b29377e0
+result = valid
+tag = e02e4e20b5f1e5f06913bc9745c9069c09ec1369f1a296ad1d07c04cc4f9cb4741248d7ba097cd3ba0e75d2409d6a01b
+
+# tcId = 7
+# short message
+key = 3ac9abd53dbd0fbb891f9b5e16dd45df994e5283527832707138fc2712bad9e34761e7d9c6d05d46f2c8323ddb0efe99
+msg = 5a34155b1115
+result = valid
+tag = 78c53dd1a2431174628f5f4867fa777afa6df1b36269bba114d016d1065fcb021170baad09b4a528f40573903a65f540
+
+# tcId = 8
+# short message
+key = ae3aa94fdd35e2bef40472d29bdad3a409840ea441c3d7025cd72f3e81ff56da602161d84b23d1634061385be30c5bbd
+msg = 8a140d781e7191
+result = valid
+tag = fd22ba896cb1147bb86f8ad51c253b792657c0becc913e90104da0f139f9b08c9169706f1531a2c6c03d6bd72a77eff2
+
+# tcId = 9
+# short message
+key = 44b79852cabcf3fe93d2fff55d2afe6a46c35b7ad1954ce0888de7b459b982722faf8b490e6b00e7bcabbd36f18443f5
+msg = 9398cd251deafe8b
+result = valid
+tag = 56128fb438a93f6f48f47c0f4c7549f8008a8e69bbdbf0886ec40f86e7870034ef9090d2b04057391f1def5b25e8f0ad
+
+# tcId = 10
+# short message
+key = 03fed2f579a3ebdececfb184ebe2984876113399c4a593d98b5f5e606dd330fb394c285d9ead601748259b493335f8e5
+msg = 18d879b1f63df3ac7a
+result = valid
+tag = a0e3b5660eeb5fc4a5dd48e725b09a0e282b22bbe2693d8b893ddf0f2116450e0875925407e909fde0f1f728f608fba9
+
+# tcId = 11
+# short message
+key = f4ef48bf4056d39dbba4154018c63bdf29420b9991ea594ff05e3cc1cb02e176d54ba038a6b78692519d6788e495bbab
+msg = 0a5de13cd9ba31c94486
+result = valid
+tag = e9a1219e86983d69e336068b280309f974ab61f25968fc6352324ba49c36ce42c578676a3a31ef11e960d6771386650e
+
+# tcId = 12
+# short message
+key = fc771f7ccd499a1ed633d86876d707b5f1d53c6bcdf21aa2907766ab3ca7fa6cdd6a9b981b1a84a528e81444303f1057
+msg = 03ba11f3f3173b85226b25
+result = valid
+tag = cfb4971d5449db364e2c8d0d429a0767050d480a5397f0dcc74294f52ea96260a57fe6cad14409ad67da6fbebf2da0d8
+
+# tcId = 13
+# short message
+key = b3999de680b11550e18631c8199f7eb8a74e21bdc9d97f781245c2af19f85497d9f38b250a564e48650fd00be365f155
+msg = 9c658cb5e601d85dc3857863
+result = valid
+tag = d547e4cbd56e82b47d2ec93eeb6b34924ebda461fb60e475bf328d2368618f55fbf7b0e2eb1ff542c4eb7eefbfc8bd2b
+
+# tcId = 14
+# short message
+key = 88005a62864ea699e1509616ec48033e84d2e2a13b8bc2e8a76f2eccbdb207a95ac8e2f5b5a703b22a0b571e8acc599a
+msg = 5a94f84541a794bf23d72db16d
+result = valid
+tag = d6b73ee67e88a20fceb5520be92594daf1b3786c7187535ccb1f0b926dae11adde6e8697ba803b159019849df3c9d2c7
+
+# tcId = 15
+# short message
+key = b1cbda2c9a12f92315a5101aef311e99d6db002b0e04fb53c50106aa4d28e9a346697ba97084572eea56ccfc4ad7e572
+msg = ce12c0c78e3f6b276ac56ed7435e
+result = valid
+tag = 5c0802cd0ed82380e4c2a61d146ed72762613de89eb4ab9fe71da9ad3d79e1d2321cae186292f7c52ab639d3ba6aa85a
+
+# tcId = 16
+# short message
+key = 08517e8014e00db5c37f2a20f987ea2ec52e7938de018ad6be256ba2236804144ad2a1bcc242738862b40647007e0a2c
+msg = 21e2a0a167789a6b722d1737d92f8b
+result = valid
+tag = 2264d3c9b835aedf699d5fbfc05d46f085591441df75aa2b2873f6c8a11a0856a2b79ae11ea0a91609dbd564a0bed456
+
+# tcId = 17
+key = 503d7478a773b694d6e552c9703cc8bc56fd49fafc9a17cab8b0332dca8d49336fa7e9ec2bcb56253fe5bb504e3e7f7f
+msg = d96e6fed893addfd9237c81c4f4e341b
+result = valid
+tag = 19389766789912260f3f9757df3651663829c358bb48b22c1c63132070df318905beffd45f51e4dfcb3e785f44cf9106
+
+# tcId = 18
+key = 41341bab902e767d4d1964c0acfecf46eff1b02b6455bcb2097de9c154be1f667f21be076de18cd2c15c005896fca87f
+msg = 4c43ac7de3631cc86f4da72fe6b6a552f1
+result = valid
+tag = 3c3104f24b7070cc3277d9ae640d416298fc917a0c1cdc3c2e7b6da75706fd2ae234efd551af12ae29144704793e2f6a
+
+# tcId = 19
+key = c2f83be1acce7b89a5f9e9ea7e4c4f8b0f4319986fbe479fa3b4a3c298168362393b56ea03b5cef77f48e5a72abe6d08
+msg = 8dd0cd786cd800ffebec098728923d69249d3223c4c595cb
+result = valid
+tag = 751c6c7d00fef5e4edc993915fba694943a7ee3a2c8e5b700d0ee536bf85fb117a9cd6c456485cd670f7a0b490c83e61
+
+# tcId = 20
+key = 6bd2aee9dd98d6b6609fce82181b10c20bba861da68a1590586fab08c5e9e90ff584047db4760828643fea38087160e4
+msg = 33236a9de603c1e4f5e11164224740627d10f6008eb73ec2642321bf0b82d579
+result = valid
+tag = e4cd8b8868bb078ed5d6938e40d9ff4bf61a4994be40a5f2b5446463e5db90516bccdd19f16c92e3f839b9d6de68b2a9
+
+# tcId = 21
+# long message
+key = 2f98ba2ceaadc5ba08880a35cb0080dc870a5734a782ebe31c4bab100ff8786dcc3be6de18482ea5d1b3bf14aeabb470
+msg = 2d74a66dacf12edb85ef3073feafd122889cb634add00ff0395d224b4ff8b5d5d67ca6419b6826abffdb41bab427d5
+result = valid
+tag = a8ea72100859f4b7b6f2fe596248f1729bcdf0606c900ab52e51eab548d26e1eb634a42e5fc7ccc18356c0d283597ee2
+
+# tcId = 22
+# long message
+key = 5e5f60e40d84c7ca2608af3bcc6e04abc5f8b7ca730a78af7f6f032e5a1501695bd91f3bebb28590af1db90d8390ca58
+msg = 2efe6a14ea8d679e62dbcedf35e61852278c83c54adbe1f1c72cb1a746b11cff8cb4fc3a2c3acd44255d51c020ca6d47
+result = valid
+tag = 6e8c95a4097ea13d064ed10809a33b569a6a84205158bd692ff82bc4b70b47a60ed332f2f5bca5211a1cc89c06f9c595
+
+# tcId = 23
+# long message
+key = bc310bc3913d9fe59e2012a058c9e150534d25611e36206cf07ccaefe153f38eb0eaad9941b6883dfbce01bcb5196041
+msg = 9f0747d7396bfbe01cf3e85361e50085e0a91a7490b994031d81851b725065993f45dad0d60d794aedec7ba5d9d6dbbee4
+result = valid
+tag = 3a86498f78c3fb7eb3b7b3d82f677d2dfe01166fe76e232083334d74f11588fd089637c94761e9cfe836436005deaef7
+
+# tcId = 24
+# long message
+key = dc770c64d00d156e43cb74970e3a1a2ad28b6d9ec6b2b6e5ac3e356a99f879cb620f00340c044cc1f31bdccfa0dbd177
+msg = 403fd8e3ef51b6539db658a894be85b58fbc84881e61c5e0cb13ae421a09d31d780603256d390edd056d190856be00ad20a7048f0c67416fe8e02884086155f4263262e8c1275504d4f91f2751d3c3dccd4409ff2b45e41de93f7b104d58f6e15bacb62ace9700615ecc1b30a0cc1b35
+result = valid
+tag = 1c4f6474f39e6eabbe7a99faa234f49833444130acf01dae68d68251a930419960b0fb5f48360149e05d1209941cc9ec
+
+# tcId = 25
+# long message
+key = cca9299c7bdc26a4b595055c99ca23bec8ed11b5deeda91f83e2365e7340395ceef4e86e5cd91f2593bcfec498a67fc9
+msg = a05b40b8d3a7bc7b75b0e97309c9bd1c9d8755c1ff5245ef6308a6a5cad3ecfbcb6364b41ca6f3d24bbee844d6204d1026abe345af7bdec114a373b109aa5724b738d50ab7a826c268e873709f8b35135a870045d5fb9daa82d3c245b5338917354e72b3058c9a4b807117465217d7d14f36f8a8d4e97bc3b93587c92641e7
+result = valid
+tag = 1b6b5ba848bc13dd46c35177ae9ff9bd2d6ca5f4c9373964d3182483d980b4654527f36d7cc51b9e2efe7ed97a82e3be
+
+# tcId = 26
+# long message
+key = c728e65e08d9296fe3cdf2dedb49c81a30b603a62569eece4ee5d01e9a32ae3bcb4ec163e455e452582454ceefefc046
+msg = e6c6bac87c17e269a471434ca9568401451d78c2444a9d6edcda3cdab51c5bed1c19eaf34326580fd85ae5236ad51bc5dae386b36101f54695c595eeedcdd0182a4a117f8093f4f4812e03db396ede9849d193e7722081aeec4be6c4caf6c979d36ead56634a21be21162ea232dec9cffdbd2474245878dca369e814fd028303
+result = valid
+tag = 533920a013cf006aa29b26f74b6dd293634293089986aa249271c426b942dc6bae32b2641616672f3d75968866e182e5
+
+# tcId = 27
+# long message
+key = 90c4215dc3f237435047fefdd8638d339a3fc66fca06c5063eacbda002ab335e621605f672f3da9f641fae110afc3e7b
+msg = 1ebc22c3031b64615eb6f1a0696e33b7df139a4b891d3e6721cc26c05d55de790dca623668c10308485d38e95ec4769fa4430ca3ebc25da9f5d31c972674517d9a2222e6b97d8def6512af096c6d1480d83a229c84b7f28c80184b6bebf3f4eff5fc4e5c6cfea4f8eba9a957f7913b20a88ad1734f7c38547e934d1dbf2d73dbd61e31fb1583c7b6577a171e7d02f19045126ac2973d855bc18d34d32326d1e216da58366a60033450091128ae26a479069bba7b91b2ab7f3c5fbcde391de3ca114b951d6852f92795f8023d7a29a7f4ce61e9241b4f235d21e899087167ab3f3a0e9321c7942b165178788df48d3b106b203ec1e01d29bda41a99ac0d2c00
+result = valid
+tag = c52b91daed6ee46416f2db78978251cb334e5d8e00b32ae06e365f455d28de406a9cce2f9f29378f229822dbf26bfdad
+
+# tcId = 28
+# Flipped bit 0 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 45be81c415d283ab7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66
+
+# tcId = 29
+# Flipped bit 0 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a84d07ff90b338e064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216
+
+# tcId = 30
+# Flipped bit 1 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 46be81c415d283ab7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66
+
+# tcId = 31
+# Flipped bit 1 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = ab4d07ff90b338e064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216
+
+# tcId = 32
+# Flipped bit 7 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = c4be81c415d283ab7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66
+
+# tcId = 33
+# Flipped bit 7 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 294d07ff90b338e064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216
+
+# tcId = 34
+# Flipped bit 8 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 44bf81c415d283ab7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66
+
+# tcId = 35
+# Flipped bit 8 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a94c07ff90b338e064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216
+
+# tcId = 36
+# Flipped bit 31 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 44be814415d283ab7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66
+
+# tcId = 37
+# Flipped bit 31 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a94d077f90b338e064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216
+
+# tcId = 38
+# Flipped bit 32 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 44be81c414d283ab7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66
+
+# tcId = 39
+# Flipped bit 32 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a94d07ff91b338e064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216
+
+# tcId = 40
+# Flipped bit 33 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 44be81c417d283ab7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66
+
+# tcId = 41
+# Flipped bit 33 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a94d07ff92b338e064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216
+
+# tcId = 42
+# Flipped bit 63 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 44be81c415d2832b7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66
+
+# tcId = 43
+# Flipped bit 63 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a94d07ff90b3386064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216
+
+# tcId = 44
+# Flipped bit 64 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 44be81c415d283ab7b62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66
+
+# tcId = 45
+# Flipped bit 64 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a94d07ff90b338e065b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216
+
+# tcId = 46
+# Flipped bit 71 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 44be81c415d283abfa62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66
+
+# tcId = 47
+# Flipped bit 71 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a94d07ff90b338e0e4b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216
+
+# tcId = 48
+# Flipped bit 77 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 44be81c415d283ab7a42a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66
+
+# tcId = 49
+# Flipped bit 77 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a94d07ff90b338e064903603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216
+
+# tcId = 50
+# Flipped bit 80 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 44be81c415d283ab7a62a55188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66
+
+# tcId = 51
+# Flipped bit 80 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a94d07ff90b338e064b03703d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216
+
+# tcId = 52
+# Flipped bit 96 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 44be81c415d283ab7a62a45189e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66
+
+# tcId = 53
+# Flipped bit 96 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a94d07ff90b338e064b03603d66bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216
+
+# tcId = 54
+# Flipped bit 97 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 44be81c415d283ab7a62a4518ae5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66
+
+# tcId = 55
+# Flipped bit 97 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a94d07ff90b338e064b03603d56bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216
+
+# tcId = 56
+# Flipped bit 103 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 44be81c415d283ab7a62a45108e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66
+
+# tcId = 57
+# Flipped bit 103 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a94d07ff90b338e064b03603576bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216
+
+# tcId = 58
+# Flipped bit 376 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 44be81c415d283ab7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c67
+
+# tcId = 59
+# Flipped bit 376 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a94d07ff90b338e064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d217
+
+# tcId = 60
+# Flipped bit 377 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 44be81c415d283ab7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c64
+
+# tcId = 61
+# Flipped bit 377 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a94d07ff90b338e064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d214
+
+# tcId = 62
+# Flipped bit 382 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 44be81c415d283ab7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c26
+
+# tcId = 63
+# Flipped bit 382 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a94d07ff90b338e064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d256
+
+# tcId = 64
+# Flipped bit 383 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 44be81c415d283ab7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310ce6
+
+# tcId = 65
+# Flipped bit 383 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a94d07ff90b338e064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d296
+
+# tcId = 66
+# Flipped bits 0 and 64 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 45be81c415d283ab7b62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66
+
+# tcId = 67
+# Flipped bits 0 and 64 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a84d07ff90b338e065b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216
+
+# tcId = 68
+# Flipped bits 31 and 63 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 44be814415d2832b7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66
+
+# tcId = 69
+# Flipped bits 31 and 63 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a94d077f90b3386064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216
+
+# tcId = 70
+# Flipped bits 63 and 127 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 44be81c415d2832b7a62a45188e5da7bcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66
+
+# tcId = 71
+# Flipped bits 63 and 127 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a94d07ff90b3386064b03603d76bcf8214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216
+
+# tcId = 72
+# all bits of tag flipped
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = bb417e3bea2d7c54859d5bae771a25043468259f942a4e936d3e03c90e673f4c58eb6de7b72a1fc20e3b7b6447cef399
+
+# tcId = 73
+# all bits of tag flipped
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 56b2f8006f4cc71f9b4fc9fc289430fdeb4e047739946bea2218998b769bff06847bf7401059117938e9405b5b9f2de9
+
+# tcId = 74
+# Tag changed to all zero
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+# tcId = 75
+# Tag changed to all zero
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+# tcId = 76
+# tag changed to all 1
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+# tcId = 77
+# tag changed to all 1
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+# tcId = 78
+# msbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = c43e01449552032bfae224d108655a7b4b175ae0eb5531ec12417cb67118403327941298c85560bd7144041b38b18ce6
+
+# tcId = 79
+# msbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 29cd877f1033b860e430b68357eb4f8294317b0846eb14955d67e6f409e48079fb04883f6f266e0647963f2424e05296
+
+# tcId = 80
+# lsbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 45bf80c514d382aa7b63a55089e4dbfaca96db616ad4b06d93c0fd37f099c1b2a615931949d4e13cf0c5859ab9300d67
+
+# tcId = 81
+# lsbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a84c06fe91b239e165b13702d66ace0315b0fa89c76a9514dce66775886501f87a8509beeea7ef87c617bea5a561d317
+
+[keySize = 384]
+[tagSize = 192]
+
+# tcId = 82
+# empty message
+key = 1c678267be13acb464939c2896c9e9ce1deb5b30833bdd9ca00370889b84410782ad52afe25dc10ab7ec5cf5f34793b7
+msg = 
+result = valid
+tag = 6dd566be678c1e6359ab31b635cc160160a0c5a9c49a0ac5
+
+# tcId = 83
+# short message
+key = 00b184c2c0a491d764a26f8b2e56a965222b36213bdd106ae782305c50f89269902476e5df3fa58e0ecfae82a9607c8e
+msg = 9f
+result = valid
+tag = 5afff4b009ca9c9e5dcd84f05607e7a7d43ee43b42498989
+
+# tcId = 84
+# short message
+key = 055b67edb659e29c10e3e9cd25aa1cd5abf0880e2026ed8436e39b064b7315760cd7a9294ee23d4750969cc8b5dbaed7
+msg = 4047
+result = valid
+tag = 4d08baef969eed23b814472acff08d08fd3491a728778a1c
+
+# tcId = 85
+# short message
+key = 9e3c198e93930f076b035c5fa8f10d9a65e98c66cfb36633e3cb33279cdf57688f10b7472d1fc9d962ce6954519bfbf6
+msg = 88cfab
+result = valid
+tag = 1cde3765ba5a15b1d0182136a72c603acd3b904ceac8f7ad
+
+# tcId = 86
+# short message
+key = f5f5962bda257b38b2a2318929121b2eaef792d5c6a9585e48b80cf5357b29c3951b787ed3e03e385b05b8ffe6861dc3
+msg = d9397753
+result = valid
+tag = 4638e4427e6084b76c53ed9d6e916162fcb8b962c3d616f1
+
+# tcId = 87
+# short message
+key = f62820ed5f9833fd22dee7bd49e2c9b19fc9668897c2c33e6c7c1fa5c277c3b9f581faef3ddc664ba537975d8afaa707
+msg = 9b6cc7caa4
+result = valid
+tag = f6e272a7a6235f60b72b4c7424cf32a07f98ea592665bad8
+
+# tcId = 88
+# short message
+key = f222a1dabf322aff8463acee6444939331212be3e19d31f4b73fdcc97e2925365ea33c985282805c83dcd8fb42a0e214
+msg = c85ad7872b76
+result = valid
+tag = 933f0fa61d4466b5baf5a601f6b96d81a97e81c512d822e6
+
+# tcId = 89
+# short message
+key = 56e80f3899e945310a9d9bef3d32091f29c157dd46b2d439ad89d63e14b2c24390f74db4d905f6bd03f75c32e91225fe
+msg = 80ba25f1c27650
+result = valid
+tag = a1a6e248b40864ddf83b00c52ae2c303b7e76fba0548d4d4
+
+# tcId = 90
+# short message
+key = 6cb6261a56a21b2c3c13453c158364aafa78f58172a9ae3eeb328ac38808b5c68c111197a303ec36847c9a315ac5eb5b
+msg = 79430de51d68cf34
+result = valid
+tag = 33593a80da455e580ccc5ee9b60edcd1468460539788fc41
+
+# tcId = 91
+# short message
+key = 44ca1ecb490470a84c7e13e1f1c69da21f48c33b6f050f48f7f244f0fda8b3c855904ed0612e2dafa5105cbd7f6449eb
+msg = 870b981c8afd9fae1b
+result = valid
+tag = 930f2e401e3aafb46a0c4029002f4ef1ab9fe838bc00c79e
+
+# tcId = 92
+# short message
+key = aaca68882cfa7250988a247b96cfb3232d6567378f8fa7e7aaaca1c386e1ae15e54957d22bfff1e50ae7f21beea197a5
+msg = a6f31b822ec24da1b1e9
+result = valid
+tag = a9c2d68f0ad1ba50089b169c86d965f97f52388a48ace744
+
+# tcId = 93
+# short message
+key = 1b32f9b6378934a502dd74d8b74a4606d5b2c9a8587fab1cfa90d75007734d2b8bdfe634815243526ebc0f33c04d0d05
+msg = 55367c657c792610efdcc0
+result = valid
+tag = 934083c8594591da783f0da28f4b58adb604e9cc76b99efe
+
+# tcId = 94
+# short message
+key = 09d91b2fa22e68b5335d478235aa4e157435c9acfed772219adfa1e9dd72f33e1a2183a0203a104f80e643cdf29e5aff
+msg = b31e254957db6b1b70a06ce2
+result = valid
+tag = 7d45f3899455787e7116b570df8f7787f672d5821d6f75fe
+
+# tcId = 95
+# short message
+key = d311a80ac801e3639b9185608af4a85e4122e29b5c23f05234c30d92d59ad13cb80390e5fa0ea4a54853228b356689f5
+msg = e6b443dba0dab35d43ca5d6ce6
+result = valid
+tag = 27297096f58f598391c57778129949b94628bf17bb2422d1
+
+# tcId = 96
+# short message
+key = 06297e6c46558b9b0fc36c272b4ae7e65dd536cc1d13acbfa831fa5574b34f99e09adfb7f20321f203075fd26ed2e29d
+msg = 309b95e5f1ec26f70786e74d806d
+result = valid
+tag = aabff26fc44a40f0b87a40c175c17ea7140f8467dcdb95cd
+
+# tcId = 97
+# short message
+key = e8b63a25cd85ad4f39e3c0e9584eacb94d6ae33f984da259aa533d4d28aeb341cf3ffe49c029e4af6a4805f760f35f2c
+msg = d225c27795f809454bb2c51d21f3ac
+result = valid
+tag = 0e12b758015ac89797d55470f3982c13a5ff1483276083d2
+
+# tcId = 98
+key = d83a685ace9fa0c0aa47f0c7b4f0f00717619a82e2eeff87f51f67d814d51dd9e4cad7578a4e49b672b5af83943c2583
+msg = abfa7f5978f751e87e8b5a15a6e89f4f
+result = valid
+tag = e4e6ba041bbb7a47ec8482b2043455c119fbdb389a3945a0
+
+# tcId = 99
+key = 5beaf406a6627eaafcadb6dea4e27ba4fd879fd3e5bfd87ea3c8d5e0acfbbda2c6bf006beaf5a30312e690724c4744a3
+msg = bc57d467a9a2af64ad5e14b7bc0898dc63
+result = valid
+tag = 3fab1a7a192359b6333a9699b75612211a38b6dccab4572d
+
+# tcId = 100
+key = 76b36cc3b8ca975708ee4b32bdbe40ca13f9ce384c52c4b6602b7fd92164f1fd8432706c1966f648bf4830f4deb34795
+msg = b1d022c6536f401d147dfc0d7d4e600bb753ef0e9f243bc3
+result = valid
+tag = c91eb3f362049c5336c5074cb887edcb27aac1ef6575a92d
+
+# tcId = 101
+key = 20569a16f453dd3c34df98155286b1ca8a392ea164c919311f0df9d39d976062f4f992b96def3851886e6295f2615064
+msg = 5402c4e683d1a431868ad528afbf4128b0b10cef947d063b34d376d344b793b2
+result = valid
+tag = 27728059696aed5bb00a13c1db100691d4a21ebea0a8e4c3
+
+# tcId = 102
+# long message
+key = 9ef6a55f8a9b6b9ef1f8296167319078163706ae5b60897c2dd6e340b67ed5d577fb54c5547cd5f248f06e7082ffb826
+msg = 6a0d16276941d8f04eac2ec723fa53b9d6b16da7e30e7f2d9ad898e7cbb71bd3dd234ee22836ff4ac6011b6f12bd3a
+result = valid
+tag = cef5d900eef0abefc625c1d2862a3f42998ce8b1e007d2b8
+
+# tcId = 103
+# long message
+key = fb56bbbc6d751b744d8c1b57cc27a1d2c2f4e38e3491f54448cfcfb9389b7f63fd0d41920968ef612510625f2637d28d
+msg = cf1791517ef5a61c0db65a668bee26fdbc975d799b2623cc0f3e4560e80c7014fa9c02d568c98c86385e000fe6776bb7
+result = valid
+tag = 88e99accc9c23c9c8c1110e7470cade0317817916d8505f5
+
+# tcId = 104
+# long message
+key = d041e24e59b34d7a18128a42d8a7a52dcba5d79e5ed585b55c7c9e4946e5ccaf7e59df0f3da98c7d0523e4cc8f9d7da4
+msg = 5279618f1b41534910395a78ded968aee3431085b599c4f55eb5ff8a2e879bc44291d923de31009db1b9f7f81095afb3ea
+result = valid
+tag = 8500f603ce85c030cfa05731758b6be3317b6fe8e99b7d48
+
+# tcId = 105
+# long message
+key = e1ce4884fd74a0e197c68ace3b29b552313af8e451e98d9ab8d0e8f8ee74143e8fcb6446217c0f3123a426b8ab6f62cb
+msg = 71154b9a657b905f884ba5140d5e7b9243fec3e03fbbdbb360c8194963ae43177b5502cd20f559eeeff8638d028c501926ebc7eddd132ccea29ead7ad0c95a30b9d325952cafb0ea5ec9d9d6fdeb63950d5d69c8bbbea702aed1d444da286807ffd6b36cb49902cba7abf9bda1b577c6
+result = valid
+tag = c7e9ae2a81de32280b518d055c2c9d7f0f5db6d06ad0e4ae
+
+# tcId = 106
+# long message
+key = 8a242c22d1b54ce216ca03c88455beb128211a9f35af2343709af7c5f43a681451ea53a36de2e5048eb44a51681c6120
+msg = ab5eee6b83869119f00dd3cc66dde75cb5700535a90e9b3e32b31434c297ef53f94659d7d9b11323161b2e66c6b9c9ad20e313303f81e88e471786c8e936011f78121e39630b2e0804fc97ce5cb3a34f26949439fe530adcea6e97c78b042e0817253bf75dd54335584122f5edd210341b6d93f58aa1b4de2aad76fecec44f
+result = valid
+tag = 77392b18577ba8819fbd76fc73d45029e55e7ebecd58a320
+
+# tcId = 107
+# long message
+key = 311c4bee7cf257b780135a2e4a6413e68a816f5d8462515dcb1c72494b6335581a9b60a217b9ff1c75e7768148f8df46
+msg = 63ccc3849c4c323cb6ce926877969048b849ee4af18e71eef52fe9f274a8678560f9a5d47510c3c98c8a08ed4c01a01e0a3663ef0cc6c3cdca6276d91e99b0d414263498fb64ad74b820ab52b37adeaf27cb44545edb8f09094992837b8d3a0baa2a101a49592eb889dc8bace4c71e3efcb9d4149bd670ce2f774d73c12f2a45
+result = valid
+tag = 94674aaefc06eead22d15317900fa26c8df8cdfb252bcaae
+
+# tcId = 108
+# long message
+key = fb792867c8928f0503aa24477cebf42e0b018346e3619770b9e8f5097945e2e275ad06f0c12152366ac06e278c94090a
+msg = 0a63e6d91d7a6a18dbad879fb8e23ae351920391eb40fead6cba846768a2c6797ff347b4301327b09afc41f7b803af6b61f6d9b818e0ddcc02536d0543dbf1a87f2c5e020f6459094344b72596d548435c313544e92c254d54a70a1d6f6edd2f82540a1ea2e82125b0715fa0f890bb2be4ba0065d2ba0144854682aed041c1035996648e2ed671b7253ba567ffb999d91fd8e7ffce5c6dc4790732adae443435a454fe6c2a7c6708d9d5b2eb9292d6fbe5e026d65332b38c7925eff9beb89063cab63fbecb2ac0e1bb61a5b1e511f949c43a34ee26f1156e97793da97bcf5b5c67641384f268131b297857d719eeb6cafa3dbe9b8d0da55c98656f20e5b39b
+result = valid
+tag = 1aaaff966c0a84bac791ab9e0b9b505d393073665732a74a
+
+# tcId = 109
+# Flipped bit 0 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 45be81c415d283ab7a62a45188e5dafbcb97da606bd5b16c
+
+# tcId = 110
+# Flipped bit 0 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a84d07ff90b338e064b03603d76bcf0214b1fb88c66b9415
+
+# tcId = 111
+# Flipped bit 1 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 46be81c415d283ab7a62a45188e5dafbcb97da606bd5b16c
+
+# tcId = 112
+# Flipped bit 1 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = ab4d07ff90b338e064b03603d76bcf0214b1fb88c66b9415
+
+# tcId = 113
+# Flipped bit 7 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = c4be81c415d283ab7a62a45188e5dafbcb97da606bd5b16c
+
+# tcId = 114
+# Flipped bit 7 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 294d07ff90b338e064b03603d76bcf0214b1fb88c66b9415
+
+# tcId = 115
+# Flipped bit 8 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 44bf81c415d283ab7a62a45188e5dafbcb97da606bd5b16c
+
+# tcId = 116
+# Flipped bit 8 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a94c07ff90b338e064b03603d76bcf0214b1fb88c66b9415
+
+# tcId = 117
+# Flipped bit 31 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 44be814415d283ab7a62a45188e5dafbcb97da606bd5b16c
+
+# tcId = 118
+# Flipped bit 31 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a94d077f90b338e064b03603d76bcf0214b1fb88c66b9415
+
+# tcId = 119
+# Flipped bit 32 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 44be81c414d283ab7a62a45188e5dafbcb97da606bd5b16c
+
+# tcId = 120
+# Flipped bit 32 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a94d07ff91b338e064b03603d76bcf0214b1fb88c66b9415
+
+# tcId = 121
+# Flipped bit 33 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 44be81c417d283ab7a62a45188e5dafbcb97da606bd5b16c
+
+# tcId = 122
+# Flipped bit 33 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a94d07ff92b338e064b03603d76bcf0214b1fb88c66b9415
+
+# tcId = 123
+# Flipped bit 63 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 44be81c415d2832b7a62a45188e5dafbcb97da606bd5b16c
+
+# tcId = 124
+# Flipped bit 63 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a94d07ff90b3386064b03603d76bcf0214b1fb88c66b9415
+
+# tcId = 125
+# Flipped bit 64 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 44be81c415d283ab7b62a45188e5dafbcb97da606bd5b16c
+
+# tcId = 126
+# Flipped bit 64 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a94d07ff90b338e065b03603d76bcf0214b1fb88c66b9415
+
+# tcId = 127
+# Flipped bit 71 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 44be81c415d283abfa62a45188e5dafbcb97da606bd5b16c
+
+# tcId = 128
+# Flipped bit 71 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a94d07ff90b338e0e4b03603d76bcf0214b1fb88c66b9415
+
+# tcId = 129
+# Flipped bit 77 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 44be81c415d283ab7a42a45188e5dafbcb97da606bd5b16c
+
+# tcId = 130
+# Flipped bit 77 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a94d07ff90b338e064903603d76bcf0214b1fb88c66b9415
+
+# tcId = 131
+# Flipped bit 80 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 44be81c415d283ab7a62a55188e5dafbcb97da606bd5b16c
+
+# tcId = 132
+# Flipped bit 80 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a94d07ff90b338e064b03703d76bcf0214b1fb88c66b9415
+
+# tcId = 133
+# Flipped bit 96 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 44be81c415d283ab7a62a45189e5dafbcb97da606bd5b16c
+
+# tcId = 134
+# Flipped bit 96 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a94d07ff90b338e064b03603d66bcf0214b1fb88c66b9415
+
+# tcId = 135
+# Flipped bit 97 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 44be81c415d283ab7a62a4518ae5dafbcb97da606bd5b16c
+
+# tcId = 136
+# Flipped bit 97 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a94d07ff90b338e064b03603d56bcf0214b1fb88c66b9415
+
+# tcId = 137
+# Flipped bit 103 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 44be81c415d283ab7a62a45108e5dafbcb97da606bd5b16c
+
+# tcId = 138
+# Flipped bit 103 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a94d07ff90b338e064b03603576bcf0214b1fb88c66b9415
+
+# tcId = 139
+# Flipped bit 184 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 44be81c415d283ab7a62a45188e5dafbcb97da606bd5b16d
+
+# tcId = 140
+# Flipped bit 184 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a94d07ff90b338e064b03603d76bcf0214b1fb88c66b9414
+
+# tcId = 141
+# Flipped bit 185 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 44be81c415d283ab7a62a45188e5dafbcb97da606bd5b16e
+
+# tcId = 142
+# Flipped bit 185 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a94d07ff90b338e064b03603d76bcf0214b1fb88c66b9417
+
+# tcId = 143
+# Flipped bit 190 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 44be81c415d283ab7a62a45188e5dafbcb97da606bd5b12c
+
+# tcId = 144
+# Flipped bit 190 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a94d07ff90b338e064b03603d76bcf0214b1fb88c66b9455
+
+# tcId = 145
+# Flipped bit 191 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 44be81c415d283ab7a62a45188e5dafbcb97da606bd5b1ec
+
+# tcId = 146
+# Flipped bit 191 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a94d07ff90b338e064b03603d76bcf0214b1fb88c66b9495
+
+# tcId = 147
+# Flipped bits 0 and 64 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 45be81c415d283ab7b62a45188e5dafbcb97da606bd5b16c
+
+# tcId = 148
+# Flipped bits 0 and 64 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a84d07ff90b338e065b03603d76bcf0214b1fb88c66b9415
+
+# tcId = 149
+# Flipped bits 31 and 63 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 44be814415d2832b7a62a45188e5dafbcb97da606bd5b16c
+
+# tcId = 150
+# Flipped bits 31 and 63 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a94d077f90b3386064b03603d76bcf0214b1fb88c66b9415
+
+# tcId = 151
+# Flipped bits 63 and 127 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 44be81c415d2832b7a62a45188e5da7bcb97da606bd5b16c
+
+# tcId = 152
+# Flipped bits 63 and 127 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a94d07ff90b3386064b03603d76bcf8214b1fb88c66b9415
+
+# tcId = 153
+# all bits of tag flipped
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = bb417e3bea2d7c54859d5bae771a25043468259f942a4e93
+
+# tcId = 154
+# all bits of tag flipped
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 56b2f8006f4cc71f9b4fc9fc289430fdeb4e047739946bea
+
+# tcId = 155
+# Tag changed to all zero
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 000000000000000000000000000000000000000000000000
+
+# tcId = 156
+# Tag changed to all zero
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 000000000000000000000000000000000000000000000000
+
+# tcId = 157
+# tag changed to all 1
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = ffffffffffffffffffffffffffffffffffffffffffffffff
+
+# tcId = 158
+# tag changed to all 1
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = ffffffffffffffffffffffffffffffffffffffffffffffff
+
+# tcId = 159
+# msbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = c43e01449552032bfae224d108655a7b4b175ae0eb5531ec
+
+# tcId = 160
+# msbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 29cd877f1033b860e430b68357eb4f8294317b0846eb1495
+
+# tcId = 161
+# lsbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 
+result = invalid
+tag = 45bf80c514d382aa7b63a55089e4dbfaca96db616ad4b06d
+
+# tcId = 162
+# lsbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = a84c06fe91b239e165b13702d66ace0315b0fa89c76a9514
+
+[keySize = 192]
+[tagSize = 384]
+
+# tcId = 163
+# short key
+key = 08476e9d49499c5f52e37f80ece6f5a45459948806b48241
+msg = 
+result = valid
+tag = 1b6cfc8709aab8075465f32e13b0b0f796cc34d93d7bed090f297dcf9fb75e0d8e285b1500b732d554ac97ba45f33e47
+
+# tcId = 164
+# short key
+key = 213b44d8e1fabaff837ef30ee2542f9ab82ed70411dae78f
+msg = ee0bf48585c186ff991b4d8607817c9c
+result = valid
+tag = 54f4010d50f80bcdb4b84d56bc4ef30e4c68f75128214cf446b5145f6fff1326a209945fc21ab5e1f5d917559ea9b800
+
+# tcId = 165
+# short key
+key = b4afa9daaa8c944d73a3881f3221e42b34ef4e35f184e878
+msg = cf607f6a0eb44ecbca81b6d1fdb595cee35f2353da02e82e28e133b9decd8fbb
+result = valid
+tag = d064a51fb109c3b1d443f13f41e90e14198f846080464547806d46a8151c4e3855a81f4af40915609095dd72f869aa1b
+
+[keySize = 192]
+[tagSize = 192]
+
+# tcId = 166
+# short key
+key = 89e46b66209548c80b0c830662223b49b0e3b895eb30e2fc
+msg = 
+result = valid
+tag = 4b012c0c0da44ede2a427e85ace8ecc54b379e9e24f08d41
+
+# tcId = 167
+# short key
+key = f2c10ce8cb1cf3b363354473b027c1e53deccef03233be0c
+msg = e1fa10b8e301e0348405770bc3fafcb1
+result = valid
+tag = 2d088af29cc744e347124fbe4100cbcdebbae037ed9bf69d
+
+# tcId = 168
+# short key
+key = 92e074442cc4c59e72260808d80d8e7b85c6335068917b83
+msg = 34eae27425ace17771e164cbb634306f352edc9c37bf608be8a755fb94148183
+result = valid
+tag = b7e6b7bb29c02e4635dbdc50d8be71e2ddf0a544471de285
+
+[keySize = 520]
+[tagSize = 384]
+
+# tcId = 169
+# long key
+key = db6f9956c3f4ca6e41f1f7f14629d44c79e0353edbf3e310e6858bbc45a7cd57778a9053ba22a141bf58bfd434ad08648c7041a224b97a0d17e0edf94fd40b410a
+msg = 
+result = valid
+tag = 0cb1b296255bb259f3b601b49b35524a5eca6c52360754d3d96dd521c905b1c1821d74965967d8e86d50de950fe4d635
+
+# tcId = 170
+# long key
+key = f03404bdb3e08f530d4c3a5f165d236012a4c45cd063e3e4483da088ec0afdb24e9639fccabb91f98a49dc2972e2981426573ecfe69c00c43a2d99a3107cef3a70
+msg = 73ed9fa2acf49d6c98bfc7d6c5ad9c56
+result = valid
+tag = b6132e5216f711eeeb44da3d92983fe5b6de5cd9410be71db8d3b07228341686aa60e7081e95f2e4b69bb7cd9648bc0b
+
+# tcId = 171
+# long key
+key = ee799e25edb1b18452e5ed174bc6b2185a6754417d6cc05d736d2ba9efc8367e4b05ba0a2ee525ceeab74f9804a8479130c328d671e34070cf174a003a1dfb5994
+msg = ac3e7da7e578b9b4dc2424030446c7f6aebcc471445a9e0e6e65099caeec5b2f
+result = valid
+tag = c8607fca1888418166c550dd58d7a3976a6ecd0e4ca99b02fb187800a9c9ef909a6c1497c0652d4dca82405ab07f5eed
+
+[keySize = 520]
+[tagSize = 192]
+
+# tcId = 172
+# long key
+key = 063d6e12e670098adabe68192023b637bb6d8d713fc8436188c4ec06fdd084ce6d193f26c86a9560e1abc27d813fce2b3eac0170fd1cb72e1930a2776bc84d6c11
+msg = 
+result = valid
+tag = 9dc2acbfa28a7ac5f2a5bdd4b1b2dbc806c48f96ce950eb5
+
+# tcId = 173
+# long key
+key = 359318e6c6279ba9ebcb1675f5a98195bbf5d895da9c17b8329038be857dc395b12ae91a55598876593c1c20bc0172cf15126b7a6bf0a238eda3325d6dd60600ef
+msg = 7ad0c9098ea10e615bb672b52c96542d
+result = valid
+tag = 4163737c219f7c5e743843dc3d36019c6585ea5d4e7cf24f
+
+# tcId = 174
+# long key
+key = d01cd898089d8a1eeb0035b0d332da80fbd3571b9192db10fa6f55f665ab192d7050cab643996e99254d9573e0cf4eeaa63afccdefd81614fe7b83dfe30e3ba19f
+msg = d67c77cdd0af5d10e8cae887e5a609bb76a9e5597653773c303b82b918fdc59f
+result = valid
+tag = e7df527a988080749ee215ba0f8207838df38a37707a6330
+
diff --git a/third_party/wycheproof_testvectors/hmac_sha512_test.txt b/third_party/wycheproof_testvectors/hmac_sha512_test.txt
new file mode 100644
index 0000000..0359879
--- /dev/null
+++ b/third_party/wycheproof_testvectors/hmac_sha512_test.txt
@@ -0,0 +1,1234 @@
+# Imported from Wycheproof's hmac_sha512_test.json.
+# This file is generated by convert_wycheproof.go. Do not edit by hand.
+#
+# Algorithm: HMACSHA512
+# Generator version: 0.8rc21
+
+[keySize = 512]
+[tagSize = 512]
+
+# tcId = 1
+# empty message
+key = 5365244bb43f23f18dfc86c09d62db4741138bec1fbddc282d295e0a098eb5c3e37bd6f4cc16d5ce7d77b1d474a1eb4db313cc0c24e48992ac125196549df9a8
+msg = 
+result = valid
+tag = d0a556bd1afa8df1ebf9e3ee683a8a2450a7c83eba2daf2e2ff2f953f0cd64da216e67134cf55578b205c8a1e241ba1369516a5ef4298b9c1d31e9d59fc04fe4
+
+# tcId = 2
+# short message
+key = 00698977f7102c67b594166919aa99dc3e58c7b6697a6422e238d04d2f57b2c74e4e84f5c4c6b792952df72f1c09244802f0bcf8752efb90e836110703bfa21c
+msg = 01
+result = valid
+tag = 4d1609cc2c2f1ab5ddc35815ae1b5dc046f226bde17ec37a4c89ec46fbd31af2aeb810b196dffdd11924d3772bef26a7a542e0a1673b76b915d41cbd3df0f6a6
+
+# tcId = 3
+# short message
+key = ed6dc65dbeaadbdaab530a0d35f19f78a7bd93e698546c82751bf650c2a44fc8529033d088febeed288fb4c8132a59df0207687640c76dcdb270ac3af5f042f1
+msg = a78f
+result = valid
+tag = 0757b27e120559d64cd3d6e3cb40d497845375815181bd9b4e74f2189d09d01a1b3ead53701380d988958ed22bc379ace9d47cbcac1d49bfa7e14f1f44804c30
+
+# tcId = 4
+# short message
+key = 463c5e696da0ec0d784388be775d1d91d94746aa8d3d2c209f56ac95ea54e7288329f9fb40be4eef35547e64c61dc51a4a1f3380a2b96420f088655ea9d85b97
+msg = e956c1
+result = valid
+tag = ac4b1509391814ae5cb5a123e7a060601575c11d81b563bdc52febe6bb2c747b85eeddcb6748c98147a46a1cc9be6776d1a8e82ae4896b9c18da2ff351c56795
+
+# tcId = 5
+# short message
+key = 4bc0d32e945cfdafd20d39be3820f9649727cbda5ab5859953a322cbde1ab7a514d7dcd14ba90905e70919bb86b85cfeaa375ee2ce2703711b938c8f4ab5f178
+msg = b2aa48b3
+result = valid
+tag = c4ecdbd2efb17640ce6707e2e9d0ee5bfb98b91584bc86ab386437eaa37b0f2eb70500361105416c0dcecff389dc94c723fcff18cb801740962312007a195a23
+
+# tcId = 6
+# short message
+key = aca47f6350941a0efd8c3bac9064a554be337cde7d192f6fbf86d1b4db09b36531165cbae0a634206f71fa400df33352fff60e1fba4009ac6671cd37312bdd98
+msg = bc993b1db0
+result = valid
+tag = 89af2f5746cab89fda6993e00f1bf0cc70a77188945bb7b5409b536aec5533ad501db6ecfa3e516b580b7df9c8eadb3cf556ccc01668be984335bd5a6255d566
+
+# tcId = 7
+# short message
+key = b3ecae6f25c2f699f158b3ffcd0a7a575583e4c9cb56b5c22ef4273cde6c6734e84d7400749c17e47e8cfccafaf8b50c65eb47dfeb273d5d30a1181e37b27ad0
+msg = f0361d58291e
+result = valid
+tag = 4037a57aa279b5a07abe9389dcf508be9495a8257dcb3feba3f0801cd57574c30bfddc6df5df6567cd572c4e82735fd4e67b65e85b030f183a7f4457fb7d2c3d
+
+# tcId = 8
+# short message
+key = 70ff24a252d65183bdc6b7c88751f850821141a61246727c3240b4f96088ae3278767a822b65735a28ccebe4c874bcb2c942882cb23f9dd87fe08fbaad5ae72f
+msg = e18da3ebf0ffa4
+result = valid
+tag = 878d488754bc796c70e11d5db77acda2e1796d86146e27d862586740c4d488ed12239e6fb4ab2925afc88168609edc048f8572536fae96e149d73d230b18db66
+
+# tcId = 9
+# short message
+key = dd4e05933d09711ee88cb4c1ceb3600b2b33808bc08d499387b331d9c7af49bc65b55172cf8083385a940e4b864b7b4b73ddf3bd513a6cbcac73878a879b4d06
+msg = 66948029351432c3
+result = valid
+tag = 9968a16eff2b4eeecb2f9d11fcb105e8d8ca59ed4e69131c9de599cd8155fa4f33def1195a6b452263aad9265e16d4951841d7cd33c74c475da04497c02922ea
+
+# tcId = 10
+# short message
+key = fbd32caf8984fc4376d10daa7288db8e6e74464bdd94b448adab4497b319e9a6dcce542f82a7ff2e775d12477c880e460a9eab8efc49fcfc8c5476cb4b08954a
+msg = 38a2586a2883953cc4
+result = valid
+tag = e0c69bd034cdec5b48150fdf3a4383456a7626d4405df52dc6c2bc8fe93bd87e369e06a781ed80ba8b1fe1146c4df82b6a514412358b31b77b9b79c7a91ec9e4
+
+# tcId = 11
+# short message
+key = fd4c3f6b2137513616c28ed4d8638f867ad0b97188b73fc9b36f3d52b82d72a49b9dc1b8b25397eb448054a8d38d838e7a88b4df9c263aea1b968771d5ac5756
+msg = 86b4e61b3b7d650044ad
+result = valid
+tag = 29345d7da44e2f228e8d502e29fb655da3676a481f9947c8482502ce070b3da5065589d84c02a05cd774b4bd5a15b668c59bafc192695aec43e5df3a82301745
+
+# tcId = 12
+# short message
+key = f95baea535f477d22b405c67d927f59a9e042c46297a1681bcc16fdbe1b2cd59675a221351a78075981e7eb4998066768801cbd7a85231114d7f27f9bdf24899
+msg = 5a34dee4e0982d458efffb
+result = valid
+tag = 63867bb3e82bd4a5f715b3dd67ba3625666e458c5e3d75804709f80b6dde6f774ea223ba9e2536c60ab636dd12d07b217234a490ea9cae4fe673215d33f8c57a
+
+# tcId = 13
+# short message
+key = 4d76ae95a123207e01c6d22d8b587e63ba682963e50961afff531160a9b9aac6c772c5e8bf918ddecbeb56455ea64710e51ac21e3bb9af4b24eaa8535b3c2924
+msg = 2c31f2d986f68a6d6a96c4b0
+result = valid
+tag = 9d4f9549ac134a6f60f17fd0fbc80f55426afa73cdaf84a806d98dfffc94263178116f76aadca95a9243a9128f5f66d3e7f33e72603d4b35ab90ab7d1e870ad7
+
+# tcId = 14
+# short message
+key = 0da7fa1f5d217951e3e343cda81f232deb71764eb49e8510bc28dba8eb62afa2a98b6f0536adb10250c74878fe649f47bbafdf3f722fa150f66e83f65f606ab0
+msg = 83511de190663c9c4229ace901
+result = valid
+tag = 11bd76ba2fd5684e3faadd44abc05d32661472ae4c75fd69e62e47a2d462e483ab5fd374070e648017250934d486fed55e68f4338547fb5dc54d4bed894c1c2f
+
+# tcId = 15
+# short message
+key = cec9e9f25ed9a017004a7882b1e44e8bd8fa3203c50cb6058455ed4f2a036788d46fcd328327d0d86b1abae69f7bbb96e3d66373ec8bd45075890879a83f4d33
+msg = 80dcd8ba66f98b51094144e9b8bd
+result = valid
+tag = c69f1787bf7804bfffd9da7e62f58c1c9f599ccae2ed4fc6abda1be48620afc797d59d4adb396e1fa5d18b8c1aa1c7c15218a9f9e3aab226119adad742641089
+
+# tcId = 16
+# short message
+key = bbe25649ecdf54ae0028fb923cc8c28ec00e10e2d44214590781238a143b75d54efb037eb9f53082a8ab3d8876daf4dbdc2483c4ba222797fe20da3b7730368b
+msg = 33f630088c0d24cda98caff1a3afc7
+result = valid
+tag = c803ca833e851418a3d9ed764f8c83f481060141eb1b2bf64d7ee7991b041c48bfc747bce13d69722f63944085cef8e7a166270530fe31a2a525a99b8a75f1b1
+
+# tcId = 17
+key = f5e2b9e2313f4f807cb3a924a7d4943fc3fb475d8f1a1b40ce09a37770f621af8977729cadf986c98c75f08a4fab4280538e09e7e51e87a8d62c03411bdb8d24
+msg = 74ef623c83275ae99745bff7e6142afa
+result = valid
+tag = 471055f7a2d44758e7d7837db85c33626b8306760eb45e18d4ba8dfbcd0d4279fcf8b539ef7b165eeabf5457ee2c41e52d07e9121da02c988f08162f86bdf208
+
+# tcId = 18
+key = 8e323d5fb4752d92a6d905c512b287d07b21ae50002d026ff0388e1593bde9998dd02321e200d148f5fa2e824b37e9f5a77441794b840bedd552d1051c1ddd8c
+msg = 4daa229b009b8984354c2ec3e7973e0042
+result = valid
+tag = 93a2137cc84e2fa1439d7c239767b3ce653d634c58a4590eb61af9d3ef986445220aff3554de45a1b0933fa06d3d64460418910977d8d9ddb2eb04963c816841
+
+# tcId = 19
+key = 465bc1ab2125cca29729d01df044e393b0677defdd939280a3aa141224efa06457e623056d02f6c36eca3dfc4a7476dd36b97d0c2d60c7672129189e73b6af8f
+msg = dd84599b47ba9ae9f2ad0c8eac678485433eb6b1dfb7c998
+result = valid
+tag = 9fff43a83c71833211f9d60eeef4166965c41a37c76634b1bdf9c5291df75dc877668f2287bcf8108ea9e03d061a708db2db08687eda61fa97b1ca92dcf22b92
+
+# tcId = 20
+key = b90226798dff2ffb91d1ee4103f26397d0bf84c13c1ec717392c5fe1d4d0f4dc790236d759fa1be852e305da585a3dbde0d3912bea60d6b140c25645eb00943f
+msg = aa29c372f136993c65ace5e1d62078806eb787913bb35af33371056359d354b2
+result = valid
+tag = 493a727536b07d434a7fc8df6b70989148a8d94cadb9761ad845ac5fde2068f9565e68607b531b0f307d7c17ce0a2ba69fb1ac1b0c716f93904eec75669e70b7
+
+# tcId = 21
+# long message
+key = af1bb91775cb40c73983f119c927a2ce8f7b954a6274ecc1cd96019e5c417af4b094376194eae71c7f68f3345654d5d9f8198a697b41ae251e82308accd935bd
+msg = 75ededdfa7f1df1dc144fb195b27e454640e3f897cb564222f05e8aab0c6024f90472afea6e7254ed25134ea43452a
+result = valid
+tag = b53d564086a745b10d88a48b50ed8b53f4c83fd12bf56a75108074de9b343cdf0668ce8b6a3d884ba2da5f4c957f1319e26c0813c99a4269c171ad80981013a2
+
+# tcId = 22
+# long message
+key = 513e0e7622eabcb6bfc81669dac903df46daea1240f32248bbf4fc61f1f9b13b2c3fe1bcc97540d30065be9eee41e51748bc42c16a8c8269fbe2b6f625c19228
+msg = 81d8650937f50871a66af71605ea4fa9d6c5d7a375774c2280eb34aefcee8c0ef83345bc547e4de7cbea482369b25a93
+result = valid
+tag = 9d942e4585742ba118bda6e132510af3b9297047d364f76b2a0d1fc803849b06ccac0eaa427934055c9d2e5a5da19cf17299ffdab65089580d10ff7207c9ed03
+
+# tcId = 23
+# long message
+key = 627c9a72247d07b0cec8346277468311c7401fc4cecaea8e22e13ece4b352c8f7a7eb1ba81ce348a08670438c97b8d9e883614d550f1ff16d636975c59988c2d
+msg = 118e0468cbb52f93a3396ebfaa114881a98a4101f4ff912ced47ecfc73b27f52205b7a5d4f3899506f9e34ebf99460da7a
+result = valid
+tag = a186e08c7731d4bbb1d5342a105ef48f5353c5c542277de607831fcbbc8d0b9fd509c74bf9e352ee739792ee3cd6382f96e70adb589fdf1fb031d43eef1a595f
+
+# tcId = 24
+# long message
+key = 1e981d0cbbad5bea9480d836b4704bf3147663b6ea59e1e0a280fb45d9b85d445dc972159dde301c6f1e66681f95642dbb9a9218c00d0cd724cb02f3bcaea2ea
+msg = 440dff390688c9fde31c17fdb61c1d13899f9544a986324c34d5eb07bef9a4436297f4a7fe16de5dd7b24e0c7c129051efe6f2dd0a21aec05c3e3c8f6fa30d9c0cbd60d840d14f0b2a928bc7189b9de4a6a731151d6b31e6a0ecae75095434737be8c3db11a6a697d0616c78b97041de
+result = valid
+tag = c52eb5d18e90687248342a84dc0241c680e992b88b1409275df7e347c99169a50cd780eb4726ad759e2a027fb091354e3d7c7aba8a21f8acd1d0e21236af5f98
+
+# tcId = 25
+# long message
+key = ee8aea2a52eb7e0c1120ab736b1a825b12610063de9642c594766c020cb87314d8ac94b13072bfbf3c019b4aacb1d2695cdd7563a26f574e12559906784d853c
+msg = a3951f1d18135602fdadceeef5741c24ad22756160d0c55e51b788af952adaeb13e18c24c6b09672f405d7ec3d49b0bd86c7f8691b6f69af49175423215cf57d7c08a54ab0b0293e685c9aa250f1599d78193a00af822dec4b56fdb41f0343ab2cf85ea27bb2e650930f5e8ca836833903b053b3e06899b4012a6532978d90
+result = valid
+tag = d3678ca7c5c1aa21f12eccc21a1add0b3eb12ccd134033570468191e51b058c61f2a7d88f2ca6c652c29c65c491bf1f0252bc157bdd77436ff55204eac6dfb0d
+
+# tcId = 26
+# long message
+key = ecd1861a12eaee48aef1d7ed278223b50d3416dbff81e976c56ecd4b1a1bc8892b584cbcc72370ff5e976a6af1790caa32f9ea912855914c0315979578fbf165
+msg = 5779c56373a8e5db43bd65c0453ce23144230d43666d717a3b59d2e90f0e10732376831d7281cb23dd5566e5f8c627d00d39650139ceb87cd47e921d65d6c1cc7712ac4bd75bda8828e68abc968f4160ed91b28946c9d706b0360bbbdd65f47ef9983c50f2d09d05c3674c0943ea4af54c381089f9b846dd69ce908e0f6eaaaf
+result = valid
+tag = d377e4efc39f25ca751452e79dcb5661f8adcc06570bd3f710e03854e032286ca477e6a620647958fd31706463b542ddf617757875f349c61109358d04f6dc58
+
+# tcId = 27
+# long message
+key = 71aadbf330ea133b46c939d12e603896902e8df638597c98872dfb5aecd5161bc84095221de3222367012f45c6d70701e862ab000e782e91b505b21b4e212c38
+msg = e6d7b0280d2f7df83fd26562fcdea2597cf687a9c9fa194f655c44d3271b881f28adc436db8e0437ff4dc5d38356271c338829c3e2d9ba4ac1777c94886983d4b72c275bc00e4f7b06c5ce38a2fe549fe53761857f236da705fd03790b41cc6f759f41aa206feca7ba5486f4fc9d09f35c8e0887241291882010414ae41b8b384a715a409be13da17bfd60d3fbd4b8cb3cc7c26043807264a20b9a5c02725e742fff03e1806b38af357ebf8c79fc4c38b007bf0613286cf063e45482375475e6c426d4f70057cd92efcb2dfe86e45bdea399273a5e0f142221fae206800555c01b18533295f577e23a9a7a0aa072823002b9096501174d3bc4aac33e0dc600
+result = valid
+tag = 0c1cbb2f196d3d1af5f982a330bf1d9accaada72cf6c254658cb32bfd8705481abd2e163a73338700f0d961ca02a31b600df04faf311cd06498557831102f80f
+
+# tcId = 28
+# Flipped bit 0 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d39b9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c
+
+# tcId = 29
+# Flipped bit 0 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = be301cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52
+
+# tcId = 30
+# Flipped bit 1 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d09b9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c
+
+# tcId = 31
+# Flipped bit 1 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bd301cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52
+
+# tcId = 32
+# Flipped bit 7 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = 529b9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c
+
+# tcId = 33
+# Flipped bit 7 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 3f301cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52
+
+# tcId = 34
+# Flipped bit 8 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d29a9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c
+
+# tcId = 35
+# Flipped bit 8 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bf311cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52
+
+# tcId = 36
+# Flipped bit 31 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d29b9ebf87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c
+
+# tcId = 37
+# Flipped bit 31 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bf301c3fb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52
+
+# tcId = 38
+# Flipped bit 32 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d29b9e3f86809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c
+
+# tcId = 39
+# Flipped bit 32 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bf301cbfb466720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52
+
+# tcId = 40
+# Flipped bit 33 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d29b9e3f85809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c
+
+# tcId = 41
+# Flipped bit 33 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bf301cbfb766720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52
+
+# tcId = 42
+# Flipped bit 63 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d29b9e3f87809606f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c
+
+# tcId = 43
+# Flipped bit 63 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bf301cbfb566728e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52
+
+# tcId = 44
+# Flipped bit 64 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d29b9e3f87809686f24109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c
+
+# tcId = 45
+# Flipped bit 64 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bf301cbfb566720e22f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52
+
+# tcId = 46
+# Flipped bit 71 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d29b9e3f87809686734109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c
+
+# tcId = 47
+# Flipped bit 71 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bf301cbfb566720ea3f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52
+
+# tcId = 48
+# Flipped bit 77 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d29b9e3f87809686f36109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c
+
+# tcId = 49
+# Flipped bit 77 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bf301cbfb566720e23d166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52
+
+# tcId = 50
+# Flipped bit 80 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d29b9e3f87809686f34108fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c
+
+# tcId = 51
+# Flipped bit 80 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bf301cbfb566720e23f167e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52
+
+# tcId = 52
+# Flipped bit 96 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d29b9e3f87809686f34109fbc618d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c
+
+# tcId = 53
+# Flipped bit 96 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bf301cbfb566720e23f166e24965c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52
+
+# tcId = 54
+# Flipped bit 97 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d29b9e3f87809686f34109fbc518d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c
+
+# tcId = 55
+# Flipped bit 97 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bf301cbfb566720e23f166e24a65c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52
+
+# tcId = 56
+# Flipped bit 103 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d29b9e3f87809686f34109fb4718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c
+
+# tcId = 57
+# Flipped bit 103 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bf301cbfb566720e23f166e2c865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52
+
+# tcId = 58
+# Flipped bit 504 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d29b9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388d
+
+# tcId = 59
+# Flipped bit 504 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bf301cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca53
+
+# tcId = 60
+# Flipped bit 505 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d29b9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388e
+
+# tcId = 61
+# Flipped bit 505 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bf301cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca50
+
+# tcId = 62
+# Flipped bit 510 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d29b9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb038cc
+
+# tcId = 63
+# Flipped bit 510 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bf301cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca12
+
+# tcId = 64
+# Flipped bit 511 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d29b9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0380c
+
+# tcId = 65
+# Flipped bit 511 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bf301cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8cad2
+
+# tcId = 66
+# Flipped bits 0 and 64 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d39b9e3f87809686f24109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c
+
+# tcId = 67
+# Flipped bits 0 and 64 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = be301cbfb566720e22f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52
+
+# tcId = 68
+# Flipped bits 31 and 63 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d29b9ebf87809606f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c
+
+# tcId = 69
+# Flipped bits 31 and 63 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bf301c3fb566728e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52
+
+# tcId = 70
+# Flipped bits 63 and 127 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d29b9e3f87809606f34109fbc718d62bbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c
+
+# tcId = 71
+# Flipped bits 63 and 127 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bf301cbfb566728e23f166e24865c316f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52
+
+# tcId = 72
+# all bits of tag flipped
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = 2d6461c0787f69790cbef60438e7295444f63d8730fa5df9520deb9c1ee8fc9dedd1a7d8d5ce9868df4dab3429c58392969406d7c063976818286db7c44fc773
+
+# tcId = 73
+# all bits of tag flipped
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 40cfe3404a998df1dc0e991db79a3c690de9e6383eafcc339171443373a3a45c181d23584fee40b313b38182933be43ef3c41c917cdf3af55093ca0fb53735ad
+
+# tcId = 74
+# Tag changed to all zero
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+# tcId = 75
+# Tag changed to all zero
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+# tcId = 76
+# tag changed to all 1
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+# tcId = 77
+# tag changed to all 1
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+# tcId = 78
+# msbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = 521b1ebf0700160673c1897b4798562b3b8942f84f8522862d7294e3619783e292aed8a7aab1e717a032d44b56bafcede9eb79a8bf1ce817675712c8bb30b80c
+
+# tcId = 79
+# msbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 3fb09c3f35e6f28ea371e662c8e543167296994741d0b34cee0e3b4c0cdcdb2367625c2730913fcc6cccfefdec449b418cbb63ee03a0458a2fecb570ca484ad2
+
+# tcId = 80
+# lsbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d39a9f3e86819787f24008fac619d7aaba08c379ce04a307acf31562e0160263132f59262b30669621b355cad73b7d6c686af8293e9d6996e6d693493ab1398d
+
+# tcId = 81
+# lsbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = be311dbeb467730f22f067e34964c297f31718c6c05132cd6f8fbacd8d5d5aa2e6e3dda6b110be4ded4d7f7c6dc51ac00d3ae26f8221c40bae6d34f14bc9cb53
+
+[keySize = 512]
+[tagSize = 256]
+
+# tcId = 82
+# empty message
+key = eef6bcf16ef7ae17326a33f22d1406ec1bd3f866505f4b2e4fe8b45bd62ccbd85032a9899facf2db0c93a2345cb8892afb74db549781211dd8881a8c8e25c171
+msg = 
+result = valid
+tag = 75f6975e3500be4fbfee1bc95644745ce9f8d47b6f3818a48ff34e8c2b186ba6
+
+# tcId = 83
+# short message
+key = 838696e6190c874c3717b8be0cf063ca6d60760987d1a33703e7e35eb173e5ae954e741a37935139d612149e76f6ab2a370604f5b4a68bee87e309240a9ba3d6
+msg = d8
+result = valid
+tag = 5bcf44539d8783bb708e7f5dafc4d683bcaa0d240c902675bdde059f944dacde
+
+# tcId = 84
+# short message
+key = fa999ed1cfbc5c43afb16f22d024e3ce645e00b06712c93b946167c9c2c037d192f0f3003f87c43a71166fe1a3c5824c348673a2f0f3c475706985940f6b02a2
+msg = cad2
+result = valid
+tag = 9a93f4728aa5941da160ec707f14b7e9ee1e768c7f627269543430d2fc681e90
+
+# tcId = 85
+# short message
+key = b53fced8b7b4aa59d3b56d91e1386763c39e351c2f5ad6a4885e442ad894d5181c5bfe5c05280a84ad19d758e359bf8171fe652988fcf9d1458ea17364ca8fa9
+msg = d3393c
+result = valid
+tag = 02c4968e86d1c62837a41650d3199ca6b3c59b8227f55e0ba40e5e3904ab512a
+
+# tcId = 86
+# short message
+key = 3f0cbeebe391c6491e77c57a05e85a16f0b5294d19f9a7f3390baf7a2051fbf980e041ee45c9104a9126a6a7ec182eaec27a99c1a7a3f5a1e8cd8ffde60641dc
+msg = bebb0392
+result = valid
+tag = 8d68dd7d67763e8eafee0029d01e96e6a09c4ba09e57a2e5bde3bacca213c695
+
+# tcId = 87
+# short message
+key = 4a7f110b92241badc907ba3c61477bab0953a851bf327425e858fc724bd33ede2a4a5018fe71aab434bda8eb2464a41577c8d570530c460f7c8bc0172f1ee0f1
+msg = 40a333f4cf
+result = valid
+tag = 5feda3366ce9f5ac3402c977a4062d33c09e2c9a3d0c2dcda0c8d67b4bbd1a37
+
+# tcId = 88
+# short message
+key = c6c95bf9facab295cebfa4b907855874f57a5c1548576ad8bae694a364f5e58dbb8c8dd49330b2fdd1b71657d211db2a6569a9f3a356c0c5b3c4efbd5b6777cb
+msg = 4cf926af475a
+result = valid
+tag = 0a748aa33762d374aa04b617b58d129ad1aaf252a40463fd62ce924e21e6d52c
+
+# tcId = 89
+# short message
+key = 0d3387fe59e8e7c43c928dac7913826dec4d63ac3c8ee346ba7caed9505b9e63ff8942cde90997e8dbeaf6e17ee187c0a84a1853952d866c15f9a32fcee6a82a
+msg = 2ba3bc3cd64bc6
+result = valid
+tag = cc7e97630884bd8ad56f6d96fd34690eab6c8ad5556b519db3bc3c6083c82d3c
+
+# tcId = 90
+# short message
+key = 3cb9ce565388a6f0454a80add86c7e107ea537d7f468a0648930fc37172cf7b4ca9058033071c354a20a608e2d46e98afe46435a344362989cbaafac18859bba
+msg = 33ce498e1f94f412
+result = valid
+tag = 76335ee23ee1dc258812be373bb5f95918babed0b69e565e00ee3af776c5a5fc
+
+# tcId = 91
+# short message
+key = c25f45ceb2a5597f361445fa41a9019f41a6e6d7f144203f29c0b9fcea362d60894c3cadc1ce25d53da362e464c11fc6e169e3db2ea1cf40fe08fffb429b1a5b
+msg = 81978af4795c50f89c
+result = valid
+tag = bf73218544d8458e6ad00727b236f833d281723d7dcae4d1019b70b9d6e8bc4d
+
+# tcId = 92
+# short message
+key = b458764ee273f391cb718f64a1bca64c96a870d9426d6254ee37e5c93898d6a5ef68e9d3b0e057a3c396faa834a29926a9680cfa903d2a605b85407bb24c8cee
+msg = d804dc2a1e146f62b621
+result = valid
+tag = 5b25843416467b9e0a24cfab67d8fc27e0623ff9e01b2204b5afdf3e9cc05d1b
+
+# tcId = 93
+# short message
+key = 7cbc5778f70595fc211cee3a93e17ff7f25a1d9f3766f8eb70eb1e08c9420a62bd89e8b7d834cc854d059afd413e4d9c062a532e015928528c7f5812dfebecac
+msg = 4017e0ffcaac4c485ce7ec
+result = valid
+tag = 66b4191b37a6f78809c434736ed6ac2273c04a11219636e92671ea05bf6dc299
+
+# tcId = 94
+# short message
+key = 937b9711d670daa2359920e47dd6d0fb75275105b3ef07bb4a31d3c4b99baa8ff79ee4b4a1b4a5b250d0fd7b4721e04a7b06035b1d0c9d739597707839018bce
+msg = 6991810e9788af7aabff8eb4
+result = valid
+tag = 23522de80ff6a3a6d8fc1bf9b632e1600df53c59f38589a6f2ae9b95d940a340
+
+# tcId = 95
+# short message
+key = ad37630a280b1a75ebed1984217150a400a55dca2362a8eaf3c907858d0b45db3e208c316d033854eb4284f71117d33876e0e203ca922d26f9b76d94cab0d4f3
+msg = 7c6f2fd83e5691827be38e49a0
+result = valid
+tag = b609c0b5d359061ac066bd3bccabc98493fd33bac8fe0e3f2e2b4758cb6578b0
+
+# tcId = 96
+# short message
+key = 526aa2645ab71229e2c60f68bd5bbcf0cea0978a0a9c60cf695e81fecaedecfa0362c21747eaa995975208ca35cfa6bc2b95d1c2afcee11275f43add6f026d6c
+msg = 681bca550fe301f2dcc1e38b53c1
+result = valid
+tag = 1f1f50dacb3dc35b90429c0f9b31edd239a6af4c09d51095cb39ff11c7c26598
+
+# tcId = 97
+# short message
+key = 6026a9047a07ccf197fde09c8b9f15f34bc52472b7d1ea4673b4914a0e1c3aa4cfe8d6ef12d4d4019f5ff3ac0adcad7358490874155daf41da2f74aca1cd894a
+msg = ce1d869c53041c5f6acdda7a05af15
+result = valid
+tag = bd2d678ceadd71680f9987c88d24c49335cb985af0bcf8e23fe810e83a920f13
+
+# tcId = 98
+key = a03d2c543c302949c51b662f43114c1305a8f6961ae48342803d3690dc18255fab924965536a79bc38564c7c97cb8cc0209786e9f76375bf181529cf7f93d954
+msg = 697617ae31f19b8a6ad4b8489bfc3db1
+result = valid
+tag = 577d62d7279b39a0d71e2f80833425ed43e4a16233eeb5d251f766db0bf7a58c
+
+# tcId = 99
+key = 25843665d39c3ae9a7b3e4427e2bf7785281fd2594bdde67860ca9b8fa11646469d1645ae8ca3825b8c551f9eac3da0660d8c2e2e3bd23d34395c6775dcdfd2e
+msg = 74082cc5d14db1967442d66aac6092bd23
+result = valid
+tag = b373ac5fb1982b9d47d28844e969d51680dc81d21d556c2671c29c11dfa6e340
+
+# tcId = 100
+key = 4831ab4962a2d2436091cbbf388d2ba042b472a262ed8373c85d047c702adf73a87eb097e72d91d089b7d1504a7f7d8abb3bc2c44c1340d6c16c84ea9269e64b
+msg = 2803c2f4e5b4bfccd2b407469a6cb5ef21fd14a682636397
+result = valid
+tag = 641f29925c06aa01086c8bce89d99e1456dc2ad4b1d3364442187ce4392838ee
+
+# tcId = 101
+key = 449bb57d046551e1819b3c994122c3605954317d0d76212284a3328c226732cbf4ecb442a582c8423888aaed946e5eec2be66e127f1e2e29b66e68b9b4bec4d1
+msg = 79004e644389a11b709bc0a23cb8592f9fc7960bfa46132cc1ffb9747df37dec
+result = valid
+tag = c054667d992cc1e84fa5b13f6402125b4bb6fd2900dbcdaf8b8644c82edadc2b
+
+# tcId = 102
+# long message
+key = ff97b77020861a0ce00eff8de9e701aea8c6de0fffd9b4c1342a416d357fce35a7016c64ccd38e2bdf674802281c2234153dd83aacb948966dc87ea4718fff75
+msg = d7e2d2437b7067a30f04529041960e041e281737d1e0daa8cd50cc0b264716e117aa2fe9a7e39c2f178c607faa50c2
+result = valid
+tag = 062e9c4609a3b1d5df277a33ac1c7501df81ec1ddf460b0850a2aa332d07bfcb
+
+# tcId = 103
+# long message
+key = f4daf370c4f437d8a85391ec455e34540be8d32df8dfac05b166ae72ec1cc608f8c177b30dde8bf07c9d434732c26a6e530b182c7ab21093eb79d0bb5be85e53
+msg = f60418f6c54a25fabf518273088619c0741c1c7187de93a0cf6a03f4565f1765de656754541b860137f3f8455de7c403
+result = valid
+tag = 4d4a568dd26d27267d0772540ebb0b94d44fbbb15a1bb749a570ed6313ee695b
+
+# tcId = 104
+# long message
+key = 3be95e879421ed7856269eef39a2070fae406cec5e30b50d92792df5a37de98595684eaa9205587ca607eeac8f96592f458f63434b7dc82596d3e4a1a16c3d59
+msg = c64f7c970a441c6c503838a491308c783099eac52bd35a217978a64dcec84d34186ab3b74f20285d6fea2165eab4da3d2c
+result = valid
+tag = 4ea9e2f08870c30cb68d419816deb681cfd6ba62906e6b4a8088efcd9fa4edf9
+
+# tcId = 105
+# long message
+key = b5eb53586b948587db3dd46c43ad65498a5079157562e4074c9c20d097d0c97f19db4661fb2dd11b87a5ccba2c345642618f561d00bf87dffc66762e45e0156f
+msg = 9e8ebf96429955d60b925a4111745ec7028de24e694a6d2eee1dbd5e820ab9f00beafde09f95095933a02f251297282b0cf67c518397655841f230e1d9ae5ba93150d4375dc7c0738b99850b07d5a442994e68dc813d55edefa6cd063ccb202711d97ba674efa02ddbdc692341e77cfa
+result = valid
+tag = 6a5b6272df7fb6315293ce22483511d700a83c34db6b0ee4398b4a770241fcf2
+
+# tcId = 106
+# long message
+key = fbc678235d596980268730a7aa8a3c25095f1dbcf7f830990716a510c44e62b1ae8ce095c65e1852bd8a09f25ab93415ae736f22b2c68ecdf3c0f71e15a057dc
+msg = ef395738f2b3bd7a0649eea75e734e5c79baf21358c7ae96c63a58e260266c7bfa869664c5d10e87c26d0f5edb3b5f73900c1d9a96a5a2c2912506c19dff04e900b8d5d63e1bb606fe3d5a229b642b1ac59e08a4687a7aade3de16d183131ddd02da988ff826e88b74ba0c5c41cfcd8570cca59fb3304d588f7f7e63dad47a
+result = valid
+tag = 84df3338f502e65866cf2077f6776341a89dd2234961b474d5b7438d1836fd6b
+
+# tcId = 107
+# long message
+key = d8437b093e170afc30fb68d873db6dd67ee0372b6c5feb124d548abbd93304a082235a170a9d326268d0cfc34264d8ebcfcbcc0dc0ea7767b650dbcfc7848f91
+msg = 0fb91bb043cf3d49341482eacbab92da92117bb6ec03b518a93c9d59e54702c6a21ade4f255870cb52da4a24b36856b0cbf8b122d2fd5b0219aeacb6e292c95863921789092d5d65d5a9389231670e38be31d8b76630650c77edc23773d5ec9189915560ef6f45a4275f85957d8762916d8147ef43ea6f438d066227354df26c
+result = valid
+tag = 4b9b51f2c7d725269a5bd735d4251cbfda71ea5cf5c046379b439ddff766d21a
+
+# tcId = 108
+# long message
+key = d29225e3042b43d4eb7a9399f224424b5b4dd99031c8abf609d3a6e3175897134cc7ba8a6be25d436d41a757a2daa4e1b03f7c3053ee8cada19531d48dab93e0
+msg = 1fdad8cd37e115ef8131d4619b5d61a9827a11b9c25c5b8220b002d5b7f6e2bc30a7e2f3d103dbcaf849a255c20ec5d1b40a623e398d76c5b7f07fe305181cd5bee29de3360fed55f69063e6a8fd2ef31291e4d7c3908449466b4ff1166959ff1f2e86eb48a7ed11bdcec2fc2dfb6684b36b8d0b68e0f1b23ef11bf5907d4a2b162cec26f31b6d5d9892a27b3fad7a5549858dad530bae193d9b60d42d7ad2a66476a3ba4bf7a27ff9d0f885a540bf181caad71a235eb348a23d053ba2db7aed8d7d01d96dc9f780e2e426c72bb63fcb3fff44c14bb7b0f8af3552d67ee6761092c757627d19c080499c247d13b431699397159b1b71c6274584959d5c30f0
+result = valid
+tag = f9ad00420ce909cd050fdb84dcc70f00df97928968d0aca51db2784f0394898d
+
+# tcId = 109
+# Flipped bit 0 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d39b9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362
+
+# tcId = 110
+# Flipped bit 0 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = be301cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3
+
+# tcId = 111
+# Flipped bit 1 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d09b9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362
+
+# tcId = 112
+# Flipped bit 1 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bd301cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3
+
+# tcId = 113
+# Flipped bit 7 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = 529b9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362
+
+# tcId = 114
+# Flipped bit 7 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 3f301cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3
+
+# tcId = 115
+# Flipped bit 8 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d29a9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362
+
+# tcId = 116
+# Flipped bit 8 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bf311cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3
+
+# tcId = 117
+# Flipped bit 31 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d29b9ebf87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362
+
+# tcId = 118
+# Flipped bit 31 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bf301c3fb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3
+
+# tcId = 119
+# Flipped bit 32 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d29b9e3f86809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362
+
+# tcId = 120
+# Flipped bit 32 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bf301cbfb466720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3
+
+# tcId = 121
+# Flipped bit 33 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d29b9e3f85809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362
+
+# tcId = 122
+# Flipped bit 33 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bf301cbfb766720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3
+
+# tcId = 123
+# Flipped bit 63 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d29b9e3f87809606f34109fbc718d6abbb09c278cf05a206adf21463e1170362
+
+# tcId = 124
+# Flipped bit 63 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bf301cbfb566728e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3
+
+# tcId = 125
+# Flipped bit 64 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d29b9e3f87809686f24109fbc718d6abbb09c278cf05a206adf21463e1170362
+
+# tcId = 126
+# Flipped bit 64 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bf301cbfb566720e22f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3
+
+# tcId = 127
+# Flipped bit 71 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d29b9e3f87809686734109fbc718d6abbb09c278cf05a206adf21463e1170362
+
+# tcId = 128
+# Flipped bit 71 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bf301cbfb566720ea3f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3
+
+# tcId = 129
+# Flipped bit 77 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d29b9e3f87809686f36109fbc718d6abbb09c278cf05a206adf21463e1170362
+
+# tcId = 130
+# Flipped bit 77 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bf301cbfb566720e23d166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3
+
+# tcId = 131
+# Flipped bit 80 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d29b9e3f87809686f34108fbc718d6abbb09c278cf05a206adf21463e1170362
+
+# tcId = 132
+# Flipped bit 80 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bf301cbfb566720e23f167e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3
+
+# tcId = 133
+# Flipped bit 96 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d29b9e3f87809686f34109fbc618d6abbb09c278cf05a206adf21463e1170362
+
+# tcId = 134
+# Flipped bit 96 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bf301cbfb566720e23f166e24965c396f21619c7c15033cc6e8ebbcc8c5c5ba3
+
+# tcId = 135
+# Flipped bit 97 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d29b9e3f87809686f34109fbc518d6abbb09c278cf05a206adf21463e1170362
+
+# tcId = 136
+# Flipped bit 97 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bf301cbfb566720e23f166e24a65c396f21619c7c15033cc6e8ebbcc8c5c5ba3
+
+# tcId = 137
+# Flipped bit 103 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d29b9e3f87809686f34109fb4718d6abbb09c278cf05a206adf21463e1170362
+
+# tcId = 138
+# Flipped bit 103 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bf301cbfb566720e23f166e2c865c396f21619c7c15033cc6e8ebbcc8c5c5ba3
+
+# tcId = 139
+# Flipped bit 248 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d29b9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170363
+
+# tcId = 140
+# Flipped bit 248 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bf301cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba2
+
+# tcId = 141
+# Flipped bit 249 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d29b9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170360
+
+# tcId = 142
+# Flipped bit 249 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bf301cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba1
+
+# tcId = 143
+# Flipped bit 254 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d29b9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170322
+
+# tcId = 144
+# Flipped bit 254 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bf301cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5be3
+
+# tcId = 145
+# Flipped bit 255 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d29b9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e11703e2
+
+# tcId = 146
+# Flipped bit 255 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bf301cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5b23
+
+# tcId = 147
+# Flipped bits 0 and 64 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d39b9e3f87809686f24109fbc718d6abbb09c278cf05a206adf21463e1170362
+
+# tcId = 148
+# Flipped bits 0 and 64 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = be301cbfb566720e22f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3
+
+# tcId = 149
+# Flipped bits 31 and 63 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d29b9ebf87809606f34109fbc718d6abbb09c278cf05a206adf21463e1170362
+
+# tcId = 150
+# Flipped bits 31 and 63 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bf301c3fb566728e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3
+
+# tcId = 151
+# Flipped bits 63 and 127 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d29b9e3f87809606f34109fbc718d62bbb09c278cf05a206adf21463e1170362
+
+# tcId = 152
+# Flipped bits 63 and 127 in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = bf301cbfb566728e23f166e24865c316f21619c7c15033cc6e8ebbcc8c5c5ba3
+
+# tcId = 153
+# all bits of tag flipped
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = 2d6461c0787f69790cbef60438e7295444f63d8730fa5df9520deb9c1ee8fc9d
+
+# tcId = 154
+# all bits of tag flipped
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 40cfe3404a998df1dc0e991db79a3c690de9e6383eafcc339171443373a3a45c
+
+# tcId = 155
+# Tag changed to all zero
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = 0000000000000000000000000000000000000000000000000000000000000000
+
+# tcId = 156
+# Tag changed to all zero
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 0000000000000000000000000000000000000000000000000000000000000000
+
+# tcId = 157
+# tag changed to all 1
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+# tcId = 158
+# tag changed to all 1
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+# tcId = 159
+# msbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = 521b1ebf0700160673c1897b4798562b3b8942f84f8522862d7294e3619783e2
+
+# tcId = 160
+# msbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = 3fb09c3f35e6f28ea371e662c8e543167296994741d0b34cee0e3b4c0cdcdb23
+
+# tcId = 161
+# lsbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 
+result = invalid
+tag = d39a9f3e86819787f24008fac619d7aaba08c379ce04a307acf31562e0160263
+
+# tcId = 162
+# lsbs changed in tag
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+tag = be311dbeb467730f22f067e34964c297f31718c6c05132cd6f8fbacd8d5d5aa2
+
+[keySize = 256]
+[tagSize = 512]
+
+# tcId = 163
+# short key
+key = 14d93759fc28f3319ab74b8167c974e800f032344dc2747ec0f4945061a47827
+msg = 
+result = valid
+tag = 68934dbe948d9a77a5e0a92ed98254fa3b6c93c8bf5eeaa912b7dfdf762b37192c5d8523bcab9ad71b09bf96d8454188d001c7f2077eb641199f5731b9f94669
+
+# tcId = 164
+# short key
+key = 9fa371f36fb273d514fd628cb938067a4bae32a19a1e045a7d6d7f6de3751cbf
+msg = 311bbf722d322cd7a0710f480fc66518
+result = valid
+tag = 16345f6a6ca6e78d4ccac30b48d76691d6442420efa113c15ef127b538b5b024018b7d2db4bc3ed3424251ab6b8b6c3cb108b0beda842dc3e68e63400287e5cd
+
+# tcId = 165
+# short key
+key = 6313f1526bc220f20dde1e64ced8597279586d1e15aad05ad591d841b369284f
+msg = f744fa3933e16d8bf524afaeb34c715653a9cfb01fa45fe1fb68e701fe1487ca
+result = valid
+tag = b88d1ba03e2799200a447550d18e310697a57974f513df77eb07bbe315ba5fef397eeb81ad9071680bcc6c70f6b252ade35b4a4040279ec01b86e40b98770e39
+
+[keySize = 256]
+[tagSize = 256]
+
+# tcId = 166
+# short key
+key = 1e225cafb90339bba1b24076d4206c3e79c355805d851682bc818baa4f5a7779
+msg = 
+result = valid
+tag = 23d482a05c907eeb346ba98f83db0f63c2adfbd5b2940f33c7964c7f1799f180
+
+# tcId = 167
+# short key
+key = 6fa353868c82e5deeedac7f09471a61bf749ab5498239e947e012eee3c82d7c4
+msg = aeed3e4d4cb9bbb60d482e98c126c0f5
+result = valid
+tag = 1cf9d2c9c1b55a45190b5beb590cd4cc95e3853df8aaf9f4fef9bbbbd72435ff
+
+# tcId = 168
+# short key
+key = 186e248ad824e1eb93329a7fdcd565b6cb4eaf3f85b90b910777128d8c538d27
+msg = 92ef9ff52f46eccc7e38b9ee19fd2de3b37726c8e6ce9e1b96db5dda4c317902
+result = valid
+tag = d127b7385badf0c76f2b3d8aa9c722333592e01f462fedd35ec664a6f6d52d74
+
+[keySize = 520]
+[tagSize = 512]
+
+# tcId = 169
+# long key
+key = dd1e0bdbb6b60862176484f3669da531455f1cd714f999c29f08b851055fee8d72186d376c236f4e16cba7a25cba879fb2753deca4459aaebc6f6de625d99af330
+msg = 
+result = valid
+tag = 7e4f7d844b3ba0e025b66de7cc6227bc50d4e174930251bfff3df36c3900b5b76b00095a896d0f96842e37b6134df40760307699534d6670f138974ee1c58d94
+
+# tcId = 170
+# long key
+key = 432b311ebcfd46ecfcd3cc706ebd05c787dfbe1855fdcfce8d50c9a00f72b65a8d42acec335b4e07d544c92fd7b1d38543ac6e0fc04c26d88de8dd974af69e24d7
+msg = 36b1fbe8f1335e7c0399c24730906420
+result = valid
+tag = 2cfb688f30b10534da9377a4b3fbee1dec161cb288ac8b758793838b45ab953979dadf27817f477c9ebf23cfdcbacb60b81038e08bc4fc3180bd2a1ee805976a
+
+# tcId = 171
+# long key
+key = 17f720f09df5972af9b9c63e10043284608900d50b7955db3b4e2679cb4120be2c9b9e2aa1a5743eb519792822c326b4d890b5554d1cb0eb71081b7569a2f04df7
+msg = 57167c2524a55289687b83a40d3a69bc90adc53ad247020b88897f9b95d1516d
+result = valid
+tag = 4f70267b98fceb4f662901bd18fb4c81ac164281dd0ece43028a3c2a65ca213aedf1bd207f0939bd879bbe20fd09cdeb20246e6539766add08b3adc5143d2bd9
+
+[keySize = 520]
+[tagSize = 256]
+
+# tcId = 172
+# long key
+key = 8a0c46eb8a2959e39865330079763341e7439dab149694ee57e0d61ec73d947e1d5301cd974e18a5e0d1cf0d2c37e8aadd9fd589d57ef32e47024a99bc3f70c077
+msg = 
+result = valid
+tag = e1657f44bf84895e6db0810a2cca61a6e105e12ec006f0b5961020301b57744e
+
+# tcId = 173
+# long key
+key = 2877ebb81f80334fd00516337446c5cf5ad4a3a2e197269e5b0ad1889dfe2b4b0aaa676fac55b36ce3affc7f1092ab89c53273a837bd5bc94d1a9d9e5b02e9856f
+msg = ba448db88f154f775028fdecf9e6752d
+result = valid
+tag = 33d5a2d1998a586849eebf8134728485fcfc71248f4a98e622f83b967844c40e
+
+# tcId = 174
+# long key
+key = 21178e26bc28ffc27c06f762ba190a627075856d7ca6feab79ac63149b17126e34fd9e5590e0e90aac801df09505d8af2dd0a2703b352c573ac9d2cb063927f2af
+msg = 7d5f1d6b993452b1b53a4375760d10a20d46a0ab9ec3943fc4b07a2ce735e731
+result = valid
+tag = 88d579c2801905b818070ccebd2c7192f97bb3e7acdcaf613cecc74d0e411232
+
diff --git a/util/convert_wycheproof.go b/util/convert_wycheproof.go
index f972d47..a39e485 100644
--- a/util/convert_wycheproof.go
+++ b/util/convert_wycheproof.go
@@ -215,6 +215,11 @@
 	"hkdf_sha256_test.json",
 	"hkdf_sha384_test.json",
 	"hkdf_sha512_test.json",
+	"hmac_sha1_test.json",
+	"hmac_sha224_test.json",
+	"hmac_sha256_test.json",
+	"hmac_sha384_test.json",
+	"hmac_sha512_test.json",
 	"kw_test.json",
 	"kwp_test.json",
 	"rsa_pss_2048_sha1_mgf1_20_test.json",