{
  "algorithm": "SEED-WRAP",
  "schema": "keywrap_test_schema_v1.json",
  "numberOfTests": 35,
  "header": [
    "Test vectors of type Keywrap are intended for tests",
    "checking the wrapping and unwrapping of key material."
  ],
  "notes": {
    "CounterOverflow": {
      "bugType": "FUNCTIONALITY",
      "description": "The test vector contains a value that is long enough so that the round counter becomes larger than 256."
    },
    "EmptyKey": {
      "bugType": "AUTH_BYPASS",
      "description": "An empty key cannot be wrapped. Incorrectly wrapping an empty key may result in key independent result. Incorrectly unwrapping an empty key may allow to circumvent authentication."
    },
    "InvalidWrappingSize": {
      "bugType": "MODIFIED_PARAMETER",
      "description": "The size of the wrapped key is invalid"
    },
    "ModifiedIv": {
      "bugType": "MISSING_STEP",
      "description": "The test vector contains a ciphertext that was obtained with an incorrect IV. Unwrapping should verify that the IV is valid and hence reject this test vector."
    },
    "Normal": {
      "bugType": "BASIC",
      "description": "The test vector contains a pseudorandomly generated, valid test case. Implementations are expected to pass this test."
    },
    "ShortKey": {
      "bugType": "MISSING_STEP",
      "description": "NIST SP 800-38F does not define the wrapping of 8 byte keys. RFC 3394 Section 2 on the other hand specifies that 8 byte keys are wrapped by directly encrypting one block with AES."
    },
    "WrongDataSize": {
      "bugType": "MISSING_STEP",
      "description": "KW cannot be used to wrap a key that is not a multiple of 8 bytes. Inputs of such sizes should be rejected."
    }
  },
  "testGroups": [
    {
      "type": "KeywrapTest",
      "source": {
        "name": "google-wycheproof",
        "version": "0.9"
      },
      "keySize": 128,
      "tests": [
        {
          "tcId": 1,
          "comment": "",
          "flags": [
            "Normal"
          ],
          "key": "6f67486d1e914419cb43c28509c7c1ea",
          "msg": "8dc0632d92ee0be4f740028410b08270",
          "ct": "36124f93b4d7b9e1467f74614a028714ed76d0f301c3866c",
          "result": "valid"
        },
        {
          "tcId": 2,
          "comment": "",
          "flags": [
            "Normal"
          ],
          "key": "a0b17172bb296db7f5c869e9a36b5ce3",
          "msg": "615dd022d607c910f20178cbdf42060f",
          "ct": "7592c3bb3714e769d0dd11ab1729f81ef95da142c4204e92",
          "result": "valid"
        },
        {
          "tcId": 3,
          "comment": "",
          "flags": [
            "Normal"
          ],
          "key": "0e49d571c19b5250effd41d94bde39d6",
          "msg": "f25e4de8caca363fd5f29442eb147b55",
          "ct": "beb5f8d591aadf9e8124625edbabb685deaaf80f08ec53b6",
          "result": "valid"
        },
        {
          "tcId": 4,
          "comment": "Round counter larger than 256",
          "flags": [
            "CounterOverflow"
          ],
          "key": "31cacbb17d6dbbecae40727c5048fe0c",
          "msg": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
          "ct": "286570d4d7851495d29af1f1c1717c2b20f44b5543eace58951cac77df414c6b9954b53c6424c3340c9bd769f2bf0aa3a597d8d6574ed3a86852016dfca2a20a31a93748cf1a591bf6b6ace9f382c9ff4a31c8c547f04b047d23e80ff143631086a4b8f52183de0aab5c962a78d6d23e30e686258b55998c420b398179e996e0ebd0854ca3bb2edd3c55c36950727258c800e5816b9d170d5f96e2fa849cc8c1091c97a179bb895d69db9606c5945a2535c7b15dec0286b82b315d067aef652941ffa59f16bc876a558034be930a61136616ae49953646ca911362ab2c2c76f4cfc5f319b51b5444be59c4bea12431ea95630301e19c35714844749d7712a24958542823a0c8b5d94c2c1da2fb0cea64c84627774f794867c311ce68848827b3bd45babf9218001517ede204bac2eb250c6330e17166433be67ae5daf84bc4a750a1725133c159c4eebaa2e1a13e9898f70df33cce9998db5fa7a4f899c6ef9cbb4f6fc47195b3068182ce5fbf0ba38fb3817c3fbbbc056da46c1bf5333a5c571df7a418849f1fc8",
          "result": "valid"
        },
        {
          "tcId": 5,
          "comment": "empty keys cannot be wrapped",
          "flags": [
            "EmptyKey"
          ],
          "key": "574957151fc2afe0fa3dc7a9a7da6495",
          "msg": "",
          "ct": "a6a6a6a6a6a6a6a6",
          "result": "invalid"
        },
        {
          "tcId": 6,
          "comment": "wrapping an 8 byte key",
          "flags": [
            "ShortKey"
          ],
          "key": "574957151fc2afe0fa3dc7a9a7da6495",
          "msg": "0001020304050607",
          "ct": "dcf6d0c9b2913140d5cd4da1c80c1719",
          "result": "acceptable"
        },
        {
          "tcId": 7,
          "comment": "incorrect wrapping of 8 bytes",
          "flags": [
            "ShortKey"
          ],
          "key": "574957151fc2afe0fa3dc7a9a7da6495",
          "msg": "0001020304050607",
          "ct": "f2bd97877cd38d5412707355848ec82b",
          "result": "invalid"
        },
        {
          "tcId": 8,
          "comment": "wrapped key size must be divisible by 8",
          "flags": [
            "WrongDataSize"
          ],
          "key": "574957151fc2afe0fa3dc7a9a7da6495",
          "msg": "00",
          "ct": "",
          "result": "invalid"
        },
        {
          "tcId": 9,
          "comment": "wrapped key size must be divisible by 8",
          "flags": [
            "WrongDataSize"
          ],
          "key": "574957151fc2afe0fa3dc7a9a7da6495",
          "msg": "0001",
          "ct": "",
          "result": "invalid"
        },
        {
          "tcId": 10,
          "comment": "wrapped key size must be divisible by 8",
          "flags": [
            "WrongDataSize"
          ],
          "key": "574957151fc2afe0fa3dc7a9a7da6495",
          "msg": "000102",
          "ct": "",
          "result": "invalid"
        },
        {
          "tcId": 11,
          "comment": "wrapped key size must be divisible by 8",
          "flags": [
            "WrongDataSize"
          ],
          "key": "574957151fc2afe0fa3dc7a9a7da6495",
          "msg": "00010203",
          "ct": "",
          "result": "invalid"
        },
        {
          "tcId": 12,
          "comment": "wrapped key size must be divisible by 8",
          "flags": [
            "WrongDataSize"
          ],
          "key": "574957151fc2afe0fa3dc7a9a7da6495",
          "msg": "0001020304",
          "ct": "",
          "result": "invalid"
        },
        {
          "tcId": 13,
          "comment": "wrapped key size must be divisible by 8",
          "flags": [
            "WrongDataSize"
          ],
          "key": "574957151fc2afe0fa3dc7a9a7da6495",
          "msg": "000102030405",
          "ct": "",
          "result": "invalid"
        },
        {
          "tcId": 14,
          "comment": "wrapped key size must be divisible by 8",
          "flags": [
            "WrongDataSize"
          ],
          "key": "574957151fc2afe0fa3dc7a9a7da6495",
          "msg": "00010203040506",
          "ct": "",
          "result": "invalid"
        },
        {
          "tcId": 15,
          "comment": "wrapped key size must be divisible by 8",
          "flags": [
            "WrongDataSize"
          ],
          "key": "574957151fc2afe0fa3dc7a9a7da6495",
          "msg": "000102030405060708090a0b0c0d0e0f10111213",
          "ct": "",
          "result": "invalid"
        },
        {
          "tcId": 16,
          "comment": "invalid size of wrapped key",
          "flags": [
            "InvalidWrappingSize"
          ],
          "key": "fe60fc8df7d9f4ebb5416ca4e82182f7",
          "msg": "",
          "ct": "",
          "result": "invalid"
        },
        {
          "tcId": 17,
          "comment": "invalid size of wrapped key",
          "flags": [
            "InvalidWrappingSize"
          ],
          "key": "fe60fc8df7d9f4ebb5416ca4e82182f7",
          "msg": "",
          "ct": "9f",
          "result": "invalid"
        },
        {
          "tcId": 18,
          "comment": "invalid size of wrapped key",
          "flags": [
            "InvalidWrappingSize"
          ],
          "key": "fe60fc8df7d9f4ebb5416ca4e82182f7",
          "msg": "",
          "ct": "dc9e9580",
          "result": "invalid"
        },
        {
          "tcId": 19,
          "comment": "invalid size of wrapped key",
          "flags": [
            "InvalidWrappingSize"
          ],
          "key": "fe60fc8df7d9f4ebb5416ca4e82182f7",
          "msg": "",
          "ct": "b9b282d138693000",
          "result": "invalid"
        },
        {
          "tcId": 20,
          "comment": "invalid size of wrapped key",
          "flags": [
            "InvalidWrappingSize"
          ],
          "key": "fe60fc8df7d9f4ebb5416ca4e82182f7",
          "msg": "",
          "ct": "0efc635b2d61e244056b9d4591ca6b",
          "result": "invalid"
        },
        {
          "tcId": 21,
          "comment": "invalid size of wrapped key",
          "flags": [
            "InvalidWrappingSize"
          ],
          "key": "fe60fc8df7d9f4ebb5416ca4e82182f7",
          "msg": "",
          "ct": "4a305dae087b0d24d62af41831338f33ae",
          "result": "invalid"
        },
        {
          "tcId": 22,
          "comment": "invalid size of wrapped key",
          "flags": [
            "InvalidWrappingSize"
          ],
          "key": "fe60fc8df7d9f4ebb5416ca4e82182f7",
          "msg": "",
          "ct": "82cb927097cf31ea4affea440b0d8ca6a240b900",
          "result": "invalid"
        },
        {
          "tcId": 23,
          "comment": "bytes appended to wrapped key",
          "flags": [
            "InvalidWrappingSize"
          ],
          "key": "fe60fc8df7d9f4ebb5416ca4e82182f7",
          "msg": "000102030405060708090a0b0c0d0e0f",
          "ct": "29d8e449c375f239433bdd658c3966eb2a78c40d583690e700",
          "result": "invalid"
        },
        {
          "tcId": 24,
          "comment": "byte 0 in IV changed",
          "flags": [
            "ModifiedIv"
          ],
          "key": "4f710eb6b5e28703becfc3dc52fa8bc1",
          "msg": "a828cbda9b5ff0ae374f84fa01d070a5",
          "ct": "e4a87ef1e7e105894502a227927b836b62726342ffc2043f",
          "result": "invalid"
        },
        {
          "tcId": 25,
          "comment": "byte 1 in IV changed",
          "flags": [
            "ModifiedIv"
          ],
          "key": "4f710eb6b5e28703becfc3dc52fa8bc1",
          "msg": "a828cbda9b5ff0ae374f84fa01d070a5",
          "ct": "af1b17eb11d09eb728dda965437c06a8480c37b0993beac8",
          "result": "invalid"
        },
        {
          "tcId": 26,
          "comment": "byte 2 in IV changed",
          "flags": [
            "ModifiedIv"
          ],
          "key": "4f710eb6b5e28703becfc3dc52fa8bc1",
          "msg": "a828cbda9b5ff0ae374f84fa01d070a5",
          "ct": "5e1ff456edf5e0beb10a64b6d32e08ee087de932e3ee5f56",
          "result": "invalid"
        },
        {
          "tcId": 27,
          "comment": "byte 3 in IV changed",
          "flags": [
            "ModifiedIv"
          ],
          "key": "4f710eb6b5e28703becfc3dc52fa8bc1",
          "msg": "a828cbda9b5ff0ae374f84fa01d070a5",
          "ct": "d477f08e9080d5d7482a98adb7c91362e0b6f50bd16ac2ac",
          "result": "invalid"
        },
        {
          "tcId": 28,
          "comment": "byte 4 in IV changed",
          "flags": [
            "ModifiedIv"
          ],
          "key": "4f710eb6b5e28703becfc3dc52fa8bc1",
          "msg": "a828cbda9b5ff0ae374f84fa01d070a5",
          "ct": "af6695e34fe22fc684b9eebb26a753182155e4fc94bcc7ab",
          "result": "invalid"
        },
        {
          "tcId": 29,
          "comment": "byte 5 in IV changed",
          "flags": [
            "ModifiedIv"
          ],
          "key": "4f710eb6b5e28703becfc3dc52fa8bc1",
          "msg": "a828cbda9b5ff0ae374f84fa01d070a5",
          "ct": "ee125d5b4538c10e0f25a6403cb3e5ef15f3d0c1d79c95fb",
          "result": "invalid"
        },
        {
          "tcId": 30,
          "comment": "byte 6 in IV changed",
          "flags": [
            "ModifiedIv"
          ],
          "key": "4f710eb6b5e28703becfc3dc52fa8bc1",
          "msg": "a828cbda9b5ff0ae374f84fa01d070a5",
          "ct": "21ff3b204c83f97d0b3e757950c928b7a6c34100a3dbec23",
          "result": "invalid"
        },
        {
          "tcId": 31,
          "comment": "byte 7 in IV changed",
          "flags": [
            "ModifiedIv"
          ],
          "key": "4f710eb6b5e28703becfc3dc52fa8bc1",
          "msg": "a828cbda9b5ff0ae374f84fa01d070a5",
          "ct": "67296d14c252450f49834502715a97cc0be6508c1d792a99",
          "result": "invalid"
        },
        {
          "tcId": 32,
          "comment": "IV changed to 0000000000000000",
          "flags": [
            "ModifiedIv"
          ],
          "key": "4f710eb6b5e28703becfc3dc52fa8bc1",
          "msg": "a828cbda9b5ff0ae374f84fa01d070a5",
          "ct": "b400665d9544018984b9eb261987150d247fea3b2b4375fe",
          "result": "invalid"
        },
        {
          "tcId": 33,
          "comment": "IV changed to RFC 5649 padding",
          "flags": [
            "ModifiedIv"
          ],
          "key": "4f710eb6b5e28703becfc3dc52fa8bc1",
          "msg": "a828cbda9b5ff0ae374f84fa01d070a5",
          "ct": "5f70f4d13e0b8b0c921f5b0dbc28ad2ade9ad9e59a5abc47",
          "result": "invalid"
        },
        {
          "tcId": 34,
          "comment": "IV changed to 5959595959595959",
          "flags": [
            "ModifiedIv"
          ],
          "key": "4f710eb6b5e28703becfc3dc52fa8bc1",
          "msg": "a828cbda9b5ff0ae374f84fa01d070a5",
          "ct": "f422c09d16ce6535a9f410ba76198e5aa4b0be298da9cde5",
          "result": "invalid"
        },
        {
          "tcId": 35,
          "comment": "IV changed to ffffffffffffffff",
          "flags": [
            "ModifiedIv"
          ],
          "key": "4f710eb6b5e28703becfc3dc52fa8bc1",
          "msg": "a828cbda9b5ff0ae374f84fa01d070a5",
          "ct": "9c8a88de7109ff464725ccdafb6be259d8e7026fb45bc2e1",
          "result": "invalid"
        }
      ]
    }
  ]
}
