Update Wycheproof, add keywrap tests, and fix a bug.

The bug, courtesy of Wycheproof, is that AES key wrap requires the input
be at least two blocks, not one. This also matches the OpenSSL behavior
of those two APIs.

Update-Note: AES_wrap_key with in_len = 8 and AES_unwrap_key with
in_len = 16 will no longer work.

Change-Id: I5fc63ebc16920c2f9fd488afe8c544e0647d7507
Reviewed-on: https://boringssl-review.googlesource.com/27925
Commit-Queue: David Benjamin <davidben@google.com>
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
Reviewed-by: Adam Langley <agl@google.com>
diff --git a/crypto/fipsmodule/aes/aes_test.cc b/crypto/fipsmodule/aes/aes_test.cc
index 73ae255..1f8cbc6 100644
--- a/crypto/fipsmodule/aes/aes_test.cc
+++ b/crypto/fipsmodule/aes/aes_test.cc
@@ -13,6 +13,7 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
 
 #include <stdio.h>
+#include <stdlib.h>
 #include <string.h>
 
 #include <memory>
@@ -25,6 +26,7 @@
 #include "../../internal.h"
 #include "../../test/file_test.h"
 #include "../../test/test_util.h"
+#include "../../test/wycheproof_util.h"
 
 
 static void TestRaw(FileTest *t) {
@@ -129,3 +131,57 @@
     }
   });
 }
+
+TEST(AESTest, WycheproofKeyWrap) {
+  FileTestGTest("third_party/wycheproof/kw_test.txt", [](FileTest *t) {
+    std::string key_size;
+    ASSERT_TRUE(t->GetInstruction(&key_size, "keySize"));
+    std::vector<uint8_t> ct, key, msg;
+    ASSERT_TRUE(t->GetBytes(&ct, "ct"));
+    ASSERT_TRUE(t->GetBytes(&key, "key"));
+    ASSERT_TRUE(t->GetBytes(&msg, "msg"));
+    ASSERT_EQ(static_cast<unsigned>(atoi(key_size.c_str())), key.size() * 8);
+    WycheproofResult result;
+    ASSERT_TRUE(GetWycheproofResult(t, &result));
+
+    if (result != WycheproofResult::kInvalid) {
+      ASSERT_GE(ct.size(), 8u);
+
+      AES_KEY aes;
+      ASSERT_EQ(0, AES_set_decrypt_key(key.data(), 8 * key.size(), &aes));
+      std::vector<uint8_t> out(ct.size() - 8);
+      int len = AES_unwrap_key(&aes, nullptr, out.data(), ct.data(), ct.size());
+      ASSERT_EQ(static_cast<int>(out.size()), len);
+      EXPECT_EQ(Bytes(msg), Bytes(out));
+
+      out.resize(msg.size() + 8);
+      ASSERT_EQ(0, AES_set_encrypt_key(key.data(), 8 * key.size(), &aes));
+      len = AES_wrap_key(&aes, nullptr, out.data(), msg.data(), msg.size());
+      ASSERT_EQ(static_cast<int>(out.size()), len);
+      EXPECT_EQ(Bytes(ct), Bytes(out));
+    } else {
+      AES_KEY aes;
+      ASSERT_EQ(0, AES_set_decrypt_key(key.data(), 8 * key.size(), &aes));
+      std::vector<uint8_t> out(ct.size() < 8 ? 0 : ct.size() - 8);
+      int len = AES_unwrap_key(&aes, nullptr, out.data(), ct.data(), ct.size());
+      EXPECT_EQ(-1, len);
+    }
+  });
+}
+
+TEST(AESTest, WrapBadLengths) {
+  uint8_t key[128/8] = {0};
+  AES_KEY aes;
+  ASSERT_EQ(0, AES_set_encrypt_key(key, 128, &aes));
+
+  // Input lengths to |AES_wrap_key| must be a multiple of 8 and at least 16.
+  static const size_t kLengths[] = {0, 1,  2,  3,  4,  5,  6,  7, 8,
+                                    9, 10, 11, 12, 13, 14, 15, 20};
+  for (size_t len : kLengths) {
+    SCOPED_TRACE(len);
+    std::vector<uint8_t> in(len);
+    std::vector<uint8_t> out(len + 8);
+    EXPECT_EQ(-1,
+              AES_wrap_key(&aes, nullptr, out.data(), in.data(), in.size()));
+  }
+}
diff --git a/crypto/fipsmodule/aes/key_wrap.c b/crypto/fipsmodule/aes/key_wrap.c
index feee0c7..a52c983 100644
--- a/crypto/fipsmodule/aes/key_wrap.c
+++ b/crypto/fipsmodule/aes/key_wrap.c
@@ -65,9 +65,10 @@
 
 int AES_wrap_key(const AES_KEY *key, const uint8_t *iv, uint8_t *out,
                  const uint8_t *in, size_t in_len) {
-  // See RFC 3394, section 2.2.1.
+  // See RFC 3394, section 2.2.1. Additionally, note that section 2 requires the
+  // plaintext be at least two 8-byte blocks.
 
-  if (in_len > INT_MAX - 8 || in_len < 8 || in_len % 8 != 0) {
+  if (in_len > INT_MAX - 8 || in_len < 16 || in_len % 8 != 0) {
     return -1;
   }
 
@@ -101,9 +102,11 @@
 
 int AES_unwrap_key(const AES_KEY *key, const uint8_t *iv, uint8_t *out,
                    const uint8_t *in, size_t in_len) {
-  // See RFC 3394, section 2.2.2.
+  // See RFC 3394, section 2.2.2. Additionally, note that section 2 requires the
+  // plaintext be at least two 8-byte blocks, so the ciphertext must be at least
+  // three blocks.
 
-  if (in_len > INT_MAX || in_len < 16 || in_len % 8 != 0) {
+  if (in_len > INT_MAX || in_len < 24 || in_len % 8 != 0) {
     return -1;
   }
 
diff --git a/sources.cmake b/sources.cmake
index 4a3cad7..9e100a9 100644
--- a/sources.cmake
+++ b/sources.cmake
@@ -72,6 +72,7 @@
   third_party/wycheproof/ecdsa_secp384r1_sha512_test.txt
   third_party/wycheproof/ecdsa_secp521r1_sha512_test.txt
   third_party/wycheproof/eddsa_test.txt
+  third_party/wycheproof/kw_test.txt
   third_party/wycheproof/rsa_signature_test.txt
   third_party/wycheproof/x25519_test.txt
 )
diff --git a/third_party/wycheproof/METADATA b/third_party/wycheproof/METADATA
index ec918b7..19042a7 100644
--- a/third_party/wycheproof/METADATA
+++ b/third_party/wycheproof/METADATA
@@ -6,8 +6,8 @@
     type: GIT
     value: "https://github.com/google/wycheproof"
   }
-  version: "16b1d26f28280de2479cc5f0595f936088c515fe"
-  last_upgrade_date { year: 2018 month: 4 day: 26 }
+  version: "0329f5b751ef102bd6b7b7181b6e049522a887f5"
+  last_upgrade_date { year: 2018 month: 5 day: 1 }
 
   local_modifications: "Only the testvectors directory checked in. txt files "
   "are generated by convert_wycheproof.go script."
diff --git a/third_party/wycheproof/convert_wycheproof.go b/third_party/wycheproof/convert_wycheproof.go
index 2f6e52a..256e57e 100644
--- a/third_party/wycheproof/convert_wycheproof.go
+++ b/third_party/wycheproof/convert_wycheproof.go
@@ -240,6 +240,7 @@
 		"ecdsa_secp384r1_sha512_test.json",
 		"ecdsa_secp521r1_sha512_test.json",
 		"eddsa_test.json",
+		"kw_test.json",
 		"rsa_signature_test.json",
 		"x25519_test.json",
 	}
diff --git a/third_party/wycheproof/kw_test.json b/third_party/wycheproof/kw_test.json
new file mode 100644
index 0000000..e342e39
--- /dev/null
+++ b/third_party/wycheproof/kw_test.json
@@ -0,0 +1,1484 @@
+{
+  "algorithm" : "KW",
+  "generatorVersion" : "0.4.2",
+  "numberOfTests" : 162,
+  "header" : [],
+  "testGroups" : [
+    {
+      "keySize" : 128,
+      "type" : "KeywrapTest",
+      "tests" : [
+        {
+          "tcId" : 1,
+          "comment" : "",
+          "key" : "6f67486d1e914419cb43c28509c7c1ea",
+          "msg" : "8dc0632d92ee0be4f740028410b08270",
+          "ct" : "9de453ced5d4ab46a5601708eeefefb5e593e6ae8e86b26b",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 2,
+          "comment" : "",
+          "key" : "a0b17172bb296db7f5c869e9a36b5ce3",
+          "msg" : "615dd022d607c910f20178cbdf42060f",
+          "ct" : "8c3aba85cc0ae1ae10b36658b068f595baf8caafb745ef3c",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 3,
+          "comment" : "",
+          "key" : "0e49d571c19b5250effd41d94bde39d6",
+          "msg" : "f25e4de8caca363fd5f29442eb147b55",
+          "ct" : "1de093654826f18fcd0f3fd499416ff22ed75ee12fe0b624",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 4,
+          "comment" : "wrapped key is longer than wrapping key",
+          "key" : "e0e12959109103e30ae8b5684a22e662",
+          "msg" : "dbb0f2bb2be912a20430972d9842ce3fd3b928e573e1ac8e",
+          "ct" : "9c3ddc23827b7b3c13105f9e8b11523baccdfb6c8b7e7825496e7a840bd32aec",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 5,
+          "comment" : "wrapped key is longer than wrapping key",
+          "key" : "dd583d9f1059861430ec8b5d8a180e9b",
+          "msg" : "f2e34f356362a31b51d6e02bcd333c9e6170494ca5ff5487",
+          "ct" : "afb744aaf746dcc0b57f8b378c404cbe877f44cf3d45140d60814eda3f541f01",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 6,
+          "comment" : "wrapped key is longer than wrapping key",
+          "key" : "faf5ccfae42b43cee2c5f0f3177a7c5d",
+          "msg" : "4e02084833660c463830483b36dab866c64c8cf7429cac3d",
+          "ct" : "cff98cd64cb51ab99b81aee82cee4274d0df3e1b6a4943d39236ea989846d0cc",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 7,
+          "comment" : "wrapped key is longer than wrapping key",
+          "key" : "c2b9d23f2831ddcdeb456853d4014db9",
+          "msg" : "f4cfea98e58b939cc859554385cf3a6c7f8217f728efb431c964786de8274907",
+          "ct" : "58dcfb0e7ec4d3bc8003418d865fbd520c6b24b2bde35b1be5b1c5ff32a130f33d035e5932616083",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 8,
+          "comment" : "wrapped key is longer than wrapping key",
+          "key" : "620a08f320cdedbf7ae551add348d95e",
+          "msg" : "cec34eaf8e67e1ce619ddfc309531c42f16033a7e2cbc4f5eb3a548164e9b291",
+          "ct" : "4ee47bd68d418586c447a39111e2ec1502ff0f1726ea91c5d97370409d89b8e66e889b638ac40ced",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 9,
+          "comment" : "wrapped key is longer than wrapping key",
+          "key" : "ed089ac274f8c7cea2415671a94b5e53",
+          "msg" : "6065e41df14daeeefacac5daeb7674cdc9c1f686013b797153e80ef215893299",
+          "ct" : "d3b093fd822ce454ebc251c6f21fa71c3858ee7e623ecbfbbf887398a30b40c55d0565c7a15e4015",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 10,
+          "comment" : "Round counter overflows 256",
+          "key" : "31cacbb17d6dbbecae40727c5048fe0c",
+          "msg" : "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+          "ct" : "222deadde6efb760cae42fa188310e0c07e7d557529766444a9efb330907d42f0dd8f3d17b3a38bf40d68c095a9cce19daf907bf2c92f1e59b18b277ff0397fc50f45f582db936aa8afb943de01b58abfdc81daef4e038c99e4c1eb3ee447464bb8f89a4ea81e56556cc26c72883c06a7fe850d04347d68bbadc4a06775030676db8cc34aeb07e39c7f059c2bff76a7f2baf076749004ef7189f887f89029f88c5c1d0f5ee62320b423048e2ad8186e63be23c553f5576a40d967e8b527ccd783c41abc64bea1aec8a76deb3e9c9a6656756e1dac38bd25ff008888a5591af763fd73f5addd749794817070990484654a46ef442adaeacab14d12daaf87bcb91661a21593717d9b93529d813ea5fc812d708c0d8e9b68122d9f5e6267cde363780a45d07e4caa5bf14f2334f25b9d177632bb80a82894aa47b6f360b2da1138dedd4331f077c900554c7a68b5d154980bb3517ac20a78a51f6f21e42b2c4c960d31cbd22bd610819182c5e456ba7d7e903f5e60f6e0c4cc014feb4f81973ce48ad6f4dab8da51eb7",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 11,
+          "comment" : "empty keys cannot be wrapped",
+          "key" : "574957151fc2afe0fa3dc7a9a7da6495",
+          "msg" : "",
+          "ct" : "a6a6a6a6a6a6a6a6",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 12,
+          "comment" : "keys of size 8 byte cannot be wrapped",
+          "key" : "574957151fc2afe0fa3dc7a9a7da6495",
+          "msg" : "0001020304050607",
+          "ct" : "dc26fb6911d71971df0356d6bb9ed6e6",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 13,
+          "comment" : "wrapped key size must be divisible by 8",
+          "key" : "574957151fc2afe0fa3dc7a9a7da6495",
+          "msg" : "00",
+          "ct" : "",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 14,
+          "comment" : "wrapped key size must be divisible by 8",
+          "key" : "574957151fc2afe0fa3dc7a9a7da6495",
+          "msg" : "0001",
+          "ct" : "",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 15,
+          "comment" : "wrapped key size must be divisible by 8",
+          "key" : "574957151fc2afe0fa3dc7a9a7da6495",
+          "msg" : "000102",
+          "ct" : "",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 16,
+          "comment" : "wrapped key size must be divisible by 8",
+          "key" : "574957151fc2afe0fa3dc7a9a7da6495",
+          "msg" : "00010203",
+          "ct" : "",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 17,
+          "comment" : "wrapped key size must be divisible by 8",
+          "key" : "574957151fc2afe0fa3dc7a9a7da6495",
+          "msg" : "0001020304",
+          "ct" : "",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 18,
+          "comment" : "wrapped key size must be divisible by 8",
+          "key" : "574957151fc2afe0fa3dc7a9a7da6495",
+          "msg" : "000102030405",
+          "ct" : "",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 19,
+          "comment" : "wrapped key size must be divisible by 8",
+          "key" : "574957151fc2afe0fa3dc7a9a7da6495",
+          "msg" : "00010203040506",
+          "ct" : "",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 20,
+          "comment" : "wrapped key size must be divisible by 8",
+          "key" : "574957151fc2afe0fa3dc7a9a7da6495",
+          "msg" : "000102030405060708090a0b0c0d0e0f10111213",
+          "ct" : "",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 21,
+          "comment" : "invalid size of wrapped key",
+          "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7",
+          "msg" : "",
+          "ct" : "",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 22,
+          "comment" : "invalid size of wrapped key",
+          "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7",
+          "msg" : "",
+          "ct" : "9f",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 23,
+          "comment" : "invalid size of wrapped key",
+          "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7",
+          "msg" : "",
+          "ct" : "dc9e9580",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 24,
+          "comment" : "invalid size of wrapped key",
+          "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7",
+          "msg" : "",
+          "ct" : "b9b282d138693000",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 25,
+          "comment" : "invalid size of wrapped key",
+          "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7",
+          "msg" : "",
+          "ct" : "0efc635b2d61e244056b9d4591ca6b",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 26,
+          "comment" : "invalid size of wrapped key",
+          "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7",
+          "msg" : "",
+          "ct" : "4a305dae087b0d24d62af41831338f33ae",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 27,
+          "comment" : "invalid size of wrapped key",
+          "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7",
+          "msg" : "",
+          "ct" : "82cb927097cf31ea4affea440b0d8ca6a240b900",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 28,
+          "comment" : "bytes appended to wrapped key",
+          "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7",
+          "msg" : "000102030405060708090a0b0c0d0e0f",
+          "ct" : "9790ab51fbcb850df6764e011ae97c85785bed2633aea66500",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 29,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "0aac329ccd513edbdd6367df67999eaac9e7b51984c4d38d",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 30,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "5a55dc429749ca49bb4ab01d966b19ea9a9e1402e6ab2962",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 31,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "45f533f6072f640eb7e1e512d56072085567f4ad6012a97a",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 32,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "84f284565df47c409107f7a0a71bc370a8ed4489d414b9e9",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 33,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "3941c366554fc896e9fe52f02493ca03d439eb17c236146d",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 34,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "45c9d42363d981d086a972728e130a42f5dd90bda562a85a",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 35,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "037d17859519d6c0728a9eb6e64113e86919decabd3bbb88",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 36,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "1ad10af7f6c042b267a0c7bc4d25d27c003deb50e2cc566a",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 37,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "630c571b7fb8647ac5360a255f9f5d3645795ac45285cbaa",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 38,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "16db553e467d4029d0fea62b2c440e5df6c6591f0497a99d",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 39,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "097991090a156047d4784b757f262e12ce57e13a3d5d286c",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 40,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "3957c338b750a3285eb7b65c9cfe77053dd7d8149f42caa1",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 41,
+          "comment" : "RFC 3394",
+          "key" : "000102030405060708090a0b0c0d0e0f",
+          "msg" : "00112233445566778899aabbccddeeff",
+          "ct" : "1fa68b0a8112b447aef34bd8fb5a7b829d3e862371d2cfe5",
+          "result" : "valid",
+          "flags" : []
+        }
+      ]
+    },
+    {
+      "keySize" : 192,
+      "type" : "KeywrapTest",
+      "tests" : [
+        {
+          "tcId" : 42,
+          "comment" : "",
+          "key" : "f75a2f49a630c7dc91626b00ce029f0bd2981d7c74a93ebe",
+          "msg" : "9adbc00c710b1101bdf6a4ed65b32d72",
+          "ct" : "00be1caddfd5ad7697877017795f9cee4bce5a61687a6126",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 43,
+          "comment" : "",
+          "key" : "b713f6b7814f98894d7b153974684359f1460213eb74be68",
+          "msg" : "78585f0c49922e82caf17ebc3721b4db",
+          "ct" : "54e7f278b5a1fb4c31a0d79ac1f615edd910bf22015a0668",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 44,
+          "comment" : "",
+          "key" : "13ecf423211caa334ba6db37259a535c20de8ad10fc8c432",
+          "msg" : "4fc75d0f221e22408a37e11265d49a05",
+          "ct" : "510455bd9c078ac1f07bb3752cbd04e421b0dd635190fa62",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 45,
+          "comment" : "",
+          "key" : "4417fbbea51bdd91818d74051957dd70e135c5cf3732bdf1",
+          "msg" : "f5357da9f8fd4a1190f36e9fa09a90fcf14d87d62332f1a5",
+          "ct" : "880da5b410f913ad72cc93f46344f1152165bdea14664fd2d3afbd87b8cc5cfd",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 46,
+          "comment" : "",
+          "key" : "b3f26d8a22fdd61f709841231fbde695b3f28dddced6d41e",
+          "msg" : "0d0af955d2e3829cc3d643219b301e64e0510dfbc428119a",
+          "ct" : "27654cf6a63d6004ae83da54c2e5d7b5fad20878f350087ddd17ac44a2be868f",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 47,
+          "comment" : "",
+          "key" : "f70cfb262c729a18206c8afd74356ec7e049d10b44a6e000",
+          "msg" : "241cedfa64c4e7bec541a2eb4c368269e0f0ddebc58267ea",
+          "ct" : "ad7ca66ad4664f43e4dd09296a6e6f02d5af4408f225c0abeb0d9b76c8d1e982",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 48,
+          "comment" : "wrapped key is longer than wrapping key",
+          "key" : "1639f9f81e53e2eeb677a249e5eced3af108971301601a7b",
+          "msg" : "ec3c6a1f1a9585327fe658490c74635e5300876da5846a629398984fb551d691",
+          "ct" : "e245c90a6b46caece94f47117d608331958c8f75f531ebcdc902c0213d9105f2155af07daa62d132",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 49,
+          "comment" : "wrapped key is longer than wrapping key",
+          "key" : "1f22d5658aa685b8ba8659dc342880d5b2399e6a815005b0",
+          "msg" : "50be4c1b2f29a63f44d7fc63737f600f0194ea3fb36e173d2ddd19f218656380",
+          "ct" : "8a32b9f207ae5aaedb7e8a0d945107412c1bd06999bc5ac83c1f958dfb77ebdcf9d98c60dbd4650a",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 50,
+          "comment" : "wrapped key is longer than wrapping key",
+          "key" : "3a2f4aa50441954bba5a1836294ce071f9296b23dbed6771",
+          "msg" : "65da02ff21b483a1e39575490b4319e84ae0299f1f00b3859fbe2e74b3ec2aaf",
+          "ct" : "4a5842b10d2db96ea1039ef4785ce722555b3751a9b6dd39126ad363378c72320d83ea7adb81615a",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 51,
+          "comment" : "Round counter overflows 256",
+          "key" : "31cacbb17d6dbbecae40727c5048fe0c01bc53b23ab63502",
+          "msg" : "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+          "ct" : "e2192598e6124f2791b2751f930958435bb1d02e98aa1e09781bba0b159435db659fa73fa310111704692c68e16ddf4be06022c52fe9dba6279aad1aeb814125d0ddf33f31e58e625af32305050cfea390d8782d32caac558889ca8e641908208da6976542b40dbd090178e2a6812a436c18a5e891ac8083176ace1ddfee4d382856a59c80c643ecd5c1ab68c66b2b8984ce6e0e386f6554a9cb91d363bb4accf028878ec20b8b2e37214f7b12dbcd78fb38f711a90fe262c78491b9058354e27b34fc92ef0d7028594cb08259f86b54cb1d317ec55f2ef2ab7e8b141671f8bcb1a90bb7d82bc8cb4fb02c9ce430ef4ae0dc847e91e7d4fb463eb9dd87fc9dc9568f3a4ef504d74c134dcb60ca01b36ce10cb467268ea297c0518a50d12cc025cfeea1381ddd7dd63e4ac94890a0eae9dbd8db244625a3c8af2e1aff6a8112c4d3d98e8263588ee1dd9063b709b8ec00474c4ea413a802b8cde814e7b3731410809ed000060fb7b9b0bf8509ef17515f333e868b188ea16445f380b3a7d42774f6456cdf724246fa",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 52,
+          "comment" : "empty keys cannot be wrapped",
+          "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76",
+          "msg" : "",
+          "ct" : "a6a6a6a6a6a6a6a6",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 53,
+          "comment" : "keys of size 8 byte cannot be wrapped",
+          "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76",
+          "msg" : "0001020304050607",
+          "ct" : "38d8238cdb0d9a2da28d6d56194f2e78",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 54,
+          "comment" : "wrapped key size must be divisible by 8",
+          "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76",
+          "msg" : "00",
+          "ct" : "",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 55,
+          "comment" : "wrapped key size must be divisible by 8",
+          "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76",
+          "msg" : "0001",
+          "ct" : "",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 56,
+          "comment" : "wrapped key size must be divisible by 8",
+          "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76",
+          "msg" : "000102",
+          "ct" : "",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 57,
+          "comment" : "wrapped key size must be divisible by 8",
+          "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76",
+          "msg" : "00010203",
+          "ct" : "",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 58,
+          "comment" : "wrapped key size must be divisible by 8",
+          "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76",
+          "msg" : "0001020304",
+          "ct" : "",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 59,
+          "comment" : "wrapped key size must be divisible by 8",
+          "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76",
+          "msg" : "000102030405",
+          "ct" : "",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 60,
+          "comment" : "wrapped key size must be divisible by 8",
+          "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76",
+          "msg" : "00010203040506",
+          "ct" : "",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 61,
+          "comment" : "wrapped key size must be divisible by 8",
+          "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76",
+          "msg" : "000102030405060708090a0b0c0d0e0f10111213",
+          "ct" : "",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 62,
+          "comment" : "invalid size of wrapped key",
+          "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97",
+          "msg" : "",
+          "ct" : "",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 63,
+          "comment" : "invalid size of wrapped key",
+          "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97",
+          "msg" : "",
+          "ct" : "9f",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 64,
+          "comment" : "invalid size of wrapped key",
+          "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97",
+          "msg" : "",
+          "ct" : "dc9e9580",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 65,
+          "comment" : "invalid size of wrapped key",
+          "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97",
+          "msg" : "",
+          "ct" : "b9b282d138693000",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 66,
+          "comment" : "invalid size of wrapped key",
+          "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97",
+          "msg" : "",
+          "ct" : "0efc635b2d61e244056b9d4591ca6b",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 67,
+          "comment" : "invalid size of wrapped key",
+          "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97",
+          "msg" : "",
+          "ct" : "4a305dae087b0d24d62af41831338f33ae",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 68,
+          "comment" : "invalid size of wrapped key",
+          "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97",
+          "msg" : "",
+          "ct" : "82cb927097cf31ea4affea440b0d8ca6a240b900",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 69,
+          "comment" : "bytes appended to wrapped key",
+          "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97",
+          "msg" : "000102030405060708090a0b0c0d0e0f",
+          "ct" : "55dfb2f7e0c1ea04fead897c451c0505921dc47f308c491700",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 70,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "9b1593fd7d4fe25a660bbc1976ea4ab68bcc53f848a8eb9d",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 71,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "e7edb847fa91e2deded726edf3ab93da91151697425fee28",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 72,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "1b51a7c033c1efb5ee2994259c40f03bb57d8cc09e507e6e",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 73,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "c40b614a5062f5fd049c5379b3e8141614c2da97893589fb",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 74,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "d7575ef02df54b3086eb49035eeafbce0e08336e89b35ab0",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 75,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "0d617f1c12485a35917d2a941e949d2fdbf03a346889b850",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 76,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "c7df34729174db2e83ee16c6de74d5eb9766715fad049b40",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 77,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "c3ed38d6f9ccb9bf3c56bb3176f00d3ce9887521f8d4c70b",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 78,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "6582b5f4652744b0537e97e7cdae0f443130140dbaea604c",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 79,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "fc9b9bdf25f2b48ad79934c8d34897cdbf4c846f8cb4b11d",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 80,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "fc23c7f4fe20aa81105efc1a7105a5316b23399ac792c824",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 81,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "37b4a261b96bcec9cc93eef5b2fbbbe84634f978c5893dda",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 82,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "1831109847d17d010bfcd93fb46f3150cdafd52733db74c221b034fe8e1552c0",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 83,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "2b2b89c3c6b2db4903877ad4622ca33f3a3cb7e6701d1340e6afc0fdab7dbd72",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 84,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "3c6903f37da57161af6706050a2ed747cd55344d869189fd49d2536ff948129d",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 85,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "8a8dc8b131c6b968b60c1dd819a655392d1a96d6cafa48e30fb1146f096229c6",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 86,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "303e0b3602d514a7d52edba3306d7383e8999e7c652a510335a8949efb42eb66",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 87,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "319befbf2ddbb475723fb2fa30f2ae7fc1ceb1e6f361715eca7209608873c7fc",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 88,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "9b3e440341c5da131559959db6b3553a534691162f4f009327bf2c21d6fe5ada",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 89,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "eba6cc0959e6a56339b141629840add80f4565656dc687a3b996960c994dfd26",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 90,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "b703b6cf4587709353c7e4004d3da61ce5f5deaf7163ca9d6158dde919e0ac34",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 91,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "72549d52d6f4ff912d833c74136d90634ce8afa4f84412bbee8074084d4cecff",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 92,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "1337c8bd6c8a5dd43aba8d298864ffe76ad6ea909f3488157a15e6c46acf2214",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 93,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "4aaffaca5fe85814d040aa2a306ba4d1d44746cfe46c978aa057b53fd25316c1",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 94,
+          "comment" : "RFC 3394",
+          "key" : "000102030405060708090a0b0c0d0e0f1011121314151617",
+          "msg" : "00112233445566778899aabbccddeeff",
+          "ct" : "96778b25ae6ca435f92b5b97c050aed2468ab8a17ad84e5d",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 95,
+          "comment" : "RFC 3394",
+          "key" : "000102030405060708090a0b0c0d0e0f1011121314151617",
+          "msg" : "00112233445566778899aabbccddeeff0001020304050607",
+          "ct" : "031d33264e15d33268f24ec260743edce1c6c7ddee725a936ba814915c6762d2",
+          "result" : "valid",
+          "flags" : []
+        }
+      ]
+    },
+    {
+      "keySize" : 256,
+      "type" : "KeywrapTest",
+      "tests" : [
+        {
+          "tcId" : 96,
+          "comment" : "",
+          "key" : "fce0429c610658ef8e7cfb0154c51de2239a8a317f5af5b6714f985fb5c4d75c",
+          "msg" : "287326b5ed0078e7ca0164d748f667e7",
+          "ct" : "940b1c580e0c7233a791b0f192438d2eace14214cee455b7",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 97,
+          "comment" : "",
+          "key" : "0dda6da5123e2c37c6fa16ba0d334cd01acd652f8994211751dfab4faac2fc22",
+          "msg" : "b40b6828729b456322a8d065abc0d081",
+          "ct" : "939b3389336fea4a9751bf014ef18011323090e8a0500bc4",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 98,
+          "comment" : "",
+          "key" : "d6925914cd06308f81ad91e23073593d99d4e50351b20eb2a8d1a1ac4ced6588",
+          "msg" : "037b27b3dc95b19d15bd4091e320bfe1",
+          "ct" : "59ee8e5198861237f682edec6ba906526c016d4d935942bd",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 99,
+          "comment" : "",
+          "key" : "07518a82cbc8da1dcec55f3763a206d277487abd03cedd0b8bef9ee2fb157121",
+          "msg" : "faa4664d79fce3c7d2fdd462f6c1c423c2f8e6b69be2e071",
+          "ct" : "1ab53a065d8f776a08b33e51383071b6f154612116655137bd3b7ec29b70fd56",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 100,
+          "comment" : "",
+          "key" : "ea46991d4e71f53dd624e7fe7fde11944a7c5942d232369b8065d42b8cd2dde1",
+          "msg" : "dffc5cf1dd5411d015d84601fa38df5effe885c7f26a4825",
+          "ct" : "a1bf8e73e3fa1db759f0ab2ab0b1ca6f2c85b63d83e25f7a0b5293d0a216a2b7",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 101,
+          "comment" : "",
+          "key" : "fdcfa902c6f222f527af84da533b14b52e2615da3a89d1d35708b0cd49f60d87",
+          "msg" : "966b07047354966a703e79607b556032f4f596b7f9206f05",
+          "ct" : "27308a0e1a6c0a1d15d6174ab7d68675207b615df16fcf7a3c69b25f551cca9f",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 102,
+          "comment" : "",
+          "key" : "38e1b1d075d9d852b9a6c01c8ff6965af01bac457a4e339ae3e1d7b2ffacc0cd",
+          "msg" : "80ad6820f1c90981e2ca42b817a345c1179d0a11d8e23a8adc0505e13d87295a",
+          "ct" : "7155ee932b0358d98182a23f7f427c774ab340a4757d0b6a63facd3de90578438cf03201c3f88057",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 103,
+          "comment" : "",
+          "key" : "c641f1689d81caa8ba37d895272240664054ed974cfffc40e6c5c0cad1b916c7",
+          "msg" : "3fd0ba19955e46749f54d88e99d080b7339d588fe612ec0f4021ca3ca2104270",
+          "ct" : "f20b9b553bc0847529f8d4379fa909211e68249bd429f436c615c4c4a5d9f1a1968f0b89c5237b30",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 104,
+          "comment" : "",
+          "key" : "aa0ab9d68ed4a04e723f81b44c0c88d0bcde7a80cfd476eb4b8836d9aa01ec4c",
+          "msg" : "57faa8766f6d6a0aa1cf643f857c150df5b31303b50af480e21c4b5e8c8a15d5",
+          "ct" : "2811716854a214aecdd318c6670b9b2a7511713c9a0c0fa805230ff05cf84af795dd72f6c1a44512",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 105,
+          "comment" : "Round counter overflows 256",
+          "key" : "31cacbb17d6dbbecae40727c5048fe0c01bc53b23ab635025cbac1ecf52ca495",
+          "msg" : "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+          "ct" : "5322bc62bd8379abbb75f69688b8f00e31962b8f9ae1e89771952d8a2a749e1352ec33b5435a674271b314760ab9f753b16726185ec7d319ac60531355344c1d53c7903000a8039eb40f70564a0ad3f41b2355ea5dfa6a1d46392f1d106a5da569bfb0493bf7c12dff04bafeae377df4bb47cd440b6f60fbab2a54a98551b76273e02cac8d7be9f2343d3abb2a23af1c91a7011c67a7907260116b67d510aabe5c7ca46c1c20f77106c45966583b3e4ed799a47ee19bb4223209265c2b1ac8183a678ff43bc9a3470a50b9ee4d10f60674268d72c68be003a0d9dd6849aba836fe8a1792b81c90e12945bfe1f27a9c6b2af66a063cdb7721a7f23fb30afdbd8b18db377dd1697f157be81c1578d08b066c71b0c5ca7feecac1cdd938cf9ad525f74844660908194b28e54eddb158f6e4c921b811d90db71a92ff872db2250dcc3f847fc752b66d77e33c85084d3fa53b4f30503d2a06e6cabb9033d59fc1dc15e32f19846a039b91597b0ba3141a7d9717630062170117b2131dab77406e9ed7d66b2c754d849c60",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 106,
+          "comment" : "empty keys cannot be wrapped",
+          "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692",
+          "msg" : "",
+          "ct" : "a6a6a6a6a6a6a6a6",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 107,
+          "comment" : "keys of size 8 byte cannot be wrapped",
+          "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692",
+          "msg" : "0001020304050607",
+          "ct" : "181ba6a3a4392469e3de98ddbbdd2432",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 108,
+          "comment" : "wrapped key size must be divisible by 8",
+          "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692",
+          "msg" : "00",
+          "ct" : "",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 109,
+          "comment" : "wrapped key size must be divisible by 8",
+          "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692",
+          "msg" : "0001",
+          "ct" : "",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 110,
+          "comment" : "wrapped key size must be divisible by 8",
+          "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692",
+          "msg" : "000102",
+          "ct" : "",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 111,
+          "comment" : "wrapped key size must be divisible by 8",
+          "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692",
+          "msg" : "00010203",
+          "ct" : "",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 112,
+          "comment" : "wrapped key size must be divisible by 8",
+          "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692",
+          "msg" : "0001020304",
+          "ct" : "",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 113,
+          "comment" : "wrapped key size must be divisible by 8",
+          "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692",
+          "msg" : "000102030405",
+          "ct" : "",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 114,
+          "comment" : "wrapped key size must be divisible by 8",
+          "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692",
+          "msg" : "00010203040506",
+          "ct" : "",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 115,
+          "comment" : "wrapped key size must be divisible by 8",
+          "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692",
+          "msg" : "000102030405060708090a0b0c0d0e0f10111213",
+          "ct" : "",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 116,
+          "comment" : "invalid size of wrapped key",
+          "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7",
+          "msg" : "",
+          "ct" : "",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 117,
+          "comment" : "invalid size of wrapped key",
+          "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7",
+          "msg" : "",
+          "ct" : "9f",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 118,
+          "comment" : "invalid size of wrapped key",
+          "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7",
+          "msg" : "",
+          "ct" : "dc9e9580",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 119,
+          "comment" : "invalid size of wrapped key",
+          "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7",
+          "msg" : "",
+          "ct" : "b9b282d138693000",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 120,
+          "comment" : "invalid size of wrapped key",
+          "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7",
+          "msg" : "",
+          "ct" : "0efc635b2d61e244056b9d4591ca6b",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 121,
+          "comment" : "invalid size of wrapped key",
+          "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7",
+          "msg" : "",
+          "ct" : "4a305dae087b0d24d62af41831338f33ae",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 122,
+          "comment" : "invalid size of wrapped key",
+          "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7",
+          "msg" : "",
+          "ct" : "82cb927097cf31ea4affea440b0d8ca6a240b900",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 123,
+          "comment" : "bytes appended to wrapped key",
+          "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7",
+          "msg" : "000102030405060708090a0b0c0d0e0f",
+          "ct" : "7dfbd7cf6158d75bb5900b3bf1e3871003402a6508b1912800",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 124,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "a417671bc62a23c7a65543092124024df72c048d8db330c7",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 125,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "9518d0f99d7a73ed4a502b449c14c285971b0e6177ce0eca",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 126,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "f3511f0491bd74ae1defb5307f0e18db864b57b5c404d428",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 127,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "6c03ce779259661c43d41d5d0e45687f874353bba516c73e",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 128,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "8df01969a11c87026535bfccf72b1d064c86ecc7e5227157",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 129,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "8ed1cde228d9c8d046dca65c7a27aef2edf8ae90c705d1e9",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 130,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "d69b3e34e9de38d44de1998992362a6fa1f696b5acab3f10",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 131,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "67865122af3294b8da0588775125cbd6dc19d5e5cab97b6d",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 132,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "9f0fa52363dd55df472d867e6faf5da8eb204a1d6d497030",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 133,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "c399f999c96a4204325e7f08d6a4de256faf21ec2c007ddf",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 134,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "282082264a87dc35ce1cc5b9931b77d80d82fcacc0927f85",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 135,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "c192c90b83003ca96744498014b6ad6bedda837955269819",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 136,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "30a983cd9e69d561acc95c42b252aba4185f8392f2e6c935c8eb105af8082e34",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 137,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "4de9a639b799630b45b49e28dbfc44dabb9843ee588a8cff286b8d5fbd7b32ee",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 138,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "d915b2cdfb769d9d82259dc3d124646bbf972b83efd4c2eae9b9f751073f78d6",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 139,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "117d653f480b69fce564f1fe99572492945189ed5af789ce05a2651baf90bb5e",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 140,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "8226d07a2f919e24ada1081c69a75520be895e3a2bda9b805d9747773ddeaa38",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 141,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "b0a74345bedf8865348daf45d054b99ce515ea8be136270d1cf71e1cfa7aa4a2",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 142,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "a261db77f17f7ec736d1a8be16e5f9ae432fe2a17012e5a6f07c5426a9f0ca59",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 143,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "c53acb5e096b54548e1385b2ff18eaef68d235c95b0194e74a2383d3a7a530dc",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 144,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "faef482d99ebb180e5bc5e3cf775ba292c2a3b6c44aa4a21ad400906f11af392",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 145,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "73a450b63b07b3aece9d1ae5bf097a3dd3fcf73e3ec2f1bd8fc3b5586cb9bd73",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 146,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "d34b6ee184d387c9aa4b2d180ae0a89498014e55fe8e416be4f826fcf7d56522",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 147,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "2af823d1602803740bfa9040c2c4e769a5b6de919d403cfba9ad360f63af1113",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 148,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c",
+          "ct" : "dd78ebd3091c55a5da5b24504200f7fadd1b3ac6ad35f814f733e603c13936245d69d83f262f6b1e",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 149,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c",
+          "ct" : "3d8338eae7de322399e1d1b4a3df54326b242b563612ea4b27da22a041d3c80966911bc009911761",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 150,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c",
+          "ct" : "d04bf75cadd3b5f099c34b27a91e64a8f2dbcf08e8c5c1c9f07a777eeb805d5d0e8c5c01afc43944",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 151,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c",
+          "ct" : "be0c5d193b61c5137a8fd8a6d7d1ed8f0fa28cec516f544697c12add4f8f4d5cfca65edeb1019974",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 152,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c",
+          "ct" : "a83ebcbeb2be9d6807b5cfc31c89849d1343dd4eb22e5bfe9e2b2b3790ad8900601f1f5d54fd472f",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 153,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c",
+          "ct" : "416221485a6cb98ad1342ea9a12926a9a133ead8bd919323fe789bb8f89a4fcaf81e1be54f9d358e",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 154,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c",
+          "ct" : "bf6a53286fac48e7f25d89b7056b27aa917d5b54c0d3171dff369f7249153bf09da5891eb4dc2d88",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 155,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c",
+          "ct" : "99d517a1321bb633b0d5f3afda2372d3abf68b41d13cbfdffc78f173b88bc4b97efcab2b2904788d",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 156,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c",
+          "ct" : "d92456bc77a268ef71cba76064a1b772d1fee2ae4f0ee3bb932a2adb2b031796b9eadb51753f2868",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 157,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c",
+          "ct" : "5bb54630ab8d73a040f0f87e70e263d1aeb2358bcdc0dce6994d0d874452bbd8741b7ec1d59d8298",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 158,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c",
+          "ct" : "4581d6536039db1b23da50c648777e90c82d6128bb92e28b2974bae1141543a19a1592fda1fbd61f",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 159,
+          "comment" : "Incorrect IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c",
+          "ct" : "d35bc67e62064c34f48150999ba30ded475d8c75978f45737320f23edaaa7a40d7803fc61add34a4",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 160,
+          "comment" : "RFC 3394",
+          "key" : "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f",
+          "msg" : "00112233445566778899aabbccddeeff",
+          "ct" : "64e8c3f9ce0f5ba263e9777905818a2a93c8191e7d6e8ae7",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 161,
+          "comment" : "RFC 3394",
+          "key" : "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f",
+          "msg" : "00112233445566778899aabbccddeeff0001020304050607",
+          "ct" : "a8f9bc1612c68b3ff6e6f4fbe30e71e4769c8b80a32cb8958cd5d17d6b254da1",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 162,
+          "comment" : "RFC 3394",
+          "key" : "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f",
+          "msg" : "00112233445566778899aabbccddeeff000102030405060708090a0b0c0d0e0f",
+          "ct" : "28c9f404c4b810f4cbccb35cfb87f8263f5786e2d80ed326cbc7f0e71a99f43bfb988b9b7a02dd21",
+          "result" : "valid",
+          "flags" : []
+        }
+      ]
+    }
+  ]
+}
diff --git a/third_party/wycheproof/kw_test.txt b/third_party/wycheproof/kw_test.txt
new file mode 100644
index 0000000..70e395c
--- /dev/null
+++ b/third_party/wycheproof/kw_test.txt
@@ -0,0 +1,1128 @@
+# Imported from Wycheproof's kw_test.json.
+# This file is generated by convert_wycheproof.go. Do not edit by hand.
+#
+# Algorithm: KW
+# Generator version: 0.4.2
+
+[keySize = 128]
+
+# tcId = 1
+ct = 9de453ced5d4ab46a5601708eeefefb5e593e6ae8e86b26b
+key = 6f67486d1e914419cb43c28509c7c1ea
+msg = 8dc0632d92ee0be4f740028410b08270
+result = valid
+
+# tcId = 2
+ct = 8c3aba85cc0ae1ae10b36658b068f595baf8caafb745ef3c
+key = a0b17172bb296db7f5c869e9a36b5ce3
+msg = 615dd022d607c910f20178cbdf42060f
+result = valid
+
+# tcId = 3
+ct = 1de093654826f18fcd0f3fd499416ff22ed75ee12fe0b624
+key = 0e49d571c19b5250effd41d94bde39d6
+msg = f25e4de8caca363fd5f29442eb147b55
+result = valid
+
+# tcId = 4
+# wrapped key is longer than wrapping key
+ct = 9c3ddc23827b7b3c13105f9e8b11523baccdfb6c8b7e7825496e7a840bd32aec
+key = e0e12959109103e30ae8b5684a22e662
+msg = dbb0f2bb2be912a20430972d9842ce3fd3b928e573e1ac8e
+result = acceptable
+
+# tcId = 5
+# wrapped key is longer than wrapping key
+ct = afb744aaf746dcc0b57f8b378c404cbe877f44cf3d45140d60814eda3f541f01
+key = dd583d9f1059861430ec8b5d8a180e9b
+msg = f2e34f356362a31b51d6e02bcd333c9e6170494ca5ff5487
+result = acceptable
+
+# tcId = 6
+# wrapped key is longer than wrapping key
+ct = cff98cd64cb51ab99b81aee82cee4274d0df3e1b6a4943d39236ea989846d0cc
+key = faf5ccfae42b43cee2c5f0f3177a7c5d
+msg = 4e02084833660c463830483b36dab866c64c8cf7429cac3d
+result = acceptable
+
+# tcId = 7
+# wrapped key is longer than wrapping key
+ct = 58dcfb0e7ec4d3bc8003418d865fbd520c6b24b2bde35b1be5b1c5ff32a130f33d035e5932616083
+key = c2b9d23f2831ddcdeb456853d4014db9
+msg = f4cfea98e58b939cc859554385cf3a6c7f8217f728efb431c964786de8274907
+result = acceptable
+
+# tcId = 8
+# wrapped key is longer than wrapping key
+ct = 4ee47bd68d418586c447a39111e2ec1502ff0f1726ea91c5d97370409d89b8e66e889b638ac40ced
+key = 620a08f320cdedbf7ae551add348d95e
+msg = cec34eaf8e67e1ce619ddfc309531c42f16033a7e2cbc4f5eb3a548164e9b291
+result = acceptable
+
+# tcId = 9
+# wrapped key is longer than wrapping key
+ct = d3b093fd822ce454ebc251c6f21fa71c3858ee7e623ecbfbbf887398a30b40c55d0565c7a15e4015
+key = ed089ac274f8c7cea2415671a94b5e53
+msg = 6065e41df14daeeefacac5daeb7674cdc9c1f686013b797153e80ef215893299
+result = acceptable
+
+# tcId = 10
+# Round counter overflows 256
+ct = 222deadde6efb760cae42fa188310e0c07e7d557529766444a9efb330907d42f0dd8f3d17b3a38bf40d68c095a9cce19daf907bf2c92f1e59b18b277ff0397fc50f45f582db936aa8afb943de01b58abfdc81daef4e038c99e4c1eb3ee447464bb8f89a4ea81e56556cc26c72883c06a7fe850d04347d68bbadc4a06775030676db8cc34aeb07e39c7f059c2bff76a7f2baf076749004ef7189f887f89029f88c5c1d0f5ee62320b423048e2ad8186e63be23c553f5576a40d967e8b527ccd783c41abc64bea1aec8a76deb3e9c9a6656756e1dac38bd25ff008888a5591af763fd73f5addd749794817070990484654a46ef442adaeacab14d12daaf87bcb91661a21593717d9b93529d813ea5fc812d708c0d8e9b68122d9f5e6267cde363780a45d07e4caa5bf14f2334f25b9d177632bb80a82894aa47b6f360b2da1138dedd4331f077c900554c7a68b5d154980bb3517ac20a78a51f6f21e42b2c4c960d31cbd22bd610819182c5e456ba7d7e903f5e60f6e0c4cc014feb4f81973ce48ad6f4dab8da51eb7
+key = 31cacbb17d6dbbecae40727c5048fe0c
+msg = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+result = acceptable
+
+# tcId = 11
+# empty keys cannot be wrapped
+ct = a6a6a6a6a6a6a6a6
+key = 574957151fc2afe0fa3dc7a9a7da6495
+msg = 
+result = invalid
+
+# tcId = 12
+# keys of size 8 byte cannot be wrapped
+ct = dc26fb6911d71971df0356d6bb9ed6e6
+key = 574957151fc2afe0fa3dc7a9a7da6495
+msg = 0001020304050607
+result = invalid
+
+# tcId = 13
+# wrapped key size must be divisible by 8
+ct = 
+key = 574957151fc2afe0fa3dc7a9a7da6495
+msg = 00
+result = invalid
+
+# tcId = 14
+# wrapped key size must be divisible by 8
+ct = 
+key = 574957151fc2afe0fa3dc7a9a7da6495
+msg = 0001
+result = invalid
+
+# tcId = 15
+# wrapped key size must be divisible by 8
+ct = 
+key = 574957151fc2afe0fa3dc7a9a7da6495
+msg = 000102
+result = invalid
+
+# tcId = 16
+# wrapped key size must be divisible by 8
+ct = 
+key = 574957151fc2afe0fa3dc7a9a7da6495
+msg = 00010203
+result = invalid
+
+# tcId = 17
+# wrapped key size must be divisible by 8
+ct = 
+key = 574957151fc2afe0fa3dc7a9a7da6495
+msg = 0001020304
+result = invalid
+
+# tcId = 18
+# wrapped key size must be divisible by 8
+ct = 
+key = 574957151fc2afe0fa3dc7a9a7da6495
+msg = 000102030405
+result = invalid
+
+# tcId = 19
+# wrapped key size must be divisible by 8
+ct = 
+key = 574957151fc2afe0fa3dc7a9a7da6495
+msg = 00010203040506
+result = invalid
+
+# tcId = 20
+# wrapped key size must be divisible by 8
+ct = 
+key = 574957151fc2afe0fa3dc7a9a7da6495
+msg = 000102030405060708090a0b0c0d0e0f10111213
+result = invalid
+
+# tcId = 21
+# invalid size of wrapped key
+ct = 
+key = fe60fc8df7d9f4ebb5416ca4e82182f7
+msg = 
+result = invalid
+
+# tcId = 22
+# invalid size of wrapped key
+ct = 9f
+key = fe60fc8df7d9f4ebb5416ca4e82182f7
+msg = 
+result = invalid
+
+# tcId = 23
+# invalid size of wrapped key
+ct = dc9e9580
+key = fe60fc8df7d9f4ebb5416ca4e82182f7
+msg = 
+result = invalid
+
+# tcId = 24
+# invalid size of wrapped key
+ct = b9b282d138693000
+key = fe60fc8df7d9f4ebb5416ca4e82182f7
+msg = 
+result = invalid
+
+# tcId = 25
+# invalid size of wrapped key
+ct = 0efc635b2d61e244056b9d4591ca6b
+key = fe60fc8df7d9f4ebb5416ca4e82182f7
+msg = 
+result = invalid
+
+# tcId = 26
+# invalid size of wrapped key
+ct = 4a305dae087b0d24d62af41831338f33ae
+key = fe60fc8df7d9f4ebb5416ca4e82182f7
+msg = 
+result = invalid
+
+# tcId = 27
+# invalid size of wrapped key
+ct = 82cb927097cf31ea4affea440b0d8ca6a240b900
+key = fe60fc8df7d9f4ebb5416ca4e82182f7
+msg = 
+result = invalid
+
+# tcId = 28
+# bytes appended to wrapped key
+ct = 9790ab51fbcb850df6764e011ae97c85785bed2633aea66500
+key = fe60fc8df7d9f4ebb5416ca4e82182f7
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+
+# tcId = 29
+# Incorrect IV
+ct = 0aac329ccd513edbdd6367df67999eaac9e7b51984c4d38d
+key = 4f710eb6b5e28703becfc3dc52fa8bc1
+msg = a828cbda9b5ff0ae374f84fa01d070a5
+result = invalid
+
+# tcId = 30
+# Incorrect IV
+ct = 5a55dc429749ca49bb4ab01d966b19ea9a9e1402e6ab2962
+key = 4f710eb6b5e28703becfc3dc52fa8bc1
+msg = a828cbda9b5ff0ae374f84fa01d070a5
+result = invalid
+
+# tcId = 31
+# Incorrect IV
+ct = 45f533f6072f640eb7e1e512d56072085567f4ad6012a97a
+key = 4f710eb6b5e28703becfc3dc52fa8bc1
+msg = a828cbda9b5ff0ae374f84fa01d070a5
+result = invalid
+
+# tcId = 32
+# Incorrect IV
+ct = 84f284565df47c409107f7a0a71bc370a8ed4489d414b9e9
+key = 4f710eb6b5e28703becfc3dc52fa8bc1
+msg = a828cbda9b5ff0ae374f84fa01d070a5
+result = invalid
+
+# tcId = 33
+# Incorrect IV
+ct = 3941c366554fc896e9fe52f02493ca03d439eb17c236146d
+key = 4f710eb6b5e28703becfc3dc52fa8bc1
+msg = a828cbda9b5ff0ae374f84fa01d070a5
+result = invalid
+
+# tcId = 34
+# Incorrect IV
+ct = 45c9d42363d981d086a972728e130a42f5dd90bda562a85a
+key = 4f710eb6b5e28703becfc3dc52fa8bc1
+msg = a828cbda9b5ff0ae374f84fa01d070a5
+result = invalid
+
+# tcId = 35
+# Incorrect IV
+ct = 037d17859519d6c0728a9eb6e64113e86919decabd3bbb88
+key = 4f710eb6b5e28703becfc3dc52fa8bc1
+msg = a828cbda9b5ff0ae374f84fa01d070a5
+result = invalid
+
+# tcId = 36
+# Incorrect IV
+ct = 1ad10af7f6c042b267a0c7bc4d25d27c003deb50e2cc566a
+key = 4f710eb6b5e28703becfc3dc52fa8bc1
+msg = a828cbda9b5ff0ae374f84fa01d070a5
+result = invalid
+
+# tcId = 37
+# Incorrect IV
+ct = 630c571b7fb8647ac5360a255f9f5d3645795ac45285cbaa
+key = 4f710eb6b5e28703becfc3dc52fa8bc1
+msg = a828cbda9b5ff0ae374f84fa01d070a5
+result = invalid
+
+# tcId = 38
+# Incorrect IV
+ct = 16db553e467d4029d0fea62b2c440e5df6c6591f0497a99d
+key = 4f710eb6b5e28703becfc3dc52fa8bc1
+msg = a828cbda9b5ff0ae374f84fa01d070a5
+result = invalid
+
+# tcId = 39
+# Incorrect IV
+ct = 097991090a156047d4784b757f262e12ce57e13a3d5d286c
+key = 4f710eb6b5e28703becfc3dc52fa8bc1
+msg = a828cbda9b5ff0ae374f84fa01d070a5
+result = invalid
+
+# tcId = 40
+# Incorrect IV
+ct = 3957c338b750a3285eb7b65c9cfe77053dd7d8149f42caa1
+key = 4f710eb6b5e28703becfc3dc52fa8bc1
+msg = a828cbda9b5ff0ae374f84fa01d070a5
+result = invalid
+
+# tcId = 41
+# RFC 3394
+ct = 1fa68b0a8112b447aef34bd8fb5a7b829d3e862371d2cfe5
+key = 000102030405060708090a0b0c0d0e0f
+msg = 00112233445566778899aabbccddeeff
+result = valid
+
+[keySize = 192]
+
+# tcId = 42
+ct = 00be1caddfd5ad7697877017795f9cee4bce5a61687a6126
+key = f75a2f49a630c7dc91626b00ce029f0bd2981d7c74a93ebe
+msg = 9adbc00c710b1101bdf6a4ed65b32d72
+result = valid
+
+# tcId = 43
+ct = 54e7f278b5a1fb4c31a0d79ac1f615edd910bf22015a0668
+key = b713f6b7814f98894d7b153974684359f1460213eb74be68
+msg = 78585f0c49922e82caf17ebc3721b4db
+result = valid
+
+# tcId = 44
+ct = 510455bd9c078ac1f07bb3752cbd04e421b0dd635190fa62
+key = 13ecf423211caa334ba6db37259a535c20de8ad10fc8c432
+msg = 4fc75d0f221e22408a37e11265d49a05
+result = valid
+
+# tcId = 45
+ct = 880da5b410f913ad72cc93f46344f1152165bdea14664fd2d3afbd87b8cc5cfd
+key = 4417fbbea51bdd91818d74051957dd70e135c5cf3732bdf1
+msg = f5357da9f8fd4a1190f36e9fa09a90fcf14d87d62332f1a5
+result = valid
+
+# tcId = 46
+ct = 27654cf6a63d6004ae83da54c2e5d7b5fad20878f350087ddd17ac44a2be868f
+key = b3f26d8a22fdd61f709841231fbde695b3f28dddced6d41e
+msg = 0d0af955d2e3829cc3d643219b301e64e0510dfbc428119a
+result = valid
+
+# tcId = 47
+ct = ad7ca66ad4664f43e4dd09296a6e6f02d5af4408f225c0abeb0d9b76c8d1e982
+key = f70cfb262c729a18206c8afd74356ec7e049d10b44a6e000
+msg = 241cedfa64c4e7bec541a2eb4c368269e0f0ddebc58267ea
+result = valid
+
+# tcId = 48
+# wrapped key is longer than wrapping key
+ct = e245c90a6b46caece94f47117d608331958c8f75f531ebcdc902c0213d9105f2155af07daa62d132
+key = 1639f9f81e53e2eeb677a249e5eced3af108971301601a7b
+msg = ec3c6a1f1a9585327fe658490c74635e5300876da5846a629398984fb551d691
+result = acceptable
+
+# tcId = 49
+# wrapped key is longer than wrapping key
+ct = 8a32b9f207ae5aaedb7e8a0d945107412c1bd06999bc5ac83c1f958dfb77ebdcf9d98c60dbd4650a
+key = 1f22d5658aa685b8ba8659dc342880d5b2399e6a815005b0
+msg = 50be4c1b2f29a63f44d7fc63737f600f0194ea3fb36e173d2ddd19f218656380
+result = acceptable
+
+# tcId = 50
+# wrapped key is longer than wrapping key
+ct = 4a5842b10d2db96ea1039ef4785ce722555b3751a9b6dd39126ad363378c72320d83ea7adb81615a
+key = 3a2f4aa50441954bba5a1836294ce071f9296b23dbed6771
+msg = 65da02ff21b483a1e39575490b4319e84ae0299f1f00b3859fbe2e74b3ec2aaf
+result = acceptable
+
+# tcId = 51
+# Round counter overflows 256
+ct = e2192598e6124f2791b2751f930958435bb1d02e98aa1e09781bba0b159435db659fa73fa310111704692c68e16ddf4be06022c52fe9dba6279aad1aeb814125d0ddf33f31e58e625af32305050cfea390d8782d32caac558889ca8e641908208da6976542b40dbd090178e2a6812a436c18a5e891ac8083176ace1ddfee4d382856a59c80c643ecd5c1ab68c66b2b8984ce6e0e386f6554a9cb91d363bb4accf028878ec20b8b2e37214f7b12dbcd78fb38f711a90fe262c78491b9058354e27b34fc92ef0d7028594cb08259f86b54cb1d317ec55f2ef2ab7e8b141671f8bcb1a90bb7d82bc8cb4fb02c9ce430ef4ae0dc847e91e7d4fb463eb9dd87fc9dc9568f3a4ef504d74c134dcb60ca01b36ce10cb467268ea297c0518a50d12cc025cfeea1381ddd7dd63e4ac94890a0eae9dbd8db244625a3c8af2e1aff6a8112c4d3d98e8263588ee1dd9063b709b8ec00474c4ea413a802b8cde814e7b3731410809ed000060fb7b9b0bf8509ef17515f333e868b188ea16445f380b3a7d42774f6456cdf724246fa
+key = 31cacbb17d6dbbecae40727c5048fe0c01bc53b23ab63502
+msg = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+result = acceptable
+
+# tcId = 52
+# empty keys cannot be wrapped
+ct = a6a6a6a6a6a6a6a6
+key = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76
+msg = 
+result = invalid
+
+# tcId = 53
+# keys of size 8 byte cannot be wrapped
+ct = 38d8238cdb0d9a2da28d6d56194f2e78
+key = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76
+msg = 0001020304050607
+result = invalid
+
+# tcId = 54
+# wrapped key size must be divisible by 8
+ct = 
+key = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76
+msg = 00
+result = invalid
+
+# tcId = 55
+# wrapped key size must be divisible by 8
+ct = 
+key = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76
+msg = 0001
+result = invalid
+
+# tcId = 56
+# wrapped key size must be divisible by 8
+ct = 
+key = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76
+msg = 000102
+result = invalid
+
+# tcId = 57
+# wrapped key size must be divisible by 8
+ct = 
+key = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76
+msg = 00010203
+result = invalid
+
+# tcId = 58
+# wrapped key size must be divisible by 8
+ct = 
+key = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76
+msg = 0001020304
+result = invalid
+
+# tcId = 59
+# wrapped key size must be divisible by 8
+ct = 
+key = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76
+msg = 000102030405
+result = invalid
+
+# tcId = 60
+# wrapped key size must be divisible by 8
+ct = 
+key = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76
+msg = 00010203040506
+result = invalid
+
+# tcId = 61
+# wrapped key size must be divisible by 8
+ct = 
+key = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76
+msg = 000102030405060708090a0b0c0d0e0f10111213
+result = invalid
+
+# tcId = 62
+# invalid size of wrapped key
+ct = 
+key = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97
+msg = 
+result = invalid
+
+# tcId = 63
+# invalid size of wrapped key
+ct = 9f
+key = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97
+msg = 
+result = invalid
+
+# tcId = 64
+# invalid size of wrapped key
+ct = dc9e9580
+key = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97
+msg = 
+result = invalid
+
+# tcId = 65
+# invalid size of wrapped key
+ct = b9b282d138693000
+key = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97
+msg = 
+result = invalid
+
+# tcId = 66
+# invalid size of wrapped key
+ct = 0efc635b2d61e244056b9d4591ca6b
+key = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97
+msg = 
+result = invalid
+
+# tcId = 67
+# invalid size of wrapped key
+ct = 4a305dae087b0d24d62af41831338f33ae
+key = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97
+msg = 
+result = invalid
+
+# tcId = 68
+# invalid size of wrapped key
+ct = 82cb927097cf31ea4affea440b0d8ca6a240b900
+key = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97
+msg = 
+result = invalid
+
+# tcId = 69
+# bytes appended to wrapped key
+ct = 55dfb2f7e0c1ea04fead897c451c0505921dc47f308c491700
+key = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+
+# tcId = 70
+# Incorrect IV
+ct = 9b1593fd7d4fe25a660bbc1976ea4ab68bcc53f848a8eb9d
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4
+msg = a828cbda9b5ff0ae374f84fa01d070a5
+result = invalid
+
+# tcId = 71
+# Incorrect IV
+ct = e7edb847fa91e2deded726edf3ab93da91151697425fee28
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4
+msg = a828cbda9b5ff0ae374f84fa01d070a5
+result = invalid
+
+# tcId = 72
+# Incorrect IV
+ct = 1b51a7c033c1efb5ee2994259c40f03bb57d8cc09e507e6e
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4
+msg = a828cbda9b5ff0ae374f84fa01d070a5
+result = invalid
+
+# tcId = 73
+# Incorrect IV
+ct = c40b614a5062f5fd049c5379b3e8141614c2da97893589fb
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4
+msg = a828cbda9b5ff0ae374f84fa01d070a5
+result = invalid
+
+# tcId = 74
+# Incorrect IV
+ct = d7575ef02df54b3086eb49035eeafbce0e08336e89b35ab0
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4
+msg = a828cbda9b5ff0ae374f84fa01d070a5
+result = invalid
+
+# tcId = 75
+# Incorrect IV
+ct = 0d617f1c12485a35917d2a941e949d2fdbf03a346889b850
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4
+msg = a828cbda9b5ff0ae374f84fa01d070a5
+result = invalid
+
+# tcId = 76
+# Incorrect IV
+ct = c7df34729174db2e83ee16c6de74d5eb9766715fad049b40
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4
+msg = a828cbda9b5ff0ae374f84fa01d070a5
+result = invalid
+
+# tcId = 77
+# Incorrect IV
+ct = c3ed38d6f9ccb9bf3c56bb3176f00d3ce9887521f8d4c70b
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4
+msg = a828cbda9b5ff0ae374f84fa01d070a5
+result = invalid
+
+# tcId = 78
+# Incorrect IV
+ct = 6582b5f4652744b0537e97e7cdae0f443130140dbaea604c
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4
+msg = a828cbda9b5ff0ae374f84fa01d070a5
+result = invalid
+
+# tcId = 79
+# Incorrect IV
+ct = fc9b9bdf25f2b48ad79934c8d34897cdbf4c846f8cb4b11d
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4
+msg = a828cbda9b5ff0ae374f84fa01d070a5
+result = invalid
+
+# tcId = 80
+# Incorrect IV
+ct = fc23c7f4fe20aa81105efc1a7105a5316b23399ac792c824
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4
+msg = a828cbda9b5ff0ae374f84fa01d070a5
+result = invalid
+
+# tcId = 81
+# Incorrect IV
+ct = 37b4a261b96bcec9cc93eef5b2fbbbe84634f978c5893dda
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4
+msg = a828cbda9b5ff0ae374f84fa01d070a5
+result = invalid
+
+# tcId = 82
+# Incorrect IV
+ct = 1831109847d17d010bfcd93fb46f3150cdafd52733db74c221b034fe8e1552c0
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4
+msg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1
+result = invalid
+
+# tcId = 83
+# Incorrect IV
+ct = 2b2b89c3c6b2db4903877ad4622ca33f3a3cb7e6701d1340e6afc0fdab7dbd72
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4
+msg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1
+result = invalid
+
+# tcId = 84
+# Incorrect IV
+ct = 3c6903f37da57161af6706050a2ed747cd55344d869189fd49d2536ff948129d
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4
+msg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1
+result = invalid
+
+# tcId = 85
+# Incorrect IV
+ct = 8a8dc8b131c6b968b60c1dd819a655392d1a96d6cafa48e30fb1146f096229c6
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4
+msg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1
+result = invalid
+
+# tcId = 86
+# Incorrect IV
+ct = 303e0b3602d514a7d52edba3306d7383e8999e7c652a510335a8949efb42eb66
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4
+msg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1
+result = invalid
+
+# tcId = 87
+# Incorrect IV
+ct = 319befbf2ddbb475723fb2fa30f2ae7fc1ceb1e6f361715eca7209608873c7fc
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4
+msg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1
+result = invalid
+
+# tcId = 88
+# Incorrect IV
+ct = 9b3e440341c5da131559959db6b3553a534691162f4f009327bf2c21d6fe5ada
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4
+msg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1
+result = invalid
+
+# tcId = 89
+# Incorrect IV
+ct = eba6cc0959e6a56339b141629840add80f4565656dc687a3b996960c994dfd26
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4
+msg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1
+result = invalid
+
+# tcId = 90
+# Incorrect IV
+ct = b703b6cf4587709353c7e4004d3da61ce5f5deaf7163ca9d6158dde919e0ac34
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4
+msg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1
+result = invalid
+
+# tcId = 91
+# Incorrect IV
+ct = 72549d52d6f4ff912d833c74136d90634ce8afa4f84412bbee8074084d4cecff
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4
+msg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1
+result = invalid
+
+# tcId = 92
+# Incorrect IV
+ct = 1337c8bd6c8a5dd43aba8d298864ffe76ad6ea909f3488157a15e6c46acf2214
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4
+msg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1
+result = invalid
+
+# tcId = 93
+# Incorrect IV
+ct = 4aaffaca5fe85814d040aa2a306ba4d1d44746cfe46c978aa057b53fd25316c1
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4
+msg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1
+result = invalid
+
+# tcId = 94
+# RFC 3394
+ct = 96778b25ae6ca435f92b5b97c050aed2468ab8a17ad84e5d
+key = 000102030405060708090a0b0c0d0e0f1011121314151617
+msg = 00112233445566778899aabbccddeeff
+result = valid
+
+# tcId = 95
+# RFC 3394
+ct = 031d33264e15d33268f24ec260743edce1c6c7ddee725a936ba814915c6762d2
+key = 000102030405060708090a0b0c0d0e0f1011121314151617
+msg = 00112233445566778899aabbccddeeff0001020304050607
+result = valid
+
+[keySize = 256]
+
+# tcId = 96
+ct = 940b1c580e0c7233a791b0f192438d2eace14214cee455b7
+key = fce0429c610658ef8e7cfb0154c51de2239a8a317f5af5b6714f985fb5c4d75c
+msg = 287326b5ed0078e7ca0164d748f667e7
+result = valid
+
+# tcId = 97
+ct = 939b3389336fea4a9751bf014ef18011323090e8a0500bc4
+key = 0dda6da5123e2c37c6fa16ba0d334cd01acd652f8994211751dfab4faac2fc22
+msg = b40b6828729b456322a8d065abc0d081
+result = valid
+
+# tcId = 98
+ct = 59ee8e5198861237f682edec6ba906526c016d4d935942bd
+key = d6925914cd06308f81ad91e23073593d99d4e50351b20eb2a8d1a1ac4ced6588
+msg = 037b27b3dc95b19d15bd4091e320bfe1
+result = valid
+
+# tcId = 99
+ct = 1ab53a065d8f776a08b33e51383071b6f154612116655137bd3b7ec29b70fd56
+key = 07518a82cbc8da1dcec55f3763a206d277487abd03cedd0b8bef9ee2fb157121
+msg = faa4664d79fce3c7d2fdd462f6c1c423c2f8e6b69be2e071
+result = valid
+
+# tcId = 100
+ct = a1bf8e73e3fa1db759f0ab2ab0b1ca6f2c85b63d83e25f7a0b5293d0a216a2b7
+key = ea46991d4e71f53dd624e7fe7fde11944a7c5942d232369b8065d42b8cd2dde1
+msg = dffc5cf1dd5411d015d84601fa38df5effe885c7f26a4825
+result = valid
+
+# tcId = 101
+ct = 27308a0e1a6c0a1d15d6174ab7d68675207b615df16fcf7a3c69b25f551cca9f
+key = fdcfa902c6f222f527af84da533b14b52e2615da3a89d1d35708b0cd49f60d87
+msg = 966b07047354966a703e79607b556032f4f596b7f9206f05
+result = valid
+
+# tcId = 102
+ct = 7155ee932b0358d98182a23f7f427c774ab340a4757d0b6a63facd3de90578438cf03201c3f88057
+key = 38e1b1d075d9d852b9a6c01c8ff6965af01bac457a4e339ae3e1d7b2ffacc0cd
+msg = 80ad6820f1c90981e2ca42b817a345c1179d0a11d8e23a8adc0505e13d87295a
+result = valid
+
+# tcId = 103
+ct = f20b9b553bc0847529f8d4379fa909211e68249bd429f436c615c4c4a5d9f1a1968f0b89c5237b30
+key = c641f1689d81caa8ba37d895272240664054ed974cfffc40e6c5c0cad1b916c7
+msg = 3fd0ba19955e46749f54d88e99d080b7339d588fe612ec0f4021ca3ca2104270
+result = valid
+
+# tcId = 104
+ct = 2811716854a214aecdd318c6670b9b2a7511713c9a0c0fa805230ff05cf84af795dd72f6c1a44512
+key = aa0ab9d68ed4a04e723f81b44c0c88d0bcde7a80cfd476eb4b8836d9aa01ec4c
+msg = 57faa8766f6d6a0aa1cf643f857c150df5b31303b50af480e21c4b5e8c8a15d5
+result = valid
+
+# tcId = 105
+# Round counter overflows 256
+ct = 5322bc62bd8379abbb75f69688b8f00e31962b8f9ae1e89771952d8a2a749e1352ec33b5435a674271b314760ab9f753b16726185ec7d319ac60531355344c1d53c7903000a8039eb40f70564a0ad3f41b2355ea5dfa6a1d46392f1d106a5da569bfb0493bf7c12dff04bafeae377df4bb47cd440b6f60fbab2a54a98551b76273e02cac8d7be9f2343d3abb2a23af1c91a7011c67a7907260116b67d510aabe5c7ca46c1c20f77106c45966583b3e4ed799a47ee19bb4223209265c2b1ac8183a678ff43bc9a3470a50b9ee4d10f60674268d72c68be003a0d9dd6849aba836fe8a1792b81c90e12945bfe1f27a9c6b2af66a063cdb7721a7f23fb30afdbd8b18db377dd1697f157be81c1578d08b066c71b0c5ca7feecac1cdd938cf9ad525f74844660908194b28e54eddb158f6e4c921b811d90db71a92ff872db2250dcc3f847fc752b66d77e33c85084d3fa53b4f30503d2a06e6cabb9033d59fc1dc15e32f19846a039b91597b0ba3141a7d9717630062170117b2131dab77406e9ed7d66b2c754d849c60
+key = 31cacbb17d6dbbecae40727c5048fe0c01bc53b23ab635025cbac1ecf52ca495
+msg = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+result = acceptable
+
+# tcId = 106
+# empty keys cannot be wrapped
+ct = a6a6a6a6a6a6a6a6
+key = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692
+msg = 
+result = invalid
+
+# tcId = 107
+# keys of size 8 byte cannot be wrapped
+ct = 181ba6a3a4392469e3de98ddbbdd2432
+key = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692
+msg = 0001020304050607
+result = invalid
+
+# tcId = 108
+# wrapped key size must be divisible by 8
+ct = 
+key = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692
+msg = 00
+result = invalid
+
+# tcId = 109
+# wrapped key size must be divisible by 8
+ct = 
+key = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692
+msg = 0001
+result = invalid
+
+# tcId = 110
+# wrapped key size must be divisible by 8
+ct = 
+key = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692
+msg = 000102
+result = invalid
+
+# tcId = 111
+# wrapped key size must be divisible by 8
+ct = 
+key = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692
+msg = 00010203
+result = invalid
+
+# tcId = 112
+# wrapped key size must be divisible by 8
+ct = 
+key = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692
+msg = 0001020304
+result = invalid
+
+# tcId = 113
+# wrapped key size must be divisible by 8
+ct = 
+key = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692
+msg = 000102030405
+result = invalid
+
+# tcId = 114
+# wrapped key size must be divisible by 8
+ct = 
+key = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692
+msg = 00010203040506
+result = invalid
+
+# tcId = 115
+# wrapped key size must be divisible by 8
+ct = 
+key = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692
+msg = 000102030405060708090a0b0c0d0e0f10111213
+result = invalid
+
+# tcId = 116
+# invalid size of wrapped key
+ct = 
+key = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7
+msg = 
+result = invalid
+
+# tcId = 117
+# invalid size of wrapped key
+ct = 9f
+key = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7
+msg = 
+result = invalid
+
+# tcId = 118
+# invalid size of wrapped key
+ct = dc9e9580
+key = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7
+msg = 
+result = invalid
+
+# tcId = 119
+# invalid size of wrapped key
+ct = b9b282d138693000
+key = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7
+msg = 
+result = invalid
+
+# tcId = 120
+# invalid size of wrapped key
+ct = 0efc635b2d61e244056b9d4591ca6b
+key = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7
+msg = 
+result = invalid
+
+# tcId = 121
+# invalid size of wrapped key
+ct = 4a305dae087b0d24d62af41831338f33ae
+key = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7
+msg = 
+result = invalid
+
+# tcId = 122
+# invalid size of wrapped key
+ct = 82cb927097cf31ea4affea440b0d8ca6a240b900
+key = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7
+msg = 
+result = invalid
+
+# tcId = 123
+# bytes appended to wrapped key
+ct = 7dfbd7cf6158d75bb5900b3bf1e3871003402a6508b1912800
+key = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7
+msg = 000102030405060708090a0b0c0d0e0f
+result = invalid
+
+# tcId = 124
+# Incorrect IV
+ct = a417671bc62a23c7a65543092124024df72c048d8db330c7
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7
+msg = a828cbda9b5ff0ae374f84fa01d070a5
+result = invalid
+
+# tcId = 125
+# Incorrect IV
+ct = 9518d0f99d7a73ed4a502b449c14c285971b0e6177ce0eca
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7
+msg = a828cbda9b5ff0ae374f84fa01d070a5
+result = invalid
+
+# tcId = 126
+# Incorrect IV
+ct = f3511f0491bd74ae1defb5307f0e18db864b57b5c404d428
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7
+msg = a828cbda9b5ff0ae374f84fa01d070a5
+result = invalid
+
+# tcId = 127
+# Incorrect IV
+ct = 6c03ce779259661c43d41d5d0e45687f874353bba516c73e
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7
+msg = a828cbda9b5ff0ae374f84fa01d070a5
+result = invalid
+
+# tcId = 128
+# Incorrect IV
+ct = 8df01969a11c87026535bfccf72b1d064c86ecc7e5227157
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7
+msg = a828cbda9b5ff0ae374f84fa01d070a5
+result = invalid
+
+# tcId = 129
+# Incorrect IV
+ct = 8ed1cde228d9c8d046dca65c7a27aef2edf8ae90c705d1e9
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7
+msg = a828cbda9b5ff0ae374f84fa01d070a5
+result = invalid
+
+# tcId = 130
+# Incorrect IV
+ct = d69b3e34e9de38d44de1998992362a6fa1f696b5acab3f10
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7
+msg = a828cbda9b5ff0ae374f84fa01d070a5
+result = invalid
+
+# tcId = 131
+# Incorrect IV
+ct = 67865122af3294b8da0588775125cbd6dc19d5e5cab97b6d
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7
+msg = a828cbda9b5ff0ae374f84fa01d070a5
+result = invalid
+
+# tcId = 132
+# Incorrect IV
+ct = 9f0fa52363dd55df472d867e6faf5da8eb204a1d6d497030
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7
+msg = a828cbda9b5ff0ae374f84fa01d070a5
+result = invalid
+
+# tcId = 133
+# Incorrect IV
+ct = c399f999c96a4204325e7f08d6a4de256faf21ec2c007ddf
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7
+msg = a828cbda9b5ff0ae374f84fa01d070a5
+result = invalid
+
+# tcId = 134
+# Incorrect IV
+ct = 282082264a87dc35ce1cc5b9931b77d80d82fcacc0927f85
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7
+msg = a828cbda9b5ff0ae374f84fa01d070a5
+result = invalid
+
+# tcId = 135
+# Incorrect IV
+ct = c192c90b83003ca96744498014b6ad6bedda837955269819
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7
+msg = a828cbda9b5ff0ae374f84fa01d070a5
+result = invalid
+
+# tcId = 136
+# Incorrect IV
+ct = 30a983cd9e69d561acc95c42b252aba4185f8392f2e6c935c8eb105af8082e34
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7
+msg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1
+result = invalid
+
+# tcId = 137
+# Incorrect IV
+ct = 4de9a639b799630b45b49e28dbfc44dabb9843ee588a8cff286b8d5fbd7b32ee
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7
+msg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1
+result = invalid
+
+# tcId = 138
+# Incorrect IV
+ct = d915b2cdfb769d9d82259dc3d124646bbf972b83efd4c2eae9b9f751073f78d6
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7
+msg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1
+result = invalid
+
+# tcId = 139
+# Incorrect IV
+ct = 117d653f480b69fce564f1fe99572492945189ed5af789ce05a2651baf90bb5e
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7
+msg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1
+result = invalid
+
+# tcId = 140
+# Incorrect IV
+ct = 8226d07a2f919e24ada1081c69a75520be895e3a2bda9b805d9747773ddeaa38
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7
+msg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1
+result = invalid
+
+# tcId = 141
+# Incorrect IV
+ct = b0a74345bedf8865348daf45d054b99ce515ea8be136270d1cf71e1cfa7aa4a2
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7
+msg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1
+result = invalid
+
+# tcId = 142
+# Incorrect IV
+ct = a261db77f17f7ec736d1a8be16e5f9ae432fe2a17012e5a6f07c5426a9f0ca59
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7
+msg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1
+result = invalid
+
+# tcId = 143
+# Incorrect IV
+ct = c53acb5e096b54548e1385b2ff18eaef68d235c95b0194e74a2383d3a7a530dc
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7
+msg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1
+result = invalid
+
+# tcId = 144
+# Incorrect IV
+ct = faef482d99ebb180e5bc5e3cf775ba292c2a3b6c44aa4a21ad400906f11af392
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7
+msg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1
+result = invalid
+
+# tcId = 145
+# Incorrect IV
+ct = 73a450b63b07b3aece9d1ae5bf097a3dd3fcf73e3ec2f1bd8fc3b5586cb9bd73
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7
+msg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1
+result = invalid
+
+# tcId = 146
+# Incorrect IV
+ct = d34b6ee184d387c9aa4b2d180ae0a89498014e55fe8e416be4f826fcf7d56522
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7
+msg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1
+result = invalid
+
+# tcId = 147
+# Incorrect IV
+ct = 2af823d1602803740bfa9040c2c4e769a5b6de919d403cfba9ad360f63af1113
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7
+msg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1
+result = invalid
+
+# tcId = 148
+# Incorrect IV
+ct = dd78ebd3091c55a5da5b24504200f7fadd1b3ac6ad35f814f733e603c13936245d69d83f262f6b1e
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7
+msg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c
+result = invalid
+
+# tcId = 149
+# Incorrect IV
+ct = 3d8338eae7de322399e1d1b4a3df54326b242b563612ea4b27da22a041d3c80966911bc009911761
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7
+msg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c
+result = invalid
+
+# tcId = 150
+# Incorrect IV
+ct = d04bf75cadd3b5f099c34b27a91e64a8f2dbcf08e8c5c1c9f07a777eeb805d5d0e8c5c01afc43944
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7
+msg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c
+result = invalid
+
+# tcId = 151
+# Incorrect IV
+ct = be0c5d193b61c5137a8fd8a6d7d1ed8f0fa28cec516f544697c12add4f8f4d5cfca65edeb1019974
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7
+msg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c
+result = invalid
+
+# tcId = 152
+# Incorrect IV
+ct = a83ebcbeb2be9d6807b5cfc31c89849d1343dd4eb22e5bfe9e2b2b3790ad8900601f1f5d54fd472f
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7
+msg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c
+result = invalid
+
+# tcId = 153
+# Incorrect IV
+ct = 416221485a6cb98ad1342ea9a12926a9a133ead8bd919323fe789bb8f89a4fcaf81e1be54f9d358e
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7
+msg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c
+result = invalid
+
+# tcId = 154
+# Incorrect IV
+ct = bf6a53286fac48e7f25d89b7056b27aa917d5b54c0d3171dff369f7249153bf09da5891eb4dc2d88
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7
+msg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c
+result = invalid
+
+# tcId = 155
+# Incorrect IV
+ct = 99d517a1321bb633b0d5f3afda2372d3abf68b41d13cbfdffc78f173b88bc4b97efcab2b2904788d
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7
+msg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c
+result = invalid
+
+# tcId = 156
+# Incorrect IV
+ct = d92456bc77a268ef71cba76064a1b772d1fee2ae4f0ee3bb932a2adb2b031796b9eadb51753f2868
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7
+msg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c
+result = invalid
+
+# tcId = 157
+# Incorrect IV
+ct = 5bb54630ab8d73a040f0f87e70e263d1aeb2358bcdc0dce6994d0d874452bbd8741b7ec1d59d8298
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7
+msg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c
+result = invalid
+
+# tcId = 158
+# Incorrect IV
+ct = 4581d6536039db1b23da50c648777e90c82d6128bb92e28b2974bae1141543a19a1592fda1fbd61f
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7
+msg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c
+result = invalid
+
+# tcId = 159
+# Incorrect IV
+ct = d35bc67e62064c34f48150999ba30ded475d8c75978f45737320f23edaaa7a40d7803fc61add34a4
+key = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7
+msg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c
+result = invalid
+
+# tcId = 160
+# RFC 3394
+ct = 64e8c3f9ce0f5ba263e9777905818a2a93c8191e7d6e8ae7
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 00112233445566778899aabbccddeeff
+result = valid
+
+# tcId = 161
+# RFC 3394
+ct = a8f9bc1612c68b3ff6e6f4fbe30e71e4769c8b80a32cb8958cd5d17d6b254da1
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 00112233445566778899aabbccddeeff0001020304050607
+result = valid
+
+# tcId = 162
+# RFC 3394
+ct = 28c9f404c4b810f4cbccb35cfb87f8263f5786e2d80ed326cbc7f0e71a99f43bfb988b9b7a02dd21
+key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+msg = 00112233445566778899aabbccddeeff000102030405060708090a0b0c0d0e0f
+result = valid
+
diff --git a/third_party/wycheproof/kwp_test.json b/third_party/wycheproof/kwp_test.json
new file mode 100644
index 0000000..8ae4de0
--- /dev/null
+++ b/third_party/wycheproof/kwp_test.json
@@ -0,0 +1,2042 @@
+{
+  "algorithm" : "KWP",
+  "generatorVersion" : "0.4.2",
+  "numberOfTests" : 224,
+  "header" : [],
+  "testGroups" : [
+    {
+      "keySize" : 128,
+      "type" : "KeywrapTest",
+      "tests" : [
+        {
+          "tcId" : 1,
+          "comment" : "",
+          "key" : "6f67486d1e914419cb43c28509c7c1ea",
+          "msg" : "8dc0632d92ee0be4f740028410b08270",
+          "ct" : "8cd63fa6788aa5edfa753fc87d645a672b14107c3b4519e7",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 2,
+          "comment" : "",
+          "key" : "a0b17172bb296db7f5c869e9a36b5ce3",
+          "msg" : "615dd022d607c910f20178cbdf42060f",
+          "ct" : "e8bac475d1429034b32f9bdeec09a37f9b3704028f1e0270",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 3,
+          "comment" : "",
+          "key" : "0e49d571c19b5250effd41d94bde39d6",
+          "msg" : "f25e4de8caca363fd5f29442eb147b55",
+          "ct" : "4c8bcd601b508ef399f71b841294497a4493c4a0014c0103",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 4,
+          "comment" : "wrapped key is longer than wrapping key",
+          "key" : "e0e12959109103e30ae8b5684a22e662",
+          "msg" : "dbb0f2bb2be912a20430972d9842ce3fd3b928e573e1ac8e",
+          "ct" : "9e4510cc84c4bd7abab0a8a5d7f1e6ff3e6777ca2dff9be7e223652239fe57d8",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 5,
+          "comment" : "wrapped key is longer than wrapping key",
+          "key" : "dd583d9f1059861430ec8b5d8a180e9b",
+          "msg" : "f2e34f356362a31b51d6e02bcd333c9e6170494ca5ff5487",
+          "ct" : "8fbf39ae583bd4efa7a3e8f7b86870b34766ae7d8923a8e97b0cd289ad98cacb",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 6,
+          "comment" : "wrapped key is longer than wrapping key",
+          "key" : "faf5ccfae42b43cee2c5f0f3177a7c5d",
+          "msg" : "4e02084833660c463830483b36dab866c64c8cf7429cac3d",
+          "ct" : "df2fbe5fa86418edc7b5b04a4aea724aca17e88cedc84ca8b0b0f048e64590cb",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 7,
+          "comment" : "wrapped key is longer than wrapping key",
+          "key" : "c2b9d23f2831ddcdeb456853d4014db9",
+          "msg" : "f4cfea98e58b939cc859554385cf3a6c7f8217f728efb431c964786de8274907",
+          "ct" : "67f8edf57f84ea0a35b35511d67d3f299c9984b2c07d3809c3d7f5f45091f1a8fbb937ed447677f6",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 8,
+          "comment" : "wrapped key is longer than wrapping key",
+          "key" : "620a08f320cdedbf7ae551add348d95e",
+          "msg" : "cec34eaf8e67e1ce619ddfc309531c42f16033a7e2cbc4f5eb3a548164e9b291",
+          "ct" : "60d55a22ba7dbd7d8f317388e01e6be561d15d29f85c566f1259aa7e7dc3d5d30e0ef5f4c6267553",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 9,
+          "comment" : "wrapped key is longer than wrapping key",
+          "key" : "ed089ac274f8c7cea2415671a94b5e53",
+          "msg" : "6065e41df14daeeefacac5daeb7674cdc9c1f686013b797153e80ef215893299",
+          "ct" : "d78a8291108f0f2d8be0ec10ec08240bf4d3021f0a5ed7faba0748db73762f34a0504bd373212df2",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 10,
+          "comment" : "Round counter overflows 256",
+          "key" : "b6121acad51038e11873aaa7e6c7be06",
+          "msg" : "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+          "ct" : "9341221aca1c647e2afc2bdd9cf4ed6e60058eb0a84cb3fc2daf3a87d9fad0a1f8268b27aaf7201d705e72f7e2240309ad98742094e3f1c99b7faa9ae181b441f5004b8bc93cdd4160d403d0884749a3c379d47c112a45788c05c2106c98f59758d393e04c880691b0e8683a12df7f876e1e1f68b4acbae9cc8310b34d59ccf4617cee72e845df1e0e32e5b4938f2923d55f1bb5156dd8c787401e6ef241ea4073d0a59ddfcd7a53db5d89b480b030cfb9084ea8479b964f090bb612d5251eee9ef8870a45f1e76fd24abdd9b350fe148b15a4cfeb032d57b5743b3548a7ce9eec8e21a31ce832530edfd1cffd9bb37369e6463c6b373ab60d80b0a2677e92e658f7daf2a5234b7312bf2d967cd0bc809e9be2f706ae63bd632fd611f161e48ee19677f3243aa0e91f6651a1cef62feff7a72eedf830bae1dc6d89e55ccb5e6f97889c6266f7d3f2eb0aea6c8c42200febccc5916825368adc87e04e835de06fd7bc2805c219e7f0b6252563f29969b1f30cfa1a8da4b90ae7534fb849d068a7e77de7360f8af173",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 11,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dca",
+          "msg" : "",
+          "ct" : "a65959a600000000",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 12,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dca",
+          "msg" : "4c",
+          "ct" : "09bcbab50b8dd45ad83412e2919030d3",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 13,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dca",
+          "msg" : "be52",
+          "ct" : "0cbe852cdce4f0b5333366f446b2b1c5",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 14,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dca",
+          "msg" : "2d5244",
+          "ct" : "a9dc66e03435ab3d4f97ff66f2c911a3",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 15,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dca",
+          "msg" : "6c3d3b4c",
+          "ct" : "1b970c8ecb4187447e60e6083da03086",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 16,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dca",
+          "msg" : "0412ab3ec6",
+          "ct" : "0344f7b34ab8ef28aaa843f276b0b3d5",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 17,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dca",
+          "msg" : "8ae08938929c",
+          "ct" : "17356c7148334ca1a24aab7e82a66e18",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 18,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dca",
+          "msg" : "7c8dfbb68d72af",
+          "ct" : "1db7510a55591a455d9f8167e6db3c88",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 19,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dca",
+          "msg" : "536f8f83b64771c1",
+          "ct" : "936fe58b629ea6ec158145218f2361c7",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 20,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dca",
+          "msg" : "8571f282b18b64ec5e",
+          "ct" : "6787816804b3127d0ca4073f1dba5c4d3db1ec9c227e6556",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 21,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dca",
+          "msg" : "8ada889862813e364c4d",
+          "ct" : "34131c3bfcc48af15eea8672e52927b462f81d5ba0e6260f",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 22,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dca",
+          "msg" : "f9c56e8058758a5c7c2baa",
+          "ct" : "4d1ec9287cd4dd378b9aefee79d4ed35bcb98ad9fa9fe529",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 23,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dca",
+          "msg" : "7c7dbc83fa62206a521ed4ad",
+          "ct" : "7209f5b6bd5d4916f4995d280e9aa89edd5e96e3c9283ad2",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 24,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dca",
+          "msg" : "a6614daf00df6d14f50388bad5",
+          "ct" : "d85a1efc6ab3a40948f723d9810a5deb019b3ce0208a0d94",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 25,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dca",
+          "msg" : "450580a47d7008321496bfb82f48",
+          "ct" : "43509b5df3688b6e44c1a994592f4c03da34712f886e63d5",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 26,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dca",
+          "msg" : "9efd21e13855eea8907afdcd8935f4",
+          "ct" : "16e369351c40f220d3fb1197f35da652a3a40ca3b1e99bfb",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 27,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1",
+          "msg" : "a828cbda9b5ff0ae37",
+          "ct" : "82af032f5389caa503147d2825336eab84816fb6f8ae6df4",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 28,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1",
+          "msg" : "a828cbda9b5ff0ae37",
+          "ct" : "4e00a9eeef87eb6d7be4ec46204d94006c216d5177d2a83c",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 29,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1",
+          "msg" : "a828cbda9b5ff0ae37",
+          "ct" : "d3dc6c3b4707a08039d621879caf419b9895482fff7bdcd0",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 30,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1",
+          "msg" : "a828cbda9b5ff0ae37",
+          "ct" : "09d3bfc3c9c5af2b2951b06406f7ea4d84e9c37402637e2c",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 31,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1",
+          "msg" : "a828cbda9b5ff0ae37",
+          "ct" : "3396679a4d87caf7ce7eb4707ba1c6526728f5a973191713",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 32,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1",
+          "msg" : "a828cbda9b5ff0ae37",
+          "ct" : "ec637d90d945e92929c1c873d9aa9c47bc7b172237319d15",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 33,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1",
+          "msg" : "a828cbda9b5ff0ae37",
+          "ct" : "748f373d48d8590e2216b294b9ef94860dbb6b0b0ab625c5",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 34,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1",
+          "msg" : "a828cbda9b5ff0ae37",
+          "ct" : "61d7c584197f257caf2583e444896f1d3ba12509b1ef725b",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 35,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070",
+          "ct" : "7f8cda973fe58b484b120fc710b520c5636057629795f89a",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 36,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070",
+          "ct" : "ccea198029edb9d848d6ca76667b666b1dbebd1e4b1faa8d",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 37,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070",
+          "ct" : "ee08cb9d20a98b88b2d8f0e39acf34219d105dc14afbe364",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 38,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070",
+          "ct" : "6782992bf8cff068cf41341dd2ca04adedea92e846f74411",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 39,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070",
+          "ct" : "7ed35d0c08042dd56bb5df78056ecd21b8c797d36f57aaec",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 40,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070",
+          "ct" : "37e3b4cefee648766a8efe73d6af12812eded603ab7141bb",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 41,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070",
+          "ct" : "fe73777d8992e07eef0d053ad5ec0bf8243fc7e0bc2b405b",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 42,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070",
+          "ct" : "39292c91b6b826d47d502043c3ba4f41e2ce32960a0291b5",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 43,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "36ef8fc13d0f1f5745e3939877b62b8ecba2f5f0b19f9e90",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 44,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "7255c4eacb4105a68095e9e5b5a4bd8f9623a0da5c6fc230",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 45,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "ea26eec89a46ff1a628834c7247a8e4e45d8a8d3229e26cc",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 46,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "508593fa85a8effd27c8a225981978fcec6e992eb488c9c2",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 47,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "b8a4cb22f15529864d4ced8e8abae69752a9045a084dfc3f",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 48,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "a0a6bf5e47e89706932b1057b680c3c81dc4d9d0b4f9153b",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 49,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "11f3af4ed30e77520517c880f1d0c272a89a968dc697cb5a",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 50,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "6fc912a0bda73bacfa93db4002f18f349fa30f22f7a95ab9",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 51,
+          "comment" : "RFC 3349 padding",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9",
+          "msg" : "000102030405060708090a0b0c0d0e0f",
+          "ct" : "3731038571c35f7dcc55e48892de353e54c079b89774bbfd",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 52,
+          "comment" : "Invalid encryption",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9",
+          "msg" : "0001020304050607",
+          "ct" : "d85c6bfd092df1aeae5a548e47aa7681",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 53,
+          "comment" : "padding too long",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9",
+          "msg" : "000000000000000000000000000000000000000000000000",
+          "ct" : "7a92427387f5587ee825d1ffa011c40286844ecdadce31cd9678338694ea2682",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 54,
+          "comment" : "padding too long",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9",
+          "msg" : "0000000000000000000000000000000000000000000000000000000000000000",
+          "ct" : "a437d354606ae752894feb62c8def7d17046d8e47f9aed755fba48b3a3009e3ff67d34e26a779064",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 55,
+          "comment" : "incorrectly encoded length",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9",
+          "msg" : "00000000000000000000000000000000",
+          "ct" : "e8d240d64f16d1522ae2ded42ced257dfec158ff2fe1467d",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 56,
+          "comment" : "length = 2**32-1",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9",
+          "msg" : "00000000000000000000000000000000",
+          "ct" : "6d1bfda356b7b954e7aaccc6df953322f75be95947b02b30",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 57,
+          "comment" : "length = 2**32-1",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9",
+          "msg" : "0000000000000000",
+          "ct" : "17dbf878ef4076cfcaba5f81d7b123d7",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 58,
+          "comment" : "length = 2**31-1",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9",
+          "msg" : "00000000000000000000000000000000",
+          "ct" : "75c23e253478037802fae0f86af9c78d4e4d9be0c3bff89f",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 59,
+          "comment" : "length = 2**31 + 16",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9",
+          "msg" : "00000000000000000000000000000000",
+          "ct" : "55717658c6a35e15ee36c66cce91083b63091f51525c0b51",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 60,
+          "comment" : "data is incorrectly padded",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9",
+          "msg" : "ffffffffffffffffffffffffffffffffffffffffffffffff",
+          "ct" : "8ede88a52ccb8a6d617456955a9f04c94d87696125ded87eebe3e97e185496d9",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 61,
+          "comment" : "data is incorrectly padded",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9",
+          "msg" : "0001020304050607",
+          "ct" : "5b4a8f1abffa51676ac8b5ddf9366c12",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 62,
+          "comment" : "length = 0",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9",
+          "msg" : "00000000000000000000000000000000",
+          "ct" : "205cc6dd9592da0ebff6b4b48a0c450eeaeb11a60d33f387",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 63,
+          "comment" : "RFC 3349 padding with incorrect size",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9",
+          "msg" : "0001020304050607",
+          "ct" : "908a68b0d2054e199220d37c34a2e136",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 64,
+          "comment" : "length = 9",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9",
+          "msg" : "0000000000000000",
+          "ct" : "f84bdb15045cee3a8a0f3ed2f07c1771",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 65,
+          "comment" : "length = 16",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9",
+          "msg" : "0000000000000000",
+          "ct" : "7592b1ee6ee92c9467db366adcfa65bb",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 66,
+          "comment" : "length = 2**31 + 8",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9",
+          "msg" : "0000000000000000",
+          "ct" : "db93a1db3b5babc80a304d527682c1ef",
+          "result" : "invalid",
+          "flags" : []
+        }
+      ]
+    },
+    {
+      "keySize" : 192,
+      "type" : "KeywrapTest",
+      "tests" : [
+        {
+          "tcId" : 67,
+          "comment" : "",
+          "key" : "f75a2f49a630c7dc91626b00ce029f0bd2981d7c74a93ebe",
+          "msg" : "9adbc00c710b1101bdf6a4ed65b32d72",
+          "ct" : "5c117a678223cfe5ee691503061e7ab1e5f720e005171b32",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 68,
+          "comment" : "",
+          "key" : "b713f6b7814f98894d7b153974684359f1460213eb74be68",
+          "msg" : "78585f0c49922e82caf17ebc3721b4db",
+          "ct" : "6a7f9e03b6f379c56da3a56d8f32eba515454a91fd417449",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 69,
+          "comment" : "",
+          "key" : "13ecf423211caa334ba6db37259a535c20de8ad10fc8c432",
+          "msg" : "4fc75d0f221e22408a37e11265d49a05",
+          "ct" : "764097f5ee8236bc0d93bbcea139a652f4b211cc33a61ac9",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 70,
+          "comment" : "",
+          "key" : "4417fbbea51bdd91818d74051957dd70e135c5cf3732bdf1",
+          "msg" : "f5357da9f8fd4a1190f36e9fa09a90fcf14d87d62332f1a5",
+          "ct" : "04b83ec803a75bbcb2f87fc6f488a4ccc1827b412483070eed195b6f0048ccbe",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 71,
+          "comment" : "",
+          "key" : "b3f26d8a22fdd61f709841231fbde695b3f28dddced6d41e",
+          "msg" : "0d0af955d2e3829cc3d643219b301e64e0510dfbc428119a",
+          "ct" : "46ab71f032cb1ccbcc7447a5183574268c0167a26a93fe8422bf284417aa93ea",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 72,
+          "comment" : "",
+          "key" : "f70cfb262c729a18206c8afd74356ec7e049d10b44a6e000",
+          "msg" : "241cedfa64c4e7bec541a2eb4c368269e0f0ddebc58267ea",
+          "ct" : "47ca298ee47b1b755a499129347e11e7a25754ccb6c2689e8eff270e98c81d18",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 73,
+          "comment" : "wrapped key is longer than wrapping key",
+          "key" : "1639f9f81e53e2eeb677a249e5eced3af108971301601a7b",
+          "msg" : "ec3c6a1f1a9585327fe658490c74635e5300876da5846a629398984fb551d691",
+          "ct" : "ecac4c91758e1ae7bb010c34f4c5f99a3d728b9fa92cb778d3fe80d777a20d3de85ef46e7a0c6a6a",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 74,
+          "comment" : "wrapped key is longer than wrapping key",
+          "key" : "1f22d5658aa685b8ba8659dc342880d5b2399e6a815005b0",
+          "msg" : "50be4c1b2f29a63f44d7fc63737f600f0194ea3fb36e173d2ddd19f218656380",
+          "ct" : "39b7326a44eaed08bffbd4aeaf3e2c3f899c1fd049384ed7b3eb92b788c6449acd6385f0bb18cf28",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 75,
+          "comment" : "wrapped key is longer than wrapping key",
+          "key" : "3a2f4aa50441954bba5a1836294ce071f9296b23dbed6771",
+          "msg" : "65da02ff21b483a1e39575490b4319e84ae0299f1f00b3859fbe2e74b3ec2aaf",
+          "ct" : "3d2e9f39c7b13e9585227c4344fbe596f92b002456616f137deacc6a8c941649ce294bb2695c1807",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 76,
+          "comment" : "Round counter overflows 256",
+          "key" : "b6121acad51038e11873aaa7e6c7be06f93826b74fec0ea1",
+          "msg" : "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+          "ct" : "d6aacfb52c26baae78c2f54259a4e4168f817064344e2ba8fbfa7fae9f1fd69bd5bc5c1e20a6101b4a7119cbce028e25a9e93d29ee260c4e609baedee788411c2afe60218ce1b0d28b9c29b941251fdcbac3009d59040a0337b8b4a3a020c6d8f310cba63db046d8f36b64c9092e75cee463fc7692ef56bed395c4579da0ecb02129e45ad8a7f116aac6170204888e40693f017a6a0a7dd3962004e60db3a9b6c8b7614a467ccb799bce1ba83f5c0921f1e52bb3909bc0486ec0eaea736498f3ba520a519c3ddf491307958620b737613417b15b438b80b43189baa455031f5771502002ea170c767b33d247feebce62e606f2262537f85f18d1951cc75cedef291c6a501cb1778586249b58156eb8d7283a3f508ee8bcc1206d77bbd6892fe74b865bfc02a8f07223087a6c1e50a41b7cf5f6ee04bd07766b2e5b34c4a7666b0ce06f670e6434a59fb74e0df36c91d94e5e8b721e53e09b6f6504c5d515492a373fcc348a63122cc6e4716e0e1a543d038c6f7731199f691780a8a655cca6718e3dc56e815b3669",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 77,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b",
+          "msg" : "",
+          "ct" : "a65959a600000000",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 78,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b",
+          "msg" : "a3",
+          "ct" : "52c7f388d0d4237afaa29f2b94723475",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 79,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b",
+          "msg" : "594b",
+          "ct" : "833431ce8799be69b36aafe3f38d9dac",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 80,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b",
+          "msg" : "72ab34",
+          "ct" : "31674f46b989f6ead582c70dedc8c6b9",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 81,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b",
+          "msg" : "d4d9460f",
+          "ct" : "80535172d2a498aa31601d70fdca9dea",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 82,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b",
+          "msg" : "643972e552",
+          "ct" : "56232300dd7b2a71d2328b6df47af8e3",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 83,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b",
+          "msg" : "f3cdb73d2561",
+          "ct" : "e27e08efe39adbbad8d300b87be2c258",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 84,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b",
+          "msg" : "7b0b53b6429e14",
+          "ct" : "8f90942cdab33e58b24a23ad7efb7538",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 85,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b",
+          "msg" : "6b2393773e6d1378",
+          "ct" : "0ebaf23c858015d3bda5b8d908db6049",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 86,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b",
+          "msg" : "2c52d6639e769960e8",
+          "ct" : "d56f89977b8eff511158edad6b993007189e5a4b8c0e2faf",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 87,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b",
+          "msg" : "707c9356216d69c69048",
+          "ct" : "dd889475a76733849f59bed49a15d4315bdb5ba00dc63470",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 88,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b",
+          "msg" : "615f6fa79e1847e7359a8a",
+          "ct" : "1a9b3369239b0f40a8dc5bd8d965caf7431445799337b99b",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 89,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b",
+          "msg" : "7f5e999168ec60624426cbb1",
+          "ct" : "5232f8f6679a17d3303b0bd72b06b56b5089e80372dc295b",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 90,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b",
+          "msg" : "3f93aaf4463775baf6c0c975ae",
+          "ct" : "e5544361c60980f3d38f2d8820a150f48f49ef3f9184b29f",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 91,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b",
+          "msg" : "fefcf10c976309b2beb085771e50",
+          "ct" : "55396065905915ec914b8d1efbf471e37d283fc2c1496b49",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 92,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b",
+          "msg" : "6854354d0099f7eff740b0587140b3",
+          "ct" : "d90376be302a24c541bd6d96094f0025e3d73888391b4306",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 93,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae37",
+          "ct" : "eee27510be39cc88379459420f3773642a423ac1ff0cfb84",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 94,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae37",
+          "ct" : "765df3fa1aca6f13268ba79f8659807049a313a0308b643e",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 95,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae37",
+          "ct" : "71346c17a2718cb7c357e3af2b2d0c3e29b7e02317926746",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 96,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae37",
+          "ct" : "55fd49ba081fdf72896068c5a968e2b3c4a473786a2e12c2",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 97,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae37",
+          "ct" : "133c66fcbf0e9d5139eff3fcb494b672d72bb622d7015c4b",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 98,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae37",
+          "ct" : "8439244f27470e5f1f294cfa22ef5412675d7fbbd92ff016",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 99,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae37",
+          "ct" : "4265bdb7d8ea30d9a51e5f48b7ac5487e0c95f154ea8baeb",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 100,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae37",
+          "ct" : "31afcca8ff2b8806408c3460181ee5a96bbaf51d133211be",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 101,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070",
+          "ct" : "196f2a6eccb5368fe6a3f2fa0874d8fc9b3b52484e2d6351",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 102,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070",
+          "ct" : "8dc73d363fdb32f6e0ff830c2a48db5815f66d0922694c74",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 103,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070",
+          "ct" : "e90022b9da998b4a30c91c1bd1a1f8ca05a52432867e5e78",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 104,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070",
+          "ct" : "c9898a1b70bd718df45f1f3eca82eab1eaddb8ed7f2380dc",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 105,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070",
+          "ct" : "cc3f2cd6476eddbbfdc801b61174301688554f3db54c2903",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 106,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070",
+          "ct" : "23e15705e7b00d82bd052f0e0135ab7ac0dcce471ff2f1a7",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 107,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070",
+          "ct" : "b8e2862c0f9eae4f44ad99496e3ed62b3b9c4ce7ab5afb74",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 108,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070",
+          "ct" : "66d8a7769d81421efda456992f6c26cb17665fe080b0160e",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 109,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "a6a28bceb91551a395369ff09370658cc92b092855f417aa",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 110,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "03ff601cf12b432078a2185590fb5d01e3441cf084bcb04a",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 111,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "e250d358d16d9fd20ad80a99656509229dca391aad3798f0",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 112,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "643a17860b116ec74089bc574685a6328a3d7a07cd18b520",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 113,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "3e86e8128904f753c0f3fe3401ba36672966567725c4726c",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 114,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "d4b8cc849176b8344b0849490143d3512915171bd7d5759e",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 115,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "f84e0e6ff64e0b27b8b59b5b77c223023f0fea95433864ec",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 116,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "4030b4b0e9c1b1ce8e52f6bdb48088e65b05844307989c8b",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 117,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "ccb3b36c26b2d901b7f0765362d992b2d5089c2a7559b195becbe173780352fa",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 118,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "4e5fc8dccaeec9b1c8a606a2bd7d7201eede62b9c2e939a5aba663a6a040e361",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 119,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "af21f5e7f15a63c8ea6001cf024f281e7f44aedd68954564fc2bd146e96d793a",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 120,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "3a4f571ffbf761d3f7d413172ee1e4ae2862baacfd5ab66dc685b9af8b70b538",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 121,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "273de386d5fef497f9487afd54c1c0fae8aacabf2af465caf352e2300d29266b",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 122,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "16511743dc44199cee1dbf5045141b075f01ee13326c9faf2c74b7c99791830f",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 123,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "370f92db00f7fc8a0e654318a5b3ff89a604034f421339201d79e0ec4d6088de",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 124,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "e3edd0e84832f3615f6deefb444de3b9ec527741686029db91de0bb9b2a5c05d",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 125,
+          "comment" : "RFC 3349 padding",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702e",
+          "msg" : "000102030405060708090a0b0c0d0e0f",
+          "ct" : "36ee480138edf11e144efcddd24d2c121749da6e4eab17fe",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 126,
+          "comment" : "Invalid encryption",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702e",
+          "msg" : "0001020304050607",
+          "ct" : "166beb49e97a4a9cc7b0ccf441ec15b5",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 127,
+          "comment" : "padding too long",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702e",
+          "msg" : "000000000000000000000000000000000000000000000000",
+          "ct" : "74ff3070a0a08471c001febb95a890f35159a9fe263719e40c2332ce5c58fada",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 128,
+          "comment" : "padding too long",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702e",
+          "msg" : "0000000000000000000000000000000000000000000000000000000000000000",
+          "ct" : "4f0b38eb328d1227b1e17c103a44a373ff67cee953c59eea26117947b5d3ef8932c8858b4f9fb47c",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 129,
+          "comment" : "incorrectly encoded length",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702e",
+          "msg" : "00000000000000000000000000000000",
+          "ct" : "775dcabab9e4be8fd9963a4dc7a1447ef82888403882bdb6",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 130,
+          "comment" : "length = 2**32-1",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702e",
+          "msg" : "00000000000000000000000000000000",
+          "ct" : "669803237fa10eabb4d2c6ad85bd9f7df5f4a33340eb0ce9",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 131,
+          "comment" : "length = 2**32-1",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702e",
+          "msg" : "0000000000000000",
+          "ct" : "c788504d786f5c21b6671bf190657301",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 132,
+          "comment" : "length = 2**31-1",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702e",
+          "msg" : "00000000000000000000000000000000",
+          "ct" : "d079f60d3258f5e695d1a73db008ef38516b713eca2c0eaf",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 133,
+          "comment" : "length = 2**31 + 16",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702e",
+          "msg" : "00000000000000000000000000000000",
+          "ct" : "f1ae4b8865013b0fc63b463e664cec3c6031f61f2de82f43",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 134,
+          "comment" : "data is incorrectly padded",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702e",
+          "msg" : "ffffffffffffffffffffffffffffffffffffffffffffffff",
+          "ct" : "8874e1b6e15e3ef6c461411a5f5ad0c8b05368cd5b3ee39b2b413d18a4eebfc9",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 135,
+          "comment" : "data is incorrectly padded",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702e",
+          "msg" : "0001020304050607",
+          "ct" : "890a3dab8439bb73b14c6e99c34f0b0e",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 136,
+          "comment" : "length = 0",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702e",
+          "msg" : "00000000000000000000000000000000",
+          "ct" : "d4f633aedeb89e349a98738b00ee42c90d583b16e986e49f",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 137,
+          "comment" : "RFC 3349 padding with incorrect size",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702e",
+          "msg" : "0001020304050607",
+          "ct" : "b8b2a5b1d3280dcb4daeeed43f36509b",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 138,
+          "comment" : "length = 9",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702e",
+          "msg" : "0000000000000000",
+          "ct" : "4429cf64251d8a54a9d1389c01c30900",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 139,
+          "comment" : "length = 16",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702e",
+          "msg" : "0000000000000000",
+          "ct" : "e5634eca10372c867c7f91ee813ec3f3",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 140,
+          "comment" : "length = 2**31 + 8",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702e",
+          "msg" : "0000000000000000",
+          "ct" : "9e517d4d0142e1544ba1e7419a696c21",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 141,
+          "comment" : "RFC 3394",
+          "key" : "5840df6e29b02af1ab493b705bf16ea1ae8338f4dcc176a8",
+          "msg" : "c37b7e6492584340bed12207808941155068f738",
+          "ct" : "138bdeaa9b8fa7fc61f97742e72248ee5ae6ae5360d1ae6a5f54f373fa543b6a",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 142,
+          "comment" : "RFC 3394",
+          "key" : "5840df6e29b02af1ab493b705bf16ea1ae8338f4dcc176a8",
+          "msg" : "466f7250617369",
+          "ct" : "afbeb0f07dfbf5419200f2ccb50bb24f",
+          "result" : "valid",
+          "flags" : []
+        }
+      ]
+    },
+    {
+      "keySize" : 256,
+      "type" : "KeywrapTest",
+      "tests" : [
+        {
+          "tcId" : 143,
+          "comment" : "",
+          "key" : "fce0429c610658ef8e7cfb0154c51de2239a8a317f5af5b6714f985fb5c4d75c",
+          "msg" : "287326b5ed0078e7ca0164d748f667e7",
+          "ct" : "e3eab96d9a2fda12f9e252053aff15e753e5ea6f5172c92b",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 144,
+          "comment" : "",
+          "key" : "0dda6da5123e2c37c6fa16ba0d334cd01acd652f8994211751dfab4faac2fc22",
+          "msg" : "b40b6828729b456322a8d065abc0d081",
+          "ct" : "9d2b42fb2fdb92c89fb0c3bcd9e1600d3334b4e35e791369",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 145,
+          "comment" : "",
+          "key" : "d6925914cd06308f81ad91e23073593d99d4e50351b20eb2a8d1a1ac4ced6588",
+          "msg" : "037b27b3dc95b19d15bd4091e320bfe1",
+          "ct" : "5291e05abd55f5886850855e3f9f2f576b101acc222d6766",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 146,
+          "comment" : "",
+          "key" : "07518a82cbc8da1dcec55f3763a206d277487abd03cedd0b8bef9ee2fb157121",
+          "msg" : "faa4664d79fce3c7d2fdd462f6c1c423c2f8e6b69be2e071",
+          "ct" : "4b1220525c537aec30ebcd562b694b4e9e2ccd819de22ef608b5d8090779d9de",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 147,
+          "comment" : "",
+          "key" : "ea46991d4e71f53dd624e7fe7fde11944a7c5942d232369b8065d42b8cd2dde1",
+          "msg" : "dffc5cf1dd5411d015d84601fa38df5effe885c7f26a4825",
+          "ct" : "67b2cbd68f6a208d647bdc5af7d0bccf6711a9e8fd0d9434363006addd4b9696",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 148,
+          "comment" : "",
+          "key" : "fdcfa902c6f222f527af84da533b14b52e2615da3a89d1d35708b0cd49f60d87",
+          "msg" : "966b07047354966a703e79607b556032f4f596b7f9206f05",
+          "ct" : "cfdbbd95f187508a488fe017c5e5d5a5975b68441d520e0e931922388e28784c",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 149,
+          "comment" : "",
+          "key" : "38e1b1d075d9d852b9a6c01c8ff6965af01bac457a4e339ae3e1d7b2ffacc0cd",
+          "msg" : "80ad6820f1c90981e2ca42b817a345c1179d0a11d8e23a8adc0505e13d87295a",
+          "ct" : "b63b7e0fec7e315816233db6758fd3e744b9f6a40862bdf866487e53bcb950d8b2649269e51b4475",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 150,
+          "comment" : "",
+          "key" : "c641f1689d81caa8ba37d895272240664054ed974cfffc40e6c5c0cad1b916c7",
+          "msg" : "3fd0ba19955e46749f54d88e99d080b7339d588fe612ec0f4021ca3ca2104270",
+          "ct" : "837cfc316b49299edaf427e0988020ee876204b29d847669daab72c8660b0d860e9de3bd851198ff",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 151,
+          "comment" : "",
+          "key" : "aa0ab9d68ed4a04e723f81b44c0c88d0bcde7a80cfd476eb4b8836d9aa01ec4c",
+          "msg" : "57faa8766f6d6a0aa1cf643f857c150df5b31303b50af480e21c4b5e8c8a15d5",
+          "ct" : "0e9e2e9aa34bbf973d67bc534ac86fc5b5a5f9da5f026866177894ec6077a5c84501510e1bf4afb3",
+          "result" : "valid",
+          "flags" : []
+        },
+        {
+          "tcId" : 152,
+          "comment" : "Round counter overflows 256",
+          "key" : "b6121acad51038e11873aaa7e6c7be06f93826b74fec0ea1c02f9981ed49d16a",
+          "msg" : "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+          "ct" : "1c6b7e4003384f071bf29baea9098ad81da8e9862909329f52793b35d592c10dba15aa89400ea6403df8dcaffd0dbf5606303f109f79ad700ed5d5ad4e59950ce9ce5296c9d186a0df441973d1835f9ac000ad1a6797875c3a03161e9e3f5ea464032e407854eadca5a9e7a386bb0d29253e3804adefd8c0402cc8c40ac7f9041429cc0bb77a405b284baa2dae764ea09c654c0a82f2c5724221ba44e341503d3103dbc393c7702182f8cc2762ddbc873b7f84197709886a4b5df5b04ff9d21b79b50904af3c32128dfb9cde94fe1254d981e6ce3acfda82db1fa2badbccd2d29052a04a69ce1f5652f30496ea57edc7e3e885dd4a35ca15aba602bb4c888a8064da94c2ac5c12c11f608810af46fbb49c3e8f8771ff661f8d8dccd163d0c4a401b8b9aa74e68a56011cf78d21dc7541a974f9dad5ae27f8a26d1b0e76be2f86c6a21e9d1c2b5df3c8878a8bcae143b3af1f082afc52616eeadd2232926597b245d394931e02e493b0bc27a92d013e111694cac2c5a2a46e008a8498b5c31bb5ec35a4e9957e365d",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 153,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093",
+          "msg" : "",
+          "ct" : "a65959a600000000",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 154,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093",
+          "msg" : "ae",
+          "ct" : "06c1e65ac0f385b4e8c400d229f39422",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 155,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093",
+          "msg" : "c548",
+          "ct" : "c98da5936a1313eba1a6773b8060ea5e",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 156,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093",
+          "msg" : "f713b9",
+          "ct" : "b2a77d9b837e87cdb7391e1df7cdaf14",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 157,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093",
+          "msg" : "f375cbf7",
+          "ct" : "d8ecf20191f75aa36686298bfa5022ab",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 158,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093",
+          "msg" : "d9445094b1",
+          "ct" : "077362f50356fc7c54c70f9cb4306f7d",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 159,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093",
+          "msg" : "fab43e91ae15",
+          "ct" : "a4bd6a116ad88a52aae3f0c0cb893f9b",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 160,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093",
+          "msg" : "90735025797bd2",
+          "ct" : "68a52de00ec0f1ebbedc38fee6be0c23",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 161,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093",
+          "msg" : "e43f5e4e123a03c4",
+          "ct" : "3a6746052a1744cfe7e2f36dafc4042d",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 162,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093",
+          "msg" : "1723eb9d000916996a",
+          "ct" : "db7e73da22219e1baac0f4e955c3db2b900b5d3078f94b59",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 163,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093",
+          "msg" : "8b18daecde14b8472ffd",
+          "ct" : "f77ec14a010777f1f1071808f285c1c00b4e9420f0e8bf48",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 164,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093",
+          "msg" : "e5bd6fbacbf3ef0d40c884",
+          "ct" : "6b40d4f0863581a7d0365ad477568bfad94f8bf134984838",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 165,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093",
+          "msg" : "b3be5e5397df5f46b099e821",
+          "ct" : "660f645b02405a18f7225b68c0a09a949b2b5ba784922cfe",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 166,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093",
+          "msg" : "4cdd960cabcf8aaf69c37da1d3",
+          "ct" : "6bea6bf57601bf063873f47ec3572cfb9cfb595d8bdb5e97",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 167,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093",
+          "msg" : "da29e0889cf98742612e0326300b",
+          "ct" : "b631292536aaf02d829cc6d3c39e5a5cd76240889e9d51d0",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 168,
+          "comment" : "wrapping small key",
+          "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093",
+          "msg" : "72aaee126a822184806c7d22eed66b",
+          "ct" : "de497acf18a177a3a9b3d8da46d74dfa58dcc537a3a95323",
+          "result" : "acceptable",
+          "flags" : []
+        },
+        {
+          "tcId" : 169,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae37",
+          "ct" : "aef4d2357a8fc5c3b4a80a15ed49781d3a82c98eb78c9180",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 170,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae37",
+          "ct" : "6eaefd5193f0725fea545077a430860663901979f0b6f4a3",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 171,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae37",
+          "ct" : "f9ded536c1ae9c680f7d9c4b91a566a07b1628e9b9f4fccd",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 172,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae37",
+          "ct" : "443526477c779a329ded0b230307afa64fdc10dfc86414dd",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 173,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae37",
+          "ct" : "21ba79f3b423a66e7baad86fe49786e07a33dfdf227687e9",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 174,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae37",
+          "ct" : "3e65dbacaae556fa18bd192035cd55958adeac30e5ca7b3b",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 175,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae37",
+          "ct" : "de2054883b00f81ff68e42b7ff1c05ef5faaf75b2bb14004",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 176,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae37",
+          "ct" : "2aa3c6ba891d1211677d59f886cc6d05698243d10dc189f7",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 177,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070",
+          "ct" : "9b1e7d6caf42bb3a15530f2387ed7329310ba76e1852566a",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 178,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070",
+          "ct" : "daf6a9f5e4b4985fcd4815bf6298a3039bcb32327b0876ff",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 179,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070",
+          "ct" : "14c4079399721142fd5fce26e9417064c7e0201fb7b5255c",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 180,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070",
+          "ct" : "f48a30b8691a2a80dd79c355c281addf779bfed8971e3ce4",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 181,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070",
+          "ct" : "248f867430ffc954b494c936a3ef815b1754009928aaf0c4",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 182,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070",
+          "ct" : "dcaa88dad9b03e59a3ac8350239824368004e2ca616c15d7",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 183,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070",
+          "ct" : "a6cc8470192687ec9a31258ddb73084005784475f3442705",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 184,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070",
+          "ct" : "0527ab5408b4f1484b27f98641511143ab88783688256815",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 185,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "7fd3ad3aee0545da1ed3a54d5a198a2c76cf8290c011c042",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 186,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "a24e94c12b2e6b776c8febe9179521beae0cfbd507d358b4",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 187,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "9395b071fa3d9908b2e1b349bf7cd6a1cfc86b979c8c73cd",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 188,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "1eb452770bc0f26a3576b604bf5ac72f714fc468c357eba7",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 189,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "b42bcb4161f40b30f3d2f740f43e441d3c9a39613914f1c6",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 190,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "f3d76dd320e5f1b3f85b8f73a9ebcfabfb8346daafaf36e6",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 191,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "b8e26164496942f44f16751096fb47952ec478bb288e72a1",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 192,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5",
+          "ct" : "fa783b3aca0ec1e677378f23ebe937776fa590ecc6b01392",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 193,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "8b011408049eab81cc185796b9636982c1ad28e940e5c35ab1219434c23e8c59",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 194,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "08db2f06aa2400d4cc1113b1c9e3ba1b39e3e26a84918f9266796c426c166428",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 195,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "3114404be000ee167b65dd3cfae3b10c50dffe1df864b5e52a2805f0c80021c0",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 196,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "405ae5bdeff8b05d28ea55900b8e81dc789d532ec3fc457730819e762172f751",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 197,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "7c19e66d21c0f1409ee6f03a36ab6ba532349e2567200b95d7f5012b2b7e5d33",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 198,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "955ac67d6e496b9b93a4dda8f6e65e668f1326b256ee146a7647ba18deee7986",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 199,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "c8600aa18be27279493fd68c84130c8bc328b0f6821e01e892b6c2dc1c005270",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 200,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1",
+          "ct" : "492566e0dc539e234b08b95fb23594a6d14f59fa4367799495c2e7f2993135ec",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 201,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690",
+          "ct" : "8c5c2ea18125a03d15d2a624c9bfcccdf53709a89ae03d5728c98943b13df72c6f02fc8e1cfcdfa7",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 202,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690",
+          "ct" : "8836c5cb2eec2ca2541b18c1259933ebd601bd6763d9f7cebf06ed6abbe37d455aca13a2db87d111",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 203,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690",
+          "ct" : "2554e0faf721d77f7dfadaaa90b70c2f242f93bdc4f876cd058a86ccfff33f8fd88736997f505d98",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 204,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690",
+          "ct" : "53ee4c8f03212b389f5bc2b26bc898deb91a457f258a22028a688919e12c4da23090c26b5c9ff692",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 205,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690",
+          "ct" : "3a63b0283ec071a4d4c32b0f30b384eccb3cd8d7fb12de6806e12fef5da82a7a39aad8128c3e5915",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 206,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690",
+          "ct" : "d1cfaaa9adc25f948c0c4720967b01488e06d3dfc5622b5de38a722798d4a3a44fa6194a92c5ede7",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 207,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690",
+          "ct" : "251a71511a4e73d1469a051fd88fa78cae96547fd8ca8e323b05d8717cdcd239292c7bbe0708fae5",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 208,
+          "comment" : "Modified IV",
+          "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7",
+          "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690",
+          "ct" : "14a62f7284124d795826cc89852e97dbe6b8a30ac56df07173878cf0136dbe386ec46327d6fc65f1",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 209,
+          "comment" : "RFC 3349 padding",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2",
+          "msg" : "000102030405060708090a0b0c0d0e0f",
+          "ct" : "ac1a774a5de27e4f9c356e4f62deaf8b7eeee6bcafafd895",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 210,
+          "comment" : "Invalid encryption",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2",
+          "msg" : "0001020304050607",
+          "ct" : "b3941437f55e7cbc3f88050aff703967",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 211,
+          "comment" : "padding too long",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2",
+          "msg" : "000000000000000000000000000000000000000000000000",
+          "ct" : "86175acf19ad0b7ac60d1fe4bb7850635e7ec6f8a314f85b6dd3d8f9349ea38d",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 212,
+          "comment" : "padding too long",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2",
+          "msg" : "0000000000000000000000000000000000000000000000000000000000000000",
+          "ct" : "791f088847a76731e0d56b9b2dcb28bf9f091a9725790e0a64fc8e7cb3ad50f380297a98e3b1c33e",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 213,
+          "comment" : "incorrectly encoded length",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2",
+          "msg" : "00000000000000000000000000000000",
+          "ct" : "868c34495bd3d7b4e2c1861e7fcbbdb372099488dd96c9ea",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 214,
+          "comment" : "length = 2**32-1",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2",
+          "msg" : "00000000000000000000000000000000",
+          "ct" : "4a8b4aeaa713469bfd9bf88d4072379fc858e40b24b0bebe",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 215,
+          "comment" : "length = 2**32-1",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2",
+          "msg" : "0000000000000000",
+          "ct" : "c210aa3b5fbf5eac97e68d98d7727f38",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 216,
+          "comment" : "length = 2**31-1",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2",
+          "msg" : "00000000000000000000000000000000",
+          "ct" : "e0ebd376e050cc9027b76dfc38ee2c6ae2808cecf480a560",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 217,
+          "comment" : "length = 2**31 + 16",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2",
+          "msg" : "00000000000000000000000000000000",
+          "ct" : "23a693e211c08ab9b222c2ede2db18f437e22917fdff8032",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 218,
+          "comment" : "data is incorrectly padded",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2",
+          "msg" : "ffffffffffffffffffffffffffffffffffffffffffffffff",
+          "ct" : "003f2916fea6827e01199028d3dc4e03889113f97b1860cc242e5a0f28a0f159",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 219,
+          "comment" : "data is incorrectly padded",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2",
+          "msg" : "0001020304050607",
+          "ct" : "5c25a170d5225a6d66e117c691b37383",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 220,
+          "comment" : "length = 0",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2",
+          "msg" : "00000000000000000000000000000000",
+          "ct" : "df9ef924eb59634be5b27cabd33d72bd6be6e01e4672ab05",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 221,
+          "comment" : "RFC 3349 padding with incorrect size",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2",
+          "msg" : "0001020304050607",
+          "ct" : "e6e66fad359a7b63a977788acd297121",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 222,
+          "comment" : "length = 9",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2",
+          "msg" : "0000000000000000",
+          "ct" : "76b88ecda760b1af80703036185fc476",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 223,
+          "comment" : "length = 16",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2",
+          "msg" : "0000000000000000",
+          "ct" : "fd101943f4ab7c38ec68c75d4b3193dc",
+          "result" : "invalid",
+          "flags" : []
+        },
+        {
+          "tcId" : 224,
+          "comment" : "length = 2**31 + 8",
+          "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2",
+          "msg" : "0000000000000000",
+          "ct" : "1793a3a9bd146726edbcb9589f20e849",
+          "result" : "invalid",
+          "flags" : []
+        }
+      ]
+    }
+  ]
+}